From 4f2178c4a8585f90d7c3f5546aebf100dfe675ff Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 21 Apr 2025 17:13:39 -0400 Subject: ci: add tags to tie CUDA jobs to runners with hardware supporting them CUDA 12.8 deprecated support for compute architectures below 75. Presumably support will be removed from a future version of the CUDA Toolkit. Jobs using such a future version of CUDA will not be able to compile support for CUDA architectures below 75, so they will not be able to run on older hardware. In preparation, our CI runners now have `cuda-arch-#` tags for the architectures they support. Jobs may then be tagged with the minimum architecture on which they can run. Tag each job with the highest of the following requirements: * Most of CMake's tests use the CUDA compiler's default architecture, which is based on the version the CUDA toolkit. * For Clang we currently select architecture 52 if supported by the CUDA toolkit, even if that toolkit's NVCC defaults to an older arch. * The `CudaOnly.Architecture` test uses a specific architecture configured by each CI job. --- .gitlab-ci.yml | 24 ++++++++++++------------ .gitlab/os-linux.yml | 15 +++++++++++---- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3fc137e..dce1ad1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -304,7 +304,7 @@ t:nvhpc22.11-ninja: extends: - .nvhpc_ninja - .cmake_test_linux_release - - .linux_x86_64_v3_tags_cuda + - .linux_x86_64_v3_tags_cuda_arch_52 - .run_dependent - .needs_centos7_x86_64 variables: @@ -314,7 +314,7 @@ t:cuda9.2-nvidia: extends: - .cuda9.2_nvidia - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_30 - .run_dependent - .needs_centos7_x86_64 variables: @@ -324,7 +324,7 @@ t:cuda10.2-nvidia: extends: - .cuda10.2_nvidia - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_52 - .cmake_junit_artifacts - .run_dependent - .needs_centos7_x86_64 @@ -335,7 +335,7 @@ t:cuda10.2-clang: extends: - .cuda10.2_clang - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_52 - .run_dependent - .needs_centos7_x86_64 variables: @@ -345,7 +345,7 @@ t:cuda11.6-nvidia: extends: - .cuda11.6_nvidia - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_52 - .cmake_junit_artifacts - .run_dependent - .needs_centos7_x86_64 @@ -356,7 +356,7 @@ t:cuda11.6-clang: extends: - .cuda11.6_clang - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_52 - .run_dependent - .needs_centos7_x86_64 variables: @@ -366,7 +366,7 @@ t:cuda11.8-minimal-ninja: extends: - .cuda11.8_minimal_nvidia - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_52 - .run_dependent - .needs_centos7_x86_64 variables: @@ -376,7 +376,7 @@ t:cuda11.8-minimal-splayed-ninja: extends: - .cuda11.8_splayed_nvidia - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_52 - .run_dependent - .needs_centos7_x86_64 variables: @@ -386,7 +386,7 @@ t:cuda12.2-nvidia: extends: - .cuda12.2_nvidia - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_52 - .cmake_junit_artifacts - .run_dependent - .needs_centos7_x86_64 @@ -395,7 +395,7 @@ t:cuda12.2-nvidia-clang: extends: - .cuda12.2_nvidia_clang - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_52 - .cmake_junit_artifacts - .run_dependent - .needs_centos7_x86_64 @@ -406,7 +406,7 @@ t:cuda12.2-clang: extends: - .cuda12.2_clang - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_52 - .run_dependent - .needs_centos7_x86_64 variables: @@ -416,7 +416,7 @@ t:hip5.5-nvidia: extends: - .hip5.5_nvidia - .cmake_test_linux_release - - .linux_x86_64_tags_cuda + - .linux_x86_64_tags_cuda_arch_52 - .run_dependent - .needs_centos7_x86_64 variables: diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index 6b8c2d0..e9d8ed9 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -491,17 +491,24 @@ - linux-x86_64 - x11 -.linux_x86_64_tags_cuda: +.linux_x86_64_tags_cuda_arch_30: tags: - cmake - - cuda-rt + - cuda-arch-30 - docker - linux-x86_64 -.linux_x86_64_v3_tags_cuda: +.linux_x86_64_tags_cuda_arch_52: tags: - cmake - - cuda-rt + - cuda-arch-52 + - docker + - linux-x86_64 + +.linux_x86_64_v3_tags_cuda_arch_52: + tags: + - cmake + - cuda-arch-52 - docker - linux-x86_64-v3 -- cgit v0.12