summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2025-12-03 10:39:43 -0800
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2025-12-05 01:35:06 +0530
commit79854e4b8d09744acbe2f2d2c0d43a88b9ab1dcc (patch)
treed9b8968c8d40a44ba02082aecd7de1e11fafa6ca
parent7c5ab15fb35fda43883ca8da0964cae7c283919b (diff)
downloadmeson-79854e4b8d09744acbe2f2d2c0d43a88b9ab1dcc.tar.gz
modules/cuda: Update arch flags for versions through 13.0
This includes adding Blackwell support, as well as the deprecation of many older architectures in 12.9 and 13.0
-rw-r--r--mesonbuild/modules/cuda.py81
1 files changed, 55 insertions, 26 deletions
diff --git a/mesonbuild/modules/cuda.py b/mesonbuild/modules/cuda.py
index 8759b019f..5d9ac10a0 100644
--- a/mesonbuild/modules/cuda.py
+++ b/mesonbuild/modules/cuda.py
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: Apache-2.0
-# Copyright 2017 The Meson development team
+# Copyright 2017-2025 The Meson development team
from __future__ import annotations
@@ -215,42 +215,50 @@ class CudaModule(NewExtensionModule):
# except that a bug with cuda_arch_list="All" is worked around by
# tracking both lower and upper limits on GPU architectures.
- cuda_known_gpu_architectures = ['Fermi', 'Kepler', 'Maxwell'] # noqa: E221
+ cuda_known_gpu_architectures = [] # noqa: E221
cuda_common_gpu_architectures = ['3.0', '3.5', '5.0'] # noqa: E221
cuda_hi_limit_gpu_architecture = None # noqa: E221
cuda_lo_limit_gpu_architecture = '2.0' # noqa: E221
cuda_all_gpu_architectures = ['3.0', '3.2', '3.5', '5.0'] # noqa: E221
- if version_compare(cuda_version, '<7.0'):
- cuda_hi_limit_gpu_architecture = '5.2'
+ # Fermi and Kepler support have been dropped since 12.0
+ if version_compare(cuda_version, '<12.0'):
+ cuda_known_gpu_architectures.extend(['Fermi', 'Kepler'])
- if version_compare(cuda_version, '>=7.0'):
- cuda_known_gpu_architectures += ['Kepler+Tegra', 'Kepler+Tesla', 'Maxwell+Tegra'] # noqa: E221
- cuda_common_gpu_architectures += ['5.2'] # noqa: E221
+ # Everything older than Turing is dropped by 13.0
+ if version_compare(cuda_version, '<13.0'):
+ cuda_known_gpu_architectures.append('Maxwell')
- if version_compare(cuda_version, '<8.0'):
- cuda_common_gpu_architectures += ['5.2+PTX'] # noqa: E221
- cuda_hi_limit_gpu_architecture = '6.0' # noqa: E221
+ if version_compare(cuda_version, '<7.0'):
+ cuda_hi_limit_gpu_architecture = '5.2'
- if version_compare(cuda_version, '>=8.0'):
- cuda_known_gpu_architectures += ['Pascal', 'Pascal+Tegra'] # noqa: E221
- cuda_common_gpu_architectures += ['6.0', '6.1'] # noqa: E221
- cuda_all_gpu_architectures += ['6.0', '6.1', '6.2'] # noqa: E221
+ if version_compare(cuda_version, '>=7.0'):
+ cuda_known_gpu_architectures += ['Kepler+Tegra', 'Kepler+Tesla', 'Maxwell+Tegra'] # noqa: E221
+ cuda_common_gpu_architectures += ['5.2'] # noqa: E221
- if version_compare(cuda_version, '<9.0'):
- cuda_common_gpu_architectures += ['6.1+PTX'] # noqa: E221
- cuda_hi_limit_gpu_architecture = '7.0' # noqa: E221
+ if version_compare(cuda_version, '<8.0'):
+ cuda_common_gpu_architectures += ['5.2+PTX'] # noqa: E221
+ cuda_hi_limit_gpu_architecture = '6.0' # noqa: E221
- if version_compare(cuda_version, '>=9.0'):
- cuda_known_gpu_architectures += ['Volta', 'Xavier'] # noqa: E221
- cuda_common_gpu_architectures += ['7.0'] # noqa: E221
- cuda_all_gpu_architectures += ['7.0', '7.2'] # noqa: E221
- # https://docs.nvidia.com/cuda/archive/9.0/cuda-toolkit-release-notes/index.html#unsupported-features
- cuda_lo_limit_gpu_architecture = '3.0' # noqa: E221
+ if version_compare(cuda_version, '>=8.0'):
+ cuda_known_gpu_architectures += ['Pascal', 'Pascal+Tegra'] # noqa: E221
+ cuda_common_gpu_architectures += ['6.0', '6.1'] # noqa: E221
+ cuda_all_gpu_architectures += ['6.0', '6.1', '6.2'] # noqa: E221
- if version_compare(cuda_version, '<10.0'):
- cuda_common_gpu_architectures += ['7.2+PTX'] # noqa: E221
- cuda_hi_limit_gpu_architecture = '8.0' # noqa: E221
+ if version_compare(cuda_version, '<9.0'):
+ cuda_common_gpu_architectures += ['6.1+PTX'] # noqa: E221
+ cuda_hi_limit_gpu_architecture = '7.0' # noqa: E221
+
+ if version_compare(cuda_version, '>=9.0'):
+ cuda_known_gpu_architectures += ['Volta', 'Xavier'] # noqa: E221
+ cuda_common_gpu_architectures += ['7.0'] # noqa: E221
+ cuda_all_gpu_architectures += ['7.0', '7.2'] # noqa: E221
+ # https://docs.nvidia.com/cuda/archive/9.0/cuda-toolkit-release-notes/index.html#unsupported-features
+ cuda_lo_limit_gpu_architecture = '3.0' # noqa: E221
+
+ if version_compare(cuda_version, '<10.0'):
+ cuda_common_gpu_architectures += ['7.2+PTX'] # noqa: E221
+ cuda_hi_limit_gpu_architecture = '8.0' # noqa: E221
if version_compare(cuda_version, '>=10.0'):
cuda_known_gpu_architectures += ['Turing'] # noqa: E221
@@ -303,6 +311,26 @@ class CudaModule(NewExtensionModule):
if version_compare(cuda_version, '<13'):
cuda_hi_limit_gpu_architecture = '10.0' # noqa: E221
+ if version_compare(cuda_version, '>=12.8'):
+ cuda_known_gpu_architectures.append('Blackwell')
+ cuda_common_gpu_architectures.extend(['10.0', '10.1', '12.0'])
+ cuda_all_gpu_architectures.extend(['10.0', '10.1', '12.0'])
+
+ if version_compare(cuda_version, '<13'):
+ cuda_hi_limit_gpu_architecture = '12.1'
+
+ if version_compare(cuda_version, '>=12.9'):
+ cuda_common_gpu_architectures.extend(['10.3', '12.1'])
+ cuda_all_gpu_architectures.extend(['10.3', '12.1'])
+
+ if version_compare(cuda_version, '>=13.0'):
+ cuda_common_gpu_architectures.append('11.0')
+ cuda_all_gpu_architectures.append('11.0')
+ cuda_lo_limit_gpu_architecture = '7.5'
+
+ if version_compare(cuda_version, '<14'):
+ cuda_hi_limit_gpu_architecture = '12.1'
+
if not cuda_arch_list:
cuda_arch_list = 'Auto'
@@ -355,6 +383,7 @@ class CudaModule(NewExtensionModule):
'Orin': (['8.7'], []),
'Lovelace': (['8.9'], ['8.9']),
'Hopper': (['9.0'], ['9.0']),
+ 'Blackwell': (['10.0'], ['10.0']),
}.get(arch_name, (None, None))
if arch_bin is None: