Quantcast
Channel: Intel® Many Integrated Core Architecture
Viewing all articles
Browse latest Browse all 1347

Undefined MKL symbol when calling from within offloaded region

$
0
0

Hello,

In an offloaded region of a Fortran90 application, I want to call MKL routines (dgetri/dgetrf) in a sequential way, that is, each thread on the MIC calls these routines with its own data. They aren't multithreaded calls.

I use the Intel® Math Kernel Library Link Line Advisor (v4.4) .

For : Linux / Compiler assisted offload / Intel Fortran / Dynamic / LP64 / Sequential , I get back :

link line :  -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -lm

compiler options :  -I${MKLROOT}/include -offload-attribute-target=mic -offload-option,mic,compiler," -L${MKLROOT}/lib/mic -lmkl_intel_lp64 -lmkl_core -lmkl_sequential"

 

So I use them, I successfully compile the application and run my code : it crashes on the first call to a MKL routine (here dgetri) with the following error message :

On the sink, dlopen() returned NULL. The result of dlerror() is "/var/volatile/tmp/coi_procs/1/8056/load_lib/ifortoutZ78m5J: undefined symbol: dgetri_"
On the remote process, dlopen() failed. The error message sent back from the sink is /var/volatile/tmp/coi_procs/1/8056/load_lib/ifortoutZ78m5J: undefined symbol: dgetri_
offload error: cannot load library to the device 0 (error code 20)

The environment variables for the compiler, for the MKL are set with the proper scripts, for example

echo $MIC_LD_LIBRARY_PATH
/opt/intel/mic/coi/device-linux-release/lib:/opt/intel/mic/myo/lib:
/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/mic:/opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/mic:
/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/mic:/opt/intel/composer_xe_2013_sp1.2.144/mpirt/lib/mic:
/opt/intel/mic/coi/device-linux-release/lib:/opt/intel/mic/myo/lib:/opt/intel/mic/coi/device-linux-release/lib:
/opt/intel/mic/myo/lib:/opt/intel/composer_xe_2013_sp1.2.144/compiler/lib/mic:
/opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/mic:/opt/intel/composer_xe_2013_sp1.2.144/tbb/lib/mic

(Carriage returns are mine, for readability)

I try the env. var. OFFLOAD_REPORT but I don't get anything else.

So could someone tell me what's going wrong with compile or link step ?

 

Moreover, is there a place where I can find the signification of error messages received during runtime on the MIC ? For example, in other situations, I got the following message

offload error: cannot start process on the device 0 (error code 22)

but micctrl tells me everything's fine.

Thank you in advance for your advices.

Regards

   Guy.

 

 


Viewing all articles
Browse latest Browse all 1347

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>