Skip to content

Make push_back option for cpu-only build #348

Make push_back option for cpu-only build

Make push_back option for cpu-only build #348

Workflow file for this run

name: linux
on: [push, pull_request]
jobs:
nyx_gnu:
name: [email protected] Release
runs-on: ubuntu-latest
env: {CXXFLAGS: "-Werror -Woverloaded-virtual -Wunreachable-code"}
steps:
- uses: actions/checkout@v2
- name: Dependencies
run: .github/workflows/dependencies/dependencies.sh
- name: Build & Install
run: |
cmake -S . -B build \
-DNyx_HEATCOOL=yes \
-DNyx_HYDRO=yes
cmake --build build --parallel 2
nyx_clang:
name: [email protected] Debug
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Dependencies
run: .github/workflows/dependencies/dependencies_clang6.sh
- name: Build & Install
run: |
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Debug \
-DNyx_HEATCOOL=yes \
-DNyx_HYDRO=yes \
-DCMAKE_C_COMPILER=$(which clang) \
-DCMAKE_CXX_COMPILER=$(which clang++)
cmake --build build --parallel 2
nyx-cuda9:
name: [email protected] [email protected] C++14 Release
runs-on: ubuntu-20.04
env: {CXXFLAGS: "-fno-operator-names"}
steps:
- uses: actions/checkout@v2
- name: Dependencies
run: .github/workflows/dependencies/dependencies_nvcc10.sh 10.2
- 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:/usr/local/cuda/lib:${LD_LIBRARY_PATH}
ls /usr/local/cuda/*
cmake -S . -B build_adiabatic \
-DNyx_HEATCOOL=no \
-DNyx_HYDRO=yes \
-DNyx_OMP=no \
-DNyx_GPU_BACKEND=CUDA \
-DCMAKE_C_COMPILER=$(which gcc-6) \
-DCMAKE_CXX_COMPILER=$(which g++-6) \
-DCMAKE_CUDA_HOST_COMPILER=$(which g++-6) \
-DCMAKE_CUDA_ARCHITECTURES=60 \
-DAMReX_CUDA_ARCH=6.0
cmake --build build_adiabatic --parallel 2
cmake -S . -B build \
-DNyx_HEATCOOL=yes \
-DNyx_HYDRO=yes \
-DNyx_OMP=no \
-DNyx_GPU_BACKEND=CUDA \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_C_COMPILER=$(which gcc-6) \
-DCMAKE_CXX_COMPILER=$(which g++-6) \
-DCMAKE_CUDA_HOST_COMPILER=$(which g++-6) \
-DCMAKE_CUDA_ARCHITECTURES=60 \
-DAMReX_CUDA_ARCH=6.0
cmake --build build --parallel 2
# Ref.:
# https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/ubuntu18.04/10.1/base/Dockerfile
# https://github.com/ComputationalRadiationPhysics/picongpu/blob/0.5.0/share/picongpu/dockerfiles/ubuntu-1604/Dockerfile
# https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/
nyx-cuda11:
name: NVCC 11.2 SP [Linux]
runs-on: ubuntu-20.04
env: {CXXFLAGS: "-fno-operator-names"}
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: .github/workflows/dependencies/dependencies_nvcc11.sh
- name: build Nyx
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:/usr/local/cuda/lib:${LD_LIBRARY_PATH}
which nvcc || echo "nvcc not in PATH!"
ls /usr/local/cuda/*
cmake -S . -B build_adiabatic \
-DNyx_HEATCOOL=no \
-DNyx_HYDRO=yes \
-DNyx_OMP=no \
-DNyx_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 \
-DCMAKE_CUDA_ARCHITECTURES=80 \
-DAMReX_CUDA_ARCH=8.0
cmake --build build_adiabatic --parallel 2
cmake -S . -B build \
-DNyx_HEATCOOL=yes \
-DNyx_HYDRO=yes \
-DNyx_OMP=no \
-DNyx_GPU_BACKEND=CUDA \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_C_COMPILER=$(which gcc) \
-DCMAKE_CXX_COMPILER=$(which g++) \
-DCMAKE_CUDA_HOST_COMPILER=$(which g++) \
-DCMAKE_CUDA_STANDARD=17 \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CUDA_ARCHITECTURES=80 \
-DAMReX_CUDA_ARCH=8.0
cmake --build build --parallel 2
nyx-dpcpp:
name: DPCPP C++17
runs-on: ubuntu-20.04
env: {CXXFLAGS: "-fno-operator-names"}
steps:
- uses: actions/checkout@v2
- name: Dependencies
run: .github/workflows/dependencies/dependencies_dpcpp.sh
- name: Build & Install
run: |
set +e
source /opt/intel/oneapi/setvars.sh
set -e
cmake -S . -B build_adiabatic \
-DCMAKE_CXX_COMPILER_ID="Clang" \
-DCMAKE_CXX_COMPILER_VERSION=12.0 \
-DCMAKE_CXX_STANDARD_COMPUTED_DEFAULT="17" \
-DNyx_HEATCOOL=no \
-DNyx_HYDRO=yes \
-DNyx_OMP=no \
-DNyx_GPU_BACKEND=SYCL \
-DCMAKE_C_COMPILER=$(which clang) \
-DCMAKE_CXX_COMPILER=$(which dpcpp)
cmake --build build_adiabatic --parallel 2
cmake -S . -B build \
-DCMAKE_CXX_COMPILER_ID="Clang" \
-DCMAKE_CXX_COMPILER_VERSION=12.0 \
-DCMAKE_CXX_STANDARD_COMPUTED_DEFAULT="17" \
-DNyx_HEATCOOL=yes \
-DNyx_HYDRO=yes \
-DNyx_OMP=no \
-DNyx_GPU_BACKEND=SYCL \
-DCMAKE_C_COMPILER=$(which clang) \
-DCMAKE_CXX_COMPILER=$(which dpcpp)
cmake --build build --parallel 2
# note: setting the CXX compiler ID is a work-around for
# the 2021.1 DPC++ release / CMake 3.19.0-3.19.1
# https://gitlab.kitware.com/cmake/cmake/-/issues/21551#note_869580
nyx-hip:
name: HIP [email protected] C++17
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Dependencies
run: .github/workflows/dependencies/dependencies_hip.sh
- name: Build & Install
run: |
source /etc/profile.d/rocm.sh
hipcc --version
# "mpic++ --showme" forgets open-pal in Ubuntu 20.04 + OpenMPI 4.0.3
# https://bugs.launchpad.net/ubuntu/+source/openmpi/+bug/1941786
# https://github.com/open-mpi/ompi/issues/9317
export LDFLAGS="-lopen-pal"
cmake -S . -B build_adiabatic \
-DNyx_HEATCOOL=no \
-DNyx_HYDRO=yes \
-DNyx_OMP=no \
-DNyx_GPU_BACKEND=HIP \
-DAMReX_AMD_ARCH=gfx908 \
-DCMAKE_C_COMPILER=$(which clang) \
-DCMAKE_CXX_COMPILER=$(which hipcc) \
-DCMAKE_CXX_COMPILER_ID="Clang" \
-DCMAKE_CXX_COMPILER_VERSION=12.0 \
-DCMAKE_CXX_STANDARD_COMPUTED_DEFAULT="17" \
-DCMAKE_CXX_STANDARD=17
cmake --build build_adiabatic --parallel 2
cmake -S . -B build \
-DNyx_HEATCOOL=yes \
-DNyx_HYDRO=yes \
-DNyx_OMP=no \
-DNyx_GPU_BACKEND=HIP \
-DAMReX_AMD_ARCH=gfx908 \
-DCMAKE_C_COMPILER=$(which clang) \
-DCMAKE_CXX_COMPILER=$(which hipcc) \
-DCMAKE_CXX_COMPILER_ID="Clang" \
-DCMAKE_CXX_COMPILER_VERSION=12.0 \
-DCMAKE_CXX_STANDARD_COMPUTED_DEFAULT="17" \
-DCMAKE_CXX_STANDARD=17
cmake --build build --parallel 2