Fix compilation with HIP 6.0 (#33) #228
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
name: CI | |
on: [push, pull_request] | |
jobs: | |
######################### | |
# Build and test with GCC | |
######################### | |
build-test-gcc-cpu: | |
# The type of runner that the job will run on | |
runs-on: ubuntu-22.04 | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC sudo apt-get install -y make g++ libopenblas-dev libscalapack-mpi-dev wget git make cmake | |
- name: Build | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
mkdir -p build | |
cd build | |
cmake .. -DSPLA_BUILD_TESTS=ON | |
make -j2 | |
- name: Run tests | |
run: | | |
export OMPI_MCA_btl_vader_single_copy_mechanism=none | |
${GITHUB_WORKSPACE}/build/tests/run_tests | |
- name: Run tests with MPI | |
run: | | |
export OMPI_MCA_btl_vader_single_copy_mechanism=none | |
mpirun -n 2 ${GITHUB_WORKSPACE}/build/tests/run_tests | |
########################### | |
# Build and test with clang | |
########################### | |
build-test-clang-cpu: | |
# The type of runner that the job will run on | |
runs-on: ubuntu-22.04 | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC sudo apt-get install -y make clang libopenblas-dev libscalapack-mpi-dev wget git make cmake | |
- name: Build | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
mkdir -p build | |
cd build | |
CXX=clang++ cmake .. -DSPLA_BUILD_TESTS=ON -DSPLA_OMP=OFF | |
make -j2 | |
- name: Run tests | |
run: | | |
export OMPI_MCA_btl_vader_single_copy_mechanism=none | |
${GITHUB_WORKSPACE}/build/tests/run_tests | |
- name: Run tests with MPI | |
run: | | |
export OMPI_MCA_btl_vader_single_copy_mechanism=none | |
mpirun -n 2 ${GITHUB_WORKSPACE}/build/tests/run_tests | |
################# | |
# Build with CUDA | |
################# | |
build-cuda: | |
runs-on: ubuntu-22.04 | |
container: nvidia/cuda:11.0.3-devel-ubuntu20.04 | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
apt-get update | |
DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install -y make g++ libopenblas-dev libscalapack-mpi-dev wget git make | |
cd ${HOME} && wget https://github.com/Kitware/CMake/releases/download/v3.18.0/cmake-3.18.0-Linux-x86_64.tar.gz && tar -xzvf cmake-3.18.0-Linux-x86_64.tar.gz | |
- name: Build | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
mkdir -p build | |
cd build | |
${HOME}/cmake-3.18.0-Linux-x86_64/bin/cmake .. -DSPLA_BUILD_TESTS=ON -DSPLA_GPU_BACKEND=CUDA | |
make -j2 VERBOSE=1 | |
################# | |
# Build with ROCm | |
################# | |
build-rocm: | |
strategy: | |
fail-fast: false | |
matrix: | |
rocm_version: [5.6, 6.0.2] | |
runs-on: ubuntu-22.04 | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC sudo apt-get install -y make g++ libopenblas-dev libscalapack-mpi-dev wget git make cmake gpg | |
cd ${HOME} | |
wget https://repo.radeon.com/rocm/rocm.gpg.key | |
cat rocm.gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null | |
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/${{ matrix.rocm_version }} jammy main" | sudo tee --append /etc/apt/sources.list.d/rocm.list | |
sudo apt-get update | |
sudo apt-get install -y hip-dev rocblas-dev rocm-device-libs | |
- name: Build | |
run: | | |
cd ${GITHUB_WORKSPACE} | |
mkdir -p build | |
cd build | |
cmake .. -DSPLA_BUILD_TESTS=ON -DSPLA_GPU_BACKEND=ROCM -DCMAKE_PREFIX_PATH="/opt/rocm;/opt/rocm/hip" | |
make -j2 | |