Remove oss libfabric/1.22.0 in favor of Cray. Update OpenMPI modules with new libfbric

This commit is contained in:
2025-07-24 13:50:23 +02:00
parent 75e3b6a519
commit 737be54866
22 changed files with 572 additions and 60 deletions

View File

@@ -57,26 +57,32 @@ openmpi:
openmpi-5.0.5.tar.bz2: 6588d57c0a4bd299a24103f4e196051b29e8b55fbda49e11d5b3d32030a32776
versions:
# 5.0.6:
# config:
# configure_args+:
# - --enable-mpi1-compatibility
# - --enable-static=no
# variants:
# - systems: [.*.merlin7.psi.ch]
# relstage: unstable
# overlay: Alps
# use_overlays: [PSI, Alps]
# group_deps:
# compiler: {gcc: [14.2.0,12.3.0,8.5.0], intelcc: [22.2]}
# build_requires: [hwloc/2.11.1, patchelf/0.14.5]
# runtime_deps: [cuda/12.2.0, libfabric/1.15.2.0, pmix/5.0.4]
# configure_args+:
# - --with-cxi
# - --with-lustre
# - --with-slingshot
# use_flags: [merlin7, slurm]
5.0.8:
config:
configure_args+:
- --enable-mpi1-compatibility
- --enable-static=no
variants:
- systems: [.*.merlin7.psi.ch]
relstage: stable
overlay: Alps
use_overlays: [PSI, Alps]
group_deps:
compiler: {gcc: [14.2.0,12.3.0]}
build_requires:
- hwloc/2.12.0
- patchelf/0.14.5
- shs-cassini-headers/12.0.1-oss
- shs-cxi-driver/12.0.1-oss
- shs-libcxi/12.0.1-oss
runtime_deps:
- cuda/12.9.1
- pmix/5.0.8
- libfabric/2.2.0-oss
configure_args+:
- --with-lustre
- --with-xpmem
use_flags: [merlin7, slurm]
5.0.5:
config:
configure_args+:
@@ -91,7 +97,7 @@ openmpi:
compiler: {gcc: [14.2.0, 12.3.0, 8.5.0],
intelcc: [22.2]}
build_requires: [hwloc/2.11.1, patchelf/0.14.5]
runtime_deps: [cuda/12.2.0, libfabric/1.15.2.0, pmix/5.0.3]
runtime_deps: [cuda/12.2.0, libfabric/1.22.0, pmix/5.0.3]
configure_args+:
- --with-cxi
- --with-lustre
@@ -141,7 +147,7 @@ openmpi:
group_deps:
compiler: {gcc: [12.3.0, 13.3.0, 14.2.0], intelcc: [22.2]}
build_requires: [hwloc/2.11.1, patchelf/0.14.5]
runtime_deps: [cuda/12.2.0, libfabric/1.15.2.0, pmix/4.2.9]
runtime_deps: [cuda/12.2.0, libfabric/1.22.0, pmix/4.2.9]
configure_args+:
- --enable-mpi1-compatibility
- --enable-static=no

View File

