Skip to content

{ai}[foss/2025a] BoTorch v0.17.0 w/ CUDA 12.8.0#25547

Open
JarneRenders wants to merge 2 commits intoeasybuilders:developfrom
JarneRenders:20260311160856_new_pr_BoTorch0170
Open

{ai}[foss/2025a] BoTorch v0.17.0 w/ CUDA 12.8.0#25547
JarneRenders wants to merge 2 commits intoeasybuilders:developfrom
JarneRenders:20260311160856_new_pr_BoTorch0170

Conversation

@JarneRenders
Copy link
Copy Markdown
Contributor

@JarneRenders JarneRenders commented Mar 11, 2026

@github-actions github-actions bot added 2025a issues & PRs related to 2025a common toolchains update labels Mar 11, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 11, 2026

Updated software BoTorch-0.17.0-foss-2025a-CUDA-12.8.0.eb

Diff against BoTorch-0.16.1-foss-2024a.eb

easybuild/easyconfigs/b/BoTorch/BoTorch-0.16.1-foss-2024a.eb

diff --git a/easybuild/easyconfigs/b/BoTorch/BoTorch-0.16.1-foss-2024a.eb b/easybuild/easyconfigs/b/BoTorch/BoTorch-0.17.0-foss-2025a-CUDA-12.8.0.eb
index 76e7d5e653..00b36c7283 100644
--- a/easybuild/easyconfigs/b/BoTorch/BoTorch-0.16.1-foss-2024a.eb
+++ b/easybuild/easyconfigs/b/BoTorch/BoTorch-0.17.0-foss-2025a-CUDA-12.8.0.eb
@@ -1,59 +1,60 @@
 easyblock = 'PythonBundle'
 
 name = 'BoTorch'
-version = '0.16.1'
-local_pytorch_version = '2.6.0'
+version = '0.17.0'
+versionsuffix = '-CUDA-%(cudaver)s'
 
-homepage = 'https://botorch.org'
+homepage = 'https://botorch.org/'
 description = "BoTorch is a library for Bayesian Optimization built on PyTorch."
 
