FFT: Add batch support #9967
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: windows | |
on: [push, pull_request] | |
concurrency: | |
group: ${{ github.ref }}-${{ github.head_ref }}-windows | |
cancel-in-progress: true | |
jobs: | |
check_changes: | |
uses: ./.github/workflows/check_changes.yml | |
# Build libamrex and all tests | |
tests_msvc: | |
name: MSVC C++17 w/o Fortran w/o MPI | |
runs-on: windows-latest | |
needs: check_changes | |
if: needs.check_changes.outputs.has_non_docs_changes == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
# If we add ccache back, don't forget to update cleanup-cache.yml | |
#- name: Set Up Cache | |
# uses: actions/cache@v3 | |
# with: | |
# path: ~/.ccache | |
# key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }} | |
# restore-keys: | | |
# ccache-${{ github.workflow }}-${{ github.job }}-git- | |
#- name: Install Ccache | |
# run: | | |
# Invoke-WebRequest https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-windows-x86_64.zip -OutFile ccache-4.8-windows-x86_64.zip | |
# Expand-Archive ccache-4.8-windows-x86_64.zip | |
- name: Build & Install | |
run: | | |
#$ccachepath = Join-Path $pwd "ccache-4.8-windows-x86_64" | |
#$Env:PATH += ";$ccachepath" | |
#$ccachecachedir = Join-Path $HOME ".ccache" | |
#$Env:CCACHE_DIR="$ccachecachedir" | |
#$Env:CCACHE_DIR | |
#$Env:CCACHE_COMPRESS='1' | |
#$Env:CCACHE_COMPRESSLEVEL='10' | |
#$Env:CCACHE_MAXSIZE='105M' | |
#ccache -z | |
cmake -S . -B build ` | |
-DBUILD_SHARED_LIBS=ON ` | |
-DCMAKE_VERBOSE_MAKEFILE=ON ` | |
-DAMReX_EB=OFF ` | |
-DAMReX_ENABLE_TESTS=ON ` | |
-DAMReX_FORTRAN=OFF ` | |
-DAMReX_MPI=OFF | |
#-DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
cmake --build build --config Debug -j 4 | |
cmake --build build --config Debug --target install | |
$Env:PATH += ";D:\\a\amrex\amrex\installdir\bin" | |
cmake --build build --config Debug --target test_install | |
#ccache -s | |
# Build libamrex and all test (static) | |
test_msvc_static: | |
name: MSVC C++17 w/o Fortran w/o MPI static | |
runs-on: windows-latest | |
needs: check_changes | |
if: needs.check_changes.outputs.has_non_docs_changes == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
# If we add ccache back, don't forget to update cleanup-cache.yml | |
#- name: Set Up Cache | |
# uses: actions/cache@v3 | |
# with: | |
# path: ~/.ccache | |
# key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }} | |
# restore-keys: | | |
# ccache-${{ github.workflow }}-${{ github.job }}-git- | |
#- name: Install Ccache | |
# run: | | |
# Invoke-WebRequest https://github.com/ccache/ccache/releases/download/v4.8/ccache-4.8-windows-x86_64.zip -OutFile ccache-4.8-windows-x86_64.zip | |
# Expand-Archive ccache-4.8-windows-x86_64.zip | |
- name: Build & Install | |
run: | | |
#$ccachepath = Join-Path $pwd "ccache-4.8-windows-x86_64" | |
#$Env:PATH += ";$ccachepath" | |
#$ccachecachedir = Join-Path $HOME ".ccache" | |
#$Env:CCACHE_DIR="$ccachecachedir" | |
#$Env:CCACHE_COMPRESS='1' | |
#$Env:CCACHE_COMPRESSLEVEL='10' | |
#$Env:CCACHE_MAXSIZE='135M' | |
#ccache -z | |
# -DCMAKE_CXX_FLAGS=" /D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" ` | |
# is a workaround github windows runner 20240603.1.0. | |
# https://github.com/actions/runner-images/issues/10004 | |
cmake -S . -B build ` | |
-DCMAKE_VERBOSE_MAKEFILE=ON ` | |
-DCMAKE_BUILD_TYPE=RelWithDebInfo ` | |
-DCMAKE_CXX_FLAGS=" /D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" ` | |
-DAMReX_EB=ON ` | |
-DAMReX_ENABLE_TESTS=ON ` | |
-DAMReX_FORTRAN=OFF ` | |
-DAMReX_MPI=OFF | |
#-DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
cmake --build build -j 4 | |
cmake --build build --target install | |
cmake --build build --target test_install | |
#ccache -s | |
# Build libamrex and all tests | |
tests_clang: | |
name: MSVC Clang C++17 w/o Fortran w/o MPI | |
runs-on: windows-latest | |
needs: check_changes | |
if: needs.check_changes.outputs.has_non_docs_changes == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: seanmiddleditch/gha-setup-ninja@master | |
- name: Build & Install | |
shell: cmd | |
env: | |
CMAKE_GENERATOR_TOOLSET: "ClangCl" | |
CMAKE_GENERATOR: "Visual Studio 17 2022" | |
run: | | |
# -DCMAKE_CXX_FLAGS=" /D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" ` | |
# is a workaround github windows runner 20240603.1.0. | |
# https://github.com/actions/runner-images/issues/10004 | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\vc\Auxiliary\build\vcvarsall.bat" x64 | |
cmake -S . -B build ^ | |
-DBUILD_SHARED_LIBS=ON ^ | |
-DCMAKE_VERBOSE_MAKEFILE=ON ^ | |
-DCMAKE_CXX_FLAGS=" /D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" ^ | |
-DAMReX_EB=ON ^ | |
-DAMReX_ENABLE_TESTS=ON ^ | |
-DAMReX_FORTRAN=OFF ^ | |
-DAMReX_MPI=OFF ^ | |
-DAMReX_OMP=ON | |
cmake --build build --config Release -j 4 | |
cmake --build build --config Release --target install | |
set "PATH=%PATH%;D:\\a\amrex\amrex\installdir\bin" | |
cmake --build build --config Release --target test_install | |
tests_cuda: | |
name: CUDA on Windows | |
runs-on: windows-latest | |
needs: check_changes | |
if: needs.check_changes.outputs.has_non_docs_changes == 'true' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Jimver/cuda-toolkit@v0.2.19 | |
id: cuda-toolkit | |
with: | |
cuda: '12.6.1' | |
sub-packages: '["nvcc", "cudart", "cuda_profiler_api", "cufft_dev", "cusparse_dev", "curand_dev"]' | |
method: 'network' | |
use-github-cache: 'false' | |
- name: Install Ninja | |
run: | | |
curl.exe -L -o ninja-win.zip https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip | |
Expand-Archive -Path ninja-win.zip -DestinationPath . | |
echo "$pwd" >> $env:GITHUB_PATH | |
- name: Set Up MSVC | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Compile | |
run: | | |
cmake -S . -B build ` | |
-G "Ninja" ` | |
-DCMAKE_VERBOSE_MAKEFILE=ON ` | |
-DCMAKE_BUILD_TYPE=Release ` | |
-DAMReX_GPU_BACKEND=CUDA ` | |
-DAMReX_CUDA_ARCH="8.0" ` | |
-DAMReX_ENABLE_TESTS=ON ` | |
-DAMReX_EB=ON ` | |
-DAMReX_FFT=ON ` | |
-DAMReX_LINEAR_SOLVERS=ON ` | |
-DAMReX_PARTICLES=ON ` | |
-DAMReX_FORTRAN=OFF ` | |
-DAMReX_MPI=OFF ` | |
-DCMAKE_CXX_COMPILER=cl ` | |
-DCMAKE_CUDA_COMPILER=nvcc | |
# Sometimes cmake fails, but powershell continues to run | |
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } | |
cmake --build build --config Release -j 4 | |
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } | |
cmake --build build --config Release --target install | |
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } |