-
Notifications
You must be signed in to change notification settings - Fork 770
Avoid CL_BUILD_PROGRAM_FAILURE under DPC++ for devices not supporting doubles #2968
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
Comments
Hi @ekondis,
Yes, you can do that and there are even a couple of ways to do that:
About device-code-split: by default, we merge all device code from an app into a single device image which means that even if you launch one of a one hundred kernels, all of them will be sent to compilation, which might result in errors like you have just experienced. However, there is an option to split device code into a several device images: you can either choose The flag is documented here. As an example you can see how SYCL-CTS are organized and compiled by our SYCL implementation: combination of KhronosGroup/SYCL-CTS#55 and KhronosGroup/SYCL-CTS#42 allows us to correctly launch test for Also, I think that it is reasonable to expect from the compiler to automatically distribute kernels that use optional features into separate device images. It seems to perfectly fit recently added |
Thank you for your thorough explanation. |
Exactly |
Thanks again @AlexeySachkov. |
…tes (#2968) This continues #2258 All the backports with the rename has reached the backend drivers, so now it's safe to remove the old naming. Original commit: KhronosGroup/SPIRV-LLVM-Translator@ee6e8fac80c53ff
I'm developing a SYCL program which invokes multiple kernels, one of which is using double precision computations. However, when run on a Gen12LP HD GPU, which seems not to support double precision, I get an exception during build (CL_BUILD_PROGRAM_FAILURE):
AFAIK, kernel building under SYCL is performed implicitly. Can I control somehow which kernels will be compiled under DPC++ so I can avoid the exception for devices not supporting double precision?
The text was updated successfully, but these errors were encountered: