Fix CPU-only runtime for dpcpp-generated executables in custom easyblock for intel-compilers#2457
Conversation
This is needed to run dpcpp-compiled executables on CPUs
TBB is also an internal dependency for the OpenCL shared objects.
1. Use get_tbb_gccprefix from tbb easyblock instead of hardcoding gcc4.8 2. Resolve 'latest' symlink since the embedded tbb version may be different from the compiler version.
To satisfy testing.
|
Test report by @bartoldeman Overview of tested easyconfigs (in order)
Build succeeded for 1 out of 1 (1 easyconfigs in total) |
|
Test report by @bartoldeman Overview of tested easyconfigs (in order)
Build succeeded for 1 out of 1 (1 easyconfigs in total) |
|
Test report by @boegel Overview of tested easyconfigs (in order)
Build succeeded for 2 out of 2 (2 easyconfigs in total) |
First of all the OpenCL runtime needs to be aware of the CPU-only shared object via
OCL_ICD_FILENAMES -> libintelocl.soThe module also needs to set TBB-related variables (the same ones as the old iccifort modules), since the above object links to TBB.
This can be tested using e.g. saxpy from
https://github.com/jeffhammond/dpcpp-tutorial
I haven't tested dpcpp on FPGAs, nor on Intel GPUs (though I can try the one on my laptop, an Intel Corporation UHD Graphics 620 chip).
NVidia GPUs are not supported.