Skip to content
Snippets Groups Projects
Unverified Commit 1d8e799f authored by Benjamin Cumming's avatar Benjamin Cumming Committed by GitHub
Browse files

Add Fujitsu ARM-SVE CI test (#1512)

Add a CI test for ARM-SVE

- compiles and runs the unit tests with vectorization enabled for the `armv8.2-a+sv` architecture
- uses a dedicated gitlab runner on ault.cscs.ch

Fixes #1498
parent c57be8a2
No related branches found
No related tags found
No related merge requests found
include:
- remote: 'https://gitlab.com/cscs-ci/recipes/-/raw/master/templates/v2/.cscs.yml'
stages:
- build
......@@ -8,6 +6,54 @@ stages:
- upload_reports
- cleanup
# instead of including parameters from here:
# https://gitlab.com/cscs-ci/recipes/-/raw/master/templates/v2/.cscs.yml
# hard code them here, to make it easier to also use runners on other systems
## Piz Daint slurm stuff
.daint:
tags:
- daint-container
variables:
CRAY_CUDA_MPS: 1
USE_MPI: 'YES'
DISABLE_AFTER_SCRIPT: 'YES'
PULL_IMAGE: 'NO'
SLURM_CONSTRAINT: gpu
SLURM_JOB_NUM_NODES: 2
SLURM_PARTITION: normal
SLURM_TIMELIMIT: '15:00'
SLURM_EXCLUSIVE: '' # make sure resources are not shared
.daint_alloc:
extends: .daint
variables:
ONLY_ALLOCATE: 1
GIT_STRATEGY: none
script: nothing
.daint_dealloc:
extends: .daint
variables:
ONLY_DEALLOCATE: 1
GIT_STRATEGY: none
script: nothing
when: always
## Kubernetes for building docker images
.dind:
variables:
DOCKER_DRIVER: overlay2
DOCKER_HOST: tcp://localhost:2375
DOCKER_TLS_CERTDIR: ""
DOCKER_BUILDKIT: 1
BUILDKIT_PROGRESS: plain
image: docker:19.03.12
tags:
- kubernetes
services:
- docker:19.03.12-dind
# Builds a docker image on kubernetes
.build_docker_images:
extends: .dind
......@@ -22,7 +68,7 @@ stages:
- docker build -f $DEPLOY_DOCKERFILE --network=host --build-arg BUILD_ENV=$BUILD_IMAGE -t $DEPLOY_IMAGE .
- docker push $DEPLOY_IMAGE
build release:
build_release:
extends: .build_docker_images
variables:
BUILD_DOCKERFILE: ci/release/build.Dockerfile
......@@ -39,20 +85,8 @@ notify_github_start:
script: ./ci/set_github_status.sh pending
# Some variables used for running on daint
variables:
CRAY_CUDA_MPS: 1
USE_MPI: 'YES'
DISABLE_AFTER_SCRIPT: 'YES'
PULL_IMAGE: 'NO'
SLURM_CONSTRAINT: gpu
SLURM_JOB_NUM_NODES: 2
SLURM_PARTITION: normal
SLURM_TIMELIMIT: '15:00'
SLURM_EXCLUSIVE: '' # make sure resources are not shared
### Release tests ###
allocate release:
allocate_release:
stage: allocate
image: $CSCS_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA
only: ['master', 'staging', 'trying']
......@@ -61,7 +95,7 @@ allocate release:
PULL_IMAGE: 'YES'
ALLOCATION_NAME: arbor-ci-release-$CI_PIPELINE_ID
single node release:
single_node_release:
extends: .daint
image: $CSCS_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA
only: ['master', 'staging', 'trying']
......@@ -75,7 +109,7 @@ single node release:
SLURM_NTASKS: 1
ALLOCATION_NAME: arbor-ci-release-$CI_PIPELINE_ID
multi node release:
multi_node_release:
extends: .daint
image: $CSCS_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA
only: ['master', 'staging', 'trying']
......@@ -87,7 +121,16 @@ multi node release:
SLURM_NTASKS: 2
ALLOCATION_NAME: arbor-ci-release-$CI_PIPELINE_ID
deallocate release:
test_ault_fujitsu:
needs: []
tags:
- arm-a64fx
stage: test
script:
- chmod +x ci/test-ault-fujitsu.sh
- srun --partition=a64fx -c48 ci/test-ault-fujitsu.sh "$(pwd)"
deallocate_release:
only: ['master', 'staging', 'trying']
image: $CSCS_REGISTRY_IMAGE/release/deploy:$CI_COMMIT_SHA
stage: cleanup
......
#! /bin/bash
base_path="$1"
host="$(hostname)"
echo "=== path: $base_path"
echo "=== host: $host"
echo "=== loading environment"
source /users/bcumming/a64fx/env.sh
spack load git gcc@11.1.0 cmake ninja
build_path="$base_path/build"
echo "=== building: $build_path"
mkdir "$build_path"
cd "$build_path"
echo "=== CC=gcc CXX=g++ cmake .. -DARB_USE_BUNDLED_LIBS=on -DARB_ARCH=armv8.2-a+sve -DARB_VECTORIZE=on -G Ninja"
CC=gcc CXX=g++ cmake .. -DARB_USE_BUNDLED_LIBS=on -DARB_ARCH=armv8.2-a+sve -DARB_VECTORIZE=on -G Ninja
ninja -j48 unit
bin_path="$build_path/bin"
echo "=== running unit tests: $bin_path/unit"
cd "$bin_path"
./unit
......@@ -6,12 +6,6 @@ include(CMakePushCheckState)
set(CXXOPT_DEBUG "-g")
set(CXXOPT_CXX11 "-std=c++11")
if(CMAKE_CXX_COMPILER_ID MATCHES "XL")
# CMake, bless its soul, likes to insert this unsupported flag. Hilarity ensues.
string(REPLACE "-qhalt=e" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif()
if(${ARBDEV_COLOR})
set(colorflags
$<IF:$<CXX_COMPILER_ID:Clang>,-fcolor-diagnostics,>
......@@ -83,6 +77,12 @@ set(CXXOPT_WALL
$<IF:$<CXX_COMPILER_ID:GNU>,-Wno-maybe-uninitialized,>
# * Disable comments that point out that an ABI bug has been patched, which
# could lead to bugs when linking against code compiled an older compiler,
# because there is nothing to fix on our side.
$<IF:$<CXX_COMPILER_ID:GNU>,-Wno-psabi,>
# Intel:
#
# Disable warning for unused template parameter
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment