-
Notifications
You must be signed in to change notification settings - Fork 42
Expand file tree
/
Copy pathmatrix.yml
More file actions
207 lines (182 loc) · 16.8 KB
/
matrix.yml
File metadata and controls
207 lines (182 loc) · 16.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
x-cuda-prev-min: &cuda_prev_min { name: "cuda", version: "12.0" }
x-cuda-prev-max: &cuda_prev_max { name: "cuda", version: "12.9" }
x-cuda-curr-min: &cuda_curr_min { name: "cuda", version: "13.0" }
x-cuda-curr-max: &cuda_curr_max { name: "cuda", version: "13.2" }
x-cuda-prev-max-rapids: &cuda_prev_max_rapids { name: "cuda", version: "12.9" }
x-cuda-curr-max-rapids: &cuda_curr_max_rapids { name: "cuda", version: "13.1" }
# CUDA 12.0 support stops at gcc 12.
x-gcc-7: &gcc_7 { name: "gcc", version: "7" }
x-gcc-8: &gcc_8 { name: "gcc", version: "8" }
x-gcc-9: &gcc_9 { name: "gcc", version: "9" }
x-gcc-10: &gcc_10 { name: "gcc", version: "10" }
x-gcc-11: &gcc_11 { name: "gcc", version: "11" }
x-gcc-12: &gcc_12 { name: "gcc", version: "12" }
x-gcc-13: &gcc_13 { name: "gcc", version: "13" }
x-gcc-14: &gcc_14 { name: "gcc", version: "14" }
x-gcc-env: &gcc_env { CC: "gcc", CXX: "g++", CUDAHOSTCXX: "g++" }
x-gcc-rapids: &gcc_rapids { name: "gcc", version: "14", hide: true }
x-gcc-env-rapids: &gcc_env_rapids { CC: "gcc", CXX: "g++", CUDAHOSTCXX: "g++", PYTHON_VERSION: "3.14" }
# CUDA 12.0 support stops at clang 14.
x-llvm-14: &llvm_14 { name: "llvm", version: "14" }
x-llvm-15: &llvm_15 { name: "llvm", version: "15" }
x-llvm-16: &llvm_16 { name: "llvm", version: "16" }
x-llvm-17: &llvm_17 { name: "llvm", version: "17" }
x-llvm-18: &llvm_18 { name: "llvm", version: "18" }
x-llvm-19: &llvm_19 { name: "llvm", version: "19" }
x-llvm-20: &llvm_20 { name: "llvm", version: "20" }
x-llvm-21: &llvm_21 { name: "llvm", version: "21" }
x-llvm-22: &llvm_22 { name: "llvm", version: "22"}
x-llvm-env: &llvm_env { CC: "clang", CXX: "clang++", CUDAHOSTCXX: "clang++" }
x-nvhpc-prev: &nvhpc_prev { name: "nvhpc", version: "26.1" }
x-nvhpc-curr: &nvhpc_curr { name: "nvhpc", version: "26.3" }
x-nvhpc-env: &nvhpc_env { CC: "nvc", CXX: "nvc++", CUDAHOSTCXX: "nvc++" }
x-mambaforge: &conda { name: "mambaforge", miniforge_version: "25.11.0-1" }
x-python: &python { name: "ghcr.io/devcontainers/features/python:1.8.0", version: "os-provided", installTools: false, enableShared: true, optimize: true, hide: true }
x-python-rapids: &python_rapids { name: "ghcr.io/devcontainers/features/python:1.8.0", version: "3.14", installTools: false, enableShared: true, optimize: true, hide: true }
x-ucx-rapids: &ucx_rapids { name: "ucx", version: "1.19.0" }
x-openmpi: &openmpi { name: "openmpi", version: "5.0.10" }
x-cccl-dev: &cccl_dev { name: "cccl-dev", hide: true, doxygenVersion: "1.9.6" }
x-clangd-dev-bionic: &clangd_dev_bionic { name: "llvm", version: "19", packages: "clangd", hide: true }
x-clangd-dev-jammy: &clangd_dev_jammy { name: "llvm", version: "dev", packages: "clangd", hide: true }
x-clangd-dev: &clangd_dev { name: "llvm", version: "dev", packages: "clangd", hide: true }
# Clang utils always available:
x-clang-extra-cccl: &clang_extra_cccl { name: "llvm", version: "21", packages: "clang-format clang-tidy llvm-tools", hide: true }
x-clang-extra-rapids: &clang_extra_rapids { name: "llvm", version: "21", packages: "clang-format", hide: true }
# Docker outside of Docker used to build python wheels:
x-dood: &dood { name: "ghcr.io/devcontainers/features/docker-outside-of-docker:1", moby: false, hide: true}
# CCCL only needs a subset of the full CTK:
x-cccl-cuda-opts: &cccl_cuda_opts {
installCTKLibraries: false,
installCUDARuntime: true,
installcuRAND: true,
installcuTensor: false,
installNCCL: false,
installNVRTC: true,
installcuFile: true,
}
x-cccl-cuda-ext-opts: &cccl_cuda_ext_opts {
suffix: "ext",
installCTKLibraries: false,
installCUDARuntime: true,
installcuRAND: true,
installcuTensor: true,
installcuBLAS: true,
installcuSOLVER: true,
installcuSPARSE: true,
installcuFFT: true,
installNCCL: true,
installNVRTC: true,
installcuFile: true,
}
include:
# CCCL devcontainers
- os: "ubuntu:20.04"
images:
- { features: [*python, *dood, *gcc_7, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_7, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_8, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_8, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_9, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_9, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_10, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_10, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_bionic, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *llvm_14, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_bionic, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_14, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_bionic, *cccl_dev], env: *llvm_env }
- os: "ubuntu:22.04"
images:
- { features: [*python, *dood, *gcc_11, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_11, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_11, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_11, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_12, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_12, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_12, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_12, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *gcc_env }
# This is only used for testing python -- CTKk 12.0 + gcc13 don't play nice together, but
# that doesn't matter for running python tests, and pinning all python jobs at 13 simplifies
# things significantly.
- { features: [*python, *dood, *gcc_13, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *llvm_15, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_15, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_15, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_15, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_16, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_16, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_16, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_16, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_17, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_17, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_17, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_17, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_18, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_18, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_18, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_18, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_19, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_19, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_19, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_19, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_20, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_21, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_22, { <<: *cuda_prev_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev_jammy, *cccl_dev], env: *llvm_env }
- os: "ubuntu:24.04"
images:
- { features: [*python, *dood, *nvhpc_prev, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *nvhpc_env }
- { features: [*python, *dood, *nvhpc_curr, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *nvhpc_env }
- { features: [*python, *dood, *gcc_13, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_13, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_13, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_14, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_14, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_14, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *llvm_20, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_20, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_20, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_21, { <<: *cuda_prev_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_21, { <<: *cuda_curr_min, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_21, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_22, { <<: *cuda_curr_max, <<: *cccl_cuda_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
# cuda-ext images:
- { features: [*python, *dood, *gcc_14, { <<: *cuda_prev_max, <<: *cccl_cuda_ext_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_14, { <<: *cuda_curr_min, <<: *cccl_cuda_ext_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *gcc_14, { <<: *cuda_curr_max, <<: *cccl_cuda_ext_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *gcc_env }
- { features: [*python, *dood, *llvm_20, { <<: *cuda_prev_max, <<: *cccl_cuda_ext_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_20, { <<: *cuda_curr_min, <<: *cccl_cuda_ext_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_20, { <<: *cuda_curr_max, <<: *cccl_cuda_ext_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_21, { <<: *cuda_prev_max, <<: *cccl_cuda_ext_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_21, { <<: *cuda_curr_min, <<: *cccl_cuda_ext_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- { features: [*python, *dood, *llvm_21, { <<: *cuda_curr_max, <<: *cccl_cuda_ext_opts }, *clang_extra_cccl, *clangd_dev, *cccl_dev], env: *llvm_env }
- os: "windows"
images:
- { features: [{ <<: *cuda_prev_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.29" }] } # MSVC 2019
- { features: [{ <<: *cuda_prev_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.29" }] } # MSVC 2019
- { features: [{ <<: *cuda_curr_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.29" }] } # MSVC 2019
- { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.29" }] } # MSVC 2019
# CTK 12.0 doesn't know that it supports 14.40+, use 14.39:
- { features: [{ <<: *cuda_prev_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.39" }] } # MSVC 2022
# Build CUDA 12.9 + 14.43 for stdexec:
- { features: [{ <<: *cuda_prev_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.43" }] } # MSVC 2022
# Still, we build a 12.0 + 14.4X image for python testing infra:
- { features: [{ <<: *cuda_prev_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.44" }] } # MSVC 2022
- { features: [{ <<: *cuda_prev_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.44" }] } # MSVC 2022
- { features: [{ <<: *cuda_curr_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.44" }] } # MSVC 2022
- { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.44" }] } # MSVC 2022
# Still, we build a 12.0 + 14.50 image for python testing infra:
- { features: [{ <<: *cuda_prev_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.50" }] } # MSVC 2026
- { features: [{ <<: *cuda_prev_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.50" }] } # MSVC 2026
- { features: [{ <<: *cuda_curr_min, <<: *cccl_cuda_opts }, { name: "cl", version: "14.50" }] } # MSVC 2026
- { features: [{ <<: *cuda_curr_max, <<: *cccl_cuda_opts }, { name: "cl", version: "14.50" }] } # MSVC 2026
# RAPIDS devcontainers
- os: "ubuntu:24.04"
images:
# cuda
- { features: [*gcc_rapids, *python_rapids, *clang_extra_rapids, *clangd_dev, *cuda_prev_max_rapids], env: *gcc_env_rapids }
- { features: [*gcc_rapids, *python_rapids, *clang_extra_rapids, *clangd_dev, *cuda_curr_min], env: *gcc_env_rapids }
- { features: [*gcc_rapids, *python_rapids, *clang_extra_rapids, *clangd_dev, *cuda_curr_max], env: *gcc_env_rapids }
- { features: [*gcc_rapids, *python_rapids, *clang_extra_rapids, *clangd_dev, *cuda_curr_max_rapids], env: *gcc_env_rapids }
- { features: [*gcc_rapids, *python_rapids, *clang_extra_rapids, *clangd_dev, *cuda_prev_max_rapids, *ucx_rapids, *openmpi], env: *gcc_env_rapids }
- { features: [*gcc_rapids, *python_rapids, *clang_extra_rapids, *clangd_dev, *cuda_curr_min, *ucx_rapids, *openmpi], env: *gcc_env_rapids }
- { features: [*gcc_rapids, *python_rapids, *clang_extra_rapids, *clangd_dev, *cuda_curr_max, *ucx_rapids, *openmpi], env: *gcc_env_rapids }
- { features: [*gcc_rapids, *python_rapids, *clang_extra_rapids, *clangd_dev, *cuda_curr_max_rapids, *ucx_rapids, *openmpi], env: *gcc_env_rapids }
# mambaforge
- { features: [*conda], env: { PYTHON_VERSION: "3.14" } }