-
Notifications
You must be signed in to change notification settings - Fork 787
[SYCL] vec abi unification and trivially copyable #9492
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] vec abi unification and trivially copyable #9492
Conversation
Hmm - am getting an internal error on Linux when it's trying to preprocess the builtins macros. But I can't reproduce this error locally. The CI is using GCC 11.3.0 , but that works for me. I also tested GCC 9.4 and Clang 17.0, both worked as well. Even tried a debug build using GCC 11.3.0, worked fine.
|
…on errors. also remove old conjunction code for std::conjunction
…E_ON_HOST__ is irrelevant. Removing.
Ping to reviewers, I believe I've addressed all the concerns, either here or in conversations offline. They are holding the ABI-breaking window open for this PR, so I'd like keep the process moving along. Let me know if you need anything else. |
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.
LGTM
Post-commit found that the redirected call will cause a recursion as the double overload is defined later than the call to it. To avoid this #10652 moves said overload definition. |
The recent sycl::vec changes (#9492) broke they unary operations. This PR fixes them and adds some testing to avoid that in the future.
This reverts commit 531aabf.
adapted from intel#6816 sycl::vec now uses std::array on host in all cases, but device access is via `ext_vector_type` so as to not lose performance. Alignment is set the same as the size to a maximum of 64 bytes, which aligns with an upcoming spec change proposal. In the cases where the size is greater than 64 we use std::array on the device. We no longer need to emit a pragma on Windows and we can use `alignas()` on all platforms.
The recent sycl::vec changes (intel#9492) broke they unary operations. This PR fixes them and adds some testing to avoid that in the future.
This reverts commit 531aabf.
adapted from #6816
sycl::vec now uses std::array on host in all cases, but device access is via
ext_vector_type
so as to not lose performance. Alignment is set the same as the size to a maximum of 64 bytes, which aligns with an upcoming spec change proposal. In the cases where the size is greater than 64 we use std::array on the device. We no longer need to emit a pragma on Windows and we can usealignas()
on all platforms.