CUDA On Windows (MSVC) (#4309) #6570
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: 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: 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 |