Skip to content

{lang}[GCCcore/14.2.0] PyCUDA v2025.1.1, PyOpenGL v3.1.10 w/ CUDA 12.8.0#23558

Open
ekieffer wants to merge 11 commits intoeasybuilders:developfrom
ekieffer:20250801132347_new_pr_PyCUDA202511
Open

{lang}[GCCcore/14.2.0] PyCUDA v2025.1.1, PyOpenGL v3.1.10 w/ CUDA 12.8.0#23558
ekieffer wants to merge 11 commits intoeasybuilders:developfrom
ekieffer:20250801132347_new_pr_PyCUDA202511

Conversation

@ekieffer
Copy link
Copy Markdown
Contributor

@ekieffer ekieffer commented Aug 1, 2025

(created using eb --new-pr)

…-3.0.10-GCCcore-14.2.0.eb, PyOpenGL-3.1.9-GCCcore-14.2.0.eb
@github-actions github-actions bot added the update label Aug 1, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Aug 1, 2025

Updated software PyCUDA-2025.1.1-gfbf-2025a-CUDA-12.8.0.eb

Diff against PyCUDA-2024.1-gfbf-2023a-CUDA-12.1.1.eb

easybuild/easyconfigs/p/PyCUDA/PyCUDA-2024.1-gfbf-2023a-CUDA-12.1.1.eb

diff --git a/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2024.1-gfbf-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2025.1.1-gfbf-2025a-CUDA-12.8.0.eb
index f3f7e09133..6f5772f1ed 100644
--- a/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2024.1-gfbf-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2025.1.1-gfbf-2025a-CUDA-12.8.0.eb
@@ -1,30 +1,43 @@
 easyblock = 'PythonBundle'
 
 name = 'PyCUDA'
-version = '2024.1'
+version = '2025.1.1'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://mathema.tician.de/software/pycuda'
 description = 'PyCUDA lets you access Nvidia’s CUDA parallel computation API from Python.'
 
-toolchain = {'name': 'gfbf', 'version': '2023a'}
+toolchain = {'name': 'gfbf', 'version': '2025a'}
+
+builddependencies = [
+    ('Cython', '3.1.1'),
+    ('hatchling', '1.27.0'),
+    ('meson-python', '0.18.0')
+]
 
 dependencies = [
-    ('CUDA', '12.1.1', '', SYSTEM),
-    ('Python', '3.11.3'),
-    ('SciPy-bundle', '2023.07'),
-    ('Mako', '1.2.4'),
-    ('PyOpenGL', '3.1.7'),
+    ('CUDA', '12.8.0', '', SYSTEM),
+    ('Python', '3.13.1'),
+    ('SciPy-bundle', '2025.06'),
+    ('Mako', '1.3.10'),
+    ('PyOpenGL', '3.1.10'),
 ]
 
