Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/check-compilers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
parallel: ['serial', 'mpi']
runs-on: ubuntu-latest
container:
image: ghcr.io/parthenon-hpc-lab/rocm6.2-mpi-hdf5
image: ghcr.io/parthenon-hpc-lab/rocm7.2.4-mpi-hdf5-opmd
env:
CMAKE_GENERATOR: Ninja
steps:
Expand All @@ -76,15 +76,15 @@ jobs:
# compile time, see https://github.com/parthenon-hpc-lab/parthenon/pull/1191#issuecomment-2492035364
run: |
git config --global --add safe.directory $(pwd)
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2, see
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2 and 7.2, see
# https://github.com/kokkos/kokkos/pull/8747/changes#r2621509391
# Try to remove in next rocm bump.
cmake -B builddir \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
-DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} \
-DMACHINE_CFG=${PWD}/cmake/machinecfg/GitHubActions.cmake \
-DMACHINE_VARIANT=${{ matrix.device }}_${{ matrix.parallel }} \
-DCMAKE_PREFIX_PATH=/opt/rocm-6.2.0 \
-DCMAKE_PREFIX_PATH=/opt/rocm-7.2.4 \
-DKokkos_ARCH_AMD_GFX90A=ON -DKokkos_ARCH_NAVI1030=OFF
- name: Build
run: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci-extended.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ jobs:
parallel: ['serial', 'mpi']
runs-on: [self-hosted, navi1030]
container:
image: ghcr.io/parthenon-hpc-lab/rocm6.2-mpi-hdf5
image: ghcr.io/parthenon-hpc-lab/rocm7.2.4-mpi-hdf5-opmd
# Map to local user id on CI machine to allow writing to build cache and
# forward device handles to access AMD GPU within container
options: --user 1000 -w /home/ci --device /dev/kfd --device /dev/dri --security-opt seccomp=unconfined
Expand All @@ -155,14 +155,14 @@ jobs:
- name: Configure
run: |
git config --global --add safe.directory $(pwd)
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2, see
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2 and 7.2, see
# https://github.com/kokkos/kokkos/pull/8747/changes#r2621509391
# Try to remove in next rocm bump.
cmake -B build \
-DMACHINE_CFG=${PWD}/cmake/machinecfg/GitHubActions.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DMACHINE_VARIANT=hip-${{ matrix.parallel }} \
-DCMAKE_PREFIX_PATH=/opt/rocm-6.2.0 \
-DCMAKE_PREFIX_PATH=/opt/rocm-7.2.4 \
-DCMAKE_CXX_COMPILER=hipcc

