Add Cray psmp H100 tester (#4868)

This commit is contained in:
Matthias Krack 2026-02-22 19:51:33 +01:00 committed by GitHub
parent bec65495dc
commit 65c71bef51
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 83 additions and 1 deletions

View file

@ -0,0 +1,59 @@
include:
- remote: 'https://gitlab.com/cscs-ci/recipes/-/raw/master/templates/v2/.ci-ext.yml'
stages:
- deps
- cp2k
variables:
REPOSITORY: cp2k_daint
BUILDER: spack
VERSION: psmp
TAG: "${BUILDER}_${VERSION}"
UBUNTU_IMAGE_NAME: "nvidia/cuda:12.4.1-devel-ubuntu22.04"
CSCS_IMAGE_NAME: "${CSCS_REGISTRY_PATH}/${REPOSITORY}:${TAG}_${CI_COMMIT_SHORT_SHA}"
DOCKERHUB_IMAGE_NAME: "docker.io/${DOCKERHUB_USERNAME}/${REPOSITORY}:${TAG}"
build deps daint:
extends: .container-builder-cscs-gh200
stage: deps
timeout: 1h
before_script:
- DEPS_IMAGE_TAG=`cat ci/cscs_daint_${TAG}.yaml ci/docker/build_${CI_JOB_STAGE}_${BUILDER}.Dockerfile $(find tools/spack -type f) $(find cmake -type f) | sha256sum - | head -c 16`
- export PERSIST_IMAGE_NAME=${CSCS_REGISTRY_PATH}/base/${REPOSITORY}:${TAG}_${DEPS_IMAGE_TAG}
- echo "DEPS_IMAGE_NAME=${PERSIST_IMAGE_NAME}" | tee build.env
artifacts:
reports:
dotenv: build.env
variables:
DOCKER_BUILD_ARGS: '[
"BASE_IMAGE",
"CP2K_VERSION",
"FEATURE_FLAGS"
]'
DOCKERFILE: ci/docker/build_${CI_JOB_STAGE}_${BUILDER}.Dockerfile
BASE_IMAGE: ${UBUNTU_IMAGE_NAME}
CP2K_VERSION: ${VERSION}
FEATURE_FLAGS: "-gpu H100 -df all""
build cp2k daint:
extends: .container-builder-cscs-gh200
stage: cp2k
needs: ["build deps daint"]
timeout: 1h
before_script:
- echo ${DOCKERHUB_TOKEN} | podman login docker.io --username ${DOCKERHUB_USERNAME} --password-stdin
after_script:
- podman images
- podman push ${PERSIST_IMAGE_NAME} ${DOCKERHUB_IMAGE_NAME}
variables:
DOCKER_BUILD_ARGS: '[
"BASE_IMAGE",
"DEPS_IMAGE",
"FEATURE_FLAGS"
]'
DOCKERFILE: ci/docker/build_${CI_JOB_STAGE}_${BUILDER}.Dockerfile
BASE_IMAGE: ${UBUNTU_IMAGE_NAME}
DEPS_IMAGE: ${DEPS_IMAGE_NAME}
FEATURE_FLAGS: "-gpu H100 -df all"
PERSIST_IMAGE_NAME: ${CSCS_IMAGE_NAME}

View file

@ -569,6 +569,7 @@ echo "INSTALL_MESSAGE = ${INSTALL_MESSAGE}"
echo "IN_CONTAINER = ${IN_CONTAINER}"
echo "MPI_MODE = ${MPI_MODE}"
echo "NUM_PROCS = ${NUM_PROCS} (processes)"
echo "Physical cores = $(lscpu -p=Core,Socket | grep -v '#' | sort -u | wc -l) (host view)"
echo "REBUILD_CP2K = ${REBUILD_CP2K}"
echo "RUN_TEST = ${RUN_TEST}"
if [[ "${RUN_TEST}" == "yes" ]]; then
@ -636,7 +637,8 @@ if ((CUDA_ARCH > 0)); then
# Check if the selected CUDA arch is valid when the nvidia-smi command is available
if command -v nvidia-smi &> /dev/null; then
nvidia-smi
HOST_CUDA_ARCH=$(nvidia-smi --query-gpu=compute_cap --format=csv,noheader | awk '{print 10*$1}')
CUDA_VERSION=$(nvidia-smi | grep "CUDA Version:" | awk '{print $9}')
HOST_CUDA_ARCH=$(nvidia-smi --query-gpu=compute_cap --format=csv,noheader | tail -n 1 | awk '{print 10*$1}')
if ((CUDA_ARCH > HOST_CUDA_ARCH)); then
echo "ERROR: The requested CUDA arch (${CUDA_ARCH}) is larger than the maximum"
echo " CUDA arch (${HOST_CUDA_ARCH}) supported by the host system"
@ -657,6 +659,7 @@ if ((CUDA_ARCH > 0)); then
CMAKE_CUDA_FLAGS="$(printf '%s\n' "${out[*]}")"
echo "CMAKE_CUDA_FLAGS = ${CMAKE_CUDA_FLAGS}"
[[ -n "${CUDA_VERSION:-}" ]] && echo "CUDA_VERSION = ${CUDA_VERSION}"
[[ -n "${CUDA_HOME:-}" ]] && echo "CUDA_HOME = ${CUDA_HOME}"
echo ""
else
CMAKE_CUDA_FLAGS="-DCP2K_USE_ACCEL=OFF"
@ -814,6 +817,12 @@ if [[ ! -d "${SPACK_BUILD_PATH}" ]]; then
# Activate CUDA in the spack configuration file if requested
if ((CUDA_ARCH > 0)); then
sed -E -e "0,/~cuda/s//+cuda cuda_arch=${CUDA_ARCH}/" -i "${CP2K_CONFIG_FILE}"
if [[ -n "${CUDA_VERSION:-}" ]]; then
sed -E -e "s/spec:\s+cuda@[.0-9]*/spec: cuda@${CUDA_VERSION}/" -i "${CP2K_CONFIG_FILE}"
fi
if [[ -n "${CUDA_HOME:-}" ]]; then
sed -E -e "s|prefix: /usr/local/cuda|prefix: ${CUDA_HOME}|" -i "${CP2K_CONFIG_FILE}"
fi
fi
# Apply Cray specific adaptation of the spack configuration if requested (CSCS)

View file

@ -5,6 +5,13 @@ host: Alps Daint (CSCS)
report_url: https://storage.googleapis.com/cp2k-ci/dashboard_cscs-daint-psmp_report.txt
info_url: https://gitlab.com/cscs-ci/ci-testing/webhook-ci/mirrors/3546923033037693/3295760759903023/-/pipelines
[cscs-daint-psmp-h100]
sortkey: 121
name: CSCS Daint (psmp, H100)
host: Alps Daint (CSCS)
report_url: https://storage.googleapis.com/cp2k-ci/dashboard_cscs-daint-psmp-h100_report.txt
info_url: https://gitlab.com/cscs-ci/ci-testing/webhook-ci/mirrors/3546923033037693/3295760759903023/-/pipelines
[cscs-eiger-ssmp]
sortkey: 201
name: CSCS Eiger (ssmp)

View file

@ -5,6 +5,13 @@ tags: daily
cpu: 0.1
nodepools: default-pool
[cscs-daint-psmp-h100]
display_name: CSCS Daint (psmp, H100)
cscs_pipeline: daint-spack-psmp-h100
tags: daily
cpu: 0.1
nodepools: default-pool
[cscs-eiger-ssmp]
display_name: CSCS Eiger (ssmp)
cscs_pipeline: eiger-spack-ssmp