+
 exts_list = [
-    ('pytools', '2023.1.1', {
-        'checksums': ['80637873d206f6bcedf7cdb46ad93e868acb4ea2256db052dfcca872bdd0321f'],
+    ('pyproject_metadata', '0.9.1', {
+        'checksums': ['b8b2253dd1b7062b78cf949a115f02ba7fa4114aabe63fa10528e9e1a954a816'],
+    }),
+    ('siphash24', '1.8', {
+        'checksums': ['aa932f0af4a7335caef772fdaf73a433a32580405c41eb17ff24077944b0aa97'],
+    }),
+    ('pytools', '2025.2.2', {
+        'checksums': ['88ec51d9233b0a2b0935ed7f153457ee70dfd31a5a0ae400f3fc6cdcaf2d43dd'],
     }),
     (name, version, {
         'preinstallopts': './configure.py --cuda-root="$EBROOTCUDA" --cuda-enable-gl && ',
         'source_tmpl': '%(namelower)s-%(version)s.tar.gz',
-        'checksums': ['d50d23ff6371482cff7d4b953ef40ab81c9df038ecb614484f9fd5347327327e'],
+        'checksums': ['bab0678d43f469c865f5fe6024f481c781ec51fefe6686acd66c672bfabea34f'],
     }),
 ]
 
Diff against PyCUDA-2024.1-foss-2022a-CUDA-11.7.0.eb

easybuild/easyconfigs/p/PyCUDA/PyCUDA-2024.1-foss-2022a-CUDA-11.7.0.eb

diff --git a/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2024.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2025.1.1-gfbf-2025a-CUDA-12.8.0.eb
index ae4f10ed98..6f5772f1ed 100644
--- a/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2024.1-foss-2022a-CUDA-11.7.0.eb
+++ b/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2025.1.1-gfbf-2025a-CUDA-12.8.0.eb
@@ -1,30 +1,48 @@
 easyblock = 'PythonBundle'
 
 name = 'PyCUDA'
-version = '2024.1'
+version = '2025.1.1'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://mathema.tician.de/software/pycuda'
 description = 'PyCUDA lets you access Nvidia’s CUDA parallel computation API from Python.'
 
-toolchain = {'name': 'foss', 'version': '2022a'}
+toolchain = {'name': 'gfbf', 'version': '2025a'}
+
+builddependencies = [
+    ('Cython', '3.1.1'),
+    ('hatchling', '1.27.0'),
+    ('meson-python', '0.18.0')
+]
 
 dependencies = [
-    ('CUDA', '11.7.0', '', SYSTEM),
-    ('Python', '3.10.4'),
-    ('SciPy-bundle', '2022.05'),
-    ('Mako', '1.2.0'),
+    ('CUDA', '12.8.0', '', SYSTEM),
+    ('Python', '3.13.1'),
+    ('SciPy-bundle', '2025.06'),
+    ('Mako', '1.3.10'),
+    ('PyOpenGL', '3.1.10'),
 ]
 
+
 exts_list = [
-    ('pytools', '2023.1.1', {
-        'checksums': ['80637873d206f6bcedf7cdb46ad93e868acb4ea2256db052dfcca872bdd0321f'],
+    ('pyproject_metadata', '0.9.1', {
+        'checksums': ['b8b2253dd1b7062b78cf949a115f02ba7fa4114aabe63fa10528e9e1a954a816'],
+    }),
+    ('siphash24', '1.8', {
+        'checksums': ['aa932f0af4a7335caef772fdaf73a433a32580405c41eb17ff24077944b0aa97'],
+    }),
+    ('pytools', '2025.2.2', {
+        'checksums': ['88ec51d9233b0a2b0935ed7f153457ee70dfd31a5a0ae400f3fc6cdcaf2d43dd'],
     }),
     (name, version, {
-        'preinstallopts': './configure.py --cuda-root="$EBROOTCUDA" && ',
+        'preinstallopts': './configure.py --cuda-root="$EBROOTCUDA" --cuda-enable-gl && ',
         'source_tmpl': '%(namelower)s-%(version)s.tar.gz',
-        'checksums': ['d50d23ff6371482cff7d4b953ef40ab81c9df038ecb614484f9fd5347327327e'],
+        'checksums': ['bab0678d43f469c865f5fe6024f481c781ec51fefe6686acd66c672bfabea34f'],
     }),
 ]
 
+sanity_check_commands = [
+    'python -c "import pycuda.gl"'
+]
+
 moduleclass = 'lang'

Updated software PyOpenGL-3.1.10-GCCcore-14.2.0.eb

Diff against PyOpenGL-3.1.10-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.10-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.10-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.10-GCCcore-14.2.0.eb
index 538f9c3883..be835c3df9 100644
--- a/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.10-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.10-GCCcore-14.2.0.eb
@@ -6,16 +6,16 @@ version = '3.1.10'
 homepage = 'http://pyopengl.sourceforge.net'
 description = """PyOpenGL is the most common cross platform Python binding to OpenGL and related APIs."""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Cython', '3.1.2'),
+    ('binutils', '2.42'),
+    ('Cython', '3.1.1'),
 ]
 
 dependencies = [
-    ('Python', '3.13.5'),
-    ('OpenGL', '2025.09'),
+    ('Python', '3.13.1'),
+    ('Mesa', '25.1.3'),
 ]
 
 exts_list = [
Diff against PyOpenGL-3.1.9-GCCcore-13.2.0.eb

easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.9-GCCcore-13.2.0.eb

diff --git a/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.9-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.10-GCCcore-14.2.0.eb
index 9b5b7d9c79..be835c3df9 100644
--- a/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.9-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.10-GCCcore-14.2.0.eb
@@ -1,33 +1,33 @@
 easyblock = 'PythonBundle'
 
 name = 'PyOpenGL'
-version = '3.1.9'
+version = '3.1.10'
 
 homepage = 'http://pyopengl.sourceforge.net'
 description = """PyOpenGL is the most common cross platform Python binding to OpenGL and related APIs."""
 
-toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 builddependencies = [
-    ('binutils', '2.40'),
-    ('Cython', '3.0.10'),
+    ('binutils', '2.42'),
+    ('Cython', '3.1.1'),
 ]
 
 dependencies = [
-    ('Python', '3.11.5'),
-    ('Mesa', '23.1.9'),
+    ('Python', '3.13.1'),
+    ('Mesa', '25.1.3'),
 ]
 
 exts_list = [
     (name, version, {
         'modulename': 'OpenGL',
-        'source_tmpl': SOURCELOWER_TAR_GZ,
-        'checksums': ['28ebd82c5f4491a418aeca9672dffb3adbe7d33b39eada4548a5b4e8c03f60c8'],
+        'source_tmpl': '%(namelower)s-%(version)s.tar.gz',
+        'checksums': ['c4a02d6866b54eb119c8e9b3fb04fa835a95ab802dd96607ab4cdb0012df8335'],
     }),
     ('PyOpenGL-accelerate', version, {
         'modulename': 'OpenGL_accelerate',
         'source_tmpl': 'pyopengl_accelerate-%(version)s.tar.gz',
-        'checksums': ['85957c7c76975818ff759ec9243f9dc7091ef6f373ea37a2eb50c320fd9a86f3'],
+        'checksums': ['82751c83f0a6f732b8b5923990edc2441d38176a98756b1718e8d6c4379f5a71'],
     }),
 ]
 
Diff against PyOpenGL-3.1.7-GCCcore-12.3.0.eb

easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.7-GCCcore-12.3.0.eb

diff --git a/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.7-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.10-GCCcore-14.2.0.eb
index 08411296ce..be835c3df9 100644
--- a/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.7-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/p/PyOpenGL/PyOpenGL-3.1.10-GCCcore-14.2.0.eb
@@ -1,31 +1,33 @@
 easyblock = 'PythonBundle'
 
 name = 'PyOpenGL'
-version = '3.1.7'
+version = '3.1.10'
 
 homepage = 'http://pyopengl.sourceforge.net'
 description = """PyOpenGL is the most common cross platform Python binding to OpenGL and related APIs."""
 
-toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 builddependencies = [
-    ('binutils', '2.40'),
-    ('bzip2', '1.0.8'),
+    ('binutils', '2.42'),
+    ('Cython', '3.1.1'),
 ]
 
 dependencies = [
-    ('Python', '3.11.3'),
-    ('Mesa', '23.1.4'),
+    ('Python', '3.13.1'),
+    ('Mesa', '25.1.3'),
 ]
 
 exts_list = [
     (name, version, {
         'modulename': 'OpenGL',
-        'checksums': ['eef31a3888e6984fd4d8e6c9961b184c9813ca82604d37fe3da80eb000a76c86'],
+        'source_tmpl': '%(namelower)s-%(version)s.tar.gz',
+        'checksums': ['c4a02d6866b54eb119c8e9b3fb04fa835a95ab802dd96607ab4cdb0012df8335'],
     }),
     ('PyOpenGL-accelerate', version, {
         'modulename': 'OpenGL_accelerate',
-        'checksums': ['2b123621273a939f7fd2ec227541e399f9b5d4e815d69ae0bdb1b6c70a293680'],
+        'source_tmpl': 'pyopengl_accelerate-%(version)s.tar.gz',
+        'checksums': ['82751c83f0a6f732b8b5923990edc2441d38176a98756b1718e8d6c4379f5a71'],
     }),
 ]
 

@ekieffer
Copy link
Copy Markdown
Contributor Author

ekieffer commented Aug 1, 2025

Test report by @ekieffer
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
mel2069 - Linux Rocky Linux 8.10, x86_64, AMD EPYC 7452 32-Core Processor, 4 x NVIDIA NVIDIA A100-SXM4-40GB, 570.133.20, Python 3.6.8
See https://gist.github.com/ekieffer/bd303d00969cc1c6ab8174cd529b01a4 for a full test report.

@Thyre Thyre added the 2025a issues & PRs related to 2025a common toolchains label Aug 1, 2025
@Thyre
Copy link
Copy Markdown
Collaborator

Thyre commented Aug 18, 2025

This PR partially includes changes from your other PR #23545.
To make reviewing easier, it's best to only have these EasyConfigs in one PR, and mention them in the PR description, e.g. like this:

Requires:

easyblock = 'PythonPackage'

name = 'Cython'
version = '3.0.10'
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is there a reason why we need Cython 3.0.10 when we already have Cython-3.1.1-GCCcore-14.2.0.eb in the same toolchain?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Moving Cython 3.0.10 to 3.1.1

Comment on lines +22 to +23
('Meson', '1.6.1'),
('hatchling', '1.27.0')
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Are these actual dependencies or just builddependencies?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Moving to builddependencies

Comment on lines +33 to +36
('meson_python', '0.18.0', {
'modulename': 'mesonpy',
'checksums': ['c56a99ec9df669a40662fe46960321af6e4b14106c14db228709c1628e23848d'],
}),
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We have meson-python-0.18.0-GCCcore-14.2.0.eb which should hopefully fulfill the same purpose.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Ok, I will remove the ext for the easyconfig

@Thyre
Copy link
Copy Markdown
Collaborator

Thyre commented Sep 2, 2025

@boegelbot please test @ jsc-zen3-a100

@boegelbot
Copy link
Copy Markdown
Collaborator

@Thyre: 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=23558 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_23558 --ntasks=8 --partition=jsczen3g --gres=gpu:1 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 3245642464 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).

@ekieffer
Copy link
Copy Markdown
Contributor Author

ekieffer commented Sep 2, 2025

Test report by @ekieffer
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
mel2109 - Linux Rocky Linux 8.10, x86_64, AMD EPYC 7452 32-Core Processor, 4 x NVIDIA NVIDIA A100-SXM4-40GB, 570.133.20, Python 3.6.8
See https://gist.github.com/ekieffer/4dfb894df08924adb65cb2ebd75eee08 for a full test report.

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 2 out of 2 (2 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/b16d4076f5af23381faf2792e48efe03 for a full test report.

@ekieffer ekieffer changed the title {lang}[GCCcore/14.2.0] PyCUDA v2025.1.1, Cython v3.0.10, PyOpenGL v3.1.9 w/ CUDA 12.8.0 {lang}[GCCcore/14.2.0] PyCUDA v2025.1.1, PyOpenGL v3.1.10 w/ CUDA 12.8.0 Sep 2, 2025
@Thyre
Copy link
Copy Markdown
Collaborator

Thyre commented Dec 15, 2025

@boegelbot please test @ jsc-zen3-a100

@boegelbot
Copy link
Copy Markdown
Collaborator

@Thyre: 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=23558 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_23558 --ntasks=8 --partition=jsczen3g --gres=gpu:1 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 3654587954 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).

@Thyre
Copy link
Copy Markdown
Collaborator

Thyre commented Dec 15, 2025

Test report by @Thyre
SUCCESS
Build succeeded for 2 out of 2 (total: 3 mins 13 secs) (2 easyconfigs in total)
jrc0901.jureca - Linux Rocky Linux 9.6, AArch64, ARM UNKNOWN (neoverse_v2), 1 x NVIDIA NVIDIA GH200 480GB, 580.95.05, Python 3.9.21
See https://gist.github.com/Thyre/51bc88fedfaa9c56543b00ddc23fd12e for a full test report.

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 2 out of 2 (total: 8 mins 8 secs) (2 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.95.05, Python 3.9.21
See https://gist.github.com/boegelbot/e4182da849bb9a39bcba16ed0083ca66 for a full test report.

@boegel boegel added this to the next release (5.2.1?) milestone Dec 29, 2025
boegel
boegel previously approved these changes Dec 29, 2025
Copy link
Copy Markdown
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
Copy Markdown
Member

boegel commented Dec 31, 2025

Test report by @boegel
FAILED
Build succeeded for 1 out of 2 (total: 6 mins 31 secs) (2 easyconfigs in total)
node3900.accelgor.os - Linux RHEL 9.6, x86_64, AMD EPYC 7413 24-Core Processor (zen3), 1 x NVIDIA NVIDIA A100-SXM4-80GB, 580.95.05, Python 3.9.21
See https://gist.github.com/boegel/c79a96a7776861babeebf043fc37b733 for a full test report.

@boegel
Copy link
Copy Markdown
Member

boegel commented Dec 31, 2025

failing sanity check:

pytools 2025.2.2 requires siphash24, which is not installed

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

Labels

2025a issues & PRs related to 2025a common toolchains update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants