Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intel Compiler Error in in x86_64/dscal.c #962

Closed
grisuthedragon opened this issue Sep 13, 2016 · 8 comments
Closed

Intel Compiler Error in in x86_64/dscal.c #962

grisuthedragon opened this issue Sep 13, 2016 · 8 comments

Comments

@grisuthedragon
Copy link
Contributor

I tried to compile the current develop version ( and 0.2.19 perviously) with the 2015 edition of the Intel Compiler

$ icc --version && ifort --version 
icc (ICC) 15.0.3 20150407
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

ifort (IFORT) 15.0.3 20150407
Copyright (C) 1985-2015 Intel Corporation.  All rights reserved.

on an Haswell Intel Xeon E5-2640v3. The operating System is a CentOS 7.

When the make process tries to compile 'kenerl/x86_64/dscal.c' I get the following error message:
../kernel/x86_64/dscal.c(96): catastrophic error: unknown register name %2 in asm statement

I called 'make' with the following arguments:
CC=icc CXX=icpc FC=ifort make USE_OPENMP=0

@martin-frbg
Copy link
Collaborator

See #718 and recent pull request #915 for possible fixes.

@grisuthedragon
Copy link
Contributor Author

The trick from #718 is not applicable because I need the icc to compile the C source due to the use of Intel's OpenMP implementation.

@martin-frbg
Copy link
Collaborator

I know barely enough assembler to be dangerous, but mdong's reasoning for #915 looks good to me so you could try dropping the arguments from the cc lists in dscal.c (and c/zscal_microk_haswell-2.c)

@brada4
Copy link
Contributor

brada4 commented Sep 13, 2016

gcc works with -liomp6 and without -fopenmp just fine.

@grisuthedragon
Copy link
Contributor Author

But the question is: If OpenBLAS is compiled with OpenMP threading using gcc then the OpenMP symbols can not be resolved because the GNU libgomp symbols are named like gomp_ and the ones from Intel are named like kmp_. From this point of view mixing compilers is a worse idea so we need the Intel Compiler Suite working.

@martin-frbg
Copy link
Collaborator

So could you try the (formally) trivial edit of the two files from #915, or do you see something wrong with that suggestion ?
According to a thread on stackoverflow, an alternative might be to use llvm/clang

@brada4
Copy link
Contributor

brada4 commented Sep 17, 2016

can you post at least GCC link line that you assembled using Intel Link Line Advisor?
it perfectly supports GCC and iomp (you did not tell yet if you use mac or windows or something better)

@martin-frbg
Copy link
Collaborator

Resolved via #915

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants