summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CUDA_architectures
Commit message (Collapse)AuthorAgeFilesLines
* Modules: Use new keyword-dispatched try_compile signatureMatthew Woehlke2022-09-141-1/+1
| | | | | | | | | | | Modify most of the modules that ship with CMake to use the new try_compile / try_run signatures added by commit aa9220d3a0 (try_compile: Add keyword-dispatched signature, 2022-09-02). This improves debugging by each invocation using its own directory so that the results of multiple invocations can be retained. This does not cover any invocations which provide an entire project, as that flavor of try_compile has not yet been updated.
* CUDA: native/all/all-major generates minimal set of ptx codeRobert Maynard2022-05-034-12/+12
| | | | Fixes #23459
* CUDA: Restore CMAKE_CUDA_ARCHITECTURES support for -real and -virtual suffixesBrad King2022-04-295-3/+22
| | | | | | Fix the validation regex added by commit c267ed205a (CUDA: Defer architecture testing to the compiler testing step, 2022-04-25) to allow these values.
* CUDA: Defer architecture testing to the compiler testing stepBrad King2022-04-252-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Verifying the architectures during compiler identification is redundant, and requires a lot more up-front information than we should need. It also causes unsupported architectures to break the compiler id and version detection, so the resulting output from CMake does not report the compiler version, which is useful information to know why the specified architectures are not supported. The "detecting compiler ABI info" and "check for working compiler" steps already pass `CMAKE_CUDA_ARCHITECTURES` into their test projects. Therefore we can just drop the earlier architecture testing. Bad architectures will be reported as a not-working compiler, and the output will include the compiler's error message. This reverts the approach from: * commit 19cc5bc296 (CUDA: Throw error if user-specified architectures don't work, 2020-05-26, v3.18.0-rc1~79^2) * commit 650c1029a0 (CUDA: Detect non-working user-specified architectures on NVCC, 2020-05-28, v3.18.0-rc1~51^2) * commit 01428c5560 (CUDA: Fail fast if CMAKE_CUDA_ARCHITECTURES doesn't work during detection, 2020-08-29, v3.19.0-rc1~241^2). Their goal was in part to avoid waiting until the test for working compiler to detect unsupported architectures. However, experience has shown that failing earlier is more trouble than it's worth. Fixes: #23161 Issue: #20756
* CUDA: Add support for CUDA_ARCHITECTURES=nativeBrad King2022-03-107-0/+15
| | | | | | | | | | | CUDA 11.6 added the `nvcc -arch=native` flag to automatically compile for the host GPUs' architectures. Add support for specifying this special `native` value in `CMAKE_CUDA_ARCHITECTURES` and `CUDA_ARCHITECTURES`. During the compiler ABI detection step, detect the native architectures so we can pass them explicitly when using Clang or older versions of nvcc. Fixes: #22375
* Tests: Fix testing CMAKE_CUDA_ARCHITECTURES=OFF with ClangBrad King2022-03-102-0/+18
| | | | | | Clang does not automatically choose an architecture supported by the SDK. The `OFF` value is meant for users to provide their own architecture flags, so provide one as part of the test.
* CUDA: Restore support for CMAKE_CUDA_ARCHITECTURES=OFFRobert Maynard2022-03-093-0/+6
| | | | Fixes: #23309
* Tests: Add cases for CMAKE_CUDA_ARCHITECTURES={all,all-major}Brad King2022-03-025-0/+18
| | | | | | | The `CudaOnly.All` test only sets these in project code after CUDA is enabled. Add another case to test the values during compiler detection. Issue: #23161
* CUDA: Error on empty/invalid CMAKE_CUDA_ARCHITECTURES set by userRaul Tambre2022-01-278-0/+23
If empty we otherwise treat it the same as unset in most places, but still end up failing eventually with a confusing "Failed to find a working CUDA architecture". This also detects some other basic invalid ones (e.g. "al").