CUDA: Update set of architectures supported by CUDA 12
For Modules/CUDA/architectures.cmake
:
-
21
is not inCMAKE_CUDA_ARCHITECTURES_ALL_MAJOR
so there is no need to remove. - Remove
35
and37
for CUDA 12.
Changes to `Modules/FindCUDA/select_compute_arch.cmake` are reverted and may be in another PR.
For Modules/FindCUDA/select_compute_arch.cmake
:
- IIUC, in CMAKE,
CUDA_COMMON_GPU_ARCHITECTURES
= GeForce+Quadro+Tesla, andCUDA_ALL_GPU_ARCHITECTURES
=CUDA_COMMON_GPU_ARCHITECTURES
+ Tegra, so 5.2 (not 5.3) should be in "common". - The inclusion of SM50 on the list to deprecate was a mistake and has been fixed in CUDA 11.6. So I revert removing it from "common".
- Add 8.7 to "all" for CUDA >= 11.4.
- Add Ada(8.9) and Hopper(9.0) to both "common" and "all" for CUDA >= 11.8.
- Remove Kepler/Kepler+Tegra/Kepler+Tesla from "known" and 3.5/3.7 from "all" for CUDA >= 12.0.
- To be more accurate, use
CUDA_ALL_GPU_ARCHITECTURES
, instead ofCUDA_KNOWN_GPU_ARCHITECTURES
, for the "All" option. - Remove
CUDA_KNOWN_GPU_ARCHITECTURES
.- It's more close to "common", for example, 6.2, 7.2, and 8.7 are missing in it.
- It's hard to parse "Ampere" to concrete gencodes (sm80/sm86/sm87) except by adding something like
Ampere+RTX
andAmpere+Tegra
. - Passing names to
CUDA_SELECT_NVCC_ARCH_FLAGS()
manually is still allowed.
Topic-rename: cuda-12
Edited by Brad King