Skip to content

{devel}[foss/2023b] Triton v2.3.1 w/ CUDA 12.4.0#23119

Merged
boegel merged 2 commits intoeasybuilders:developfrom
Flamefire:20250617142956_new_pr_Triton231
Aug 12, 2025
Merged

{devel}[foss/2023b] Triton v2.3.1 w/ CUDA 12.4.0#23119
boegel merged 2 commits intoeasybuilders:developfrom
Flamefire:20250617142956_new_pr_Triton231

Conversation

@Flamefire
Copy link
Contributor

@Flamefire Flamefire commented Jun 17, 2025

@github-actions
Copy link

github-actions bot commented Jun 17, 2025

Updated software Triton-2.3.1-foss-2023b-CUDA-12.4.0.eb

Diff against Triton-3.1.0-foss-2024a-CUDA-12.6.0.eb

easybuild/easyconfigs/t/Triton/Triton-3.1.0-foss-2024a-CUDA-12.6.0.eb

diff --git a/easybuild/easyconfigs/t/Triton/Triton-3.1.0-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/t/Triton/Triton-2.3.1-foss-2023b-CUDA-12.4.0.eb
index 696e5d55c7..2741821757 100644
--- a/easybuild/easyconfigs/t/Triton/Triton-3.1.0-foss-2024a-CUDA-12.6.0.eb
+++ b/easybuild/easyconfigs/t/Triton/Triton-2.3.1-foss-2023b-CUDA-12.4.0.eb
@@ -1,14 +1,8 @@
-# Update 3.1.0: Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/12
-
 easyblock = 'PythonBundle'
 
 name = 'Triton'
-
-version = '3.1.0'
+version = '2.3.1'
 versionsuffix = '-CUDA-%(cudaver)s'
-# There is no 3.1 in pypi and no 3.1-tag at github. However, 5fe38ffd is version bump 3.1 in the release_3.1.x branch:
-_commit = '5fe38ffd73c2ac6ed6323b554205186696631c6f'
-_clang_commit = '10dc3a8e916d73291269e5e2b82dd22681489aa1'  # acc. to cmake/llvm-hash.txt; 2024/05/23
 
 homepage = 'https://triton-lang.org/'
 
@@ -16,36 +10,32 @@ description = """Triton is a language and compiler for parallel programming. It
 Python-based programming environment for productively writing custom DNN compute
 kernels capable of running at maximal throughput on modern GPU hardware."""
 
