1616 build-ctk-ver :
1717 type : string
1818 required : true
19- local-ctk :
20- type : string
21- required : true
2219 matrix_filter :
2320 type : string
2421 default : " ."
@@ -43,22 +40,31 @@ jobs:
4340 id : compute-matrix
4441 run : |
4542 set -eo pipefail
46- # Please keep the matrices sorted in ascending order by the following:
47- #
48- # [PY_VER, CUDA_VER, LINUX_VER, GPU, DRIVER]
49- #
43+
44+ # Set a default GPU based upon architecture.
5045 gpu="l4"
5146 if [[ "${ARCH}" == "arm64" ]]; then
5247 gpu="a100"
5348 fi
49+ # Add a special entry for the H100 runner on amd64.
50+ special_runner=""
51+ if [[ "${ARCH}" == "amd64" ]]; then
52+ special_runner="- { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.8.0', LOCAL_CTK: '1', GPU: 'H100', DRIVER: 'latest' }"
53+ fi
54+
55+ # Please keep the matrices sorted in ascending order by the following:
56+ #
57+ # [PY_VER, CUDA_VER, LOCAL_CTK, GPU, DRIVER]
58+ #
5459 export MATRICES="
5560 pull-request:
56- - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER: 'rockylinux8', GPU: ${gpu}, DRIVER: 'earliest' }
57- - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '12.0.1', LINUX_VER: 'ubuntu24.04', GPU: ${gpu}, DRIVER: 'latest' }
58- - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER: 'ubuntu22.04', GPU: ${gpu}, DRIVER: 'latest' }
61+ - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '11.8.0', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'earliest' }
62+ - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '12.0.1', LOCAL_CTK: '1', GPU: ${gpu}, DRIVER: 'latest' }
63+ - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.8.0', LOCAL_CTK: '0', GPU: ${gpu}, DRIVER: 'latest' }
64+ ${special_runner}
5965 nightly:
60- - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '11.8.0', LINUX_VER : 'rockylinux8 ', GPU: ${gpu}, DRIVER: 'earliest' }
61- - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.8.0', LINUX_VER : 'ubuntu22.04 ', GPU: ${gpu}, DRIVER: 'latest' }
66+ - { ARCH: ${ARCH}, PY_VER: '3.9', CUDA_VER: '11.8.0', LOCAL_CTK : '1 ', GPU: ${gpu}, DRIVER: 'earliest' }
67+ - { ARCH: ${ARCH}, PY_VER: '3.13', CUDA_VER: '12.8.0', LOCAL_CTK : '0 ', GPU: ${gpu}, DRIVER: 'latest' }
6268 "
6369
6470 # Use the nightly matrix for branch tests
7884 echo "MATRIX=${MATRIX}" | tee --append "${GITHUB_OUTPUT}"
7985
8086 test :
87+ name : py${{ matrix.PY_VER }}, ${{ matrix.CUDA_VER }}, ${{ (matrix.LOCAL_CTK == '1' && 'local') || 'wheels' }}, GPU ${{ matrix.GPU }}
8188 needs : compute-matrix
8289 strategy :
8390 fail-fast : false
@@ -240,7 +247,7 @@ jobs:
240247 AGENT_TOOLSDIRECTORY : " /opt/hostedtoolcache"
241248
242249 - name : Set up mini CTK
243- if : ${{ inputs.local-ctk == '1' }}
250+ if : ${{ matrix.LOCAL_CTK == '1' }}
244251 uses : ./.github/actions/fetch_ctk
245252 continue-on-error : false
246253 with :
@@ -275,7 +282,7 @@ jobs:
275282 if : ${{ env.SKIP_CUDA_BINDINGS_TEST == '0' }}
276283 run : |
277284 pushd "${CUDA_BINDINGS_ARTIFACTS_DIR}"
278- if [[ "${{ inputs.local-ctk }}" == 1 ]]; then
285+ if [[ "${{ matrix.LOCAL_CTK }}" == 1 ]]; then
279286 ls $CUDA_PATH
280287 pip install *.whl
281288 else
@@ -289,7 +296,7 @@ jobs:
289296
290297 # It is a bit convoluted to run the Cython tests against CTK wheels,
291298 # so let's just skip them.
292- if [[ "${{ inputs.local-ctk }}" == 1 ]]; then
299+ if [[ "${{ matrix.LOCAL_CTK }}" == 1 ]]; then
293300 if [[ "${{ inputs.host-platform }}" == linux* ]]; then
294301 bash tests/cython/build_tests.sh
295302 elif [[ "${{ inputs.host-platform }}" == win* ]]; then
@@ -306,7 +313,7 @@ jobs:
306313 # If mismatch: cuda.bindings is installed from the backport branch.
307314 if [[ "${SKIP_CUDA_BINDINGS_TEST}" == 1 ]]; then
308315 pushd "${CUDA_BINDINGS_ARTIFACTS_DIR}"
309- if [[ "${{ inputs.local-ctk }}" == 1 ]]; then
316+ if [[ "${{ matrix.LOCAL_CTK }}" == 1 ]]; then
310317 pip install *.whl
311318 else
312319 pip install $(ls *.whl)[all]
@@ -326,7 +333,7 @@ jobs:
326333 # so let's just skip them. Also, currently our CI always installs the
327334 # latest bindings (from either major version). This is not compatible
328335 # with the test requirements.
329- if [[ "${{ inputs.local-ctk }}" == 1 && "${SKIP_CUDA_CORE_CYTHON_TEST}" == 0 ]]; then
336+ if [[ "${{ matrix.LOCAL_CTK }}" == 1 && "${SKIP_CUDA_CORE_CYTHON_TEST}" == 0 ]]; then
330337 pip install cython setuptools # setuptools needed starting PY312
331338 if [[ "${{ inputs.host-platform }}" == linux* ]]; then
332339 bash tests/cython/build_tests.sh
@@ -340,7 +347,7 @@ jobs:
340347
341348 - name : Ensure cuda-python installable
342349 run : |
343- if [[ "${{ inputs.local-ctk }}" == 1 ]]; then
350+ if [[ "${{ matrix.LOCAL_CTK }}" == 1 ]]; then
344351 pip install cuda_python*.whl
345352 else
346353 pip install $(ls cuda_python*.whl)[all]
0 commit comments