CI: Run the Linux CUDA jobs on the L4 runner as well as the SaaS T4s libeigen/eigen!2955 Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
diff --git a/ci/build.linux.gitlab-ci.yml b/ci/build.linux.gitlab-ci.yml index e275dfc..3c8ea48 100644 --- a/ci/build.linux.gitlab-ci.yml +++ b/ci/build.linux.gitlab-ci.yml
@@ -284,10 +284,10 @@ variables: # Additional flags passed to the cuda compiler. EIGEN_CI_CUDA_CXX_FLAGS: "" - # Compute architectures present in the GitLab CI runners. - # SaaS GPU runners have Tesla T4 (sm_75); the paired test jobs have to - # stay on those runners, see .test:linux:cuda. - EIGEN_CI_CUDA_COMPUTE_ARCH: "75" + # Default architecture coverage spans the GPUs used by CI: GitLab's SaaS + # runners are Tesla T4 (sm_75), and eigen-gpu-testing-001.gcloud is an L4 + # (sm_89). Jobs tied to one runner pool may override this set below. + EIGEN_CI_CUDA_COMPUTE_ARCH: "75;89" EIGEN_CI_BUILD_TARGET: buildtests_gpu EIGEN_CI_TEST_CUDA_CLANG: "off" EIGEN_CI_TEST_CUDA_NVC: "off" @@ -302,14 +302,15 @@ # Build on regular linux to limit GPU cost. - saas-linux-2xlarge-amd64 -# ---- CUDA 11.5 + oldest supported compilers --------------------------------- -# clang-14 fully supports up to CUDA 11.5. CUDA 11.5 images are Ubuntu 20.04 -# only, which lacks clang-14 and cmake >= 3.17. EIGEN_CI_BEFORE_SCRIPT adds -# the LLVM apt repo (for clang-14) and installs cmake via pip. +# ---- CUDA 11.8 + oldest supported compilers --------------------------------- +# 11.8 is the oldest toolkit that knows sm_89, so gcc can cover the default +# T4/L4 architecture set. CUDA 11.x images are Ubuntu 20.04 only, which lacks +# clang-14 and cmake >= 3.17; the before_scripts add the Kitware and LLVM apt +# repos. -build:linux:cuda-11.5:gcc-10: +build:linux:cuda-11.8:gcc-10: extends: .build:linux:cuda - image: nvidia/cuda:11.5.2-devel-ubuntu20.04 + image: nvidia/cuda:11.8.0-devel-ubuntu20.04 before_script: # Ubuntu 20.04 has cmake 3.16; Eigen requires 3.17+. Pull a newer # cmake from Kitware's official apt repo for focal. @@ -326,8 +327,8 @@ EIGEN_CI_C_COMPILER: gcc-10 EIGEN_CI_CXX_COMPILER: g++-10 -build:linux:cuda-11.5:clang-14: - extends: build:linux:cuda-11.5:gcc-10 +build:linux:cuda-11.8:clang-14: + extends: build:linux:cuda-11.8:gcc-10 before_script: # Ubuntu 20.04 lacks clang-14 and has cmake 3.16. Add both the LLVM # apt repo (for clang-14) and Kitware's apt repo (for cmake >= 3.17) @@ -350,10 +351,15 @@ EIGEN_CI_C_COMPILER: clang-14 EIGEN_CI_CXX_COMPILER: clang++-14 EIGEN_CI_TEST_CUDA_CLANG: "on" + # clang-14 predates sm_89 (LLVM 16 added it), so this pair targets sm_75. + # The 11.8 toolkit is newer than clang-14 knows; it treats it as 11.5, + # which is what the suppressed warning says. + EIGEN_CI_CUDA_COMPUTE_ARCH: "75" + EIGEN_CI_CUDA_CXX_FLAGS: "-Wno-unknown-cuda-version" -# ---- New: latest CUDA + newest compilers, sm_89;sm_90 ---------------------- -# The CUDA 11.5 jobs cover sm_75 on T4. These jobs run natively on the L4 at -# sm_89 and retain compile coverage for sm_90. +# ---- Latest CUDA + newest compilers, sm_89;sm_90 --------------------------- +# These jobs run natively on the L4 at sm_89 and retain compile-only coverage +# for sm_90. # GCC-13, CUDA-12.6 (nvcc) # CUDA 12.6 nvcc only supports gcc up to 13.
diff --git a/ci/test.linux.gitlab-ci.yml b/ci/test.linux.gitlab-ci.yml index ffbc88f..b93edc4 100644 --- a/ci/test.linux.gitlab-ci.yml +++ b/ci/test.linux.gitlab-ci.yml
@@ -274,16 +274,13 @@ EIGEN_CI_TEST_CACHE: "off" cache: [] rules: !reference [.rules:libeigen:gpu, rules] - # Name the GPU and driver the job landed on before anything else. The - # binaries are built for one architecture (see the tag note below), and the - # log is the only place that says which runner pool picked the job up. + # Name the GPU and driver the job landed on before anything else; the log is + # the record of which tagged runner handled it. before_script: - nvidia-smi - . ci/scripts/common.linux.before_script.sh - # The CUDA 11.5 jobs inherit this GitLab SaaS T4 (sm_75) tag. Keep it off - # self-hosted runners: their old cuFFT library aborts in cufftPlan1d on the - # L4, and allow_failure hides the misplaced job. Newer jobs override the tag - # through .test:linux:cuda:l4 below. + # The oldest CUDA jobs inherit this GitLab SaaS T4 (sm_75) tag. Newer jobs + # override it through .test:linux:cuda:l4 below. tags: - saas-linux-medium-amd64-gpu-standard @@ -292,23 +289,23 @@ tags: - eigen-linux-cuda-l4 -# ---- CUDA 11.5 + oldest supported compilers --------------------------------- +# ---- CUDA 11.8 + oldest supported compilers --------------------------------- -# GCC-10, CUDA-11.5 -test:linux:cuda-11.5:gcc-10: +# GCC-10, CUDA-11.8 +test:linux:cuda-11.8:gcc-10: extends: .test:linux:cuda - image: nvidia/cuda:11.5.2-devel-ubuntu20.04 - needs: [ build:linux:cuda-11.5:gcc-10 ] + image: nvidia/cuda:11.8.0-devel-ubuntu20.04 + needs: [ build:linux:cuda-11.8:gcc-10 ] variables: EIGEN_CI_INSTALL: gcc-10 g++-10 EIGEN_CI_C_COMPILER: gcc-10 EIGEN_CI_CXX_COMPILER: g++-10 -# Clang-14, CUDA-11.5 -test:linux:cuda-11.5:clang-14: +# Clang-14, CUDA-11.8 +test:linux:cuda-11.8:clang-14: extends: .test:linux:cuda - image: nvidia/cuda:11.5.2-devel-ubuntu20.04 - needs: [ build:linux:cuda-11.5:clang-14 ] + image: nvidia/cuda:11.8.0-devel-ubuntu20.04 + needs: [ build:linux:cuda-11.8:clang-14 ] before_script: # This override replaces the template's before_script, so repeat its # first step. @@ -328,7 +325,7 @@ EIGEN_CI_CXX_COMPILER: clang++-14 EIGEN_CI_C_COMPILER: clang-14 -# ---- New: latest CUDA ------------------------------------------------------- +# ---- Latest CUDA ------------------------------------------------------------ # GCC-13, CUDA-12.6 test:linux:cuda-12.6:gcc-13: