Skip to content

Commit 93dacae

Browse files
authored
Add x86 domain builds for CUDA 13.0 (#7046)
Add domain builds for CUDA 13.0 x86 torchvision/torchaudio cc @atalman
1 parent bbe86e9 commit 93dacae

File tree

6 files changed

+439
-11
lines changed

6 files changed

+439
-11
lines changed

tools/pkg-helpers/pytorch_pkg_helpers/cuda.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,20 @@
77
WINDOWS_PATH_PREFIX = "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v"
88

99

10-
def get_cuda_arch_list(sanitized_version: str) -> str:
11-
base_arch_list = "5.0+PTX;6.0;7.0;7.5;8.0;8.6;9.0"
12-
if float(sanitized_version) >= 12.0:
13-
if sanitized_version == "12.8":
14-
return base_arch_list + ";10.0;12.0"
15-
return base_arch_list
16-
if float(sanitized_version) > 11.3:
17-
return "3.5;5.0+PTX;6.0;7.0;7.5;8.0;8.6"
18-
# mainly for cuda 10.2
19-
return "3.5;5.0+PTX;6.0;7.0;7.5"
10+
def get_cuda_arch_list(sanitized_version: str, package_type: str = "") -> str:
11+
# Fallback for other versions - maintain backward compatibility
12+
base_arch_list = (
13+
"5.0;6.0;7.0;7.5;8.0;8.6;9.0" # default arch list for the stable versions
14+
)
15+
# removing sm_50-sm_60 as these architectures are deprecated in CUDA 12.8/9 and will be removed in future releases
16+
# however we would like to keep sm_70 architecture see: https://github.com/pytorch/pytorch/issues/157517
17+
if sanitized_version == "12.8":
18+
return "7.0;7.5;8.0;8.6;9.0;10.0;12.0"
19+
elif sanitized_version == "12.9":
20+
return "7.0;7.5;8.0;8.6;9.0;10.0;12.0+PTX"
21+
elif sanitized_version == "13.0":
22+
return "7.5;8.0;8.6;9.0;10.0;12.0+PTX"
23+
return base_arch_list
2024

2125

2226
def get_cuda_variables(

tools/scripts/generate_binary_build_matrix.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"release": ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t"],
2828
}
2929
CUDA_ARCHES_DICT = {
30-
"nightly": ["12.6", "12.8", "12.9"],
30+
"nightly": ["12.6", "12.8", "12.9", "13.0"],
3131
"test": ["12.6", "12.8", "12.9"],
3232
"release": ["12.6", "12.8", "12.9"],
3333
}
@@ -43,6 +43,7 @@
4343
"12.6": {"cuda": "12.6.3", "cudnn": "9"},
4444
"12.8": {"cuda": "12.8.0", "cudnn": "9"},
4545
"12.9": {"cuda": "12.9.1", "cudnn": "9"},
46+
"13.0": {"cuda": "13.0.0", "cudnn": "9"},
4647
}
4748

