first draft #472
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@v4 | |
- name: install dependencies | |
run: | | |
.github/workflows/dependencies/icc.sh | |
- name: CCache Cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/ccache | |
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }} | |
restore-keys: | | |
ccache-${{ github.workflow }}-${{ github.job }}-git- | |
- name: build WarpX | |
run: | | |
export CCACHE_COMPRESS=1 | |
export CCACHE_COMPRESSLEVEL=10 | |
export CCACHE_MAXSIZE=200M | |
export CCACHE_DEPEND=1 | |
ccache -z | |
set +eu | |
source /opt/intel/oneapi/setvars.sh | |
set -eu | |
export CXX=$(which icpc) | |
export CC=$(which icc) | |
python3 -m pip install --upgrade pip | |
python3 -m pip install --upgrade build packaging 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 4 | |
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 4 | |
cmake --build build_sp --target pip_install | |
ccache -s | |
du -hs ~/.cache/ccache | |
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@v4 | |
- name: install dependencies | |
shell: bash | |
run: | | |
.github/workflows/dependencies/dpcpp.sh | |
- name: CCache Cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/ccache | |
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }} | |
restore-keys: | | |
ccache-${{ github.workflow }}-${{ github.job }}-git- | |
- name: build WarpX | |
shell: bash | |
run: | | |
export CCACHE_COMPRESS=1 | |
export CCACHE_COMPRESSLEVEL=10 | |
export CCACHE_MAXSIZE=100M | |
export CCACHE_DEPEND=1 | |
ccache -z | |
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 build packaging 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 4 | |
cmake --build build_sp --target pip_install | |
ccache -s | |
du -hs ~/.cache/ccache | |
- 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@v4 | |
- name: install dependencies | |
shell: bash | |
run: | | |
.github/workflows/dependencies/dpcpp.sh | |
- name: CCache Cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/ccache | |
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }} | |
restore-keys: | | |
ccache-${{ github.workflow }}-${{ github.job }}-git- | |
- name: build WarpX | |
shell: bash | |
run: | | |
export CCACHE_COMPRESS=1 | |
export CCACHE_COMPRESSLEVEL=10 | |
export CCACHE_MAXSIZE=100M | |
export CCACHE_DEPEND=1 | |
ccache -z | |
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 4 | |
ccache -s | |
du -hs ~/.cache/ccache | |
# 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 build packaging setuptools wheel | |
# PYWARPX_LIB_DIR=$PWD/build_sp/lib/site-packages/pywarpx/ python3 -m pip wheel . | |
# python3 -m pip install *.whl | |
save_pr_number: | |
if: github.event_name == 'pull_request' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Save PR number | |
env: | |
PR_NUMBER: ${{ github.event.number }} | |
run: | | |
echo $PR_NUMBER > pr_number.txt | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: pr_number | |
path: pr_number.txt | |
retention-days: 1 |