-toolchain = {'name': 'foss', 'version': '2024a'}
-
-github_account = 'openai'
+toolchain = {'name': 'foss', 'version': '2023b'}
 
 builddependencies = [
-    ('CMake', '3.29.3'),
-    ('Ninja', '1.12.1'),
-    ('pybind11', '2.13.6'),
-    ('poetry', '1.8.3'),
-    ('nlohmann_json', '3.11.3'),
-    ('googletest', '1.15.2'),
+    ('CMake', '3.27.6'),
+    ('Ninja', '1.11.1'),
+    # LLVM dependencies
+    ('git', '2.42.0'),
+    ('libxml2', '2.11.5'),
+    ('ncurses', '6.4'),
 ]
 
 dependencies = [
-    ('CUDA', '12.6.0', '', SYSTEM),
-    ('Python', '3.12.3'),
+    ('CUDA', '12.4.0', '', SYSTEM),
+    ('Python', '3.11.5'),
+    ('Python-bundle-PyPI', '2023.10'),
+    ('SciPy-bundle', '2023.11'),
+    ('lit', '18.1.7'),
+    ('pybind11', '2.11.1'),
     ('Z3', '4.13.0'),
-    ('Python-bundle-PyPI', '2024.06'),
-]
-
-_llvm_confopts = [
-    # acc. to:
-    # https://github.com/triton-lang/triton?tab=readme-ov-file#building-with-a-custom-llvm
-    '-DLLVM_ENABLE_ASSERTIONS=ON',
-    '-DLLVM_ENABLE_PROJECTS="mlir;llvm"',
-    '-DLLVM_TARGETS_TO_BUILD="X86;NVPTX"',
+    # LLVM dependencies
+    ('zlib', '1.2.13'),
 ]
 
 components = [
-    ('LLVM', _clang_commit, {
+    # Hash from cmake/llvm-hash.txt
+    ('LLVM', '5e5a22caf88ac1ccfa8dc5720295fdeba0ad9372', {
         'easyblock': 'CMakeNinja',
         'source_urls': ['https://github.com/llvm/llvm-project/archive/'],
         'sources': [{
@@ -53,56 +43,64 @@ components = [
             'filename': 'llvm-project-%(version)s.tar.gz',
         }],
         'checksums': [
-            {'llvm-project-10dc3a8e916d73291269e5e2b82dd22681489aa1.tar.gz':
-             '6ee5e0f9a49d41b5f48ebc4613ce3371f686bf70fcece9f849aba3c37bdeb3e8'},
+            {'llvm-project-5e5a22caf88ac1ccfa8dc5720295fdeba0ad9372.tar.gz':
+             '9d9ae8ae30f6262ca0823493893398ea2ab6fbd49027e338e06ac7c25bb8caf4'},
         ],
         'start_dir': 'llvm-project-%(version)s',
-        'configopts': ' '.join(_llvm_confopts),
+        'separate_build_dir': 'llvm_build_dir',
+        'configopts': ' '.join([
+            # Reduce dependencies
+            '-DLLVM_ENABLE_BINDINGS=OFF',  # Requires OCAML
+            '-DLLVM_ENABLE_LIBEDIT=OFF',
+            # See https://github.com/triton-lang/triton/blob/develop/scripts/build-llvm-project.sh
+            '-DCMAKE_BUILD_TYPE="Release"',
+            '-DLLVM_CCACHE_BUILD=OFF',
+            '-DLLVM_ENABLE_ASSERTIONS=ON',
+            '-DLLVM_OPTIMIZED_TABLEGEN=ON',
+            '-DLLVM_TARGETS_TO_BUILD="Native;NVPTX;AMDGPU"',
+            '-DLLVM_ENABLE_PROJECTS="mlir;llvm"',
+        ]),
         'srcdir': 'llvm',
-        'skipsteps': ['install']
+        'skipsteps': ['install'],
     })
 ]
 
-_tr_start_dir = 'python'
-
-_tr_preinstallopts = 'export PYBIND11_SYSPATH=$EBROOTPYBIND11 && '
-_tr_preinstallopts += 'export JSON_SYSPATH=$EBROOTNLOHMANN_JSON && '
-# use LLVM component in builddir:
-_tr_preinstallopts += 'export PATH=%(builddir)s/easybuild_obj/bin:$PATH && '
-_tr_preinstallopts += 'export LLVM_INCLUDE_DIRS=%(builddir)s/easybuild_obj/include && '
-_tr_preinstallopts += 'export LLVM_LIBRARY_DIR=%(builddir)s/easybuild_obj/lib && '
-_tr_preinstallopts += 'export LLVM_SYSPATH=%(builddir)s/easybuild_obj/ && '
-
-_tr_preinstallopts += 'export TRITON_BUILD_WITH_CLANG_LLD=false && '
-_tr_preinstallopts += 'export TRITON_HOME=%(builddir)s && '
-
-_tr_installopts = "-v "
+local_preinstallopts = ' '.join([
+    'TRITON_BUILD_WITH_CLANG_LLD=0',
+    "TRITON_HOME='%(builddir)s/triton_home'",
+    'TRITON_PTXAS_PATH="$CUDA_HOME/bin/ptxas"',
+    'TRITON_CUOBJDUMP_PATH="$CUDA_HOME/bin/cubjdump"',
+    'TRITON_NVDISASM_PATH="$CUDA_HOME/bin/nvdisasm"',
+    'LLVM_SYSPATH="%(builddir)s/llvm_build_dir"',
+    'JSON_SYSPATH="$EBROOTNLOHMANN_JSON"',
+    'PYBIND11_SYSPATH="$EBROOTPYBIND11"',
+    'MAX_JOBS=%(parallel)s',
+    # Build type
+    'DEBUG=0 REL_WITH_DEB_INFO=0 TRITON_REL_BUILD_WITH_ASSERTS=1',
+    "TRITON_APPEND_CMAKE_ARGS='-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON'",
+]) + ' '
 
 exts_list = [
     (name, version, {
-        'installopts': _tr_installopts,
-        'patches': [
-            'Triton-3.1.0_5fe38ff_eb_env_python_build.patch',
-            'Triton-3.1.0_5fe38ff_CUDA-12.6_ptx.patch',
-        ],
+        # make pip print output of cmake
+        'installopts': "-v ",
         # ensure that libdevice.10.bc from $EBROOTCUDA/nvvm/libdevice is used:
         'postinstallcmds': [
             'rm -rf %(installdir)s/lib/python%(pyshortver)s/site-packages/triton/backends/nvidia/lib/libdevice.10.bc'
         ],
-        'preinstallopts': _tr_preinstallopts,
+        'preinstallopts': local_preinstallopts,
         'source_urls': ['https://github.com/triton-lang/triton/archive/'],
         'sources': [{
-            'filename': 'v%%(version)s-%s.tar.gz' % _commit,
-            'download_filename': '%s.tar.gz' % _commit}],
-        'start_dir': 'python',
+            'filename': SOURCE_TAR_GZ,
+            'download_filename': '958fccea74da58e7e0595ab88ae6cd3f6795a173.tar.gz',
+        }],
+        'patches': ['Triton-2.3.1_disable-dependency-download.patch'],
         'checksums': [
-            {'v3.1.0-5fe38ffd73c2ac6ed6323b554205186696631c6f.tar.gz':
-             '933babc32b69872efbce05fe8be61129fecf52c724fadea42d8c7b2d10e16ad9'},
-            {'Triton-3.1.0_5fe38ff_eb_env_python_build.patch':
-             '6b46064b4892c7df340b6afd7ffb4abb2ea4486df9406626cd9b2c92a748705d'},
-            {'Triton-3.1.0_5fe38ff_CUDA-12.6_ptx.patch':
-             '2be8609141375ee381364ef74d74c12af598fc0b06357689c9f32d9f2514eff4'},
+            {'Triton-2.3.1.tar.gz': '07d67f6e00de85cb4cace1fe716a22e6eaf623712137d21276445392d0475c44'},
+            {'Triton-2.3.1_disable-dependency-download.patch':
+             '8a768a27b378521967f91536cd13ff315efb966d2dc6a9710c8818c60fb688fe'},
         ],
+        'start_dir': 'python',
     }),
 ]
 
@@ -111,5 +109,4 @@ modextravars = {
     # ensure that libdevice.10.bc from $EBROOTCUDA/nvvm/libdevice is used:
     'TRITON_LIBDEVICE_PATH': '$CUDA_HOME/nvvm/libdevice/libdevice.10.bc'
 }
-
 moduleclass = 'devel'
Diff against Triton-2.1.0-foss-2023a-CUDA-12.1.1.eb

easybuild/easyconfigs/t/Triton/Triton-2.1.0-foss-2023a-CUDA-12.1.1.eb

diff --git a/easybuild/easyconfigs/t/Triton/Triton-2.1.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/t/Triton/Triton-2.3.1-foss-2023b-CUDA-12.4.0.eb
index 0998821a59..2741821757 100644
--- a/easybuild/easyconfigs/t/Triton/Triton-2.1.0-foss-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/t/Triton/Triton-2.3.1-foss-2023b-CUDA-12.4.0.eb
@@ -1,7 +1,7 @@
-easyblock = 'PythonPackage'
+easyblock = 'PythonBundle'
 
 name = 'Triton'
-version = '2.1.0'
+version = '2.3.1'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://triton-lang.org/'
@@ -10,44 +10,103 @@ description = """Triton is a language and compiler for parallel programming. It
 Python-based programming environment for productively writing custom DNN compute
 kernels capable of running at maximal throughput on modern GPU hardware."""
 
-toolchain = {'name': 'foss', 'version': '2023a'}
-
-github_account = 'openai'
-source_urls = [GITHUB_LOWER_SOURCE]
-sources = ['v%(version)s.tar.gz']
-patches = [
-    '%(name)s-%(version)s-disable_rocm_support.patch',
-    '%(name)s-%(version)s-use_eb_env_python_build.patch',
-]
-checksums = [
-    {'v2.1.0.tar.gz': '4338ca0e80a059aec2671f02bfc9320119b051f378449cf5f56a1273597a3d99'},
-    {'Triton-2.1.0-disable_rocm_support.patch': 'e4d7c0947c3287b3f0871a004e8b483963f637c9fa3ef6212ac3a34660de2a7c'},
-    {'Triton-2.1.0-use_eb_env_python_build.patch': 'd68bf766c699ad6a778d9449d3bccdadc2f20f1f86ba13e1359ad297b12fbf7c'},
-]
+toolchain = {'name': 'foss', 'version': '2023b'}
 
 builddependencies = [
-    ('Clang', '17.0.0_20230515', versionsuffix),  # this is the exact commit that would be downloaded by Triton
-    ('CMake', '3.26.3'),
+    ('CMake', '3.27.6'),
+    ('Ninja', '1.11.1'),
+    # LLVM dependencies
+    ('git', '2.42.0'),
+    ('libxml2', '2.11.5'),
+    ('ncurses', '6.4'),
 ]
 
 dependencies = [
-    ('CUDA', '12.1.1', '', SYSTEM),
-    ('Python', '3.11.3'),
-    ('PyTorch', '2.1.2', versionsuffix),
+    ('CUDA', '12.4.0', '', SYSTEM),
+    ('Python', '3.11.5'),
+    ('Python-bundle-PyPI', '2023.10'),
+    ('SciPy-bundle', '2023.11'),
+    ('lit', '18.1.7'),
+    ('pybind11', '2.11.1'),
+    ('Z3', '4.13.0'),
+    # LLVM dependencies
+    ('zlib', '1.2.13'),
 ]
 
-start_dir = 'python'
+components = [
+    # Hash from cmake/llvm-hash.txt
+    ('LLVM', '5e5a22caf88ac1ccfa8dc5720295fdeba0ad9372', {
+        'easyblock': 'CMakeNinja',
+        'source_urls': ['https://github.com/llvm/llvm-project/archive/'],
+        'sources': [{
+            'download_filename': '%(version)s.tar.gz',
+            'filename': 'llvm-project-%(version)s.tar.gz',
+        }],
+        'checksums': [
+            {'llvm-project-5e5a22caf88ac1ccfa8dc5720295fdeba0ad9372.tar.gz':
+             '9d9ae8ae30f6262ca0823493893398ea2ab6fbd49027e338e06ac7c25bb8caf4'},
+        ],
+        'start_dir': 'llvm-project-%(version)s',
+        'separate_build_dir': 'llvm_build_dir',
+        'configopts': ' '.join([
+            # Reduce dependencies
+            '-DLLVM_ENABLE_BINDINGS=OFF',  # Requires OCAML
+            '-DLLVM_ENABLE_LIBEDIT=OFF',
+            # See https://github.com/triton-lang/triton/blob/develop/scripts/build-llvm-project.sh
+            '-DCMAKE_BUILD_TYPE="Release"',
+            '-DLLVM_CCACHE_BUILD=OFF',
+            '-DLLVM_ENABLE_ASSERTIONS=ON',
+            '-DLLVM_OPTIMIZED_TABLEGEN=ON',
+            '-DLLVM_TARGETS_TO_BUILD="Native;NVPTX;AMDGPU"',
+            '-DLLVM_ENABLE_PROJECTS="mlir;llvm"',
+        ]),
+        'srcdir': 'llvm',
+        'skipsteps': ['install'],
+    })
+]
 
-preinstallopts = 'export LLVM_INCLUDE_DIRS=$EBROOTCLANG/include && '
-preinstallopts += 'export LLVM_LIBRARY_DIR=$EBROOTCLANG/lib && '
-preinstallopts += 'export LLVM_SYSPATH=$EBROOTCLANG && '
-preinstallopts += 'export TRITON_BUILD_WITH_CLANG_LLD=1 && '
+local_preinstallopts = ' '.join([
+    'TRITON_BUILD_WITH_CLANG_LLD=0',
+    "TRITON_HOME='%(builddir)s/triton_home'",
+    'TRITON_PTXAS_PATH="$CUDA_HOME/bin/ptxas"',
+    'TRITON_CUOBJDUMP_PATH="$CUDA_HOME/bin/cubjdump"',
+    'TRITON_NVDISASM_PATH="$CUDA_HOME/bin/nvdisasm"',
+    'LLVM_SYSPATH="%(builddir)s/llvm_build_dir"',
+    'JSON_SYSPATH="$EBROOTNLOHMANN_JSON"',
+    'PYBIND11_SYSPATH="$EBROOTPYBIND11"',
+    'MAX_JOBS=%(parallel)s',
+    # Build type
+    'DEBUG=0 REL_WITH_DEB_INFO=0 TRITON_REL_BUILD_WITH_ASSERTS=1',
+    "TRITON_APPEND_CMAKE_ARGS='-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON'",
+]) + ' '
 
-# make pip print output of cmake
-installopts = "-v "
+exts_list = [
+    (name, version, {
+        # make pip print output of cmake
+        'installopts': "-v ",
+        # ensure that libdevice.10.bc from $EBROOTCUDA/nvvm/libdevice is used:
+        'postinstallcmds': [
+            'rm -rf %(installdir)s/lib/python%(pyshortver)s/site-packages/triton/backends/nvidia/lib/libdevice.10.bc'
+        ],
+        'preinstallopts': local_preinstallopts,
+        'source_urls': ['https://github.com/triton-lang/triton/archive/'],
+        'sources': [{
+            'filename': SOURCE_TAR_GZ,
+            'download_filename': '958fccea74da58e7e0595ab88ae6cd3f6795a173.tar.gz',
+        }],
+        'patches': ['Triton-2.3.1_disable-dependency-download.patch'],
+        'checksums': [
+            {'Triton-2.3.1.tar.gz': '07d67f6e00de85cb4cace1fe716a22e6eaf623712137d21276445392d0475c44'},
+            {'Triton-2.3.1_disable-dependency-download.patch':
+             '8a768a27b378521967f91536cd13ff315efb966d2dc6a9710c8818c60fb688fe'},
+        ],
+        'start_dir': 'python',
+    }),
+]
 
 modextravars = {
     'TRITON_PTXAS_PATH': '$CUDA_HOME/bin/ptxas',
+    # ensure that libdevice.10.bc from $EBROOTCUDA/nvvm/libdevice is used:
+    'TRITON_LIBDEVICE_PATH': '$CUDA_HOME/nvvm/libdevice/libdevice.10.bc'
 }
-
 moduleclass = 'devel'
Diff against Triton-1.1.1-foss-2022a-CUDA-11.7.0.eb

easybuild/easyconfigs/t/Triton/Triton-1.1.1-foss-2022a-CUDA-11.7.0.eb

diff --git a/easybuild/easyconfigs/t/Triton/Triton-1.1.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/t/Triton/Triton-2.3.1-foss-2023b-CUDA-12.4.0.eb
index 2c714cac87..2741821757 100644
--- a/easybuild/easyconfigs/t/Triton/Triton-1.1.1-foss-2022a-CUDA-11.7.0.eb
+++ b/easybuild/easyconfigs/t/Triton/Triton-2.3.1-foss-2023b-CUDA-12.4.0.eb
@@ -1,7 +1,7 @@
-easyblock = 'PythonPackage'
+easyblock = 'PythonBundle'
 
 name = 'Triton'
-version = '1.1.1'
+version = '2.3.1'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://triton-lang.org/'
@@ -10,35 +10,103 @@ description = """Triton is a language and compiler for parallel programming. It
 Python-based programming environment for productively writing custom DNN compute
 kernels capable of running at maximal throughput on modern GPU hardware."""
 
-toolchain = {'name': 'foss', 'version': '2022a'}
-
-github_account = 'openai'
-source_urls = [GITHUB_LOWER_SOURCE]
-sources = ['v%(version)s.tar.gz']
-patches = [
-    'Triton-%(version)s-disable_rocm_support.patch',
-    'Triton-%(version)s-use_eb_env_python_build.patch',
-]
-checksums = [
-    {'v1.1.1.tar.gz': '6b0e4a4375068938f7045819987b51299762abf0b1f39948f839d069ed9366bc'},
-    {'Triton-1.1.1-disable_rocm_support.patch': 'abdd50246c668d7fe9889bbe4e8ca84ea4b1b762e814f099919bcbee7c037c62'},
-    {'Triton-1.1.1-use_eb_env_python_build.patch': '428a86da560b5f4353e956452f495ec022dcfbb51aa283dab50551369d7838b4'},
-]
+toolchain = {'name': 'foss', 'version': '2023b'}
 
 builddependencies = [
-    ('Clang', '13.0.1', versionsuffix),
-    ('CMake', '3.23.1'),
+    ('CMake', '3.27.6'),
+    ('Ninja', '1.11.1'),
+    # LLVM dependencies
+    ('git', '2.42.0'),
+    ('libxml2', '2.11.5'),
+    ('ncurses', '6.4'),
 ]
 
 dependencies = [
-    ('CUDA', '11.7.0', '', SYSTEM),
-    ('Python', '3.10.4'),
-    ('PyTorch', '1.12.0', versionsuffix),
+    ('CUDA', '12.4.0', '', SYSTEM),
+    ('Python', '3.11.5'),
+    ('Python-bundle-PyPI', '2023.10'),
+    ('SciPy-bundle', '2023.11'),
+    ('lit', '18.1.7'),
+    ('pybind11', '2.11.1'),
+    ('Z3', '4.13.0'),
+    # LLVM dependencies
+    ('zlib', '1.2.13'),
 ]
 
-start_dir = 'python'
+components = [
+    # Hash from cmake/llvm-hash.txt
+    ('LLVM', '5e5a22caf88ac1ccfa8dc5720295fdeba0ad9372', {
+        'easyblock': 'CMakeNinja',
+        'source_urls': ['https://github.com/llvm/llvm-project/archive/'],
+        'sources': [{
+            'download_filename': '%(version)s.tar.gz',
+            'filename': 'llvm-project-%(version)s.tar.gz',
+        }],
+        'checksums': [
+            {'llvm-project-5e5a22caf88ac1ccfa8dc5720295fdeba0ad9372.tar.gz':
+             '9d9ae8ae30f6262ca0823493893398ea2ab6fbd49027e338e06ac7c25bb8caf4'},
+        ],
+        'start_dir': 'llvm-project-%(version)s',
+        'separate_build_dir': 'llvm_build_dir',
+        'configopts': ' '.join([
+            # Reduce dependencies
+            '-DLLVM_ENABLE_BINDINGS=OFF',  # Requires OCAML
+            '-DLLVM_ENABLE_LIBEDIT=OFF',
+            # See https://github.com/triton-lang/triton/blob/develop/scripts/build-llvm-project.sh
+            '-DCMAKE_BUILD_TYPE="Release"',
+            '-DLLVM_CCACHE_BUILD=OFF',
+            '-DLLVM_ENABLE_ASSERTIONS=ON',
+            '-DLLVM_OPTIMIZED_TABLEGEN=ON',
+            '-DLLVM_TARGETS_TO_BUILD="Native;NVPTX;AMDGPU"',
+            '-DLLVM_ENABLE_PROJECTS="mlir;llvm"',
+        ]),
+        'srcdir': 'llvm',
+        'skipsteps': ['install'],
+    })
+]
+
+local_preinstallopts = ' '.join([
+    'TRITON_BUILD_WITH_CLANG_LLD=0',
+    "TRITON_HOME='%(builddir)s/triton_home'",
+    'TRITON_PTXAS_PATH="$CUDA_HOME/bin/ptxas"',
+    'TRITON_CUOBJDUMP_PATH="$CUDA_HOME/bin/cubjdump"',
+    'TRITON_NVDISASM_PATH="$CUDA_HOME/bin/nvdisasm"',
+    'LLVM_SYSPATH="%(builddir)s/llvm_build_dir"',
+    'JSON_SYSPATH="$EBROOTNLOHMANN_JSON"',
+    'PYBIND11_SYSPATH="$EBROOTPYBIND11"',
+    'MAX_JOBS=%(parallel)s',
+    # Build type
+    'DEBUG=0 REL_WITH_DEB_INFO=0 TRITON_REL_BUILD_WITH_ASSERTS=1',
+    "TRITON_APPEND_CMAKE_ARGS='-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON'",
+]) + ' '
 
-# make pip print output of cmake
-installopts = "-v "
+exts_list = [
+    (name, version, {
+        # make pip print output of cmake
+        'installopts': "-v ",
+        # ensure that libdevice.10.bc from $EBROOTCUDA/nvvm/libdevice is used:
+        'postinstallcmds': [
+            'rm -rf %(installdir)s/lib/python%(pyshortver)s/site-packages/triton/backends/nvidia/lib/libdevice.10.bc'
+        ],
+        'preinstallopts': local_preinstallopts,
+        'source_urls': ['https://github.com/triton-lang/triton/archive/'],
+        'sources': [{
+            'filename': SOURCE_TAR_GZ,
+            'download_filename': '958fccea74da58e7e0595ab88ae6cd3f6795a173.tar.gz',
+        }],
+        'patches': ['Triton-2.3.1_disable-dependency-download.patch'],
+        'checksums': [
+            {'Triton-2.3.1.tar.gz': '07d67f6e00de85cb4cace1fe716a22e6eaf623712137d21276445392d0475c44'},
+            {'Triton-2.3.1_disable-dependency-download.patch':
+             '8a768a27b378521967f91536cd13ff315efb966d2dc6a9710c8818c60fb688fe'},
+        ],
+        'start_dir': 'python',
+    }),
+]
 
+modextravars = {
+    'TRITON_PTXAS_PATH': '$CUDA_HOME/bin/ptxas',
+    # ensure that libdevice.10.bc from $EBROOTCUDA/nvvm/libdevice is used:
+    'TRITON_LIBDEVICE_PATH': '$CUDA_HOME/nvvm/libdevice/libdevice.10.bc'
+}
 moduleclass = 'devel'

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
i7008 - Linux Rocky Linux 8.9 (Green Obsidian), x86_64, AMD EPYC 7702 64-Core Processor (zen2), Python 3.9.18
See https://gist.github.com/Flamefire/acf34db8841e4dce14e07f727149efc3 for a full test report.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire
SUCCESS
Build succeeded for 3 out of 3 (2 easyconfigs in total)
login1.barnard.hpc.tu-dresden.de - Linux RHEL 8.9 (Ootpa), x86_64, Intel(R) Xeon(R) Platinum 8470 (sapphirerapids), Python 3.9.18
See https://gist.github.com/Flamefire/2e513dba167fed82bae0fbd7cb03a763 for a full test report.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
c43 - Linux AlmaLinux 9.4, x86_64, AMD EPYC 9334 32-Core Processor (zen4), 4 x NVIDIA NVIDIA H100, 560.35.03, Python 3.9.18
See https://gist.github.com/Flamefire/259e15d9f3a3182719b490b7d0164a53 for a full test report.

…s: Triton-2.3.1_disable-dependency-download.patch
@Flamefire Flamefire force-pushed the 20250617142956_new_pr_Triton231 branch from 5ca11e9 to 97679e5 Compare June 18, 2025 08:43
@Flamefire
Copy link
Contributor Author

Test report by @Flamefire
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#3786
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
n1342 - Linux RHEL 8.9 (Ootpa), x86_64, Intel(R) Xeon(R) Platinum 8470 (sapphirerapids), Python 3.9.18
See https://gist.github.com/Flamefire/4cdcc25ac7ad243bae43147e66e6677e for a full test report.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#3786
SUCCESS
Build succeeded for 2 out of 2 (2 easyconfigs in total)
i7094 - Linux Rocky Linux 8.9 (Green Obsidian), x86_64, AMD EPYC 7702 64-Core Processor (zen2), Python 3.9.18
See https://gist.github.com/Flamefire/c970eb2b330332fd41f745368ab3d2e2 for a full test report.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#3786
SUCCESS
Build succeeded for 35 out of 35 (2 easyconfigs in total)
c74 - Linux AlmaLinux 9.4, x86_64, AMD EPYC 9334 32-Core Processor (zen4), 4 x NVIDIA NVIDIA H100, 560.35.03, Python 3.9.18
See https://gist.github.com/Flamefire/48ed748a42282639aecbfb40188fe1de for a full test report.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#3786
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
c97 - Linux AlmaLinux 9.4, x86_64, AMD EPYC 9334 32-Core Processor (zen4), 4 x NVIDIA NVIDIA H100, 560.35.03, Python 3.9.18
See https://gist.github.com/Flamefire/ebec6dd3b3b4c0125baf1cc1cac78983 for a full test report.

@boegel boegel added this to the next release (5.1.2) milestone Aug 8, 2025
@boegel
Copy link
Member

boegel commented Aug 8, 2025

@boegelbot please test @ jsc-zen3-a100
CORE_CNT=16
EB_ARGS="--include-easyblocks-from-pr 3786"

@boegelbot
Copy link
Collaborator

@boegel: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=23119 EB_ARGS="--include-easyblocks-from-pr 3786" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_23119 --ntasks="16" --partition=jsczen3g --gres=gpu:1 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 7522

Test results coming soon (I hope)...

Details

- notification for comment with ID 3167079481 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#3786
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
jsczen3g1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), 1 x NVIDIA NVIDIA A100 80GB PCIe, 575.57.08, Python 3.9.21
See https://gist.github.com/boegelbot/61da962249a007ec3f760e5e27f6f866 for a full test report.

Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@boegel
Copy link
Member

