-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Add +cuda modifier to nvhpc package #29155
Conversation
How does this get around the limitation that a virtual package cannot exist with the same name as a real package? |
@samcmill Probably I just haven't tested it rigorously enough? I only tried concretizing the spec in #19365 (comment) , but I can test installation shortly with the same spec ( Edit: here are the test results, looks like the |
Just found out that the CUDA installation in NVHPC is organized slightly differently in the |
After some testing and debugging with @samcmill over MS Teams, we found out that since now Also, NVHPC now provides a CMake config starting from version 22.1 in |
@fspiga I'm in the process of switching the download links to the single-CUDA versions. Do you know where I can access the SHA256 checksums? |
Doesn't NVHPC provide at least three different CUDA versions per release? |
@ax3l That is correct. However we currently are in discussion for stripping |
Sorry I did not reply early, somehow I do not get email notifications anymore. I do compute myself the SHA256 checksums after verify locally all three packages. |
I think you could drop the provides('cuda@10.2.?,11.0.?,11.6.?', when='@22.3') the patch version number is found in |
@haampie Interesting, if it is a JSON or text file, might as well define a Python function to extract the needed info. Gimme several days to design and implement this. |
Btw, the file looks like this for {
"cuda" : {
"name" : "CUDA SDK",
"version" : "11.6.20220110"
},
"cuda_cccl" : {
"name" : "CUDA C++ Core Compute Libraries",
"version" : "11.6.55"
},
"cuda_cudart" : {
"name" : "CUDA Runtime (cudart)",
"version" : "11.6.55"
},
"cuda_cuobjdump" : {
"name" : "cuobjdump",
"version" : "11.6.55"
},
"cuda_cupti" : {
"name" : "CUPTI",
"version" : "11.6.55"
},
"cuda_cuxxfilt" : {
"name" : "CUDA cu++ filt",
"version" : "11.6.55"
},
"cuda_demo_suite" : {
"name" : "CUDA Demo Suite",
"version" : "11.6.55"
},
"cuda_gdb" : {
"name" : "CUDA GDB",
"version" : "11.6.55"
},
"cuda_memcheck" : {
"name" : "CUDA Memcheck",
"version" : "11.6.55"
},
"cuda_nsight" : {
"name" : "Nsight Eclipse Plugins",
"version" : "11.6.55"
},
"cuda_nvcc" : {
"name" : "CUDA NVCC",
"version" : "11.6.55"
},
"cuda_nvdisasm" : {
"name" : "CUDA nvdisasm",
"version" : "11.6.55"
},
"cuda_nvml_dev" : {
"name" : "CUDA NVML Headers",
"version" : "11.6.55"
},
"cuda_nvprof" : {
"name" : "CUDA nvprof",
"version" : "11.6.55"
},
"cuda_nvprune" : {
"name" : "CUDA nvprune",
"version" : "11.6.55"
},
"cuda_nvrtc" : {
"name" : "CUDA NVRTC",
"version" : "11.6.55"
},
"cuda_nvtx" : {
"name" : "CUDA NVTX",
"version" : "11.6.55"
},
"cuda_nvvp" : {
"name" : "CUDA NVVP",
"version" : "11.6.58"
},
"cuda_samples" : {
"name" : "CUDA Samples",
"version" : "11.6.101"
},
"cuda_sanitizer_api" : {
"name" : "CUDA Compute Sanitizer API",
"version" : "11.6.55"
},
"libcublas" : {
"name" : "CUDA cuBLAS",
"version" : "11.8.1.74"
},
"libcufft" : {
"name" : "CUDA cuFFT",
"version" : "10.7.0.55"
},
"libcurand" : {
"name" : "CUDA cuRAND",
"version" : "10.2.9.55"
},
"libcusolver" : {
"name" : "CUDA cuSOLVER",
"version" : "11.3.2.55"
},
"libcusparse" : {
"name" : "CUDA cuSPARSE",
"version" : "11.7.1.55"
},
"libnpp" : {
"name" : "CUDA NPP",
"version" : "11.6.0.55"
},
"libnvjpeg" : {
"name" : "CUDA nvJPEG",
"version" : "11.6.0.55"
},
"nsight_compute" : {
"name" : "Nsight Compute",
"version" : "2022.1.0.12"
},
"nsight_systems" : {
"name" : "Nsight Systems",
"version" : "2021.5.2.53"
},
"nvidia_driver" : {
"name" : "NVIDIA Linux Driver",
"version" : "510.39.01"
}
} I wonder which field is the "canonical" CUDA version that Spack detects. |
I fear none of them. Just from the names I would have thought that the first one (
So according to this one can map |
I just downloaded all CUDA 10 and 11 releases, and all nvhpc releases, and then checksum'd all version.{json,txt} files. It's already in the #29782 PR which combines the multiple open PRs to make cuda a virtual package.
|
Closed in favor of #29782 |
Following up on the discussion during the Spack conference call to enable the CUDA version that is bundled with NVIDIA HPC SDK, here's what I've come up with. Would be happy if someone from NVIDIA can check that it serves the intended purpose, and suggest changes/additions to it.