Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
7d4a877
Add hwloc-2.11.2-rocm-compilers-19.0.0-ROCm-6.4.1.eb
zerefwayne May 3, 2026
6d0e3db
Add UCX-ROCm-1.18.0-rocm-compilers-19.0.0-ROCm-6.4.1.eb
zerefwayne May 3, 2026
e74c0cc
Try to expose ROCm lib
zerefwayne May 3, 2026
9c85ca0
Expose CPPFLAGS and LDFLAGS
zerefwayne May 3, 2026
7f81e90
Add patch to use EB ROCm-LLVM paths
zerefwayne May 3, 2026
e842057
Remove preconfigopts
zerefwayne May 3, 2026
3fa899b
Add UCC-ROCm-1.3.0-rocm-compilers-19.0.0-ROCm-6.4.1.eb
zerefwayne May 3, 2026
08d3b6e
Fix sanity check commands and inject checksums
zerefwayne May 3, 2026
d5d1615
Move hwloc to hwloc-ROCm
zerefwayne May 3, 2026
1015441
Update hwloc-ROCm dependency in UCC-ROCm
zerefwayne May 3, 2026
c62a7d7
Only build plugins for UCC-ROCm
zerefwayne May 3, 2026
fd18fd4
Add PMIx-5.0.6-rocm-compilers-19.0.0-ROCm-6.4.1.eb
zerefwayne May 3, 2026
79f933a
Add PRRTE-3.0.8-rocm-compilers-19.0.0-ROCm-6.4.1.eb
zerefwayne May 3, 2026
ff8d61e
Modify OpenMPI-5.0.7 to use ROCm libs
zerefwayne May 3, 2026
b1803c0
Fix style check
zerefwayne May 3, 2026
262971e
Add explicit dependencies
zerefwayne May 3, 2026
ab5a802
Fix dependency format for HIP in UCX-ROCm config
zerefwayne May 4, 2026
9a5a7c0
IT ALL WORKS
zerefwayne May 10, 2026
d1c4dd1
Fix and refactor easyconfigs
zerefwayne May 11, 2026
797004b
Fix style checks
zerefwayne May 11, 2026
0559434
Fix failing unit tests
zerefwayne May 11, 2026
029b50a
Add binutils to xpmem dependencies
zerefwayne May 11, 2026
373e0a5
Make sanity checks a bit more lenient
zerefwayne May 11, 2026
9474d1f
Force retrigger build for rompi-2025a
zerefwayne May 11, 2026
264faf3
Pass amdgcn-capabilities to UCC-ROCm
zerefwayne May 11, 2026
0e0ad17
Add initial config based on ucx_plugin easyblock and add patch so tha…
Jun 23, 2026
2007da0
Convert UCX-ROCm and UCC-ROCm to plugins
zerefwayne Jun 25, 2026
60582e0
Remove rmpich files added accidentally
zerefwayne Jul 14, 2026
32ee28c
Revert rompi-2025a.eb
zerefwayne Jul 14, 2026
2f54b11
Fix comments and checksum
zerefwayne Jul 14, 2026
450c0bf
Add cassini-headers-1.1.1.eb
zerefwayne Jul 17, 2026
45b4c16
Add cxi-driver-headers-1.0.0.eb
zerefwayne Jul 17, 2026
379e801
Add libconfig-1.8.1-GCCcore-14.2.0.eb
zerefwayne Jul 17, 2026
b015496
Add libcxi-1.0.2-GCCcore-14.2.0.eb
zerefwayne Jul 17, 2026
87c1072
Add libfabric-1.22.0-rocm-compilers-19.0.0-ROCm-6.4.1.eb
zerefwayne Jul 17, 2026
07374c7
Add libnl-3.11.0-GCCcore-14.2.0.eb
zerefwayne Jul 17, 2026
caa6b18
Add versionsuffix -cxi to libfabric
zerefwayne Jul 17, 2026
bde3135
Reorganise files
zerefwayne Jul 27, 2026
0e73d90
Replace files and versions with hardcoded names
zerefwayne Jul 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions easybuild/easyconfigs/c/cassini-headers/cassini-headers-1.1.1.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Author: Aayush Joglekar <aayush.joglekar@surf.nl>

