-
Notifications
You must be signed in to change notification settings - Fork 116
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
[NATIVECPU] Handle oneAPI Construction Kit integration in runtime #1152
Conversation
I have updated the target branch of this PR from the |
Thanks @fabiomestre |
4581bc4
to
0da76bf
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #1152 +/- ##
=======================================
Coverage 15.73% 15.74%
=======================================
Files 223 223
Lines 31459 31459
Branches 3542 3542
=======================================
+ Hits 4951 4952 +1
+ Misses 26457 26456 -1
Partials 51 51 ☔ View full report in Codecov by Sentry. |
0da76bf
to
71e7e38
Compare
This PR adds support to barriers by integrating LLVM passes from the [oneAPI Construction Kit](https://github.com/codeplaysoftware/oneapi-construction-kit). The OCK is fetched via CMake when the Native CPU plug-in is enabled, and can optionally be disabled through the `NATIVE_CPU_USE_OCK` CMake option. When the OCK is available, the `NATIVECPU_USE_OCK` definition is set for the targets defined in `llvm/lib/SYCLLowerIR`. This PR also refactors the pass pipeline for Native CPU, making it so all of passes relevant to Native CPU are run in the `clang` invocation that lowers the IR to the target ISA, this is done to allow correct handling of barriers with functions declared with `SYCL_EXTERNAL`. Unified Runtime PR: oneapi-src/unified-runtime#1152
intel/llvm PR: intel/llvm#11614
With intel/llvm#11614 we start integrating the oneAPI Construction Kit. If the OCK is enabled, it creates the work item loops in the compiler, so it is not necessary to execute the loops in the adapter.