-
Notifications
You must be signed in to change notification settings - Fork 753
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
[SYCL] Replace __spirv_SubgroupShuffle{...}INTEL with __spirv_GroupNonUniformShuffle{...} generic versions. #14748
base: sycl
Are you sure you want to change the base?
Conversation
…L, __spirv_SubgroupShuffleDownINTEL and __spirv_SubgroupShuffleUpINT with __spirv_GroupNonUniformShuffle... generic versions.
Signed-off-by: Larsen, Steffen <[email protected]>
Hi @al3x-jp! I took the liberty of rebasing this patch, applying clang-format, and fixing the test issues. Hope is that the CI should be green shortly. |
Seems to be some unexpected failures on Gen12. I will look into this ASAP. |
Signed-off-by: Larsen, Steffen <[email protected]>
Signed-off-by: Larsen, Steffen <[email protected]>
Seems that OpenCL doesn't allow vectors in SPIR-V shuffle operations. By scalarizing the vectors we can work around this, expecting the device-compiler to vectorize the operation if it sees fit. The remaining failure in syclcompat om CPU seems like a bug in the CPU device compiler which shuffles in the wrong direction under certain circumstances. It has been reported to the CPU device-compiler team. |
Signed-off-by: Larsen, Steffen <[email protected]>
Replaced __spirv_SubgroupShuffleINTEL, __spirv_SubgroupShuffleXorINTEL, __spirv_SubgroupShuffleDownINTEL and __spirv_SubgroupShuffleUpINT with __spirv_GroupNonUniformShuffle... generic versions.
According to the OpenCL Specification, these operations only accept scalars, so we force vectorization of vectors.