-
Notifications
You must be signed in to change notification settings - Fork 6
Rework the implementation for the SYCL backend #37
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
Conversation
Use the -Wno-unknown-cuda-version flag only if LLVM 11 is detected. Look for libpi_cuda.so under the correct path. Add the path to the oneAPI compiler to the PATH.
|
Please note that the CUDA backend needs the latest version of the LLVM SYCL branch at https://github.com/intel/llvm/tree/sycl , plus some still-open PRs:
|
|
I'm not sure about the rename to "SYCL" because of the use of the Intel extensions (or will they have a high chance to be accepted for the next SYCL version?). I would be perfectly fine with DPC++ ( |
Makefile
Outdated
| ALPAKA_BASE := /usr/local/alpaka/alpaka | ||
| CUPLA_BASE := /usr/local/alpaka/cupla | ||
| ONEAPI_BASE := /opt/intel/inteloneapi/compiler/latest/linux | ||
| SYCL_BASE := /data/user/fwyzard/sycl/build |
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.
Should this be something along /usr/local/sycl/build to stay more generic?
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.
Ops, that sneaked in... I'll change it to something more generic, like /opt/sycl/latest.
I think they have a good chance to be accepted, and some Intel people mentioned that the new specs could be released by the end of next month. I can keep oneAPI if you prefer. |
|
On the other hand, I guess the probability of trying out SYCL 1.2.1 conforming implementation is low, so we could plan for "success (of new specs)" and go on with SYCL, and rename later if needed. I'll merge after you change the path to something more generic. |
|
If you are interested, I could also try to prepare an implementation for a conformant SYCL toolckain (like Codeplay's). |
I think such an implementation would be interesting, but mostly in the academic sense, so I don't think it should have high (or even medium) priority. |
|
I'd be interested mostly in the impact on the performance of using the
implicit DAG vs. the in-order queue.
But I don't think the Intel implementation will be optimised for
performance any time soon...
|
| extensions, and Codeplay's CUDA backend is available on GitHub at | ||
| https://github.com/intel/llvm/ . | ||
| See [the instructions](https://patatrack.web.cern.ch/patatrack/wiki/SYCL/) | ||
| on the Patatrack Wiki for building the SYCL toolchain. |
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.
I will add the instructions there over the next days.
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.
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.
Thanks!
Rename the Intel oneAPI backend to SYCL.
Build a single binary with support for both CUDA and OpenCL backends.
Run on all devices by default, or restrict the choice with command line options.