Add support for raw_kernel_arg extension
Add support for the DPC++ SYCL extension raw_kernel_arg that allows to pass a binary blob as kernel arguments.
This is for example useful if the kernel uses a struct as kernel parameter, but is loaded from SPIR-V and the argument type is unknown for set_arg.
The implementation follows #1984.
- [x] Have you provided a meaningful PR description?
- [x] Have you added a test, reproducer or referred to an issue with a reproducer?
- [x] Have you tested your changes locally for CPU and GPU devices?
- [x] Have you made sure that new changes do not introduce compiler warnings?
- [ ] Have you checked performance impact of proposed changes?
- [x] Have you added documentation for your changes, if necessary?
- [ ] Have you added your changes to the changelog?
- [ ] If this PR is a work in progress, are you opening the PR as a draft?
coverage: 86.354% (-0.06%) from 86.41% when pulling 5fb74e63bd2ea17dccfc7a60ddd24fd2c5a64939 on sommerlukas:raw-kernel-arg into 3e74087e4ad8ea9bcc226ceaa65fc0f555b75594 on IntelPython:master.
@sommerlukas Master now has a fix for nightly build, so please merge or rebase on master so the tests run on nightly compiler
Thanks for the feedback @ndgrigorian @AlexanderKalistratov!
After taking a look at how the opaque pointers for other std::vector work, I've changed the approach: I've removed RawKernelArgDataTy entirely, so that the opaque pointer (DPCTLSyclRawKernelArgRef) now directly points to std::vector<unsigned char>. That way, we can avoid defining a struct with std::vector in the header, so the offending includes of <vector> and <cstring> are now removed.
@ndgrigorian @AlexanderKalistratov Friendly ping for reviews. CI is looking quite good now, I can unfortunately not see the logs for the single failing Jenkins job.
@ndgrigorian @AlexanderKalistratov Friendly ping for reviews. CI is looking quite good now, I can unfortunately not see the logs for the single failing Jenkins job.
Sorry, forgot to put my final review on this.
Jenkins job is unrelated. I'll give it a last look over but I think it's ready to go in.