Skip to content

Fix support for AMD legacy #600

Fix support for AMD legacy

Fix support for AMD legacy #600

Workflow file for this run

name: CI
on:
push:
pull_request:
branches:
- master
jobs:
build-all:
name: "Build GHEX and run unit tests"
runs-on: ubuntu-latest
container: ${{ matrix.config.container }}
strategy:
matrix:
config:
- {
name: "cpu-gcc-mpi-atlas-parmetis",
container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis",
cc: "gcc",
cxx: "g++",
fortran: "ON",
gpu: "OFF",
gpu_type: "AUTO",
run: "ON",
atlas: "ON",
parmetis: "ON",
backend: "MPI",
}
- {
name: "cpu-gcc-ucx-atlas-parmetis",
container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis",
cc: "gcc",
cxx: "g++",
fortran: "ON",
gpu: "OFF",
gpu_type: "AUTO",
run: "ON",
atlas: "ON",
parmetis: "ON",
backend: "UCX",
}
- {
name: "cpu-clang-mpi-atlas-parmetis",
container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis-hip",
cc: "/opt/rocm/llvm/bin/clang",
cxx: "/opt/rocm/llvm/bin/clang++",
fortran: "OFF",
gpu: "OFF",
gpu_type: "AUTO",
run: "ON",
atlas: "ON",
parmetis: "ON",
backend: "MPI",
}
- {
name: "cpu-clang-ucx-atlas-parmetis",
container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis-hip",
cc: "/opt/rocm/llvm/bin/clang",
cxx: "/opt/rocm/llvm/bin/clang++",
fortran: "OFF",
gpu: "OFF",
gpu_type: "AUTO",
run: "ON",
atlas: "ON",
parmetis: "ON",
backend: "UCX",
}
- {
name: "gpu-hip-mpi-atlas-parmetis",
container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis-hip",
cc: "/opt/rocm/llvm/bin/clang",
cxx: "/opt/rocm/llvm/bin/clang++",
fortran: "OFF",
gpu: "ON",
gpu_type: "AMD",
run: "OFF",
atlas: "ON",
parmetis: "ON",
backend: "MPI",
}
- {
name: "gpu-cuda-mpi-atlas-parmetis",
container: "ghcr.io/gridtools/gridtools-base:gcc-9-ucx-mpi-atlas-parmetis-cuda-11",
cc: "gcc",
cxx: "g++",
fortran: "ON",
gpu: "ON",
gpu_type: "NVIDIA",
run: "OFF",
atlas: "ON",
parmetis: "ON",
backend: "MPI",
}
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
GHEX_USE_GPU: ${{ matrix.config.gpu }}
GHEX_GPU_TYPE: ${{ matrix.config.gpu_type }}
eckit_DIR: ${{ matrix.eckit }}
Atlas_DIR: ${{ matrix.atlas }}
SHLVL: "1"
OMPI_ALLOW_RUN_AS_ROOT: "1"
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: "1"
CTEST_OUTPUT_ON_FAILURE: "1"
UCX_DIR: "/opt/ucx"
#ECKIT_DIR: "/opt/eckit"
#ATLAS_DIR: "/opt/atlas"
METIS_INCLUDE_DIR: "/opt/metis/include"
METIS_LIB_DIR: "/opt/metis/lib"
PARMETIS_INCLUDE_DIR: "/opt/parmetis/include"
PARMETIS_LIB_DIR: "/opt/parmetis/lib"
steps:
- name: Install packages
run: |
apt update
apt-get -y install python3-dev python3-venv python3-pybind11 ninja-build
- name: Clone w/ submodules
uses: actions/checkout@v3
with:
submodules: recursive
- name: Configure
run: |
mkdir -p build
cd build
cmake .. \
-GNinja \
-DCMAKE_BUILD_TYPE=Debug \
-DGHEX_GIT_SUBMODULE=OFF \
-DGHEX_USE_BUNDLED_LIBS=ON \
-DGHEX_USE_BUNDLED_GRIDTOOLS=ON \
-DUCX_DIR=${UCX_DIR} \
-DGHEX_TRANSPORT_BACKEND=${{ matrix.config.backend }} \
-DGHEX_USE_BUNDLED_OOMPH=ON \
-DGHEX_WITH_TESTING=ON \
-DGHEX_BUILD_PYTHON_BINDINGS=ON \
-DGHEX_BUILD_FORTRAN=${{ matrix.config.fortran }} \
-DGHEX_ENABLE_ATLAS_BINDINGS=${{ matrix.config.atlas }} \
-DGHEX_ENABLE_PARMETIS_BINDINGS=${{ matrix.config.parmetis }} \
-DMETIS_INCLUDE_DIR=${METIS_INCLUDE_DIR} \
-DMETIS_LIB_DIR=${METIS_LIB_DIR} \
-DPARMETIS_INCLUDE_DIR=${PARMETIS_INCLUDE_DIR} \
-DPARMETIS_LIB_DIR=${PARMETIS_LIB_DIR} \
-DMPIEXEC_PREFLAGS=--oversubscribe \
-DGHEX_USE_GPU=${{ matrix.config.gpu }} \
-DGHEX_GPU_TYPE=${{ matrix.config.gpu_type }}
- name: Build
run: cmake --build build --parallel 4
- if: ${{ matrix.config.run == 'ON' }}
name: Execute tests
run: cd build && ctest