-toolchain = {'name': 'foss', 'version': '2024a'}
+toolchain = {'name': 'foss', 'version': '2025a'}
+
+github_account = 'meta-pytorch'
 
 builddependencies = [
-    ('Cython', '3.0.10'),
+    ('setuptools', '80.9.0'),
     ('hatchling', '1.27.0'),
+    ('Cython', '3.1.1'),
 ]
 dependencies = [
-    ('Python', '3.12.3'),
-    ('SciPy-bundle', '2024.05'),
-    ('PyTorch', local_pytorch_version),
-    ('GPyTorch', '1.14.3'),
-    ('pyro-ppl', '1.9.1'),
+    ('CUDA', '12.8.0', '', SYSTEM),
+    ('Python', '3.13.1'),
+    ('SciPy-bundle', '2025.06'),
+    ('PyTorch', '2.9.1', f'{versionsuffix}-whl'),
+    ('GPyTorch', '1.15.1', versionsuffix),
     ('Deprecated', '1.2.18'),
-    ('matplotlib', '3.9.2'),
-    ('flit-core', '3.12.0'),
+    ('matplotlib', '3.10.3'),
 ]
 
 exts_list = [
-    ('packaging', '25.0', {
-        'checksums': ['d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f'],
-    }),
-    ('cffi', '1.17.1', {
+    ('cffi', '1.17.1', {  # Needed for tests
         'checksums': ['1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824'],
     }),
-    ('graphemeu', '0.7.2', {
+    ('graphemeu', '0.7.2', {  # Exact version needed for alive-progress
         'modulename': 'grapheme',
         'checksums': ['42bbe373d7c146160f286cd5f76b1a8ad29172d7333ce10705c5cc282462a4f8'],
     }),
-    ('about-time', '4.2.1', {
+    ('about-time', '4.2.1', {  # Exact version needed for alive-progress
         'checksums': ['6a538862d33ce67d997429d14998310e1dbfda6cb7d9bbfbf799c4709847fece'],
     }),
-    ('mypy_extensions', '1.1.0', {
+    ('mypy_extensions', '1.1.0', {  # Needed for tests
+        'preinstallopts': "sed -i '/license/d' pyproject.toml && ",
         'checksums': ['52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558'],
     }),
-    ('typing_inspect', '0.9.0', {
+    ('typing_inspect', '0.9.0', {  # Needed for tests
         'checksums': ['b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78'],
     }),
-    ('moocore', '0.1.10', {
-        'checksums': ['e7236d01723ef30d68aa717c28d0b843b404cbd900d4d5ea58093b17e5bc9595'],
+    ('moocore', '0.2.0', {  # Needed by pymoo
+        'checksums': ['3dc601f85f9a4743ed50ddd027dca30e3bb55c899916a092c2ece495b1b2de08'],
     }),
-    ('cma', '4.4.1', {
-        'checksums': ['bf0621d4f52cf3354be3d0a5cd439ffed52f24f429ab02c23cf0f8ca16d427d8'],
+    ('cma', '4.4.4', {  # Needed by pymoo
+        'source_templ': SOURCE_PY3_WHL,
+        'checksums': ['632bd654b5dce04c0eaa3166679d3e4773ce7a79eab7934e7f363c341b9a8170'],
     }),
-    ('autograd', '1.8.0', {
+    ('autograd', '1.8.0', {  # Needed by pymoo
         'checksums': ['107374ded5b09fc8643ac925348c0369e7b0e73bbed9565ffd61b8fd04425683'],
     }),
-    ('alive-progress', '3.3.0', {
+    ('alive-progress', '3.3.0', {  # Needed by pymoo
         'checksums': ['457dd2428b48dacd49854022a46448d236a48f1b7277874071c39395307e830c'],
     }),
     ('multipledispatch', '1.0.0', {
@@ -68,9 +69,20 @@ exts_list = [
         'checksums': ['33ef39c916da70373a3d597be0742a1bb391b6a9138ce6b5e5ba9d462acdf529'],
     }),
     ('botorch', version, {
+        # Grab GitHub sources for tests
+        'source_urls': [GITHUB_LOWER_SOURCE],
+        'sources': ['v%(version)s.tar.gz'],
+        'preinstallopts': """sed -i '/write_to/s/.*/fallback_version = "0.17.0"/' pyproject.toml && """,
         'testinstall': True,
-        'runtest': 'pytest -v test_community --ignore=test_community/models/test_prior_fitted_network.py',
-        'checksums': ['2a9ec7e43f1acddcf0c170ba084443e128696bc02f0ef9a48cc720f13f71713b'],
+        'runtest': (
+            'pytest -v test_community --ignore=test_community/models/test_prior_fitted_network.py || '
+            # create all tensors on cpu only to fix:
+            # RuntimeError: Expected all tensors to be on the same device, but found at least two devices,
+            # cpu and cuda:0! (when checking argument for argument mat2 in method wrapper_CUDA_mm)
+            'CUDA_VISIBLE_DEVICES="" '
+            'pytest -v test_community --ignore=test_community/models/test_prior_fitted_network.py --last-failed'
+        ),
+        'checksums': ['1e1e1f8f4af38ddcb614a036e8ee748f33797c4bd4f7ab55703db711b92fb5ba'],
     }),
 ]
 
Diff against BoTorch-0.16.1-foss-2024a-CUDA-12.6.0.eb

easybuild/easyconfigs/b/BoTorch/BoTorch-0.16.1-foss-2024a-CUDA-12.6.0.eb

diff --git a/easybuild/easyconfigs/b/BoTorch/BoTorch-0.16.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/b/BoTorch/BoTorch-0.17.0-foss-2025a-CUDA-12.8.0.eb
index 9420333d6a..00b36c7283 100644
--- a/easybuild/easyconfigs/b/BoTorch/BoTorch-0.16.1-foss-2024a-CUDA-12.6.0.eb
+++ b/easybuild/easyconfigs/b/BoTorch/BoTorch-0.17.0-foss-2025a-CUDA-12.8.0.eb
@@ -1,59 +1,60 @@
 easyblock = 'PythonBundle'
 
 name = 'BoTorch'
-version = '0.16.1'
+version = '0.17.0'
 versionsuffix = '-CUDA-%(cudaver)s'
-local_pytorch_version = '2.7.1'
 
-homepage = 'https://botorch.org'
+homepage = 'https://botorch.org/'
 description = "BoTorch is a library for Bayesian Optimization built on PyTorch."
 
-toolchain = {'name': 'foss', 'version': '2024a'}
+toolchain = {'name': 'foss', 'version': '2025a'}
+
+github_account = 'meta-pytorch'
 
 builddependencies = [
-    ('Cython', '3.0.10'),
+    ('setuptools', '80.9.0'),
     ('hatchling', '1.27.0'),
+    ('Cython', '3.1.1'),
 ]
 dependencies = [
-    ('CUDA', '12.6.0', '', SYSTEM),
-    ('Python', '3.12.3'),
-    ('SciPy-bundle', '2024.05'),
-    ('PyTorch', local_pytorch_version, versionsuffix),
-    ('GPyTorch', '1.14.3', versionsuffix),
-    ('pyro-ppl', '1.9.1', versionsuffix),
+    ('CUDA', '12.8.0', '', SYSTEM),
+    ('Python', '3.13.1'),
+    ('SciPy-bundle', '2025.06'),
+    ('PyTorch', '2.9.1', f'{versionsuffix}-whl'),
+    ('GPyTorch', '1.15.1', versionsuffix),
     ('Deprecated', '1.2.18'),
-    ('matplotlib', '3.9.2'),
-    ('flit-core', '3.12.0'),
-    ('setuptools', '80.9.0'),
+    ('matplotlib', '3.10.3'),
 ]
 
 exts_list = [
-    ('cffi', '1.17.1', {
+    ('cffi', '1.17.1', {  # Needed for tests
         'checksums': ['1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824'],
     }),
-    ('graphemeu', '0.7.2', {
+    ('graphemeu', '0.7.2', {  # Exact version needed for alive-progress
         'modulename': 'grapheme',
         'checksums': ['42bbe373d7c146160f286cd5f76b1a8ad29172d7333ce10705c5cc282462a4f8'],
     }),
-    ('about-time', '4.2.1', {
+    ('about-time', '4.2.1', {  # Exact version needed for alive-progress
         'checksums': ['6a538862d33ce67d997429d14998310e1dbfda6cb7d9bbfbf799c4709847fece'],
     }),
-    ('mypy_extensions', '1.1.0', {
+    ('mypy_extensions', '1.1.0', {  # Needed for tests
+        'preinstallopts': "sed -i '/license/d' pyproject.toml && ",
         'checksums': ['52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558'],
     }),
-    ('typing_inspect', '0.9.0', {
+    ('typing_inspect', '0.9.0', {  # Needed for tests
         'checksums': ['b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78'],
     }),
-    ('moocore', '0.1.10', {
-        'checksums': ['e7236d01723ef30d68aa717c28d0b843b404cbd900d4d5ea58093b17e5bc9595'],
+    ('moocore', '0.2.0', {  # Needed by pymoo
+        'checksums': ['3dc601f85f9a4743ed50ddd027dca30e3bb55c899916a092c2ece495b1b2de08'],
     }),
-    ('cma', '4.4.1', {
-        'checksums': ['bf0621d4f52cf3354be3d0a5cd439ffed52f24f429ab02c23cf0f8ca16d427d8'],
+    ('cma', '4.4.4', {  # Needed by pymoo
+        'source_templ': SOURCE_PY3_WHL,
+        'checksums': ['632bd654b5dce04c0eaa3166679d3e4773ce7a79eab7934e7f363c341b9a8170'],
     }),
-    ('autograd', '1.8.0', {
+    ('autograd', '1.8.0', {  # Needed by pymoo
         'checksums': ['107374ded5b09fc8643ac925348c0369e7b0e73bbed9565ffd61b8fd04425683'],
     }),
-    ('alive-progress', '3.3.0', {
+    ('alive-progress', '3.3.0', {  # Needed by pymoo
         'checksums': ['457dd2428b48dacd49854022a46448d236a48f1b7277874071c39395307e830c'],
     }),
     ('multipledispatch', '1.0.0', {
@@ -68,6 +69,10 @@ exts_list = [
         'checksums': ['33ef39c916da70373a3d597be0742a1bb391b6a9138ce6b5e5ba9d462acdf529'],
     }),
     ('botorch', version, {
+        # Grab GitHub sources for tests
+        'source_urls': [GITHUB_LOWER_SOURCE],
+        'sources': ['v%(version)s.tar.gz'],
+        'preinstallopts': """sed -i '/write_to/s/.*/fallback_version = "0.17.0"/' pyproject.toml && """,
         'testinstall': True,
         'runtest': (
             'pytest -v test_community --ignore=test_community/models/test_prior_fitted_network.py || '
@@ -77,7 +82,7 @@ exts_list = [
             'CUDA_VISIBLE_DEVICES="" '
             'pytest -v test_community --ignore=test_community/models/test_prior_fitted_network.py --last-failed'
         ),
-        'checksums': ['2a9ec7e43f1acddcf0c170ba084443e128696bc02f0ef9a48cc720f13f71713b'],
+        'checksums': ['1e1e1f8f4af38ddcb614a036e8ee748f33797c4bd4f7ab55703db711b92fb5ba'],
     }),
 ]
 

('CUDA', '12.8.0', '', SYSTEM),
('Python', '3.13.1'),
('SciPy-bundle', '2025.06'),
('PyTorch', '2.9.1', versionsuffix),
Copy link
Copy Markdown
Contributor

@WilleBell WilleBell Mar 12, 2026

Choose a reason for hiding this comment

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

Should this be ('PyTorch', '2.9.1', f'{versionsuffix}-whl'), ?
If so this PR depends on

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Intention was to depend on #25267 with the whl suffix. Will change this asap

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.

2 participants