an examle using rocBLAS in alpaka code #6418
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Copyright 2023 Benjamin Worpitz, René Widera, Bernhard Manfred Gruber, Jan Stephan, Simeon Ehrig | |
# SPDX-License-Identifier: MPL-2.0 | |
# | |
name: Continuous Integration | |
on: [push, pull_request] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | |
cancel-in-progress: true | |
################################################################################ | |
# NOTE: Testing the full matrix is not practical. | |
# Therefore we aim to have each value been set in at lest one job. | |
# ALPAKA_CI_CXX : {g++, clang++} | |
# [g++] ALPAKA_CI_GCC_VER : {10, 11, 12, 13} | |
# [clang++] ALPAKA_CI_CLANG_VER : {13, 14, 15, 16, 17, 18, 19} | |
# [cl.exe] ALPAKA_CI_CL_VER : {2022} | |
# ALPAKA_CI_STDLIB : {libstdc++, [ALPAKA_CI_CXX==clang++]:libc++} | |
# CMAKE_BUILD_TYPE : {Debug, Release} | |
# alpaka_CI : {GITHUB} | |
# ALPAKA_BOOST_VERSION : {1.74.0, 1.75.0, 1.76.0, 1.77.0, 1.78.0, 1.79.0, 1.80.0, 1.81.0, 1.82.0, 1.83.0, 1.84.0, 1.85.0, 1.86.0} | |
# ALPAKA_CI_CMAKE_VER : {3.25.1, 3.25.3, 3.26.4} | |
# ALPAKA_CI_XCODE_VER : {13.2.1, 14.2} | |
# ALPAKA_CI_SANITIZERS : {ASan, UBsan, TSan} | |
# TSan is not currently used because it produces many unexpected errors | |
# ALPAKA_CI_ANALYSIS : {ON, OFF} | |
# alpaka_DEBUG : {0, 1, 2} | |
# alpaka_ACC_GPU_CUDA_ONLY_MODE : {ON, OFF} | |
# alpaka_ACC_GPU_HIP_ONLY_MODE : {ON, OFF} | |
# alpaka_ACC_CPU_B_SEQ_T_SEQ_ENABLE : {ON, OFF} | |
# alpaka_ACC_CPU_B_SEQ_T_THREADS_ENABLE : {ON, OFF} | |
# alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE : {ON, OFF} | |
# [ON] OMP_NUM_THREADS : {1, 2, 3, 4} | |
# alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE : {ON, OFF} | |
# [ON] OMP_NUM_THREADS : {1, 2, 3, 4} | |
# alpaka_ACC_ANY_BT_OMP5_ENABLE : {ON, OFF} | |
# [ON] OMP_NUM_THREADS : {1, 2, 3, 4} | |
# alpaka_ACC_GPU_CUDA_ENABLE : {ON, OFF} | |
# [ON] ALPAKA_CI_CUDA_VERSION : {11.2, 11.3, 11.4, 11.5, 11.6, 11.7, 11.8, 12.0, 12.1, 12.2, 12.3, 12.4, 12.5, 12.6} | |
# [ON] ALPAKA_CI_CUDA_COMPILER : {nvcc, [ALPAKA_CI_CXX==clang++]:clang++} | |
# alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE : {ON, OFF} | |
# alpaka_ACC_GPU_HIP_ENABLE : {ON, OFF} | |
# [ON] ALPAKA_CI_HIP_BRANCH : {rocm-4.2} | |
# alpaka_USE_MDSPAN : {OFF, FETCH, SYSTEM} | |
# if you add/remove any CI variable, also update docker_ci.sh | |
env: | |
alpaka_CI: GITHUB | |
ALPAKA_CI_BUILD_JOBS: 2 | |
TBB_ROOT: ${{ github.workspace }}/tbb | |
BOOST_ROOT: ${{ github.workspace }}/boost | |
ALPAKA_CI_BOOST_LIB_DIR: ${{ github.workspace }}/boost_libs | |
ALPAKA_CI_CMAKE_DIR: ${{ github.workspace }}/CMake | |
ALPAKA_CI_CUDA_DIR: ${{ github.workspace }}/CUDA | |
ALPAKA_CI_HIP_ROOT_DIR: ${{ github.workspace }}/hip | |
ALPAKA_CI_SANITIZERS: "" | |
ALPAKA_CI_ANALYSIS: OFF | |
ALPAKA_CI_ONEAPI_VERSION: 2024.0 | |
ALPAKA_CI_TBB_VERSION: 2021.10.0 | |
ALPAKA_CI_RUN_TESTS: ON | |
alpaka_CXX_STANDARD: 20 | |
alpaka_ACC_CPU_B_SEQ_T_SEQ_ENABLE: ON | |
alpaka_ACC_CPU_B_SEQ_T_THREADS_ENABLE: ON | |
alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: ON | |
alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: ON | |
alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE: ON | |
alpaka_ACC_ANY_BT_OMP5_ENABLE: OFF | |
alpaka_ACC_GPU_CUDA_ENABLE: OFF | |
alpaka_ACC_GPU_CUDA_ONLY_MODE: OFF | |
alpaka_ACC_GPU_HIP_ENABLE: OFF | |
alpaka_ACC_GPU_HIP_ONLY_MODE: OFF | |
alpaka_USE_MDSPAN: OFF | |
alpaka_ENABLE_WERROR: ON | |
CMAKE_INSTALL_PREFIX: ${{ github.workspace }}/_install | |
jobs: | |
clang-format: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: DoozyX/[email protected] | |
with: | |
clangFormatVersion: 16 | |
exclude: './thirdParty' | |
inplace: True | |
- run: | | |
git diff --exit-code > format.patch | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: format.patch | |
path: format.patch | |
ci: | |
needs: clang-format | |
name: ${{ matrix.name }} | |
runs-on: ${{ matrix.os }} | |
env: ${{ matrix.env }} | |
container: ${{ matrix.container }} | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
### Analysis builds | |
- name: linux_clang-14_cuda-11.2_debug_analysis | |
os: ubuntu-20.04 | |
env: {ALPAKA_CI_CXX: clang++, ALPAKA_CI_CLANG_VER: 14, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.79.0, ALPAKA_CI_CMAKE_VER: 3.25.3, OMP_NUM_THREADS: 4, ALPAKA_CI_ANALYSIS: ON, ALPAKA_CI_RUN_TESTS: OFF, alpaka_DEBUG: 1, alpaka_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "11.2", ALPAKA_CI_CUDA_COMPILER : clang++, alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: OFF, alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE: OFF} | |
container: ubuntu:20.04 | |
- name: windows_cl-2022_debug_analysis | |
os: windows-2022 | |
env: {ALPAKA_CI_CXX: cl.exe, ALPAKA_CI_CL_VER: 2022, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.78.0, ALPAKA_CI_CMAKE_VER: 3.25.3, ALPAKA_CI_ANALYSIS: ON, alpaka_DEBUG: 2} | |
- name: macos_xcode-15.4_debug_analysis | |
os: macos-14 | |
env: {ALPAKA_CI_CXX: clang++, ALPAKA_CI_XCODE_VER: 15.4, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.81.0, ALPAKA_CI_ANALYSIS: ON, alpaka_DEBUG: 2, alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: ON, alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE: ON, ALPAKA_CI_BUILD_JOBS: 3} | |
- name: linux_gcc-12_debug_analysis | |
os: ubuntu-22.04 | |
env: {ALPAKA_CI_CXX: g++, ALPAKA_CI_GCC_VER: 12, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.80.0, ALPAKA_CI_CMAKE_VER: 3.25.3, OMP_NUM_THREADS: 4, ALPAKA_CI_ANALYSIS: ON, alpaka_DEBUG: 2} | |
container: ubuntu:22.04 | |
### macOS | |
- name: macos_xcode-15.4_release | |
os: macos-14 | |
env: {ALPAKA_CI_CXX: clang++, ALPAKA_CI_XCODE_VER: 15.4, CMAKE_BUILD_TYPE: Release, ALPAKA_BOOST_VERSION: 1.81.0, alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: ON, alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE: ON, ALPAKA_CI_BUILD_JOBS: 3} | |
- name: macos_xcode-16.1_debug | |
os: macos-15 | |
env: {ALPAKA_CI_CXX: clang++, ALPAKA_CI_XCODE_VER: 16.1, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.82.0, alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: ON, alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE: ON, ALPAKA_CI_BUILD_JOBS: 3} | |
### Windows | |
- name: windows_cl-2022_release | |
os: windows-2022 | |
env: {ALPAKA_CI_CXX: cl.exe, ALPAKA_CI_CL_VER: 2022, CMAKE_BUILD_TYPE: Release, ALPAKA_BOOST_VERSION: 1.79.0, ALPAKA_CI_CMAKE_VER: 3.25.3, OMP_NUM_THREADS: 1} | |
- name: windows_cl-2022_debug | |
os: windows-2022 | |
env: {ALPAKA_CI_CXX: cl.exe, ALPAKA_CI_CL_VER: 2022, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.80.0, ALPAKA_CI_CMAKE_VER: 3.25.1, OMP_NUM_THREADS: 4, alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE: OFF} | |
## CUDA 12.1 | |
# nvcc + MSVC | |
# - name: windows_nvcc-12.1_cl-2022_release_cuda-only | |
# os: windows-2022 | |
# env: {ALPAKA_CI_CXX: cl.exe, ALPAKA_CI_CL_VER: 2022, CMAKE_BUILD_TYPE: Release, ALPAKA_BOOST_VERSION: 1.81.0, ALPAKA_CI_CMAKE_VER: 3.25.3, ALPAKA_CI_RUN_TESTS: OFF, alpaka_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "12.1", CMAKE_CUDA_ARCHITECTURES: "50;90", alpaka_ACC_GPU_CUDA_ONLY_MODE: ON, alpaka_ACC_CPU_B_SEQ_T_SEQ_ENABLE: OFF, alpaka_ACC_CPU_B_SEQ_T_THREADS_ENABLE: OFF, alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: OFF, alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE: OFF} | |
# - name: windows_nvcc-12.1_cl-2022_debug | |
# os: windows-2022 | |
# env: {ALPAKA_CI_CXX: cl.exe, ALPAKA_CI_CL_VER: 2022, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.78.0, ALPAKA_CI_CMAKE_VER: 3.25.1, ALPAKA_CI_RUN_TESTS: OFF, alpaka_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "12.1", alpaka_ACC_CPU_BT_OMP5_ENABLE: OFF, alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF} | |
### Ubuntu | |
## native | |
# g++ | |
# We can not enable UBSan when using gcc because it does not have a -fsanitize-blacklist option to suppress errors in boost etc. | |
# gcc 7 ASan introduced 'stack-use-after-scope' which is triggered by GOMP_parallel | |
# TODO: keep jobs until GitLab CI supports: | |
# - disable CMAKE_CXX_EXTENSIONS=OFF | |
# - Ubuntu 22.04 | |
- name: linux_gcc-11_debug | |
os: ubuntu-20.04 | |
env: {ALPAKA_CI_CXX: g++, ALPAKA_CI_GCC_VER: 11, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.74.0, ALPAKA_CI_CMAKE_VER: 3.25.3, OMP_NUM_THREADS: 4, CMAKE_CXX_EXTENSIONS: OFF} | |
container: ubuntu:20.04 | |
- name: linux_gcc-12_release_c++20 | |
os: ubuntu-22.04 | |
env: {ALPAKA_CI_CXX: g++, ALPAKA_CI_GCC_VER: 12, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_BOOST_VERSION: 1.80.0, ALPAKA_CI_CMAKE_VER: 3.25.3, OMP_NUM_THREADS: 2, alpaka_CXX_STANDARD: 20, alpaka_USE_MDSPAN: "FETCH"} | |
container: ubuntu:22.04 | |
- name: linux_gcc-13_debug | |
os: ubuntu-22.04 | |
env: {ALPAKA_CI_CXX: g++, ALPAKA_CI_GCC_VER: 13, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.82.0, ALPAKA_CI_CMAKE_VER: 3.26.4, OMP_NUM_THREADS: 2} | |
container: ubuntu:22.04 | |
# TODO: keep jobs until GitLab CI supports: | |
# - disable CMAKE_CXX_EXTENSIONS=OFF | |
# - Ubuntu 22.04 | |
# - libc++ | |
# - sanitizer jobs | |
# clang++ | |
- name: linux_clang-13_release | |
os: ubuntu-20.04 | |
env: {ALPAKA_CI_CXX: clang++, ALPAKA_CI_CLANG_VER: 13, ALPAKA_CI_STDLIB: libc++, CMAKE_BUILD_TYPE: Release, ALPAKA_BOOST_VERSION: 1.75.0, ALPAKA_CI_CMAKE_VER: 3.25.3, OMP_NUM_THREADS: 4, alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, CMAKE_CXX_EXTENSIONS: OFF} | |
container: ubuntu:20.04 | |
# clang-11 tested in GitLab CI | |
- name: linux_clang-14_release | |
os: ubuntu-20.04 | |
env: {ALPAKA_CI_CXX: clang++, ALPAKA_CI_CLANG_VER: 14, ALPAKA_CI_STDLIB: libc++, CMAKE_BUILD_TYPE: Release, ALPAKA_BOOST_VERSION: 1.77.0, ALPAKA_CI_CMAKE_VER: 3.25.3, OMP_NUM_THREADS: 4, alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, CMAKE_CXX_EXTENSIONS: OFF} | |
container: ubuntu:20.04 | |
- name: linux_clang-15_debug | |
os: ubuntu-22.04 | |
env: {ALPAKA_CI_CXX: clang++, ALPAKA_CI_CLANG_VER: 15, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.79.0, ALPAKA_CI_CMAKE_VER: 3.25.3, OMP_NUM_THREADS: 3, CMAKE_CXX_EXTENSIONS: OFF} | |
container: ubuntu:22.04 | |
- name: linux_clang-16_debug_ubsan | |
os: ubuntu-22.04 | |
env: {ALPAKA_CI_CXX: clang++, ALPAKA_CI_CLANG_VER: 16, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.77.0, ALPAKA_CI_CMAKE_VER: 3.25.3, OMP_NUM_THREADS: 4, CMAKE_CXX_EXTENSIONS: OFF, ALPAKA_CI_SANITIZERS: UBSan} | |
container: ubuntu:22.04 | |
- name: linux_clang-16_debug_tsan | |
os: ubuntu-22.04 | |
env: {ALPAKA_CI_CXX: clang++, ALPAKA_CI_CLANG_VER: 16, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_BOOST_VERSION: 1.77.0, ALPAKA_CI_CMAKE_VER: 3.25.3, OMP_NUM_THREADS: 4, alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: OFF, alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE: OFF, alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, CMAKE_CXX_EXTENSIONS: OFF, ALPAKA_CI_SANITIZERS: TSan} | |
container: ubuntu:22.04 | |
steps: | |
- name: check filter | |
if: (contains(github.event.head_commit.message, 'ci_filter') && !contains(github.event.head_commit.message, matrix.name )) | |
run: exit 1 | |
- uses: actions/checkout@v3 | |
# Print the environment variables in an additional step so that the environment variables can be displayed if the job is still running. | |
# Call ./script/set_default_env_vars.sh in each step, as the environment variables are not shared between the steps by default. | |
- name: print environment variables | |
env: | |
ALPAKA_CI_OS_NAME: ${{runner.os}} | |
run: cd ${GITHUB_WORKSPACE} && source ./script/set_default_env_vars.sh && source ./script/gitlabci/print_env.sh | |
- name: build + test | |
env: | |
ALPAKA_CI_OS_NAME: ${{runner.os}} | |
run: cd ${GITHUB_WORKSPACE} && source ./script/set_default_env_vars.sh && ./script/ci.sh |