@@ -1,13 +1,9 @@
#!/usr/bin/env modbuild
pbuild::set_download_url "https://github.com/NVIDIA/gdrcopy/archive/v${V_MAJOR}.${V_MINOR}.tar.gz"
pbuild::add_to_group 'Libraries'
pbuild::install_docfiles README.md CHANGELOG.md LICENSE
pbuild::compile_in_sourcetree
pbuild::install() {
pbuild::compile() {
PKG_CONFIG_PATH="${PREFIX}" make prefix="${PREFIX}" CUDA="${CUDA_HOME}" all install
}
pbuild::install() {
./insmod.sh
}

View File

@@ -0,0 +1,47 @@
format: 1
GDRCopy:
defaults:
group: Libraries
relstage: stable
compile_in_sourcetree: true
docfiles:
- LICENSE
- README.md
- CHANGELOG.md
urls:
- url: https://github.com/NVIDIA/gdrcopy/archive/refs/tags/v${V_PKG}.tar.gz
name: gdrcopy-${V_PKG}.tar.gz
shasums:
gdrcopy-2.5.tar.gz: 196400877be7e511edcf2a87b21a605cca99522ff217c97429348fd9153b30d7
v2.4.4.tar.gz: 8802f7bc4a589a610118023bdcdd83c10a56dea399acf6eeaac32e8cc10739a8
v2.3.0.tar.gz: b85d15901889aa42de6c4a9233792af40dd94543e82abe0439e544c87fd79475
v2.2.0.tar.gz: e4be119809391b18c735346d24b3b398dd9421cbff47ef12befbae40d61da45f
versions:
2.5:
config:
relstage: stable
variants:
- systems: [.*.merlin7.psi.ch]
overlay: Alps
use_overlays: [PSI]
use_flags: [merlin7]
build_requires: [cuda/12.9.1]
2.4.4:
config:
relstage: unstable
variants:
- systems: [.*.merlin7.psi.ch]
overlay: Alps
use_overlays: [PSI]
use_flags: [merlin7]
build_requires: [cuda/12.8.1]
- build_requires: [cuda/12.8.1]
2.3.0:
config:
relstage: unstable
build_requires: [cuda/12.1.1]
2.2.0:
config:
relstage: unstable
build_requires: [cuda/11.2.2]

View File

@@ -10,10 +10,15 @@ hwloc:
- --enable-netloc
- --enable-plugins
shasums:
hwloc-2.12.0.tar.gz: 1897f5b4a3753627d21f06e976795364d6f69e14b52b29ac871ec22ecb8bdced
hwloc-2.11.1.tar.gz: 9f320925cfd0daeaf3a3d724c93e127ecac63750c623654dca0298504aac4c2c
hwloc-2.9.1.tar.gz: a440e2299f7451dc10a57ddbfa3f116c2a6c4be1bb97c663edd3b9c7b3b3b4cf
hwloc-2.7.1.tar.gz: 4cb0a781ed980b03ad8c48beb57407aa67c4b908e45722954b9730379bc7f6d5
versions:
2.12.0:
config:
relstage: stable
build_requires: [cuda/12.9.1]
2.11.1:
config:
relstage: unstable

View File

@@ -1,5 +1,7 @@
format: 1
libfabric:
# Requires:
# sudo zypper install pandoc libconfig-devel libuv-devel fuse-devel libsensors4-devel libjson-c-devel
defaults:
group: Libraries
relstage: stable
@@ -12,26 +14,34 @@ libfabric:
urls:
- url: https://github.com/ofiwg/libfabric/releases/download/v${V}/${P}-${V}.tar.bz2
shasums:
libfabric-1.13.0.tar.bz2: 0c68264ae18de5c31857724c754023351614330bd61a50b40cef2b5e8f63ab28
libfabric-2.2.0.tar.bz2: ff6d05240b4a9753bb3d1eaf962f5a06205038df5142374a6ef40f931bb55ecc
libfabric-1.18.0.tar.bz2: 912fb7c7b3cf2a91140520962b004a1c5d2f39184adbbd98ae5919b0178afd43
libfabric-1.13.0.tar.bz2: 0c68264ae18de5c31857724c754023351614330bd61a50b40cef2b5e8f63ab28
versions:
1.18.0:
2.2.0:
config:
build_requires: [gcc/10.4.0]
1.22.0:
config:
relstage: unstable
relstage: stable
variants:
- systems: [.*.merlin7.psi.ch]
overlay: Alps
use_overlays: [PSI]
suffix: '-oss'
use_flags: [merlin7]
build_requires: [gcc/12.3.0, libfabric/1.15.2.0]
build_requires: [gcc/12.3.0, shs-cassini-headers/12.0.1-oss, shs-cxi-driver/12.0.1-oss, shs-libcxi/12.0.1-oss, cuda/12.9.1, GDRCopy/2.5]
configure_args+:
- --enable-cxi
- --enable-cxi=$SHS_LIBCXI_HOME
- --with-cxi-uapi-headers=$SHS_CXI_DRIVER_HOME
- --with-cassini-headers=$SHS_CASSINI_HEADERS_HOME
- --enable-lnx
- --with-cuda=$CUDA_HOME
- --with-gdrcopy=$GDRCOPY_HOME
# Only enable dlopen when static is disabled
- --enable-cuda-dlopen
- --enable-gdrcopy-dlopen
# - --enable-xpmem
2.0.0:
config:
relstage: unstable
relstage: removed
urls:
- url: https://github.com/ofiwg/libfabric/releases/download/v${V}alpha/$P-${V}alpha.tar.bz2
variants:
@@ -39,6 +49,23 @@ libfabric:
overlay: Alps
use_overlays: [PSI]
use_flags: [merlin7]
build_requires: [gcc/12.3.0, libfabric/1.15.2.0]
build_requires: [gcc/12.3.0, libfabric/1.15.2.0, cuda/12.2.0]
configure_args+:
- --enable-cxi
- --with-cuda=$CUDA_HOME
- --enable-cuda-dlopen
1.22.0:
config:
relstage: installed
variants:
- systems: [.*.merlin7.psi.ch]
overlay: Alps
suffix: '-oss'
use_overlays: [PSI]
use_flags: [merlin7]
build_requires: [gcc/12.3.0, libfabric/1.22.0]
configure_args+:
- --enable-cxi
1.18.0:
config:
build_requires: [gcc/10.4.0]

View File

@@ -110,23 +110,17 @@ pmix:
# - --with-jansson
# - --with-curl
- systems: [rhel.*]
# 5.0.4:
# config:
# relstage: unstable
# configure_args+:
# - --enable-static=no
# runtime_deps: [libevent/2.1.12]
# build_requires: [gcc/12.3.0, hwloc/2.11.1]
# variants:
# - systems: [.*.merlin7.psi.ch]
# overlay: Alps
# use_overlays: [PSI]
# configure_args+:
# - --with-lustre
# - --with-cxi
# - --with-cxi-libdir=/opt/cray/libfabric/1.15.2.0/include
# - --with-slingshot
# - --with-zlib
# # - --with-jansson
# # - --with-curl
# - systems: [rhel.*]
5.0.8:
config:
relstage: stable
configure_args+:
- --enable-static=no
runtime_deps: [libevent/2.1.12]
build_requires: [gcc/12.3.0, hwloc/2.12.0]
variants:
- systems: [.*.merlin7.psi.ch]
overlay: Alps
use_overlays: [PSI]
configure_args+:
- --with-zlib
- systems: [rhel.*]

View File

@@ -0,0 +1,51 @@
#!/usr/bin/env modbuild
# Check 'version-to-gitcommit.txt'
# - If version exists, we will compile directly from GIT cloned commit.
# - If version does not exist, install from GIT repository package (tag).
GITURL=$(grep -E "^${V}" files/from-git.txt | awk '{print $2}')
BRANCH=$(grep -E "^${V}" files/from-git.txt | awk '{print $3}')
CHERRY=$(grep -E "^${V}" files/from-git.txt | awk -F'cherry-pick:' '{print $2}')
CHERRY_COMMIT=$(echo "$CHERRY" | awk -F'|' '{print $1}')
CHERRY_REPO=$(echo "$CHERRY" | awk -F'|' '{print $2}')
if [[ -n ${GITURL} ]]; then
pbuild::pre_prep() {
if [[ ! -f ${PMODULES_DISTFILESDIR}/${P}-${V}.tar.bz2 ]]; then
git clone ${GITURL} ${P}
cd ${P}
if [[ -n ${BRANCH} ]]; then
git fetch -a
git checkout ${BRANCH}
fi
if [[ -n ${CHERRY_REPO} ]]; then
git remote add remotetmp $CHERRY_REPO
git fetch --all
fi
if [[ -n ${CHERRY_COMMIT} ]]; then
git cherry-pick $CHERRY_COMMIT
fi
# Use archive with top-level directory
git archive \
--format=tar \
--prefix="${P}-${V}/" \
HEAD > "${PMODULES_DISTFILESDIR}/${P}-${V}.tar"
bzip2 "${PMODULES_DISTFILESDIR}/${P}-${V}.tar"
cd ..
fi
}
fi
pbuild::compile() {
:
}
pbuild::install() {
pwd -P
mkdir -p "${PREFIX}/include" "${PREFIX}/share"
if [ -d include ]; then cp -r include/* "${PREFIX}/include/"; fi
if [ -d share ]; then cp -r share/* "${PREFIX}/share/"; fi
}

View File

@@ -0,0 +1,24 @@
format: 1
shs-cassini-headers:
defaults:
group: Libraries
compile_in_sourcetree: true
relstage: unstable
urls:
- url: https://github.com/HewlettPackard/shs-cassini-headers/archive/refs/heads/main.zip
name: shs-cassini-headers-main.zip
shasums:
shs-cassini-headers-12.0.1.tar.gz: db338e6af8bff8c5acd0556bbad81eba5365db9eec918d46021483861a386792
versions:
12.0.1:
config:
relstage: stable
urls:
- url: https://github.com/HewlettPackard/shs-cassini-headers/archive/refs/tags/release/shs-12.0.1.tar.gz
name: shs-cassini-headers-12.0.1.tar.bz2
variants:
- systems: [.*.merlin7.psi.ch]
overlay: Alps
suffix: '-oss'
use_overlays: [PSI]
use_flags: [merlin7]

View File

@@ -0,0 +1 @@
2.0.0 https://github.com/HewlettPackard/shs-cassini-headers.git 9a8a738a879f007849fbc69be8e3487a4abf0952

View File

@@ -0,0 +1,9 @@
#%Module1.0
module-whatis "Slingshot Cassini Headers"
module-url "https://github.com/HewlettPackard/shs-cassini-headers"
module-maintainer "Marc Caubet Serrabou <marc.caubet@psi.ch>"
module-help "
This module contains the OSS Slingshot Cassini Headers.
"

49
Libraries/shs-cxi-driver/build Executable file
View File

@@ -0,0 +1,49 @@
#!/usr/bin/env modbuild
# Check 'version-to-gitcommit.txt'
# - If version exists, we will compile directly from GIT cloned commit.
# - If version does not exist, install from GIT repository package (tag).
GITURL=$(grep -E "^${V}" files/from-git.txt | awk '{print $2}')
BRANCH=$(grep -E "^${V}" files/from-git.txt | awk '{print $3}')
CHERRY=$(grep -E "^${V}" files/from-git.txt | awk -F'cherry-pick:' '{print $2}')
CHERRY_COMMIT=$(echo "$CHERRY" | awk -F'|' '{print $1}')
CHERRY_REPO=$(echo "$CHERRY" | awk -F'|' '{print $2}')
if [[ -n ${GITURL} ]]; then
pbuild::pre_prep() {
if [[ ! -f ${PMODULES_DISTFILESDIR}/${P}-${V}.tar.bz2 ]]; then
git clone ${GITURL} ${P}
cd ${P}
if [[ -n ${BRANCH} ]]; then
git fetch -a
git checkout ${BRANCH}
fi
if [[ -n ${CHERRY_REPO} ]]; then
git remote add remotetmp $CHERRY_REPO
git fetch --all
fi
if [[ -n ${CHERRY_COMMIT} ]]; then
git cherry-pick $CHERRY_COMMIT
fi
# Use archive with top-level directory
git archive \
--format=tar \
--prefix="${P}-${V}/" \
HEAD > "${PMODULES_DISTFILESDIR}/${P}-${V}.tar"
bzip2 "${PMODULES_DISTFILESDIR}/${P}-${V}.tar"
cd ..
fi
}
fi
pbuild::compile() {
:
}
pbuild::install() {
mkdir -p "${PREFIX}/include"
cp -r include/* "${PREFIX}/include/"
}

View File

@@ -0,0 +1,24 @@
format: 1
shs-cxi-driver:
defaults:
group: Libraries
compile_in_sourcetree: true
relstage: unstable
urls:
- url: https://github.com/HewlettPackard/shs-cxi-driver/archive/refs/heads/main.zip
name: shs-cxi-driver-main.tar.bz2
shasums:
shs-cassini-headers-12.0.1.tar.bz2: d1af6dbc79df740f56667e5b3e1501003cbbf9957f214debb5556bd7eb24167e
versions:
12.0.1:
config:
relstage: stable
urls:
- url: https://github.com/HewlettPackard/shs-cxi-driver/archive/refs/tags/release/shs-12.0.1.tar.gz
name: shs-cxi-driver-12.0.1.tar.bz2
variants:
- systems: [.*.merlin7.psi.ch]
overlay: Alps
suffix: '-oss'
use_overlays: [PSI]
use_flags: [merlin7]

View File

@@ -0,0 +1 @@
12.1.0 https://github.com/HewlettPackard/shs-cxi-driver.git d47aa97d78b04103829da79e4807ae9f52b1ea6c

View File

@@ -0,0 +1,9 @@
#%Module1.0
module-whatis "Slingshot Cassini Headers"
module-url "https://github.com/HewlettPackard/shs-cassini-headers"
module-maintainer "Marc Caubet Serrabou <marc.caubet@psi.ch>"
module-help "
This module contains the OSS Slingshot Cassini Headers.
"

57
Libraries/shs-libcxi/build Executable file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env modbuild
# Check 'version-to-gitcommit.txt'
# - If version exists, we will compile directly from GIT cloned commit.
# - If version does not exist, install from GIT repository package (tag).
GITURL=$(grep -E "^${V}" files/from-git.txt | awk '{print $2}')
BRANCH=$(grep -E "^${V}" files/from-git.txt | awk '{print $3}')
CHERRY=$(grep -E "^${V}" files/from-git.txt | awk -F'cherry-pick:' '{print $2}')
CHERRY_COMMIT=$(echo "$CHERRY" | awk -F'|' '{print $1}')
CHERRY_REPO=$(echo "$CHERRY" | awk -F'|' '{print $2}')
if [[ -n ${GITURL} ]]; then
pbuild::pre_prep() {
if [[ ! -f ${PMODULES_DISTFILESDIR}/${P}-${V}.tar.bz2 ]]; then
git clone ${GITURL} ${P}
cd ${P}
if [[ -n ${BRANCH} ]]; then
git fetch -a
git checkout ${BRANCH}
fi
if [[ -n ${CHERRY_REPO} ]]; then
git remote add remotetmp $CHERRY_REPO
git fetch --all
fi
if [[ -n ${CHERRY_COMMIT} ]]; then
git cherry-pick $CHERRY_COMMIT
fi
# Use archive with top-level directory
git archive \
--format=tar \
--prefix="${P}-${V}/" \
HEAD > "${PMODULES_DISTFILESDIR}/${P}-${V}.tar"
bzip2 "${PMODULES_DISTFILESDIR}/${P}-${V}.tar"
cd ..
fi
}
fi
pbuild::pre_configure() {
./autogen.sh
if [[ -v CUDA_VERSION ]]; then
std::info "Enabling CUDA ${CUDA_VERSION}."
pbuild::add_configure_args "--with-cuda=${CUDA_HOME}"
fi
pbuild::add_configure_args "--with-udevrulesdir=${PREFIX}/lib/udev/rules.d"
pbuild::add_configure_args "--with-systemdsystemunitdir=${PREFIX}/lib/systemd/system"
if [[ -v SHS_CASSINI_HEADERS_VERSION ]]; then
std::info "Enabling SHS_CASSINI_HEADERS ${SHS_CASSINI_HEADERS_VERSION}."
pbuild::add_configure_args "--with-cassini-csr_defs=${SHS_CASSINI_HEADERS_HOME}/share/cassini-headers/csr_defs.json"
fi
}

View File

@@ -0,0 +1,4 @@
libuv-devel
libconfig-devel
libsensors4-devel
pandoc

View File

@@ -0,0 +1,31 @@
format: 1
shs-libcxi:
defaults:
group: Libraries
compile_in_sourcetree: true
relstage: unstable
urls:
- url: https://github.com/HewlettPackard/shs-libcxi/archive/refs/heads/main.zip
# Requires local packages:
# zypper install libconfig-devel
# zypper install libuv-devel
# zypper install fuse-devel
# zypper install libsensors4-devel
shasums:
versions:
12.0.1:
config:
relstage: stable
urls:
# - url: https://github.com/HewlettPackard/shs-libcxi/archive/refs/heads/main.zip
- url: https://github.com/HewlettPackard/shs-libcxi/archive/refs/tags/release/shs-12.0.1.tar.gz
name: shs-libcxi-12.0.1.tar.bz2
patch_files:
- patch/cassini_csr_defs-v12.0.1.patch
variants:
- systems: [.*.merlin7.psi.ch]
overlay: Alps
suffix: '-oss'
use_overlays: [PSI]
use_flags: [merlin7]
build_requires: [gcc/12.3.0,shs-cassini-headers/12.0.1-oss,shs-cxi-driver/12.0.1-oss]

View File

@@ -0,0 +1,2 @@
12.1.0 https://github.com/HewlettPackard/shs-libcxi.git d47aa97d78b04103829da79e4807ae9f52b1ea6c
12.0.1 https://github.com/HewlettPackard/shs-libcxi.git 1571bd348bb75a8fe4a40c58240b0f687d6d5537

View File

@@ -0,0 +1,9 @@
#%Module1.0
module-whatis "Slingshot Cassini Headers"
module-url "https://github.com/HewlettPackard/shs-cassini-headers"
module-maintainer "Marc Caubet Serrabou <marc.caubet@psi.ch>"
module-help "
This module contains the OSS Slingshot Cassini Headers.
"

View File

@@ -0,0 +1,63 @@
diff --git a/Makefile.am b/Makefile.am
index 4c47094..60432b5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -106,7 +106,7 @@ utils_cxi_dump_csrs_SOURCES = utils/cxi_dump_csrs.c
utils_cxi_dump_csrs_LDADD = src/libcxi.la
utils/cxi_dump_csrs.c: utils/cxi_dump_csrs.h
utils/cxi_dump_csrs.h: utils/cxi_dump_csrs.py
- utils/cxi_dump_csrs.py > utils/cxi_dump_csrs.h
+ CASSINI_CSR_DEFS=$(cassinicsrdefs) utils/cxi_dump_csrs.py > utils/cxi_dump_csrs.h
utils_MANS = \
man/man1/cxi_atomic_bw.1 \
diff --git a/configure.ac b/configure.ac
index 5b65683..2eba805 100644
--- a/configure.ac
+++ b/configure.ac
@@ -177,6 +177,13 @@ AS_IF([test -d $withval],
AC_CHECK_DECL(HAVE_HIP_SUPPORT, [], [LDFLAGS="$LDFLAGS -ldl"], []),
[AC_MSG_RESULT([No CUDA])])
+AC_ARG_WITH([cassini-csr_defs],
+ [AS_HELP_STRING([--with-cassini-csr_defs=PATH], [Path to csr_defs.json])],
+ [cassinicsrdefs="$withval"],
+ [cassinicsrdefs="/usr/share/cassini-headers/csr_defs.json"])
+
+AC_SUBST([cassinicsrdefs])
+
AC_ARG_ENABLE([asan],
[AS_HELP_STRING([--enable-asan],
[Enable address sanitizer @<:@default=no@:>@])
@@ -205,6 +212,7 @@ AC_MSG_RESULT([
includedir: ${includedir}
systemdunitdir: ${systemdsystemunitdir}
udevrulesdir: ${udevrulesdir}
+ cassinicsrdefs: ${cassinicsrdefs}
compiler: ${CC}
cflags: ${CFLAGS}
diff --git a/utils/cxi_dump_csrs.py b/utils/cxi_dump_csrs.py
index 24a4ad4..cb63e73 100755
--- a/utils/cxi_dump_csrs.py
+++ b/utils/cxi_dump_csrs.py
@@ -7,13 +7,15 @@
"""
import json
+import os
+
+json_path = os.environ.get("CASSINI_CSR_DEFS", "/usr/share/cassini-headers/csr_defs.json")
try:
- with open('/usr/share/cassini-headers/csr_defs.json', 'r') as f:
- csrdefs = json.load(f)
-except FileNotFoundError:
- with open('../cassini-headers/install/share/cassini-headers/csr_defs.json', 'r') as f:
+ with open(json_path, 'r') as f:
csrdefs = json.load(f)
+except FileNotFoundError as e:
+ raise RuntimeError(f"CSR defs file not found at '{json_path}'. Set CASSINI_CSR_DEFS to override.") from e
print("/* Autogenerated file. Do not modify. */")

View File

@@ -0,0 +1,77 @@
From 1a1b8f008db00b38547ae8bcd28e12f7f7525390 Mon Sep 17 00:00:00 2001
From: Caubet Serrabou Marc <mcaubet@gmail.com>
Date: Tue, 8 Apr 2025 14:11:59 +0200
Subject: [PATCH] Add --with-cassini_csr_defs option
---
Makefile.am | 2 +-
configure.ac | 8 ++++++++
utils/cxi_dump_csrs.py | 10 ++++++----
3 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 4c47094..60432b5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -106,7 +106,7 @@ utils_cxi_dump_csrs_SOURCES = utils/cxi_dump_csrs.c
utils_cxi_dump_csrs_LDADD = src/libcxi.la
utils/cxi_dump_csrs.c: utils/cxi_dump_csrs.h
utils/cxi_dump_csrs.h: utils/cxi_dump_csrs.py
- utils/cxi_dump_csrs.py > utils/cxi_dump_csrs.h
+ CASSINI_CSR_DEFS=$(cassinicsrdefs) utils/cxi_dump_csrs.py > utils/cxi_dump_csrs.h
utils_MANS = \
man/man1/cxi_atomic_bw.1 \
diff --git a/configure.ac b/configure.ac
index 5b65683..2eba805 100644
--- a/configure.ac
+++ b/configure.ac
@@ -177,6 +177,13 @@ AS_IF([test -d $withval],
AC_CHECK_DECL(HAVE_HIP_SUPPORT, [], [LDFLAGS="$LDFLAGS -ldl"], []),
[AC_MSG_RESULT([No CUDA])])
+AC_ARG_WITH([cassini-csr_defs],
+ [AS_HELP_STRING([--with-cassini-csr_defs=PATH], [Path to csr_defs.json])],
+ [cassinicsrdefs="$withval"],
+ [cassinicsrdefs="/usr/share/cassini-headers/csr_defs.json"])
+
+AC_SUBST([cassinicsrdefs])
+
AC_ARG_ENABLE([asan],
[AS_HELP_STRING([--enable-asan],
[Enable address sanitizer @<:@default=no@:>@])
@@ -205,6 +212,7 @@ AC_MSG_RESULT([
includedir: ${includedir}
systemdunitdir: ${systemdsystemunitdir}
udevrulesdir: ${udevrulesdir}
+ cassinicsrdefs: ${cassinicsrdefs}
compiler: ${CC}
cflags: ${CFLAGS}
diff --git a/utils/cxi_dump_csrs.py b/utils/cxi_dump_csrs.py
index 24a4ad4..cb63e73 100755
--- a/utils/cxi_dump_csrs.py
+++ b/utils/cxi_dump_csrs.py
@@ -7,13 +7,15 @@
"""
import json
+import os
+
+json_path = os.environ.get("CASSINI_CSR_DEFS", "/usr/share/cassini-headers/csr_defs.json")
try:
- with open('/usr/share/cassini-headers/csr_defs.json', 'r') as f:
- csrdefs = json.load(f)
-except FileNotFoundError:
- with open('../cassini-headers/install/share/cassini-headers/csr_defs.json', 'r') as f:
+ with open(json_path, 'r') as f:
csrdefs = json.load(f)
+except FileNotFoundError as e:
+ raise RuntimeError(f"CSR defs file not found at '{json_path}'. Set CASSINI_CSR_DEFS to override.") from e
print("/* Autogenerated file. Do not modify. */")
--
2.35.3

View File

@@ -11,6 +11,12 @@ cuda:
compile: []
install: [pbuild::post_install]
urls:
- &cuda-12_9_1-aarch64
url: https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda_12.9.1_575.57.08_linux_sbsa.run
unpacker: none
- &cuda-12_9_1-x86_64
url: https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda_12.9.1_575.57.08_linux.run
unpacker: none
- &cuda-12_8_1-aarch64
url: https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux_sbsa.run
unpacker: none
@@ -37,6 +43,8 @@ cuda:
unpacker: none
shasums:
cuda_12.9.1_575.57.08_linux.run: 0f6d806ddd87230d2adbe8a6006a9d20144fdbda9de2d6acc677daa5d036417a
cuda_12.9.1_575.57.08_linux_sbsa.run: 64f47ab791a76b6889702425e0755385f5fa216c5a9f061875c7deed5f08cdb6
cuda_12.8.1_570.124.06_linux.run: 228f6bcaf5b7618d032939f431914fc92d0e5ed39ebe37098a24502f26a19797
cuda_12.8.1_570.124.06_linux_sbsa.run: 353cbab1b57282a1001071796efd95c1e40ec27a3375e854d12637eaa1c6107c
cuda_12.2.2_535.104.05_linux.run: 2b39aae3e7618d9f59a3c8fa1f1bc61f29c0b0e0df75fb05076badb352952ef2
@@ -47,6 +55,24 @@ cuda:
cuda_12.1.1_530.30.02_linux_sbsa.run: 45ea4cd860f0a26d3db8ce032530f2ee0b55abdd587545213d395a73623b4278
versions:
12.9.1:
variants:
- target_cpus: [aarch64]
systems: [gpu.*.merlin7.psi.ch]
relstage: stable
overlay: PSI
urls:
- *cuda-12_9_1-aarch64
- target_cpus: [x86_64]
systems: [.*.merlin7.psi.ch]
relstage: stable
overlay: PSI
urls:
- *cuda-12_9_1-x86_64
- target_cpus: [x86_64]
relstage: stable
urls:
- *cuda-12_9_1-x86_64
12.8.1:
variants:
- target_cpus: [aarch64]