Development merge 10-02-2023 #883
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) | |
python3 -m pip install --upgrade pip setuptools wheel | |
cmake -S . -B build_dp \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DpyAMReX_IPO=OFF \ | |
-DWarpX_PYTHON=ON \ | |
-DWarpX_PYTHON_IPO=OFF \ | |
-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 \ | |
-DpyAMReX_IPO=OFF \ | |
-DWarpX_PYTHON=ON \ | |
-DWarpX_PYTHON_IPO=OFF \ | |
-DWarpX_MPI=OFF \ | |
-DWarpX_OPENPMD=ON \ | |
-DWarpX_openpmd_internal=OFF \ | |
-DWarpX_PRECISION=SINGLE | |
cmake --build build_sp -j 2 | |
cmake --build build_sp --target pip_install | |
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) | |
python3 -m pip install --upgrade pip | |
python3 -m pip install --upgrade setuptools wheel | |
cmake -S . -B build_sp \ | |
-DCMAKE_CXX_FLAGS_RELEASE="-O1 -DNDEBUG" \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DWarpX_EB=ON \ | |
-DWarpX_PYTHON=ON \ | |
-DWarpX_MPI=OFF \ | |
-DWarpX_OPENPMD=ON \ | |
-DWarpX_PRECISION=SINGLE | |
cmake --build build_sp -j 2 | |
cmake --build build_sp --target pip_install | |
- name: run pywarpx | |
run: | | |
set +e | |
source /opt/intel/oneapi/setvars.sh | |
set -e | |
export OMP_NUM_THREADS=2 | |
Examples/Physics_applications/laser_acceleration/PICMI_inputs_3d.py | |
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_PYTHON=ON \ | |
-DWarpX_MPI=OFF \ | |
-DWarpX_OPENPMD=ON \ | |
-DWarpX_PRECISION=SINGLE | |
cmake --build build_sp -j 2 | |
# 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/site-packages/pywarpx/ python3 -m pip wheel . | |
# python3 -m pip install *.whl |