more debug #352
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
name: Build | |
on: [push, pull_request] | |
jobs: | |
build-linux: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04] | |
compiler: [g++-7] #, g++-8, g++-9, g++-10, clang++-8, clang++-9, clang++-10] | |
CUDA: ['0'] #, '8.0', '11.0', 'NVHPC-22.5'] | |
ONEAPI: ['0', '2023.2.0', '2024.0'] | |
runs-on: ${{ matrix.os }} | |
env: | |
CUDA_ROOT: '/usr/local/cuda' | |
steps: | |
- name: Install g++-7 (if needed) | |
if: matrix.compiler == 'g++-7' | |
run: | | |
sudo apt install g++-7 | |
- name: Install g++-8 (if needed) | |
if: matrix.compiler == 'g++-8' | |
run: | | |
sudo apt install g++-8 | |
- name: Install clang++-8 (if needed) | |
if: matrix.compiler == 'clang++-8' | |
run: | | |
sudo apt install clang-8 | |
- name: Install clang++-9 (if needed) | |
if: matrix.compiler == 'clang++-9' | |
run: | | |
sudo apt install clang-9 | |
- name: Install clang++-10 (if needed) | |
if: matrix.compiler == 'clang++-10' | |
run: | | |
sudo apt install clang-10 | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: '0' | |
- name: Install CUDA runtime (if needed) | |
if: matrix.CUDA != '0' && matrix.ONEAPI == 0 | |
run: | | |
case ${{ matrix.CUDA }} in | |
8.0) | |
wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run | |
wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/patches/2/cuda_8.0.61.2_linux-run | |
sudo sh cuda_8.0.61_375.26_linux-run --extract=${CUDA_ROOT} | |
sudo sh ${CUDA_ROOT}/cuda-linux64-rel-8.0.61-21551265.run --tar mxvf -C ${CUDA_ROOT} | |
sudo sh cuda_8.0.61.2_linux-run --accept-eula --silent --installdir=${CUDA_ROOT} | |
;; | |
11.0) | |
wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run | |
sudo sh cuda_11.0.3_450.51.06_linux.run --toolkit --toolkitpath=${CUDA_ROOT} --override --silent | |
;; | |
NVHPC-22.5) | |
wget https://developer.download.nvidia.com/hpc-sdk/22.5/nvhpc_2022_225_Linux_x86_64_cuda_11.7.tar.gz | |
tar xpzf nvhpc_2022_225_Linux_x86_64_cuda_11.7.tar.gz | |
sudo NVHPC_SILENT="true" NVHPC_INSTALL_DIR="$CUDA_ROOT" NVHPC_INSTALL_TYPE="single" ./nvhpc_2022_225_Linux_x86_64_cuda_11.7/install | |
esac | |
- name: Install OneAPI Base-Toolkit (if needed) | |
if: matrix.ONEAPI != '0' && matrix.CUDA == '0' | |
run: | | |
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null | |
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list | |
sudo apt update | |
sudo apt install intel-basekit-${{ matrix.ONEAPI }} | |
- name: Create build directory | |
run: | | |
mkdir build | |
- name: Run CMake configure (default) | |
if: matrix.CUDA == '0' && matrix.ONEAPI == '0' | |
env: | |
CXX: ${{ matrix.compiler }} | |
run: | | |
cd build | |
cmake .. | |
- name: Run CMake configure (CUDA) | |
if: matrix.CUDA != '0' && matrix.CUDA != 'NVHPC-22.5' && matrix.ONEAPI == '0' | |
env: | |
CXX: ${{ matrix.compiler }} | |
run: | | |
export CPATH=${CUDA_ROOT}/include:${CPATH} | |
export LD_LIBRARY_PATH=${CUDA_ROOT}/lib64:${CUDA_ROOT}/lib64/stubs:${LD_LIBRARY_PATH} | |
export LIBRARY_PATH=${CUDA_ROOT}/lib64:${CUDA_ROOT}/lib64/stubs:${LIBRARY_PATH} | |
export CUDA_LIB_PATH=${CUDA_ROOT}/lib64:${CUDA_ROOT}/lib64/stubs | |
export PATH=${CUDA_ROOT}:${PATH} | |
export CUDA_HOME=${CUDA_ROOT} | |
export CUDA_PATH=${CUDA_ROOT} | |
export CUDAToolkit_ROOT=${CUDA_ROOT} | |
cd build | |
cmake -DFIRESTARTER_BUILD_TYPE="FIRESTARTER_CUDA" -DCMAKE_EXE_LINKER_FLAGS="-L${CUDA_ROOT}/lib64/stubs/" .. | |
- name: Run CMake configure (CUDA with NVHPC) | |
if: matrix.CUDA == 'NVHPC-22.5' && matrix.ONEAPI == '0' | |
env: | |
CXX: ${{ matrix.compiler }} | |
run: | | |
NVARCH=`uname -s`_`uname -m`; export NVARCH | |
PATH=$CUDA_ROOT/$NVARCH/22.5/compilers/bin:$PATH; export PATH | |
LD_LIBRARY_PATH=$CUDA_ROOT/$NVARCH/22.5/compilers/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH | |
LD_LIBRARY_PATH=$CUDA_ROOT/$NVARCH/22.5/cuda/11.7/lib64:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH | |
LD_LIBRARY_PATH=$CUDA_ROOT/$NVARCH/22.5/cuda/11.7/lib64/stubs:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH | |
cd build | |
cmake -DFIRESTARTER_BUILD_TYPE="FIRESTARTER_CUDA" -DCMAKE_EXE_LINKER_FLAGS=-L"$CUDA_ROOT/$NVARCH/22.5/cuda/11.7/lib64/stubs" -LA .. | |
- name: Run CMake configure (OneAPI) | |
if: matrix.CUDA == '0' && matrix.ONEAPI !='0' | |
run: | | |
ls /opt/intel/oneapi | |
. /opt/intel/oneapi/${{ matrix.ONEAPI }}/oneapi-vars.sh | |
cd build | |
cmake -DFIRESTARTER_BUILD_TYPE="FIRESTARTER_ONEAPI" .. | |
- name: Build (default, CUDA) | |
if: matrix.ONEAPI =='0' | |
run: | | |
cd build | |
make -j2 | |
- name: Build (OneAPI) | |
if: matrix.ONEAPI !='0' && matrix.CUDA =='0' | |
run: | | |
. /opt/intel/oneapi/${{ matrix.ONEAPI }}/oneapi-vars.sh | |
cd build | |
make -j2 | |
- name: Strip binary (default) | |
if: matrix.CUDA == '0' && matrix.ONEAPI == '0' | |
run: | | |
cd build | |
strip src/FIRESTARTER | |
- name: Strip binary (CUDA) | |
if: matrix.CUDA != '0' && matrix.ONEAPI == '0' | |
run: | | |
cd build | |
strip src/FIRESTARTER_CUDA | |
- name: Strip binary (OneAPI) | |
if: matrix.ONEAPI != '0' && matrix.CUDA == '0' | |
run: | | |
cd build | |
strip src/FIRESTARTER_ONEAPI | |
- name: Test FIRESTARTER (default) | |
if: matrix.CUDA == '0' && matrix.ONEAPI == '0' | |
run: ./build/src/FIRESTARTER -t 1 | |
- uses: actions/upload-artifact@v2 | |
if: matrix.compiler == 'clang++-10' && matrix.CUDA == '0' && matrix.ONEAPI == '0' | |
with: | |
name: FIRESTARTER-linux | |
path: build/src/FIRESTARTER | |
- uses: actions/upload-artifact@v2 | |
if: matrix.compiler == 'clang++-10' && matrix.CUDA != '0' && matrix.ONEAPI == '0' | |
with: | |
name: FIRESTARTER_CUDA_${{ matrix.CUDA }}-linux | |
path: build/src/FIRESTARTER_CUDA | |
- uses: actions/upload-artifact@v2 | |
if: matrix.compiler == 'clang++-10' && matrix.CUDA == '0' && matrix.ONEAPI != '0' | |
with: | |
name: FIRESTARTER_ONEAPI_${{ matrix.ONEAPI }}-linux | |
path: build/src/FIRESTARTER_ONEAPI | |