Skip to content

FFT OpenBC Solver: more optimization (#4232) #161

FFT OpenBC Solver: more optimization (#4232)

FFT OpenBC Solver: more optimization (#4232) #161

Workflow file for this run

name: Hypre
on: [push, pull_request]
concurrency:
group: ${{ github.ref }}-${{ github.head_ref }}-hypre
cancel-in-progress: true
jobs:
check_changes:
uses: ./.github/workflows/check_changes.yml
compile-hypre-cuda-eb-2d:
name: CUDA EB 2D [email protected]
runs-on: ubuntu-20.04
needs: check_changes
if: needs.check_changes.outputs.has_non_docs_changes == 'true'
env:
AMREX_HYPRE_HOME: ${HOME}/.cache/hypre-2.26.0-cuda
steps:
- uses: actions/checkout@v4
- name: Dependencies
run: |
.github/workflows/dependencies/dependencies_nvcc.sh 11.2
sudo apt-get install -y libcublas-dev-11-2 libcusparse-dev-11-2
.github/workflows/dependencies/dependencies_ccache.sh
- name: Set Up Cache
uses: actions/cache@v4
with:
path: |
~/.cache/ccache
~/.cache/hypre-2.26.0-cuda
key: ccache-${{ github.workflow }}-${{ github.job }}-git-${{ github.sha }}
restore-keys: |
ccache-${{ github.workflow }}-${{ github.job }}-git-
- name: Build Hypre
run: |
if [ ! -d "${{ env.AMREX_HYPRE_HOME }}" ]
then
wget -q https://github.com/hypre-space/hypre/archive/refs/tags/v2.26.0.tar.gz
tar xfz v2.26.0.tar.gz
cd hypre-2.26.0/src
./configure --with-cxxstandard=17 --with-cuda --enable-unified-memory \
--with-cuda-home=/usr/local/cuda --with-gpu-arch="80" \
--prefix=${{ env.AMREX_HYPRE_HOME }}
make -j 4
make install
cd ../../
fi
- name: Compile Test
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=290M
ccache -z
export AMREX_CUDA_ARCH=80
export CUDA_PATH=/usr/local/cuda
export PATH=${PATH}:/usr/local/cuda/bin
cd Tests/LinearSolvers/CellEB
make -j4 USE_MPI=TRUE USE_HYPRE=TRUE DIM=2 USE_CUDA=TRUE CCACHE=ccache
ccache -s
du -h -d1 ~/.cache
test-hypre-cpu-3d:
name: GCC 3D [email protected]
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.sh
.github/workflows/dependencies/dependencies_clang-tidy-apt-llvm.sh 17
.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 Hypre
run: |
wget -q https://github.com/hypre-space/hypre/archive/refs/tags/v2.21.0.tar.gz
tar xfz v2.21.0.tar.gz
cd hypre-2.21.0/src
./configure --with-cxxstandard=17 --enable-bigint
make -j 4
make install
cd ../../
- name: Build and Run Test
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=100M
export CCACHE_EXTRAFILES=${{ github.workspace }}/.clang-tidy
export CCACHE_LOGFILE=${{ github.workspace }}/ccache.log.txt
ccache -z
export AMREX_HYPRE_HOME=${PWD}/hypre-2.21.0/src/hypre
cd Tests/LinearSolvers/ABecLaplacian_C
make -j4 USE_MPI=TRUE USE_HYPRE=TRUE DIM=3 \
CCACHE=ccache
mpiexec -n 2 ./main3d.gnu.MPI.ex inputs.hypre
${{github.workspace}}/Tools/C_scripts/mmclt.py --input ${{github.workspace}}/ccache.log.txt
make -j4 -k -f clang-tidy-ccache-misses.mak \
CLANG_TIDY=clang-tidy-17 \
CLANG_TIDY_ARGS="--config-file=${{github.workspace}}/.clang-tidy --warnings-as-errors=*"
ccache -s
du -hs ~/.cache/ccache
test-hypre-solver-cpu-eb-2d:
name: GCC EB 2D [email protected]
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.sh
.github/workflows/dependencies/dependencies_clang-tidy-apt-llvm.sh 17
.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 Hypre
run: |
wget -q https://github.com/hypre-space/hypre/archive/refs/tags/v2.28.0.tar.gz
tar xfz v2.28.0.tar.gz
cd hypre-2.28.0/src
./configure --with-cxxstandard=17
make -j 4
make install
cd ../../
- name: Build and Run Test
run: |
export CCACHE_COMPRESS=1
export CCACHE_COMPRESSLEVEL=10
export CCACHE_MAXSIZE=100M
export CCACHE_EXTRAFILES=${{ github.workspace }}/.clang-tidy
export CCACHE_LOGFILE=${{ github.workspace }}/ccache.log.txt
ccache -z
export AMREX_HYPRE_HOME=${PWD}/hypre-2.28.0/src/hypre
cd Tests/LinearSolvers/Hypre
make -j4 USE_MPI=TRUE USE_HYPRE=TRUE DIM=2 CCACHE=ccache
mpiexec -n 2 ./main2d.gnu.MPI.ex inputs.2d
${{github.workspace}}/Tools/C_scripts/mmclt.py --input ${{github.workspace}}/ccache.log.txt
make -j4 -k -f clang-tidy-ccache-misses.mak \
CLANG_TIDY=clang-tidy-17 \
CLANG_TIDY_ARGS="--config-file=${{github.workspace}}/.clang-tidy --warnings-as-errors=*"
ccache -s
du -hs ~/.cache/ccache