diff --git a/.github/workflows/CI-e4s.yml b/.github/workflows/CI-e4s.yml new file mode 100644 index 000000000..b7b8c3348 --- /dev/null +++ b/.github/workflows/CI-e4s.yml @@ -0,0 +1,139 @@ +name: CI-e4s +on: + push: + branches: + - master + pull_request: + branches: + - master + +concurrency: + group: ${ {github.event_name }}-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{github.event_name == 'pull_request'}} + +jobs: + HIP: + defaults: + run: + shell: bash + strategy: + matrix: + cxx: ['hipcc'] + cmake_build_type: ['Debug'] + kokkos_ver: ['4.0.01'] + runs-on: ubuntu-20.04 + container: docker.io/ecpe4s/e4s-base-rocm:23.05 + steps: + - name: Build fftw + run: | + wget --quiet http://www.fftw.org/fftw-3.3.8.tar.gz --output-document=fftw.tar.gz + mkdir -p fftw + tar -xf fftw.tar.gz -C fftw --strip-components=1 + cd fftw + cmake -B build \ + -D CMAKE_INSTALL_PREFIX=$HOME/fftw \ + -D CMAKE_BUILD_TYPE=Release \ + -D ENABLE_FLOAT=ON + cmake --build build --parallel 2 + cmake --install build + cmake -B build \ + -D CMAKE_INSTALL_PREFIX=$HOME/fftw \ + -D CMAKE_BUILD_TYPE=Release \ + -D ENABLE_FLOAT=OFF + cmake --build build --parallel 2 + cmake --install build + - name: Checkout GTest + uses: actions/checkout@v3 + with: + repository: google/googletest + ref: release-1.11.0 + path: gtest + - name: Build gtest + working-directory: gtest + run: | + cmake -B build \ + -DCMAKE_INSTALL_PREFIX=$HOME/gtest \ + -DCMAKE_BUILD_TYPE=Release + cmake --build build --parallel 2 + cmake --install build + - name: Checkout kokkos + uses: actions/checkout@v3 + with: + repository: kokkos/kokkos + ref: ${{ matrix.kokkos_ver }} + path: kokkos + - name: Build kokkos + working-directory: kokkos + run: | + cmake -B build \ + -DCMAKE_INSTALL_PREFIX=$HOME/kokkos \ + -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \ + -DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} \ + -DKokkos_ENABLE_HIP=ON \ + -DKokkos_ARCH_VEGA908=ON + cmake --build build --parallel 2 + cmake --install build + - name: Checkout arborx + uses: actions/checkout@v3 + with: + repository: arborx/ArborX + ref: v1.2 + path: arborx + - name: Build arborx + working-directory: arborx + run: | + PATH=$PATH:/opt/rocm + cmake -B build \ + -DKokkos_ROOT=${HOME}/kokkos \ + -DCMAKE_INSTALL_PREFIX=$HOME/arborx \ + -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \ + -DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} + cmake --build build --parallel 2 + cmake --install build + - name: Checkout heffte + # actions/checkout doesn't work for external repos yet (actions/checkout#447) + run: | + git clone --depth 1 --branch v2.1.0 https://bitbucket.org/icl/heffte.git heffte + - name: Build heffte + working-directory: heffte + run: | + PATH=$PATH:/opt/rocm + cmake -B build \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_INSTALL_PREFIX=$HOME/heffte \ + -DCMAKE_PREFIX_PATH="$HOME/fftw" \ + -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \ + -DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} \ + -DHeffte_ENABLE_FFTW=ON \ + -DHeffte_ENABLE_ROCM=ON + cmake --build build --parallel 2 + cmake --install build + - name: Checkout ALL + run: | + git clone --depth 1 --branch v0.9.2 https://gitlab.jsc.fz-juelich.de/SLMS/loadbalancing ALL + - name: Build ALL + working-directory: ALL + run: | + cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/ALL + cmake --build build --parallel 2 + cmake --install build + - name: Checkout Cabana + uses: actions/checkout@v3 + - name: Build Cabana + run: | + PATH=$PATH:/opt/rocm + cmake -B build \ + -DCMAKE_INSTALL_PREFIX=$HOME/Cabana \ + -DMPIEXEC_MAX_NUMPROCS=2 -DMPIEXEC_PREFLAGS="--oversubscribe" \ + -DCMAKE_PREFIX_PATH="$HOME/kokkos;$HOME/gtest;$HOME/arborx;$HOME/heffte;$HOME/ALL" \ + -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \ + -DCMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -Werror" \ + -DCabana_ENABLE_TESTING=ON \ + -DCabana_ENABLE_EXAMPLES=ON \ + -DCabana_ENABLE_PERFORMANCE_TESTING=ON \ + -DCabana_PERFORMANCE_EXPECTED_FLOPS=0 \ + -DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} \ + -DCMAKE_DISABLE_FIND_PACKAGE_HDF5=ON \ + -DGPU_TARGETS="gfx908" + cmake --build build --parallel 2 --verbose + cmake --install build diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 77dd97fab..33c730912 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -288,7 +288,7 @@ jobs: working-directory: arborx run: | cmake -B build \ - -DCMAKE_PREFIX_PATH=${HOME}/kokkos \ + -DKokkos_ROOT=${HOME}/kokkos \ -DCMAKE_INSTALL_PREFIX=$HOME/arborx \ -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ @@ -308,7 +308,6 @@ jobs: [[ ${{ matrix.heffte }} == "MKL" ]] && heffte_cmake_opts+=( -DHeffte_ENABLE_MKL=ON ) # FIXME: Remove MKL path below when we update heFFTe cmake -B build \ - -DCMAKE_CXX_STANDARD="11" \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_INSTALL_PREFIX=$HOME/heffte \ -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \