-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
CUDA Compiler Fixes #8355
CUDA Compiler Fixes #8355
Conversation
CI failure is real - somewhere the DT_RPATH |
01cf8af
to
6f3a56d
Compare
@andrzejc I have solved the CUDA CI failure. If you have Linux, this should definitely work. If you have Windows, it would be extremely valuable if you tried this out to ensure it does not break Windows CUDA. |
This pull request introduces 3 alerts when merging 6f3a56d into 1104575 - view on LGTM.com new alerts:
|
424b6ec
to
064a270
Compare
@obilaniu I just finished testing with Linux box, seems to work perfectly, thank you! I'll check on Windows tomorrow. |
@andrzejc With the rebase of an hour ago or yesterday? |
with the rebase |
@obilaniu so I was curious about Windows and played with building with MSVC a moment ago and it also seems to work without any issues. I was able to compile & link my project with MSVC2017/CUDA 10.0 configuration and all the tests are passing just like they did with the generator approach. Awesome! |
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.
I've got a few style nits, but nothing serious.
Strangely, the minimum version of CUDA Toolkit 11.2.0 has also been updated - downwards. We pick up this change as well.
Suggested by Dylan Baker.
This is an extensive rewrite and hopefully hardening of the CUDA NVCC compiler object and its flag handling.
The class method
_to_host_flags()
is entirely rewritten and gains knowledge of the entirenvcc
argument set in the official documentation. The method now translates an array of mixed GCC/NVCC or MVSC/NVCC flags into a legal argument set fornvcc
, exploiting-Xcompiler
and-Xlinker
to pass down foreign arguments into the compiler. It does the best it can to take into account and paper over the peculiarities of NVCC argument parsing.Builds successfully the entire
test cases/cuda
testsuite on my machine (with CUDA Toolkit 10.2).Related to #8337. @andrzejc, would you like to test out this branch?