Skip to content

Set up CTest

Set up CTest #14241

Workflow file for this run

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