easyblock = 'Tarball'

name = 'cassini-headers'
version = '1.1.1'

homepage = 'https://github.com/HewlettPackard/shs-cassini-headers'
description = """Cassini ASIC register and user-API headers for the HPE
Slingshot-11 interconnect. Consumed by libcxi and the libfabric cxi provider."""

toolchain = {'name': 'system', 'version': 'system'}

# git tag release/shs-12.0.1 corresponds to cray-cassini-headers-user 1.1.1
sources = [
{
'filename': SOURCE_TAR_GZ,
'git_config': {
'url': 'https://github.com/HewlettPackard',
'repo_name': 'shs-cassini-headers',
'tag': 'release/shs-12.0.1',
'keep_git_dir': False,
},
},
]

sanity_check_paths = {
'files': ['include/cassini_user_defs.h', 'include/cxi_prov_hw.h'],
'dirs': ['include', 'share/cassini-headers'],
}

moduleclass = 'lib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Author: Aayush Joglekar <aayush.joglekar@surf.nl>

easyblock = 'Tarball'

name = 'cxi-driver-headers'
version = '1.0.0'

homepage = 'https://github.com/HewlettPackard/shs-cxi-driver'
description = """Userspace (UAPI) headers for the HPE Slingshot-11 CXI driver
(uapi/misc/cxi.h and linux/cxi.h), defining the ioctl interface that libcxi and
libfabric's cxi provider use to talk to the NIC. This module installs the headers
only; the CXI kernel driver itself is supplied by the host operating system."""

toolchain = {'name': 'system', 'version': 'system'}

# git tag release/shs-12.0.2 corresponds to cray-cxi-driver 1.0.0
sources = [
{
'filename': SOURCE_TAR_GZ,
'git_config': {
'url': 'https://github.com/HewlettPackard',
'repo_name': 'shs-cxi-driver',
'tag': 'release/shs-12.0.2',
'keep_git_dir': False,
},
},
]

sanity_check_paths = {
'files': ['include/uapi/misc/cxi.h'],
'dirs': ['include'],
}

moduleclass = 'lib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Author: Aayush Joglekar <aayush.joglekar@surf.nl>

easyblock = 'ConfigureMake'

name = 'hwloc-ROCm'
version = '2.11.2'
_rocm_version = '6.4.1'

homepage = 'https://www.open-mpi.org/projects/hwloc/'

description = """This provides the RSMI plugin for hwloc, which discovers AMD GPUs
through the ROCm SMI library. It is built as a plugin on top of an existing hwloc
installation and is loaded at runtime via HWLOC_PLUGINS_PATH; hwloc 2.11 has no
separate ROCm plugin, RSMI is the only AMD GPU backend."""

toolchain = {'name': 'rocm-compilers', 'version': '19.0.0-ROCm-6.4.1'}

source_urls = ['https://www.open-mpi.org/software/hwloc/v2.11/downloads/']
sources = ['hwloc-2.11.2.tar.gz']
checksums = ['866ac8ef07b350a6a2ba0c6826c37d78e8994dcbcd443bdd2b436350de19d540']

builddependencies = [
('pkgconf', '2.3.0'),
]

dependencies = [
('hwloc', version),
('numactl', '2.0.19'),
('rocm-smi', '7.6.0', f'-ROCm-{_rocm_version}'), # GCCcore
('HIP', '6.4.1'),
]

configopts = ' '.join([
'--enable-plugins',
'--disable-cuda',
'--disable-nvml',
'--with-rocm=$EBROOTHIP',
'--enable-rsmi',
'--disable-cairo',
'--disable-opencl',
'--disable-levelzero',
'--disable-gl',
'--disable-libxml2',
'--disable-pci',
'--disable-libudev',
])

