-
Notifications
You must be signed in to change notification settings - Fork 135
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
[BUG]: Regression: Using Thrust OpenMP and CUDA back ends at the same time #2098
Comments
Confirmed reproducer on CCCL main and nvcc 12.4 https://godbolt.org/z/G1cs38xYb |
@alliepiper would you mind looking into this? |
This is blocking my implementation of So this issue is urgent. (My apologies for not speaking up about this sooner. I was on vacation for a couple weeks and forgot about this.) |
Taking a look now. The break bisects to 91b78d8. |
@dkolsen-pgi Found the culprit: 91b78d8#diff-75486465010ffdbcdb7b6a6ab5fdd365d5b3fd9d8cd4a5725b1ebd74a55eabdc Fix is here: #2332 |
|
Even if CCCL had excellent CI coverage for NVC++, it wouldn't have caught this bug. This bug only affects a new feature that I am working on, which is not in production yet. The bug may have been caught if #2333 had been implemented, but it wouldn't have been caught by NVC++ coverage. |
Thanks for the fix, Allison. Compilation gets farther along. But it runs into another error that looks like the same problem.
That line in I also found three other uses of |
This change was erroneously introduced in 91b78d8 Fixes: NVIDIA#2098
I looked into the offending commit using
I looked at those files and annotated the locations with |
* Update CCCL version to 2.6.1 * Do not hardcode Thrust's host system to cpp. (#2332) * Fix hardcoding __THRUST_HOST_SYSTEM_NAMESPACE to cpp (#2341) This change was erroneously introduced in 91b78d8 Fixes: #2098 --------- Co-authored-by: Allison Piper <[email protected]> Co-authored-by: Bernhard Manfred Gruber <[email protected]>
Is this a duplicate?
Type of Bug
Compile-time Error
Component
Thrust
Describe the bug
It used to be possible, at least through CCCL 2.3.0, to use the Thrust OpenMP and CUDA back ends in the same compilation, choosing which back end to use at each algorithm call by specifying different execution policies,
thrust::omp::par
andthrust::cuda::par
respectively. This was done by definingbefore including any Thrust headers.
This no longer works with the CCCL main branch. It results in compilation errors. See the reproduction steps below.
This Thrust feature is necessary to implement
nvc++ -stdpar=gpu,multicore
, which is a much requested feature that we are hoping to implement for the next NVC++ release.How to Reproduce
Test file:
To reproduce with the NVC++ dev compiler, which uses the latest CCCL main branch.
It can also be reproduced with NVCC (since many don't have easy access to the NVC++ dev compiler). The paths here are in the NVHPC environment, but it should be easy enough to change the paths to work in the CCCL dev environment.
Expected behavior
Everything should just work when using Thrust after:
Reproduction link
No response
Operating System
No response
nvidia-smi output
No response
NVCC version
No response
The text was updated successfully, but these errors were encountered: