summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludovic.courtes@inria.fr>2026-04-27 15:49:44 +0200
committerLudovic Courtès <ludo@gnu.org>2026-05-03 22:45:48 +0200
commit2b94e23e7cf142c172b04d9d0d5fb49c1a84a26b (patch)
treeaeb7eec77a31e96ca3ccdb5b4f8eeb654f80ee76 /gnu
parenta3373301a8fe6885dd6455838504b0c9602a79d2 (diff)
gnu: ucx, libfabric, openmpi: Remove ROCm support from the default variants.
* gnu/packages/fabric-management.scm (ucx)[inputs]: Remove ‘rocr-runtime’. [arguments]: Make ‘--with-rocm’ flag conditional. (ucx-rocm): New variable. * gnu/packages/linux.scm (libfabric)[inputs]: Remove ‘rocr-runtime’. (libfabric-rocm): New variable. * gnu/packages/mpi.scm (openmpi-rocm): Modify the inherited arguments rather than those of ‘openmpi-5’. Replace ‘ucx’ and ‘libfabric’ with their ‘-rocm’ variant. Fixes: guix/guix#7225 Change-Id: I355f38083313680058511f87a7a5d9068134f162 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #8188
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/fabric-management.scm22
-rw-r--r--gnu/packages/linux.scm12
-rw-r--r--gnu/packages/mpi.scm8
3 files changed, 33 insertions, 9 deletions
diff --git a/gnu/packages/fabric-management.scm b/gnu/packages/fabric-management.scm
index 15fd751f045..d979d87f302 100644
--- a/gnu/packages/fabric-management.scm
+++ b/gnu/packages/fabric-management.scm
@@ -2,7 +2,7 @@
2;;; Copyright © 2017 Dave Love <fx@gnu.org> 2;;; Copyright © 2017 Dave Love <fx@gnu.org>
3;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> 3;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
4;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> 4;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
5;;; Copyright © 2019, 2023 Ludovic Courtès <ludo@gnu.org> 5;;; Copyright © 2019, 2023, 2026 Ludovic Courtès <ludo@gnu.org>
6;;; 6;;;
7;;; This file is part of GNU Guix. 7;;; This file is part of GNU Guix.
8;;; 8;;;
@@ -226,15 +226,19 @@ testing InfiniBand networks.")
226 226
227 (string-append "--with-rdmacm=" 227 (string-append "--with-rdmacm="
228 #$(this-package-input "rdma-core")) 228 #$(this-package-input "rdma-core"))
229 (string-append "--with-rocm=" 229
230 #$(this-package-input "rocr-runtime"))) 230 #$@(if (this-package-input "rocr-runtime")
231 #~((string-append "--with-rocm="
232 #$(this-package-input
233 "rocr-runtime")))
234 #~()))
231 235
232 ;; Be verbose so that compiler flags are displayed. 236 ;; Be verbose so that compiler flags are displayed.
233 #:make-flags #~'("V=1"))) 237 #:make-flags #~'("V=1")))
234 (native-inputs 238 (native-inputs
235 (list autoconf automake libtool pkg-config)) 239 (list autoconf automake libtool pkg-config))
236 (inputs 240 (inputs
237 (list numactl rdma-core rocr-runtime)) 241 (list numactl rdma-core))
238 (synopsis "Optimized communication layer for message passing in HPC") 242 (synopsis "Optimized communication layer for message passing in HPC")
239 (description 243 (description
240 "Unified Communication X (UCX) provides an optimized communication layer 244 "Unified Communication X (UCX) provides an optimized communication layer
@@ -250,3 +254,13 @@ memory mechanisms for efficient intra-node communication.")
250 ;; and x86_64 as supported. 254 ;; and x86_64 as supported.
251 (supported-systems '("x86_64-linux" "aarch64-linux" "powerpc64le-linux" 255 (supported-systems '("x86_64-linux" "aarch64-linux" "powerpc64le-linux"
252 "riscv64-linux")))) 256 "riscv64-linux"))))
257
258;; Note: ROCm support is kept separate to avoid a significant increase in
259;; closure size: <https://codeberg.org/guix/guix/issues/7225>.
260(define-public ucx-rocm
261 (package/inherit ucx
262 (name "ucx-rocm")
263 (inputs (modify-inputs inputs
264 (append rocr-runtime)))
265 (synopsis "Optimized communication layer for message passing in HPC (with
266ROCm support)")))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 469a6f0c2a0..9ee8f2362b8 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1,5 +1,5 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2012-2021, 2021-2025 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2012-2021, 2021-2026 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr> 3;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
4;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> 4;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
5;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org> 5;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
@@ -10460,7 +10460,6 @@ known as Slingshot.")
10460 (cons package extra) 10460 (cons package extra)
10461 '())))) 10461 '()))))
10462 (append (list rdma-core libnl) 10462 (append (list rdma-core libnl)
10463 (if-supported rocr-runtime)
10464 (if-supported psm) 10463 (if-supported psm)
10465 (if-supported psm2) 10464 (if-supported psm2)
10466 (if-supported libcxi curl json-c)))) 10465 (if-supported libcxi curl json-c))))
@@ -10504,6 +10503,15 @@ applications deal with directly. It works in conjunction with provider
10504libraries, which are often integrated directly into libfabric.") 10503libraries, which are often integrated directly into libfabric.")
10505 (license (list license:bsd-2 license:gpl2)))) ;dual 10504 (license (list license:bsd-2 license:gpl2)))) ;dual
10506 10505
10506;; Note: ROCm support is kept separate to avoid a significant increase in
10507;; closure size: <https://codeberg.org/guix/guix/issues/7225>.
10508(define-public libfabric-rocm
10509 (package/inherit libfabric
10510 (name "libfabric-rocm")
10511 (inputs (modify-inputs inputs
10512 (append rocr-runtime)))
10513 (synopsis "Open Fabric Interfaces (with ROCm support)")))
10514
10507(define-public libfabric-1 ;needed by Open MPI 4.x 10515(define-public libfabric-1 ;needed by Open MPI 4.x
10508 (package 10516 (package
10509 (inherit libfabric) 10517 (inherit libfabric)
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index bd891940e1d..5d975bc7532 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -1,6 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014, 2015, 2018, 2019 Eric Bavier <bavier@member.fsf.org> 2;;; Copyright © 2014, 2015, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
3;;; Copyright © 2014-2025 Ludovic Courtès <ludo@gnu.org> 3;;; Copyright © 2014-2026 Ludovic Courtès <ludo@gnu.org>
4;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> 4;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> 5;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
6;;; Copyright © 2017 Dave Love <fx@gnu.org> 6;;; Copyright © 2017 Dave Love <fx@gnu.org>
@@ -432,7 +432,7 @@ software vendors, application developers and computer science researchers.")
432 (package/inherit openmpi-5 432 (package/inherit openmpi-5
433 (name "openmpi-rocm") 433 (name "openmpi-rocm")
434 (arguments 434 (arguments
435 (substitute-keyword-arguments (package-arguments openmpi-5) 435 (substitute-keyword-arguments arguments
436 ((#:configure-flags flags '()) 436 ((#:configure-flags flags '())
437 #~(cons* (string-append "--with-rocm=" 437 #~(cons* (string-append "--with-rocm="
438 #$(this-package-input "rocm-hip-runtime")) 438 #$(this-package-input "rocm-hip-runtime"))
@@ -440,7 +440,9 @@ software vendors, application developers and computer science researchers.")
440 (inputs (modify-inputs (package-inputs openmpi-5) 440 (inputs (modify-inputs (package-inputs openmpi-5)
441 ;; XXX: This might break openmpi-5 for architectures where ROCm 441 ;; XXX: This might break openmpi-5 for architectures where ROCm
442 ;; is not supported. 442 ;; is not supported.
443 (append rocm-hip-runtime))) 443 (append rocm-hip-runtime)
444 (replace "ucx" ucx-rocm)
445 (replace "libfabric" libfabric-rocm)))
444 (synopsis "MPI-3 implementation (with ROCm support)"))) 446 (synopsis "MPI-3 implementation (with ROCm support)")))
445 447
446(define-public openmpi-c++ 448(define-public openmpi-c++