- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
I am trying to link a sequential version of MKL with my code for some testing. I am using ICC 13.0.1 (20121010). When I link it I get an undefined reference error:
icc -g -Wall -Wextra -O3 -mmic -o test_v5_pth main.o -L/opt/apps/intel13_1/mkl/11/lib/mic -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm
/opt/apps/intel13_1/mkl/11/lib/mic/libmkl_core.so: undefined reference to `omp_get_max_threads'
Obviously if I and -liomp5 I can get over the omp_get_max_threads, but I am wondering why does mkl_core reference omp_get_max_threads when I am trying to compile a sequential version of it. Is this a known issue or am I required to link with libiomp5, this is not what MKL link advisor gives me either.
Link copiado
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
This is probably an issue for older versions of ICC and MKL. I tried with a recent version (ICC 13.1.0 20130121) and it didn't have this problem. Please consider upgrade your Composer XE. Thanks!
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Thanks for the information, I will look into upgrading to the newer version of Intel Composer suite.
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Building with the compiler option "-mkl" may also solve some of the problems. It knows what libraries to include and does so automatically.
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
-mkl:sequential seems to be the matching option according to the mention at the top of this thread. It would avoid any problem with wrong order or spelling typos of the library options. Note in http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor that you must use the --start-group --end-group options when specifying individual static libraries on linux; that shouldn't have been needed when dynamic libraries are used.
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Upgrading to the newer version of Composer XE fixed the problem.
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Just to be clear in the older version of Composer XE 13.0.1 (20121010)
$ nm libmkl_core.so | grep omp_get_max
U omp_get_max_threads
In the newer version 13.1.1 (20130313)
$ nm libmkl_core.so | grep omp_get_max
Probably there was an issue with the MKL in our older version which got fixed with upgrade.
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Yes, one would expect mkl_sequential to stub out get_threads calls from inside MKL and simply set 1 thread.
- Subscrever fonte RSS
- Marcar tópico como novo
- Marcar tópico como lido
- Flutuar este Tópico para o utilizador atual
- Marcador
- Subscrever
- Página amigável para impressora