- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When i compile my programs I get the following warnings
ipo: warning #11010: *MIC* file format not recognized for /usr/lib64/libm.so
same for libthread.so.0, libc.so.6, ld-linux-x86-64.so.2, libdl.so
AND
x86_64-k1om-linux-ld: skipping incompatible /use/lib64/libm.so when searching for -lm
same for -lpthread, -lc, -ldl
Why do I get these? Thanks.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A typical way in which these might arise is with a Makefile which specifically sets library paths for host links. When you source the icc compilervars.
k1om-linux-ld acts just like the host linux 32- and 64-bit versions of ld; it issues those warning messages if it encounters first a library which doesn't match its architecture.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks. I compiling my program as follows: icc -lz -openmp -O3 -I/usr/include -L/usr/lib64 -lgsl -lgslcblas a.c
What should I change? Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You should allow icc to select the std include and library paths rather than putting them in as -I and -L directives. This would require setting up the environment in accordance with compilervars script.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks. Do you mean to compile it as follows: icc -lz -openmp -O3 -lgsl -lgslcblas a.c? If so, then I get the error saying: "catastrophic error: *MIC* cannot open source file "zlib.h"".
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That might indicate that you need a MIC build of zlib. If using zlib only on the host side, you might try including the specific zlib.h path rather than putting /usr/include/ ahead of the choices icc make.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Tim. Yes, I am using zlib and gsl on the host side only. Do you mean to do the following ?
[cpp] #include </usr/include/zlib.h>
#include </usr/include/gsl/gsl_math.h>
[/cpp]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Tim, instead I did the following while compiling: icc -I/usr/include -lgsl -lgslcblas -lz a.c. It compiled without any warnings. Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Tim and TK
Similar to TK's code, when I compile my code I get the following warnings:
ipo: warning #11010: *MIC* file format not recognized for /lib64/libpthread.so.0
ipo: warning #11010: *MIC* file format not recognized for /lib64/libc.so.6
ipo: warning #11010: *MIC* file format not recognized for /lib64/libc.so.6
Why do I get these?
Thank you.
#################################################################################################
I have set the compilervars.sh in the bashrc as "source /opt/intel/composer_xe_2013_sp1.0.080/bin/compilevars.sh intel64".
I have 2 c++ codes using mkl library & openmp pragmas & compiler assisted offload
When I run the code I almost get the followings:
icpc -c -I/opt/intel/composer_xe_2013_sp1.0.080/mkl/include -offload-attribute-target=mic -O2 -fargument-noalias -DNDEBUG -Wall -Weffc++ -Woverloaded-virtual -W -Wfloat-equal -Wshadow -wd2015,2012,11069 -vec-report=3 -mkl -openmp -openmp_report2 main.cpp
icpc -c -I/opt/intel/composer_xe_2013_sp1.0.080/mkl/include -offload-attribute-target=mic -O2 -fargument-noalias -DNDEBUG -Wall -Weffc++ -Woverloaded-virtual -W -Wfloat-equal -Wshadow -wd2015,2012,11069 -vec-report=3 -mkl -openmp -openmp_report2 mylib.cpp
icpc main.o mylib.o -openmp -Wl,--start-group /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64/libmkl_core.a /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64/libmkl_intel_thread.a -Wl,--end-group -lpthread -lm -offload-option,mic,compiler," -Wl,--start-group /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/mic/libmkl_intel_lp64.a /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/mic/libmkl_core.a /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/mic/libmkl_intel_thread.a -Wl,--end-group" -o main.ICC_OFFLOAD_
ipo: warning #11010: *MIC* file format not recognized for /lib64/libpthread.so.0
ipo: warning #11010: *MIC* file format not recognized for /lib64/libc.so.6
ipo: warning #11010: *MIC* file format not recognized for /lib64/libc.so.6
##################################################################################################
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It looks like you are trying to combine compiler assisted offload with MIC native MKL linkage models. The latter would be for builds using -mmic. That option at link time should include the MIC library search paths, but would not work with the host MKL search paths which support compiler assisted offload. If you really intend to combine the models you should say so when asking for advice (and be more specific; are you trying to call MKL both from your own offload functions and direct from host) (I haven't found a documented method), otherwise stick to one or the other.
The 0.080 release is the buggiest of the sp1 series; many MIC bugs were corrected in the subsequent updates.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you Tim for your fast response,
I got the whole link from http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor
and yes, actually,
I am trying to use a combination of Offload&Blas, Offload&openmp, Host&Blas and Host&openmp in a code and compare results.
What should I do?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You have multiple groups of MKL linking, only one of which comes from the link advisor with the CAO selection. If it is CAO only, there should be no references to the libraries required for MIC native linking.
When you have CAO, the choice between host and MIC offload in MKL is under the control of thresholds set in your environment variables; it doesn't involve additional link commands beyond the basic CAO.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is an issue with the compiler when IPO is enabled. It searches the /usr/lib64 during MIC compilation and it should not. These are warnings and you can ignore them.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page