-
Notifications
You must be signed in to change notification settings - Fork 757
CUDA 9.2 does not support -dc
#924
Comments
This repro also works fine with cuda 9.0
|
Seems to be specific to |
Ah, I found the problem. Our normal trick is to do the following:
In CUDA 9.2, |
This is fixed now. |
Confirmed, this is the source of the GooFit issue. A fix will be in the "next next" CUDA release, but we'll have a fix out on GitHub before then. This is NVBug 2096679 and 2315990. |
And I've also filed a bug to increase our test coverage to include |
Great, thanks! And more test coverage is always good, especially when it covers the way we use Thrust. :) |
So I ran into this problem as we move over to separable compilation and what are our options if we are required to use CUDA 9.2/10.X? |
@robertmaynard In GooFit, both using CMake's CUDA as a language and FindCUDA1, I make sure this github submodule is higher in the path than the CUDA thrust, then it works fine. The built-in Thrust does not work with CUDA 9+ and separable compilation. Footnotes
|
My concern is that as a library I can't force consumers ( or consumers other dependencies ) to use my version of thrust and we will either introduce ODR violations, or make these compiler errors header order dependent. The more I think about this the more I am wondering if this is fixable by using a custom thrust execution policy and an explicit override for reduce/transform_reduce. |
- Fix dispatch for the CUDA backend's `reduce` to use two functions (one with the pragma for disabling exec checks, one with THRUST_RUNTIME_FUNCTION) instead of one. This fixes a regression with device compilation that started in CUDA 9.2 - Fully namespace qualify uses of things in the `thrust::detail` namespace to avoid ambiguities. Review: Internal GitLab #888 Signed-off-by: Jared Hoberock <[email protected]> Bug 2096679 Bug 2351990 GitHub #924 git-commit 412c623f939fd676ee619c93f2ca478a6046c611 git-author Bryce Adelstein Lelbach aka wash <[email protected]> VDVS: http://ausdvs.nvidia.com/Build_Results?virtualId=1000216448&which_page=current_build Jobs: 2096679-2006 [git-p4: depot-paths = "//sw/gpgpu/thrust/": change = 24706499]
CUDA 9.2's version of thrust does device side kernel launches, which breaks the following MWE:
Now if you try to compile and link using relocatable device code
-dc
:Running the exact same thing in CUDA 8 (or CUDA 9.0) works:
I believe this is the reason behind GooFit's failure to run on CUDA 9+, since the entire framework is built on these zipped iterators.
The text was updated successfully, but these errors were encountered: