From 72e76365408092e9f5ffdce56f2e866489b9c910 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 | 28 ++++++++++++++-------------- .gitlab/os-linux.yml | 15 +++++++++++---- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ebe939d..18a4669 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -310,7 +310,7 @@ t:nvhpc24.9-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: @@ -320,7 +320,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: @@ -330,7 +330,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 @@ -341,7 +341,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: @@ -351,7 +351,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 @@ -362,7 +362,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: @@ -372,7 +372,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: @@ -382,7 +382,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: @@ -392,7 +392,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 @@ -403,7 +403,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: @@ -413,7 +413,7 @@ t:cuda12.6-nvidia: extends: - .cuda12.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 @@ -422,7 +422,7 @@ t:cuda12.6-nvidia-clang: extends: - .cuda12.6_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 @@ -433,7 +433,7 @@ t:cuda12.6-clang: extends: - .cuda12.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: @@ -443,7 +443,7 @@ t:hip6.3-nvidia: extends: - .hip6.3_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 534bdb8..71603e1 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -553,17 +553,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