-
Notifications
You must be signed in to change notification settings - Fork 20
Experimental support for AdaptiveCpp SSCP flow #294
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
Conversation
Check-perf-impact results: (6dd39f6a6c050e624420039722ed76eb) ❓ No new benchmark data submitted. ❓ |
f62c4c4
to
f29f56f
Compare
Check-perf-impact results: (e884a5b266877a2f8b1f68ea7d0b8bef) ❓ No new benchmark data submitted. ❓ |
Pull Request Test Coverage Report for Build 11438165966Details
💛 - Coveralls |
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
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!
Single-pass compilation cannot provide __SYCL_DEVICE_ONLY__ detection macro, so we need to guard accessor hydration with __acpp_if_target_host(). This works because AdaptiveCpp does not verify that kernels are actually device copyable. For DPC++ (and anything else) we still need to conditionally remove definitions for accessor copy and move ctors.
Single-pass compilation cannot provide
__SYCL_DEVICE_ONLY__
detection macro, so we need to guard accessor hydration with__acpp_if_target_host()
. This works because AdaptiveCpp does not verify that kernels are actually device copyable.For DPC++ (and anything else) we still need to conditionally remove definitions for accessor copy and move ctors.
This now works on my machine ™️, but there is no CI integration yet.