From f76455353ff0a751e8ba96d01138863f9b951933 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Tue, 29 Oct 2024 15:24:37 +0000 Subject: [PATCH 1/3] Update matrix with cuda-ext configurations. CCCL needs a couple of images with additional CTK libraries installed. This adds images with cuBLAS, cuTensor, and cuSOLVER installed. --- .github/actions/devcontainer-json/action.sh | 4 ++-- matrix.yml | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/actions/devcontainer-json/action.sh b/.github/actions/devcontainer-json/action.sh index e64f0540..b22f71b8 100755 --- a/.github/actions/devcontainer-json/action.sh +++ b/.github/actions/devcontainer-json/action.sh @@ -9,11 +9,11 @@ container_env="${3:-"null"}"; VERSION="$(git describe --abbrev=0 --tags | sed 's/[a-zA-Z]//g' | cut -d '.' -f -2)"; tag="$(node -p "$(cat < !x.hide).map(({ name = '', version = '' }) => { +['cpp', ...${features}.filter((x) => !x.hide).map(({ name = '', version = '', suffix = '' }) => { if (name.includes(':')) { name = name.split('/').pop().split(':')[0]; } - return name + (version || ''); + return name + (version || '') + (suffix || ''); })].join('-') EOF )")"; diff --git a/matrix.yml b/matrix.yml index 2e513d5a..5f63f148 100644 --- a/matrix.yml +++ b/matrix.yml @@ -56,6 +56,18 @@ x-cccl-cuda-opts: &cccl_cuda_opts { installNVRTC: true, } +x-cccl-cuda-ext-opts: &cccl_cuda_ext_opts { + suffix: "ext", + installCTKLibraries: false, + installCUDARuntime: true, + installcuRAND: true, + installcuTensor: true, + installcuBLAS: true, + installcuSOLVER: true, + installNCCL: false, + installNVRTC: true, +} + include: # CCCL devcontainers @@ -103,6 +115,8 @@ include: - { features: [*python, *gcc_12, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } - { features: [*python, *gcc_13, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } - { features: [*python, *gcc_13, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } + - { features: [*python, *gcc_13, { <<: *cuda_curr_min, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } + - { features: [*python, *gcc_13, { <<: *cuda_curr_max, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } - { features: [*python, *llvm_15, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_15, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_16, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } @@ -113,6 +127,8 @@ include: - { features: [*python, *llvm_18, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_19, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_19, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } + - { features: [*python, *llvm_19, { <<: *cuda_curr_min, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } + - { features: [*python, *llvm_19, { <<: *cuda_curr_max, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *oneapi_2022, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *onapi_env } - os: "ubuntu:24.04" From 1cec59602375839fe877604299199d4deec8bb8f Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Tue, 29 Oct 2024 15:54:19 +0000 Subject: [PATCH 2/3] Update image names with suffix. --- .github/actions/image-matrix/action.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/image-matrix/action.sh b/.github/actions/image-matrix/action.sh index 26661b0f..7a8dcbed 100755 --- a/.github/actions/image-matrix/action.sh +++ b/.github/actions/image-matrix/action.sh @@ -69,7 +69,7 @@ linux_images="$(\ name: (. | map(. | select(.hide != true) - | (.name | split("/")[-1] | split(":")[0]) + (.version // "" | tostring)) + | (.name | split("/")[-1] | split(":")[0]) + (.version // "" | tostring) + (.suffix // "" | tostring)) ) | (. + [$os]) | join("-"), @@ -99,7 +99,7 @@ if `# Include all images if full_matrix is true` \ name: (. | map(. | select(.hide != true) - | (.name | split("/")[-1] | split(":")[0]) + (.version // "" | tostring)) + | (.name | split("/")[-1] | split(":")[0]) + (.version // "" | tostring) + (.suffix // "" | tostring)) ) | (. + [$os]) | join("-"), From eec8fd1b4ccc6f2ae6ddedc69edc53dc3a5ab7e0 Mon Sep 17 00:00:00 2001 From: Allison Piper Date: Tue, 29 Oct 2024 16:48:27 +0000 Subject: [PATCH 3/3] Tweaks to cuda_ext matrix. --- matrix.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/matrix.yml b/matrix.yml index 5f63f148..c3b63b7b 100644 --- a/matrix.yml +++ b/matrix.yml @@ -100,6 +100,7 @@ include: - { features: [*python, *llvm_12, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_13, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_13, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } + - { features: [*python, *llvm_14, { <<: *cuda_curr_min, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_14, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_14, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *oneapi_2022, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *onapi_env } @@ -113,9 +114,10 @@ include: - { features: [*python, *gcc_11, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } - { features: [*python, *gcc_12, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } - { features: [*python, *gcc_12, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } + - { features: [*python, *gcc_12, { <<: *cuda_curr_min, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } + - { features: [*python, *gcc_12, { <<: *cuda_curr_max, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } - { features: [*python, *gcc_13, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } - { features: [*python, *gcc_13, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } - - { features: [*python, *gcc_13, { <<: *cuda_curr_min, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } - { features: [*python, *gcc_13, { <<: *cuda_curr_max, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *gcc_env } - { features: [*python, *llvm_15, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_15, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } @@ -125,9 +127,9 @@ include: - { features: [*python, *llvm_17, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_18, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_18, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } + - { features: [*python, *llvm_18, { <<: *cuda_curr_max, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_19, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_19, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - - { features: [*python, *llvm_19, { <<: *cuda_curr_min, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *llvm_19, { <<: *cuda_curr_max, <<: *cccl_cuda_ext_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *llvm_env } - { features: [*python, *oneapi_2022, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_format_cccl, *clangd_dev, *cccl_dev], env: *onapi_env }