- name: Build
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci-short.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ jobs:
integration-amdgpu:
runs-on: [self-hosted, navi1030]
container:
image: ghcr.io/parthenon-hpc-lab/rocm6.2-mpi-hdf5
image: ghcr.io/parthenon-hpc-lab/rocm7.2.4-mpi-hdf5-opmd
# Map to local user id on CI machine to allow writing to build cache and
# forward device handles to access AMD GPU within container
options: --user 1000 -w /home/ci --device /dev/kfd --device /dev/dri --security-opt seccomp=unconfined
Expand All @@ -163,14 +163,14 @@ jobs:
- name: Configure
run: |
git config --global --add safe.directory $(pwd)
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2, see
# The extra CMAKE_PREFIX_PATH seems to be required for current rocm6.2 and 7.2, see
# https://github.com/kokkos/kokkos/pull/8747/changes#r2621509391
# Try to remove in next rocm bump.
cmake -B build \
-DMACHINE_CFG=${PWD}/cmake/machinecfg/GitHubActions.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DMACHINE_VARIANT=hip-mpi \
-DCMAKE_PREFIX_PATH=/opt/rocm-6.2.0 \
-DCMAKE_PREFIX_PATH=/opt/rocm-7.2.4 \
-DCMAKE_CXX_COMPILER=hipcc
# Test example with "variables" and output
- name: advection
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
- [[PR 1360]](https://github.com/parthenon-hpc-lab/parthenon/pull/1360) Fix boundary cache clearing in different MeshData partitions

### Infrastructure (changes irrelevant to downstream codes)
- [[PR 1414]](https://github.com/parthenon-hpc-lab/parthenon/pull/1414) Bump ROCM CI Container to rocm 7.2.4
- [[PR 1397]](https://github.com/parthenon-hpc-lab/parthenon/pull/1397) Add Code of Conduct
- [[PR 1385]](https://github.com/parthenon-hpc-lab/parthenon/pull/1385) Refactor ParameterInput: Separate parsing from storage to enable multiple input formats
- [[PR 1383]](https://github.com/parthenon-hpc-lab/parthenon/pull/1382) Document agentic coding guidelines
Expand Down
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,7 @@ if (NOT PARTHENON_DISABLE_OPENPMD)
set(openPMD_BUILD_SHARED_LIBS OFF)
set(openPMD_INSTALL OFF)
set(openPMD_USE_ADIOS2 ON) # we definitely want ADIOS2
set(openPMD_USE_MPI ${ENABLE_MPI})
if( NOT Python3_Interpreter_FOUND)
find_package(Python3 REQUIRED COMPONENTS Interpreter)
endif()
Expand All @@ -278,7 +279,7 @@ if (NOT PARTHENON_DISABLE_OPENPMD)
endif()
FetchContent_Declare(openPMD
GIT_REPOSITORY "https://github.com/openPMD/openPMD-api.git"
GIT_TAG "0.17.0") # Release 0.17.0
GIT_TAG "0.17.1") # Release 0.17.1
FetchContent_MakeAvailable(openPMD)
install(TARGETS openPMD EXPORT parthenonTargets)
endif()
Expand Down
1 change: 0 additions & 1 deletion cmake/machinecfg/GitHubActions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ message(STATUS "Loading machine configuration for GitHub Actions CI. ")

# common options
set(NUM_MPI_PROC_TESTING "2" CACHE STRING "CI runs tests with 2 MPI ranks")
set(Kokkos_ENABLE_ROCTHRUST OFF CACHE BOOL "Temporarily disabled as the container needs to be updated to the `-complete` base image.")

set(CMAKE_CXX_FLAGS_DBGNOSYM "-O0" CACHE STRING "Debug build without symbols")

Expand Down
59 changes: 0 additions & 59 deletions cmake/machinecfg/Spock.cmake

This file was deleted.

2 changes: 1 addition & 1 deletion external/Kokkos
22 changes: 6 additions & 16 deletions scripts/docker/Dockerfile.hip-rocm
Original file line number Diff line number Diff line change
@@ -1,27 +1,17 @@
FROM rocm/dev-ubuntu-24.04:6.2
FROM rocm/dev-ubuntu-24.04:7.2.4-complete

RUN apt-get clean && apt-get update -y && \
DEBIAN_FRONTEND="noninteractive" TZ=America/New_York apt-get install -y --no-install-recommends git python3-minimal libpython3-stdlib bc hwloc wget openssh-client python3-numpy python3-h5py python3-matplotlib lcov curl cmake ninja-build openmpi-bin libopenmpi-dev adios2-mpi-bin adios2-serial-bin libadios2-mpi-c++11-dev libadios2-mpi-core-dev libadios2-serial-core-dev libadios2-serial-c++11-dev && \
DEBIAN_FRONTEND="noninteractive" TZ=America/New_York apt-get install -y --no-install-recommends git python3-minimal libpython3-stdlib bc hwloc wget openssh-client python3-numpy python3-h5py python3-matplotlib lcov curl cmake ninja-build openmpi-bin libopenmpi-dev adios2-mpi-bin adios2-serial-bin libadios2-mpi-c++11-dev libadios2-mpi-core-dev libadios2-serial-core-dev libadios2-serial-c++11-dev libhdf5-dev libhdf5-openmpi-dev && \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think ubuntu puts the openmpi variant in a nested directory, for me it ends up in /usr/include/hdf5/openmpi/, which might be the problem in CI.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue was that the HDF5_ROOT var overwrote the default search paths. I now selective set it for non-hip builds (as the hip builds now pick up the ubuntu shipped version).

apt-get clean && rm -rf /var/lib/apt/lists/*

RUN cd /tmp && \
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.8/src/hdf5-1.10.8.tar.gz && \
tar xzf hdf5-1.10.8.tar.gz && \
cd hdf5-1.10.8 && \
mkdir -p /usr/local/hdf5/serial /usr/local/hdf5/parallel && \
./configure --prefix=/usr/local/hdf5/serial --enable-hl --enable-build-mode=production && make -j8 && make install && make clean && \
./configure --prefix=/usr/local/hdf5/parallel --enable-hl --enable-build-mode=production --enable-parallel && make -j8 && make install && \
cd / && \
rm -rf /tmp/hdf5-1.10.8*

RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 10

# commit version is ver 0.16.1
# commit version is ver 0.17.1
RUN mkdir /tmp/build-openpmd && cd /tmp/build-openpmd && \
wget https://github.com/openPMD/openPMD-api/archive/3a60e77.tar.gz && \
tar xzf 3a60e77.tar.gz && \
wget https://github.com/openPMD/openPMD-api/archive/f0033b4.tar.gz && \
tar xzf f0033b4.tar.gz && \
mkdir openPMD-api-build && cd openPMD-api-build && \
cmake ../openPMD-api-3a60e7714f6143c8fc7bf89809f2167d058359ee -DopenPMD_USE_PYTHON=ON -DPython_EXECUTABLE=$(which python3) -DopenPMD_USE_ADIOS2=ON && \
cmake ../openPMD-api-f0033b4deee00ec2b76cafcdd765e960b4906e31 -DopenPMD_USE_PYTHON=ON -DPython_EXECUTABLE=$(which python3) -DopenPMD_USE_ADIOS2=ON && \
cmake --build . -j 16 && \
cmake --build . --target install && \
cd / && \
Expand Down
Loading