4849
STABLE_CUDA_VERSIONS = {
@@ -445,6 +446,9 @@ def generate_wheels_matrix(
445446
upload_to_base_bucket = "no"
446447
if os in (LINUX, WINDOWS):
447448
arches += CUDA_ARCHES
449+
# todo: remove once windows cuda 13.0 binaries are available
450+
if channel == NIGHTLY and os != LINUX:
451+
arches.remove("13.0")
448452
elif os == LINUX_AARCH64:
449453
arches += CUDA_AARCH64_ARCHES
450454

tools/tests/assets/build_matrix_linux_wheel_cuda.json

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,21 @@
6060
"stable_version": "2.8.0",
6161
"use_split_build": false
6262
},
63+
{
64+
"python_version": "3.10",
65+
"gpu_arch_type": "cuda",
66+
"gpu_arch_version": "13.0",
67+
"desired_cuda": "cu130",
68+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
69+
"package_type": "manywheel",
70+
"build_name": "manywheel-py3_10-cuda13_0",
71+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
72+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
73+
"channel": "nightly",
74+
"upload_to_base_bucket": "no",
75+
"stable_version": "2.8.0",
76+
"use_split_build": false
77+
},
6378
{
6479
"python_version": "3.10",
6580
"gpu_arch_type": "rocm",
@@ -150,6 +165,21 @@
150165
"stable_version": "2.8.0",
151166
"use_split_build": false
152167
},
168+
{
169+
"python_version": "3.11",
170+
"gpu_arch_type": "cuda",
171+
"gpu_arch_version": "13.0",
172+
"desired_cuda": "cu130",
173+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
174+
"package_type": "manywheel",
175+
"build_name": "manywheel-py3_11-cuda13_0",
176+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
177+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
178+
"channel": "nightly",
179+
"upload_to_base_bucket": "no",
180+
"stable_version": "2.8.0",
181+
"use_split_build": false
182+
},
153183
{
154184
"python_version": "3.11",
155185
"gpu_arch_type": "rocm",
@@ -240,6 +270,21 @@
240270
"stable_version": "2.8.0",
241271
"use_split_build": false
242272
},
273+
{
274+
"python_version": "3.12",
275+
"gpu_arch_type": "cuda",
276+
"gpu_arch_version": "13.0",
277+
"desired_cuda": "cu130",
278+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
279+
"package_type": "manywheel",
280+
"build_name": "manywheel-py3_12-cuda13_0",
281+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
282+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
283+
"channel": "nightly",
284+
"upload_to_base_bucket": "no",
285+
"stable_version": "2.8.0",
286+
"use_split_build": false
287+
},
243288
{
244289
"python_version": "3.12",
245290
"gpu_arch_type": "rocm",
@@ -330,6 +375,21 @@
330375
"stable_version": "2.8.0",
331376
"use_split_build": false
332377
},
378+
{
379+
"python_version": "3.13",
380+
"gpu_arch_type": "cuda",
381+
"gpu_arch_version": "13.0",
382+
"desired_cuda": "cu130",
383+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
384+
"package_type": "manywheel",
385+
"build_name": "manywheel-py3_13-cuda13_0",
386+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
387+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
388+
"channel": "nightly",
389+
"upload_to_base_bucket": "no",
390+
"stable_version": "2.8.0",
391+
"use_split_build": false
392+
},
333393
{
334394
"python_version": "3.13",
335395
"gpu_arch_type": "rocm",
@@ -420,6 +480,21 @@
420480
"stable_version": "2.8.0",
421481
"use_split_build": false
422482
},
483+
{
484+
"python_version": "3.13t",
485+
"gpu_arch_type": "cuda",
486+
"gpu_arch_version": "13.0",
487+
"desired_cuda": "cu130",
488+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
489+
"package_type": "manywheel",
490+
"build_name": "manywheel-py3_13t-cuda13_0",
491+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
492+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
493+
"channel": "nightly",
494+
"upload_to_base_bucket": "no",
495+
"stable_version": "2.8.0",
496+
"use_split_build": false
497+
},
423498
{
424499
"python_version": "3.13t",
425500
"gpu_arch_type": "rocm",
@@ -510,6 +585,21 @@
510585
"stable_version": "2.8.0",
511586
"use_split_build": false
512587
},
588+
{
589+
"python_version": "3.14",
590+
"gpu_arch_type": "cuda",
591+
"gpu_arch_version": "13.0",
592+
"desired_cuda": "cu130",
593+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
594+
"package_type": "manywheel",
595+
"build_name": "manywheel-py3_14-cuda13_0",
596+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
597+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
598+
"channel": "nightly",
599+
"upload_to_base_bucket": "no",
600+
"stable_version": "2.8.0",
601+
"use_split_build": false
602+
},
513603
{
514604
"python_version": "3.14",
515605
"gpu_arch_type": "rocm",
@@ -600,6 +690,21 @@
600690
"stable_version": "2.8.0",
601691
"use_split_build": false
602692
},
693+
{
694+
"python_version": "3.14t",
695+
"gpu_arch_type": "cuda",
696+
"gpu_arch_version": "13.0",
697+
"desired_cuda": "cu130",
698+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
699+
"package_type": "manywheel",
700+
"build_name": "manywheel-py3_14t-cuda13_0",
701+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
702+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
703+
"channel": "nightly",
704+
"upload_to_base_bucket": "no",
705+
"stable_version": "2.8.0",
706+
"use_split_build": false
707+
},
603708
{
604709
"python_version": "3.14t",
605710
"gpu_arch_type": "rocm",

tools/tests/assets/build_matrix_linux_wheel_cuda_norocm.json

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,21 @@
6060
"stable_version": "2.8.0",
6161
"use_split_build": false
6262
},
63+
{
64+
"python_version": "3.10",
65+
"gpu_arch_type": "cuda",
66+
"gpu_arch_version": "13.0",
67+
"desired_cuda": "cu130",
68+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
69+
"package_type": "manywheel",
70+
"build_name": "manywheel-py3_10-cuda13_0",
71+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
72+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
73+
"channel": "nightly",
74+
"upload_to_base_bucket": "no",
75+
"stable_version": "2.8.0",
76+
"use_split_build": false
77+
},
6378
{
6479
"python_version": "3.11",
6580
"gpu_arch_type": "cpu",
@@ -120,6 +135,21 @@
120135
"stable_version": "2.8.0",
121136
"use_split_build": false
122137
},
138+
{
139+
"python_version": "3.11",
140+
"gpu_arch_type": "cuda",
141+
"gpu_arch_version": "13.0",
142+
"desired_cuda": "cu130",
143+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
144+
"package_type": "manywheel",
145+
"build_name": "manywheel-py3_11-cuda13_0",
146+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
147+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
148+
"channel": "nightly",
149+
"upload_to_base_bucket": "no",
150+
"stable_version": "2.8.0",
151+
"use_split_build": false
152+
},
123153
{
124154
"python_version": "3.12",
125155
"gpu_arch_type": "cpu",
@@ -180,6 +210,21 @@
180210
"stable_version": "2.8.0",
181211
"use_split_build": false
182212
},
213+
{
214+
"python_version": "3.12",
215+
"gpu_arch_type": "cuda",
216+
"gpu_arch_version": "13.0",
217+
"desired_cuda": "cu130",
218+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
219+
"package_type": "manywheel",
220+
"build_name": "manywheel-py3_12-cuda13_0",
221+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
222+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
223+
"channel": "nightly",
224+
"upload_to_base_bucket": "no",
225+
"stable_version": "2.8.0",
226+
"use_split_build": false
227+
},
183228
{
184229
"python_version": "3.13",
185230
"gpu_arch_type": "cpu",
@@ -240,6 +285,21 @@
240285
"stable_version": "2.8.0",
241286
"use_split_build": false
242287
},
288+
{
289+
"python_version": "3.13",
290+
"gpu_arch_type": "cuda",
291+
"gpu_arch_version": "13.0",
292+
"desired_cuda": "cu130",
293+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
294+
"package_type": "manywheel",
295+
"build_name": "manywheel-py3_13-cuda13_0",
296+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
297+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
298+
"channel": "nightly",
299+
"upload_to_base_bucket": "no",
300+
"stable_version": "2.8.0",
301+
"use_split_build": false
302+
},
243303
{
244304
"python_version": "3.13t",
245305
"gpu_arch_type": "cpu",
@@ -300,6 +360,21 @@
300360
"stable_version": "2.8.0",
301361
"use_split_build": false
302362
},
363+
{
364+
"python_version": "3.13t",
365+
"gpu_arch_type": "cuda",
366+
"gpu_arch_version": "13.0",
367+
"desired_cuda": "cu130",
368+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
369+
"package_type": "manywheel",
370+
"build_name": "manywheel-py3_13t-cuda13_0",
371+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
372+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
373+
"channel": "nightly",
374+
"upload_to_base_bucket": "no",
375+
"stable_version": "2.8.0",
376+
"use_split_build": false
377+
},
303378
{
304379
"python_version": "3.14",
305380
"gpu_arch_type": "cpu",
@@ -360,6 +435,21 @@
360435
"stable_version": "2.8.0",
361436
"use_split_build": false
362437
},
438+
{
439+
"python_version": "3.14",
440+
"gpu_arch_type": "cuda",
441+
"gpu_arch_version": "13.0",
442+
"desired_cuda": "cu130",
443+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
444+
"package_type": "manywheel",
445+
"build_name": "manywheel-py3_14-cuda13_0",
446+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
447+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
448+
"channel": "nightly",
449+
"upload_to_base_bucket": "no",
450+
"stable_version": "2.8.0",
451+
"use_split_build": false
452+
},
363453
{
364454
"python_version": "3.14t",
365455
"gpu_arch_type": "cpu",
@@ -419,6 +509,21 @@
419509
"upload_to_base_bucket": "no",
420510
"stable_version": "2.8.0",
421511
"use_split_build": false
512+
},
513+
{
514+
"python_version": "3.14t",
515+
"gpu_arch_type": "cuda",
516+
"gpu_arch_version": "13.0",
517+
"desired_cuda": "cu130",
518+
"container_image": "pytorch/manylinux2_28-builder:cuda13.0",
519+
"package_type": "manywheel",
520+
"build_name": "manywheel-py3_14t-cuda13_0",
521+
"validation_runner": "linux.g5.4xlarge.nvidia.gpu",
522+
"installation": "pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130",
523+
"channel": "nightly",
524+
"upload_to_base_bucket": "no",
525+
"stable_version": "2.8.0",
526+
"use_split_build": false
422527
}
423528
]
424529
}

0 commit comments

Comments
 (0)