Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GCC 12 CUDA 12 build pipeline in CSCS CI #858

Merged
merged 4 commits into from
Dec 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
78 changes: 78 additions & 0 deletions .gitlab/includes/gcc12_cuda12_pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Copyright (c) 2023 ETH Zurich
#
# SPDX-License-Identifier: BSL-1.0
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file BOOST_LICENSE_1_0.rst or copy at http://www.boost.org/LICENSE_1_0.txt)

include:
- local: '.gitlab/includes/common_pipeline.yml'
- local: '.gitlab/includes/common_spack_pipeline.yml'

.variables_gcc12_cuda12_config:
variables:
ARCH: linux-ubuntu22.04-zen3
BUILD_TYPE: Debug
COMPILER: [email protected]
CXXSTD: 17
aurianer marked this conversation as resolved.
Show resolved Hide resolved
GPU_TARGET: "80"
SPACK_SPEC: "pika@main arch=$ARCH %${COMPILER} +cuda cuda_arch=${GPU_TARGET} malloc=system \
cxxstd=$CXXSTD ^[email protected] ^[email protected] ^[email protected] ^[email protected]"

gcc12_cuda12_spack_image:
stage: spack_configs
needs: [base_spack_image]
extends:
- .container-builder
- .variables_gcc12_cuda12_config
before_script:
- CONFIG_TAG=`echo $SPACK_SPEC-$SPACK_COMMIT | sha256sum - | head -c 16`
- compiler=${COMPILER/@/-}
- export PERSIST_IMAGE_NAME=$CSCS_REGISTRY_PATH/pika-$compiler:$CONFIG_TAG
- echo -e "compiler=$compiler\nBASE_IMAGE=$PERSIST_IMAGE_NAME" >> compiler.env
variables:
BASE_IMAGE: $CSCS_REGISTRY_PATH/pika-spack-base:$SPACK_COMMIT
DOCKERFILE: .gitlab/docker/Dockerfile.spack_compiler
DOCKER_BUILD_ARGS: '["BASE_IMAGE","ARCH","COMPILER","SPACK_SPEC"]'
artifacts:
reports:
dotenv: compiler.env

gcc12_cuda12_debug_build:
stage: build
extends:
- .container-builder
- .variables_gcc12_cuda12_config
- .cmake_variables_common
needs:
- gcc12_cuda12_spack_image
before_script:
- build_type=`echo $BUILD_TYPE | tr '[:upper:]' '[:lower:]'`
- configuration=$CMAKE_COMMON_FLAGS-$CMAKE_FLAGS-$CI_COMMIT_SHORT_SHA
- configuration=${configuration//-D/}
- CONFIG_TAG=`echo $configuration | sha256sum - | head -c 16`
- export PERSIST_IMAGE_NAME=$CSCS_REGISTRY_PATH/pika-$compiler-$build_type-build:$CONFIG_TAG
- echo -e "PERSIST_IMAGE_NAME=$PERSIST_IMAGE_NAME" > build.env
variables:
DOCKERFILE: .gitlab/docker/Dockerfile.spack_build
CMAKE_FLAGS: "-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPIKA_WITH_CXX_STANDARD=$CXXSTD \
-DPIKA_WITH_CUDA=ON -DPIKA_WITH_MALLOC=system \
-DCMAKE_CUDA_ARCHITECTURES=$GPU_TARGET \
-DPIKA_WITH_CXX_LAMBDA_CAPTURE_DECLTYPE=OFF"
# PIKA_WITH_CXX_LAMBDA_CAPTURE_DECLTYPE is OFF to test the fallback implementation of PIKA_FORWARD.
DOCKER_BUILD_ARGS: '["BASE_IMAGE","SOURCE_DIR","BUILD_DIR","CMAKE_COMMON_FLAGS","CMAKE_FLAGS"]'
artifacts:
reports:
dotenv: build.env

# Test step currently commented as the cuda driver is too old on clariden:
# https://github.com/pika-org/pika/issues/884
#gcc12_cuda12_debug_test:
aurianer marked this conversation as resolved.
Show resolved Hide resolved
# extends:
# - .variables_gcc12_cuda12_config
# - .test_common_gpu_clariden_cuda
# needs:
# - gcc12_cuda12_debug_build
# script:
# - spack arch
# - spack build-env $spack_spec -- bash -c "ctest --label-exclude COMPILE_ONLY --test-dir ${BUILD_DIR} -j$(nproc) --timeout 120 --output-on-failure --no-compress-output --no-tests=error"
# image: $PERSIST_IMAGE_NAME
1 change: 1 addition & 0 deletions .gitlab/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ include:
- local: '.gitlab/includes/gcc9_cuda11_pipeline.yml'
- local: '.gitlab/includes/gcc11_pipeline.yml'
- local: '.gitlab/includes/gcc12_pipeline.yml'
- local: '.gitlab/includes/gcc12_cuda12_pipeline.yml'
- local: '.gitlab/includes/gcc13_pipeline.yml'
- local: '.gitlab/includes/clang11_pipeline.yml'
- local: '.gitlab/includes/clang12_pipeline.yml'
Expand Down