-
Notifications
You must be signed in to change notification settings - Fork 366
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
Compatibility with Intel Fortran compiler #433
Comments
Unfortunately Intel and GNU Fortran compilers use incompatible mechanisms to return complex numbers: Intel adds a hidden first parameter (e.g. the above would be equivalent to I tried to look around for flags to emulate the behavior of the other compiler in each but did not have much luck. Since these mechanisms are mutually incompatible we have to pick only one, but perhaps we could add a configure option to select between the two. |
That will be great if a configure options will be added to support Intel Fortran, since in most scenarios Intel Fortran has better performance than gfortran. Is that on the plan in the future release? |
ifort apparently does not return complex numbers in registers as in C/C++ (or gfortran), but instead creates a "hidden" first parameter for the return value. The option --complex-return=gnu|intel has been added, as well as a guess based on a provided FC if not specified (otherwise default to gnu). This option affects the signatures of cdotc, cdotu, zdotc, and zdotu, and a single library cannot be used with both GNU and Intel Fortran compilers. Fixes #433.
ifort apparently does not return complex numbers in registers as in C/C++ (or gfortran), but instead creates a "hidden" first parameter for the return value. The option --complex-return=gnu|intel has been added, as well as a guess based on a provided FC if not specified (otherwise default to gnu). This option affects the signatures of cdotc, cdotu, zdotc, and zdotu, and a single library cannot be used with both GNU and Intel Fortran compilers. Fixes #433.
@xiexiguo please try the |
Thanks! I have done some test, and it works! But there are still some errors when cblas interface(--enable-cblas) is enabled. Some erros like this. |
Oops, forgot about CBLAS. Will fix. |
Should be fixed now in #434. |
Yeah, I just did some tests, and it works well.
|
I try to compile a simple fortran code which using zdotc function. I found that when the code is compiled using intel fortran complier and linked with blis, the result is wrong. It is OK when using gfortran. So I am wandering whether blis is compatible with Intel fortran complier.
Blis is compiled with gcc, with blas and cblas interface enabled. I searched the code, and found all the code is C/C++, no fortran code (except some test code) is found. So, how fortran code can call blas function? Is blis only compatible with GNU compiler?
The following is the test code.
`
program zdotc_test
`
The text was updated successfully, but these errors were encountered: