[SYCL][UR][CUDA] Use FindCUDAToolkit CMake module instead of FindCUDA#17315
Merged
kbenzie merged 3 commits intointel:syclfrom Mar 12, 2025
Merged
[SYCL][UR][CUDA] Use FindCUDAToolkit CMake module instead of FindCUDA#17315kbenzie merged 3 commits intointel:syclfrom
kbenzie merged 3 commits intointel:syclfrom
Conversation
find_package(CUDA) is deprecated since CMake 3.10 and the functionality we need is provided by find_package(CUDAToolkit) since CMake 3.17. Thanks to SYCL configuration now requiring CMake >3.20 (intel#13664), we can rely on find_package(CUDAToolkit) to work in all setups. Remove the deprecated calls and replace them with the recommended one. Clean up all extra CMake code dealing with finding CUPTI as that is also no longer needed (partially thanks to intel#17272). Replace all variables from the old module with corresponding ones from the new one. This solves multiple issues with finding libraries, notably including the failure to find libcuda.so automatically on systems where the CUDA driver is not installed and only the toolkit is available. This is a reasonable use case for building DPC++ on a build machine without a GPU and distributing for use on GPU machines.
Contributor
|
This is great. I've run into all these problems at some point but didn't know
there was a reasonable fix.
|
kbenzie
approved these changes
Mar 5, 2025
omarahmed1111
approved these changes
Mar 5, 2025
ldrumm
approved these changes
Mar 6, 2025
Seanst98
approved these changes
Mar 6, 2025
Contributor
Author
|
Thanks for all the reviews! Could someone please restart the cancelled CI jobs? There seems to have been an issue with the runners on the weekend. I don't have enough permissions to restart jobs. |
Contributor
Author
|
Unrelated AMD e2e test failures tracked in #10460 @intel/llvm-gatekeepers this is ready to merge, thank you in advance |
rafbiels
added a commit
to rafbiels/llvm
that referenced
this pull request
Mar 13, 2025
Fix-up for intel#17315 which used incorrect CMake variables for CUPTI: * CUDAToolkit_cupti_INCLUDE_DIR should be CUDAToolkit_CUPTI_INCLUDE_DIR * CUDAToolkit_cupti_LIBRARY should be CUDA_cupti_LIBRARY In addition, we discovered that FindCUDAToolkit: * does not set the INCLUDE variable until CMake 3.24 * fails to find the library in CUDA toolkits installed from runfile (https://gitlab.kitware.com/cmake/cmake/-/issues/26770) Fix the variable names and retry the searches with extra paths if the header/library are not found. The REQUIRED option is enabled in the retry, which ensures that if CUPTI is not available in the system then the build fails at CMake configuration instead of later during compilation or linking.
sommerlukas
pushed a commit
that referenced
this pull request
Mar 17, 2025
Fix-up for #17315 which used incorrect CMake variables for CUPTI: * `CUDAToolkit_cupti_INCLUDE_DIR` should be `CUDAToolkit_CUPTI_INCLUDE_DIR` * `CUDAToolkit_cupti_LIBRARY` should be `CUDA_cupti_LIBRARY` In addition, we discovered that FindCUDAToolkit: * does not set the INCLUDE_DIR variable until CMake 3.24 (while we support back to 3.20) * fails to find the library in CUDA toolkits installed from runfile (https://gitlab.kitware.com/cmake/cmake/-/issues/26770) Fix the variable names and retry the searches with extra paths if the header/library are not found. The REQUIRED option is enabled in the retry, which ensures that if CUPTI is not found then the build fails at CMake configuration instead of later during compilation or linking.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
find_package(CUDA)is deprecated since CMake 3.10 and the functionality we need is provided byfind_package(CUDAToolkit)since CMake 3.17.Thanks to SYCL configuration now requiring CMake >3.20 (#13664), we can rely on
find_package(CUDAToolkit)working in all setups.Changes:
This solves multiple issues with finding libraries, notably including the failure to find libcuda.so automatically on systems where the CUDA driver is not installed and only the toolkit is available. This is a reasonable use case for building DPC++ on a build machine without a GPU and distributing for use on GPU machines (easybuilders/easybuild-easyconfigs#22418 (comment)).