Compare to epicast (#152) #1587
This file contains hidden or 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: cuda | |
| on: [push, pull_request] | |
| concurrency: | |
| group: ${{ github.ref }}-${{ github.head_ref }}-cuda | |
| cancel-in-progress: true | |
| jobs: | |
| # Build ExaEpi with CUDA 12.6 (minimum supported) | |
| build-cuda12: | |
| name: [email protected] C++17 Release | |
| runs-on: ubuntu-24.04 | |
| env: {CXXFLAGS: "-fno-operator-names -Werror -Wall -Wextra -Wpedantic -Wnull-dereference -Wfloat-conversion -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -Wnon-virtual-dtor -Wlogical-op -Wmisleading-indentation -Wduplicated-cond -Wduplicated-branches"} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Dependencies | |
| run: .github/workflows/dependencies/dependencies_nvcc12.sh | |
| - name: Build & Install | |
| run: | | |
| export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} | |
| export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64:${LD_LIBRARY_PATH} | |
| which nvcc || echo "nvcc not in PATH!" | |
| cmake -S . -B build \ | |
| -DCMAKE_VERBOSE_MAKEFILE=ON \ | |
| -DAMReX_GPU_BACKEND=CUDA \ | |
| -DCMAKE_C_COMPILER=$(which gcc) \ | |
| -DCMAKE_CXX_COMPILER=$(which g++) \ | |
| -DCMAKE_CUDA_HOST_COMPILER=$(which g++) \ | |
| -DCMAKE_CUDA_STANDARD=17 \ | |
| -DCMAKE_CXX_STANDARD=17 \ | |
| -DAMReX_CUDA_ARCH=8.0 \ | |
| -DAMReX_CUDA_ERROR_CROSS_EXECUTION_SPACE_CALL=ON \ | |
| -DAMReX_CUDA_ERROR_CAPTURE_THIS=ON | |
| cmake --build build -j 2 | |
| # Build ExaEpi with NVHPC (recent supported) | |
| build-nvhpc-nvcc: | |
| name: NVHPC NVCC/NVC++ C++17 Release | |
| runs-on: ubuntu-24.04 | |
| env: {CXXFLAGS: "-Werror -Wall -Wextra -Wpedantic -Wshadow"} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Dependencies | |
| run: .github/workflows/dependencies/dependencies_nvhpc.sh | |
| - name: Build & Install | |
| run: | | |
| source /etc/profile.d/modules.sh | |
| nvhpc_version=`ls -v /opt/nvidia/hpc_sdk/modulefiles/nvhpc/ | tail -n 1` | |
| module load /opt/nvidia/hpc_sdk/modulefiles/nvhpc/${nvhpc_version} | |
| which nvcc || echo "nvcc not in PATH!" | |
| which nvc++ || echo "nvc++ not in PATH!" | |
| which nvc || echo "nvc not in PATH!" | |
| which nvfortran || echo "nvfortran not in PATH!" | |
| nvcc --version | |
| nvc++ --version | |
| nvc --version | |
| nvfortran --version | |
| cmake --version | |
| export HDF5_ROOT=/usr/lib/x86_64-linux-gnu/hdf5/openmpi | |
| which nvcc || echo "nvcc not in PATH!" | |
| which nvc++ || echo "nvc++ not in PATH!" | |
| which nvc || echo "nvc not in PATH!" | |
| nvcc --version | |
| nvc++ --version | |
| nvc --version | |
| cmake --version | |
| cmake -S . -B build \ | |
| -DCMAKE_VERBOSE_MAKEFILE=ON \ | |
| -DAMReX_GPU_BACKEND=CUDA \ | |
| -DCMAKE_C_COMPILER=$(which nvc) \ | |
| -DCMAKE_CXX_COMPILER=$(which nvc++) \ | |
| -DCMAKE_CUDA_HOST_COMPILER=$(which nvc++) \ | |
| -DCMAKE_CUDA_STANDARD=17 \ | |
| -DCMAKE_CXX_STANDARD=17 \ | |
| -DAMReX_CUDA_ARCH=8.0 \ | |
| -DAMReX_CUDA_ERROR_CROSS_EXECUTION_SPACE_CALL=ON \ | |
| -DAMReX_CUDA_ERROR_CAPTURE_THIS=ON | |
| cmake --build build -j 2 |