-
Notifications
You must be signed in to change notification settings - Fork 282
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
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) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
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.so
The 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.