# Build ONLY the AMD RSMI plugin
build_cmd = 'cd hwloc && make hwloc_rsmi.la'
install_cmd = f'cp hwloc/.libs/hwloc_rsmi.{SHLIB_EXT} %(installdir)s'

modextrapaths = {
'HWLOC_PLUGINS_PATH': '.',
}

sanity_check_paths = {
'files': [f'hwloc_rsmi.{SHLIB_EXT}'],
'dirs': [],
}

# Verify that hwloc can successfully load the new AMD plugin
sanity_check_commands = [
# rsmi backend registers at runtime
"HWLOC_COMPONENTS_VERBOSE=1 lstopo 2>&1 | grep -q 'rsmi'",
# lstopo binary runs cleanly
"lstopo --version",
]

moduleclass = 'system'
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Author: Aayush Joglekar <aayush.joglekar@surf.nl>

easyblock = 'ConfigureMake'

name = 'libconfig'
version = '1.8.1'

homepage = 'https://hyperrealm.github.io/libconfig'
description = "Libconfig is a simple library for processing structured configuration files"

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}

source_urls = ['https://hyperrealm.github.io/libconfig/dist/']
sources = [SOURCE_TAR_GZ]
checksums = [{'libconfig-1.8.1.tar.gz': 'c73ee3d914ec68c99b61e864832931e9a7112eeabfb449dad217fd83e385cbdf'}]

builddependencies = [
('binutils', '2.42'),
('Bison', '3.8.2'),
('flex', '2.6.4'),
]

sanity_check_paths = {
'files': ['include/libconfig.h', 'include/libconfig.h++', 'lib/libconfig.a', 'lib/libconfig++.a',
'lib/libconfig.so', 'lib/libconfig++.so'],
'dirs': ['lib/pkgconfig'],
}

moduleclass = 'lib'
59 changes: 59 additions & 0 deletions easybuild/easyconfigs/l/libcxi/libcxi-1.0.2-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Author: Aayush Joglekar <aayush.joglekar@surf.nl>

easyblock = 'ConfigureMake'

name = 'libcxi'
version = '1.0.2'

homepage = 'https://github.com/HewlettPackard/shs-libcxi'
description = """libcxi is the userspace library for the HPE Slingshot-11
Cassini (CXI) NIC. It is the link-time dependency of libfabric's cxi provider."""

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
toolchainopts = {'pic': True}

# git tag release/shs-12.0.2 corresponds to cray-libcxi 1.0.2
sources = [
{
'filename': SOURCE_TAR_GZ,
'git_config': {
'url': 'https://github.com/HewlettPackard',
'repo_name': 'shs-libcxi',
'tag': 'release/shs-12.0.2',
'keep_git_dir': False,
},
},
]
patches = ['libcxi-1.0.2_build-library-only.patch']
checksums = [
None, # .tgz not reproducible
{'libcxi-1.0.2_build-library-only.patch': '2c83195383bc95751a63362674e201716b1bb21801b5c80a131f22380e491d4b'},
]

builddependencies = [
('binutils', '2.42'),
('pkgconf', '2.3.0'),
('Autotools', '20240712'),
]
dependencies = [
('cassini-headers', '1.1.1', '', SYSTEM),
('cxi-driver-headers', '1.0.0', '', SYSTEM),
('libconfig', '1.8.1'),
('libuv', '1.51.0'),
('libnl', '3.11.0'),
('numactl', '2.0.19'),
]

preconfigopts = "./autogen.sh && "

# --without-rocm does NOT disable GPU-direct over CXI. In libcxi all GPU code
# lives in the (now-stripped) utils/ and tests/; The actual ROCm HMEM (GPU-direct)
# backend is implemented in libfabric's cxi provider and enabled there via --with-rocr.
configopts = "--disable-static --without-systemd --without-rocm --without-cuda --without-ze "

sanity_check_paths = {
'files': ['lib/libcxi.so'],
'dirs': ['include', 'lib/pkgconfig'],
}

moduleclass = 'lib'
Loading
Loading