Documentation #656
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: 🐧 Intel | |
on: [push, pull_request] | |
concurrency: | |
group: ${{ github.ref }}-${{ github.head_ref }}-intel | |
cancel-in-progress: true | |
jobs: | |
# Ref.: https://github.com/rscohn2/oneapi-ci | |
# intel-basekit intel-hpckit are too large in size | |
build_icc: | |
name: oneAPI ICC SP&DP | |
runs-on: ubuntu-20.04 | |
if: github.event.pull_request.draft == false | |
# For oneAPI, Ninja is slower than the default: | |
#env: | |
# CMAKE_GENERATOR: Ninja | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
run: | | |
.github/workflows/dependencies/icc.sh | |
- name: CCache Cache | |
uses: actions/cache@v3 | |
# - once stored under a key, they become immutable (even if local cache path content changes) | |
# - for a refresh the key has to change, e.g., hash of a tracked file in the key | |
with: | |
path: | | |
~/.ccache | |
~/.cache/ccache | |
key: ccache-intel-icc-${{ hashFiles('.github/workflows/intel.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }} | |
restore-keys: | | |
ccache-intel-icc-${{ hashFiles('.github/workflows/intel.yml') }}- | |
ccache-intel-icc- | |
- name: build WarpX | |
run: | | |
set +eu | |
source /opt/intel/oneapi/setvars.sh | |
set -eu | |
export CXX=$(which icpc) | |
export CC=$(which icc) | |
cmake -S . -B build_dp \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DWarpX_LIB=ON \ | |
-DWarpX_MPI=OFF \ | |
-DWarpX_OPENPMD=ON \ | |
-DWarpX_openpmd_internal=OFF | |
cmake --build build_dp -j 2 | |
cmake -S . -B build_sp \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DWarpX_LIB=ON \ | |
-DWarpX_MPI=OFF \ | |
-DWarpX_OPENPMD=ON \ | |
-DWarpX_openpmd_internal=OFF \ | |
-DWarpX_PRECISION=SINGLE | |
cmake --build build_sp -j 2 | |
python3 -m pip install --upgrade pip setuptools wheel | |
PYWARPX_LIB_DIR=$PWD/build_sp/lib python3 -m pip install -v . | |
build_icpx: | |
name: oneAPI ICX SP | |
runs-on: ubuntu-20.04 | |
# Since 2021.4.0, AMReX_GpuUtility.H: error: comparison with NaN always evaluates to false in fast floating point modes | |
# oneAPI 2022.2.0 hangs for -O2 and higher: | |
# https://github.com/ECP-WarpX/WarpX/issues/3442 | |
env: | |
CXXFLAGS: "-Werror -Wno-error=pass-failed -Wno-tautological-constant-compare" | |
# For oneAPI, Ninja is slower than the default: | |
# CMAKE_GENERATOR: Ninja | |
if: github.event.pull_request.draft == false | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
shell: bash | |
run: | | |
.github/workflows/dependencies/dpcpp.sh | |
- name: CCache Cache | |
uses: actions/cache@v3 | |
# - once stored under a key, they become immutable (even if local cache path content changes) | |
# - for a refresh the key has to change, e.g., hash of a tracked file in the key | |
with: | |
path: | | |
~/.ccache | |
~/.cache/ccache | |
key: ccache-intel-icpx-${{ hashFiles('.github/workflows/intel.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }} | |
restore-keys: | | |
ccache-intel-icpx-${{ hashFiles('.github/workflows/intel.yml') }}- | |
ccache-intel-icpx- | |
- name: build WarpX | |
shell: bash | |
run: | | |
set +e | |
source /opt/intel/oneapi/setvars.sh | |
set -e | |
export CXX=$(which icpx) | |
export CC=$(which icx) | |
cmake -S . -B build_sp \ | |
-DCMAKE_CXX_FLAGS_RELEASE="-O1 -DNDEBUG" \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DWarpX_EB=ON \ | |
-DWarpX_LIB=ON \ | |
-DWarpX_MPI=OFF \ | |
-DWarpX_OPENPMD=ON \ | |
-DWarpX_PRECISION=SINGLE | |
cmake --build build_sp -j 2 | |
build_dpcc: | |
name: oneAPI DPC++ SP | |
runs-on: ubuntu-20.04 | |
# Since 2021.4.0, AMReX_GpuUtility.H: error: comparison with NaN always evaluates to false in fast floating point modes | |
# oneAPI 2022.2.0 hangs for -O2 and higher: | |
# https://github.com/ECP-WarpX/WarpX/issues/3442 | |
env: | |
CXXFLAGS: "-Werror -Wno-tautological-constant-compare" | |
# For oneAPI, Ninja is slower than the default: | |
# CMAKE_GENERATOR: Ninja | |
if: github.event.pull_request.draft == false | |
steps: | |
- uses: actions/checkout@v3 | |
- name: install dependencies | |
shell: bash | |
run: | | |
.github/workflows/dependencies/dpcpp.sh | |
- name: CCache Cache | |
uses: actions/cache@v3 | |
# - once stored under a key, they become immutable (even if local cache path content changes) | |
# - for a refresh the key has to change, e.g., hash of a tracked file in the key | |
with: | |
path: | | |
~/.ccache | |
~/.cache/ccache | |
key: ccache-intel-dpcc-${{ hashFiles('.github/workflows/intel.yml') }}-${{ hashFiles('cmake/dependencies/AMReX.cmake') }} | |
restore-keys: | | |
ccache-intel-dpcc-${{ hashFiles('.github/workflows/intel.yml') }}- | |
ccache-intel-dpcc- | |
- name: build WarpX | |
shell: bash | |
run: | | |
set +e | |
source /opt/intel/oneapi/setvars.sh | |
set -e | |
export CXX=$(which icpx) | |
export CC=$(which icx) | |
export CXXFLAGS="-fsycl ${CXXFLAGS}" | |
cmake -S . -B build_sp \ | |
-DCMAKE_CXX_FLAGS_RELEASE="-O1 -DNDEBUG" \ | |
-DBUILD_SHARED_LIBS=ON \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DWarpX_COMPUTE=SYCL \ | |
-DWarpX_EB=ON \ | |
-DWarpX_LIB=ON \ | |
-DWarpX_MPI=OFF \ | |
-DWarpX_OPENPMD=ON \ | |
-DWarpX_PRECISION=SINGLE | |
cmake --build build_sp -j 2 | |
# TODO: re-enable -DWarpX_LIB=ON as soon as "dpcpp -fPIC" segfaults are | |
# fixed | |
# Skip this as it will copy the binary artifacts and we are tight on disk space | |
# python3 -m pip install --upgrade pip | |
# python3 -m pip install --upgrade setuptools wheel | |
# PYWARPX_LIB_DIR=$PWD/build_sp/lib python3 -m pip wheel . | |
# python3 -m pip install *.whl |