boegel commented Aug 12, 2025

Test report by @boegel
FAILED
Build succeeded for 0 out of 1 (1 easyconfigs in total)
node3300.joltik.os - Linux RHEL 9.4, x86_64, Intel(R) Xeon(R) Gold 6242 CPU @ 2.80GHz (cascadelake), 1 x NVIDIA Tesla V100-SXM2-32GB, 570.133.20, Python 3.9.18
See https://gist.github.com/boegel/661c734f07edc8510d48a2c7b1d33b00 for a full test report.

edit: ignore, this is what happens when you build without updated easyblock from easybuilders/easybuild-easyblocks#3786:

  CMake Error at CMakeLists.txt:177 (find_package):
    Could not find a package configuration file provided by "MLIR" with any of
    the following names:

      MLIRConfig.cmake
      mlir-config.cmake

@boegel
Copy link
Member

boegel commented Aug 12, 2025

Test report by @boegel
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#3786
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
node3300.joltik.os - Linux RHEL 9.4, x86_64, Intel(R) Xeon(R) Gold 6242 CPU @ 2.80GHz (cascadelake), 1 x NVIDIA Tesla V100-SXM2-32GB, 570.133.20, Python 3.9.18
See https://gist.github.com/boegel/e0d089aa55264afc40ac3f5ec61b14dc for a full test report.

