Add CMake option: AMReX_CUDA_OBJDIR_AS_TEMPDIR (#4246) #311
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: | |
check_changes: | |
uses: ./.github/workflows/check_changes.yml | |
tests-oneapi-sycl: | |
name: oneAPI SYCL [tests] | |
runs-on: ubuntu-latest | |
needs: check_changes | |
if: needs.check_changes.outputs.has_non_docs_changes == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Dependencies | |
run: | | |
.github/workflows/dependencies/dependencies_dpcpp.sh | |
.github/workflows/dependencies/dependencies_ccache.sh | |
- name: Set Up 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 & Install | |
# Warnings in 2025.0: unused-variable, shadow | |
env: {CXXFLAGS: "-fno-operator-names -Werror -Wall -Wextra -Wpedantic -Wnull-dereference -Wfloat-conversion -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -Wnon-virtual-dtor -Wno-unused-variable -Wno-shadow"} | |
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 | |
cmake -S . -B build \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DAMReX_FFT=ON \ | |
-DAMReX_EB=OFF \ | |
-DAMReX_ENABLE_TESTS=ON \ | |
-DAMReX_FORTRAN=ON \ | |
-DAMReX_GPU_BACKEND=SYCL \ | |
-DCMAKE_C_COMPILER=$(which icx) \ | |
-DCMAKE_CXX_COMPILER=$(which icpx) \ | |
-DCMAKE_Fortran_COMPILER=$(which ifx) \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
-DAMReX_PARALLEL_LINK_JOBS=4 | |
cmake --build build --parallel 4 | |
ccache -s | |
du -hs ~/.cache/ccache | |
tests-oneapi-sycl-eb: | |
name: oneAPI SYCL [tests w/ EB] | |
runs-on: ubuntu-latest | |
needs: check_changes | |
if: needs.check_changes.outputs.has_non_docs_changes == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Dependencies | |
run: | | |
.github/workflows/dependencies/dependencies_dpcpp.sh | |
.github/workflows/dependencies/dependencies_ccache.sh | |
- name: Set Up 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 & Install | |
# Warnings in 2025.0: unused-variable, shadow | |
env: {CXXFLAGS: "-fno-operator-names -Werror -Wall -Wextra -Wpedantic -Wnull-dereference -Wfloat-conversion -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -Wnon-virtual-dtor -Wno-unused-variable -Wno-shadow"} | |
run: | | |
export CCACHE_COMPRESS=1 | |
export CCACHE_COMPRESSLEVEL=10 | |
export CCACHE_MAXSIZE=150M | |
export CCACHE_DEPEND=1 | |
ccache -z | |
set +e | |
source /opt/intel/oneapi/setvars.sh | |
set -e | |
cmake -S . -B build \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DAMReX_FFT=ON \ | |
-DAMReX_EB=ON \ | |
-DAMReX_ENABLE_TESTS=ON \ | |
-DAMReX_FORTRAN=OFF \ | |
-DAMReX_GPU_BACKEND=SYCL \ | |
-DCMAKE_C_COMPILER=$(which icx) \ | |
-DCMAKE_CXX_COMPILER=$(which icpx) \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
-DAMReX_PARALLEL_LINK_JOBS=4 | |
cmake --build build --parallel 4 | |
ccache -s | |
du -hs ~/.cache/ccache | |
tests-oneapi-sycl-eb-nvidia: | |
name: oneAPI SYCL for Nvidia GPUs [tests w/ EB] | |
runs-on: ubuntu-latest | |
needs: check_changes | |
if: false && needs.check_changes.outputs.has_non_docs_changes == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Dependencies | |
run: | | |
.github/workflows/dependencies/ubuntu_free_disk_space.sh | |
.github/workflows/dependencies/dependencies_dpcpp.sh | |
.github/workflows/dependencies/dependencies_nvcc.sh 12.0 | |
.github/workflows/dependencies/dependencies_codeplay.sh oneapi-nvidia-12.0 | |
.github/workflows/dependencies/dependencies_ccache.sh | |
- name: Set Up 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 & Install | |
# Warnings in 2025.0: unused-variable, shadow | |
env: {CXXFLAGS: "-fsycl -fsycl-targets=nvptx64-nvidia-cuda -Xsycl-target-backend --offload-arch=sm_80 -fno-operator-names -Werror -Wall -Wextra -Wpedantic -Wnull-dereference -Wfloat-conversion -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -Wnon-virtual-dtor -Wno-unused-variable -Wno-shadow"} | |
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 --include-intel-llvm | |
set -e | |
# WATCH: Test is disabled due to a compiler issue with some math functions. | |
# The fix did not make it to the next oneAPI release. So we will | |
# enable it again after the next next oneAPI release. | |
cmake -S . -B build \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DAMReX_EB=ON \ | |
-DAMReX_ENABLE_TESTS=OFF \ | |
-DAMReX_TEST_TYPE=Small \ | |
-DAMReX_GPU_BACKEND=SYCL \ | |
-DCMAKE_C_COMPILER=$(which icx) \ | |
-DCMAKE_CXX_COMPILER=$(which clang++) \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
-DAMReX_PARALLEL_LINK_JOBS=4 | |
cmake --build build --parallel 4 | |
ccache -s | |
du -hs ~/.cache/ccache | |
no-tests-oneapi-sycl-amd: | |
name: oneAPI SYCL for AMD GPUs | |
runs-on: ubuntu-20.04 | |
needs: check_changes | |
if: false && needs.check_changes.outputs.has_non_docs_changes == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Dependencies | |
run: | | |
.github/workflows/dependencies/ubuntu_free_disk_space.sh | |
.github/workflows/dependencies/dependencies_dpcpp.sh | |
.github/workflows/dependencies/dependencies_hip.sh 5.4.3 | |
.github/workflows/dependencies/dependencies_codeplay.sh oneapi-amd-5.4.3 | |
.github/workflows/dependencies/dependencies_ccache.sh | |
- name: Set Up 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 & Install | |
# Warnings in 2025.0: unused-variable, shadow | |
env: {CXXFLAGS: "-fsycl -fsycl-targets=amdgcn-amd-amdhsa -Xsycl-target-backend --offload-arch=gfx90a -fno-operator-names -Werror -Wall -Wextra -Wpedantic -Wnull-dereference -Wfloat-conversion -Wshadow -Woverloaded-virtual -Wextra-semi -Wunreachable-code -Wnon-virtual-dtor -Wno-unused-variable -Wno-shadow"} | |
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 --include-intel-llvm | |
set -e | |
cmake -S . -B build \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DAMReX_EB=OFF \ | |
-DAMReX_ENABLE_TESTS=OFF \ | |
-DAMReX_GPU_BACKEND=SYCL \ | |
-DAMReX_SYCL_SUB_GROUP_SIZE=64 \ | |
-DCMAKE_C_COMPILER=$(which icx) \ | |
-DCMAKE_CXX_COMPILER=$(which clang++) \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
-DAMReX_PARALLEL_LINK_JOBS=4 | |
cmake --build build --parallel 4 | |
ccache -s | |
du -hs ~/.cache/ccache | |
# "Classic" EDG Intel Compiler | |
tests-icc: | |
name: ICC [tests] | |
runs-on: ubuntu-latest | |
needs: check_changes | |
if: needs.check_changes.outputs.has_non_docs_changes == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Dependencies | |
run: | | |
.github/workflows/dependencies/ubuntu_free_disk_space.sh | |
.github/workflows/dependencies/dependencies_dpcpp.sh | |
sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic | |
.github/workflows/dependencies/dependencies_ccache.sh | |
- name: Set Up 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 & Install | |
env: {CXXFLAGS: "-Werror"} | |
run: | | |
export CCACHE_COMPRESS=1 | |
export CCACHE_COMPRESSLEVEL=10 | |
export CCACHE_MAXSIZE=100M | |
ccache -z | |
set +e | |
source /opt/intel/oneapi/setvars.sh | |
set -e | |
cmake -S . -B build \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DAMReX_EB=ON \ | |
-DAMReX_ENABLE_TESTS=ON \ | |
-DAMReX_FORTRAN=OFF \ | |
-DCMAKE_C_COMPILER=$(which icc) \ | |
-DCMAKE_CXX_COMPILER=$(which icpc) \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
cmake --build build --parallel 4 | |
cmake --build build --target install | |
cmake --build build --target test_install | |
ccache -s | |
du -hs ~/.cache/ccache | |
- name: Run tests | |
run: | | |
set +e | |
source /opt/intel/oneapi/setvars.sh | |
set -e | |
cd build | |
ctest --output-on-failure |