@boegel
Copy link
Member

boegel commented Aug 12, 2025

Going in, thanks @Flamefire!

@boegel boegel merged commit a59eed8 into easybuilders:develop Aug 12, 2025
8 checks passed
@Flamefire Flamefire deleted the 20250617142956_new_pr_Triton231 branch August 13, 2025 08:04
@branfosj
Copy link
Member

@boegelbot please test @ jsc-zen3-a100
CORE_CNT=16
EB_ARGS="--module-syntax=Tcl --installpath=/tmp/pr23119"

@boegelbot
Copy link
Collaborator

@branfosj: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=23119 EB_ARGS="--module-syntax=Tcl --installpath=/tmp/pr23119" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_23119 --ntasks="16" --partition=jsczen3g --gres=gpu:1 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 8100

Test results coming soon (I hope)...

Details

- notification for comment with ID 3352590058 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@Flamefire
Copy link
Contributor Author

This reminds me to also sue the PTXAS version expected by Triton which is 12.3.52 not 12.4: #24061

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
FAILED
Build succeeded for 0 out of 1 (1 easyconfigs in total)
jsczen3g1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), 1 x NVIDIA NVIDIA A100 80GB PCIe, 580.82.07, Python 3.9.21
See https://gist.github.com/boegelbot/ff1166f825a9562b71a012e37ea87aa9 for a full test report.

@branfosj
Copy link
Member

I was expecting this error

Lmod has detected the following error:
/tmp/eb-euvuahcw/tmpvhgy06te/all/Triton/2.3.1-foss-2023b-CUDA-12.4.0:
(Triton/2.3.1-foss-2023b-CUDA-12.4.0): can't read "::env(CUDA_HOME)": no such
variable 

Tcl module files and Lmod fails on the use of $CUDA_HOME in:

modextravars = {
    'TRITON_PTXAS_PATH': '$CUDA_HOME/bin/ptxas',
    # ensure that libdevice.10.bc from $EBROOTCUDA/nvvm/libdevice is used:
    'TRITON_LIBDEVICE_PATH': '$CUDA_HOME/nvvm/libdevice/libdevice.10.bc'
}

The environment variable has to be available and when that is evaluated is before CUDA_HOME is known.

@Flamefire
Copy link
Contributor Author

The environment variable has to be available and when that is evaluated is before CUDA_HOME is known.

But how/why did this work before?

@branfosj
Copy link
Member

The environment variable has to be available and when that is evaluated is before CUDA_HOME is known.

But how/why did this work before?

This build was with --module-syntax=Tcl. The default build is using Lua module files.

@Flamefire
Copy link
Contributor Author

So how do we resolve this? IIRC using variables in modextravars is rather new and there was a different approach before that, wasn't there?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants