Skip to content

Commit 9684633

Browse files
committed
Merge branch 'develop' into task/2024_parition_docs
2 parents 58fc330 + a5d12ce commit 9684633

File tree

74 files changed

+2535
-122
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+2535
-122
lines changed

.github/workflows/build_ascent_gcc.yml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
jobs:
88
build_basic:
99
name: Ubuntu Build Ascent GCC
10-
runs-on: ubuntu-latest
10+
runs-on: ubuntu-20.04
1111
env:
1212
CC: gcc
1313
CXX: g++
@@ -46,6 +46,12 @@ jobs:
4646
uses: actions/checkout@v4
4747
with:
4848
submodules: 'recursive'
49+
- name: Env Info
50+
run: |
51+
echo "**** Env Info"
52+
cmake --version
53+
gcc --version
54+
which mpicc
4955
- name: Build TPLs
5056
run: |
5157
env enable_mpi=ON \
@@ -58,7 +64,6 @@ jobs:
5864
./scripts/build_ascent/build_ascent.sh
5965
- name: Configure Ascent
6066
run: |
61-
cmake --version
6267
echo "**** Configuring Ascent"
6368
cmake -S src -B build -C ascent-config.cmake -DCMAKE_INSTALL_PREFIX=install
6469
- name: Build Ascent
@@ -82,7 +87,7 @@ jobs:
8287
mpiexec -n 2 ./build/ascent_mpi_render_example
8388
build_basic_pyvenv:
8489
name: Ubuntu Build Ascent GCC with Python VENV
85-
runs-on: ubuntu-latest
90+
runs-on: ubuntu-20.04
8691
env:
8792
CC: gcc
8893
CXX: g++
@@ -121,6 +126,12 @@ jobs:
121126
uses: actions/checkout@v4
122127
with:
123128
submodules: 'recursive'
129+
- name: Env Info
130+
run: |
131+
echo "**** Env Info"
132+
cmake --version
133+
gcc --version
134+
which mpicc
124135
- name: Build TPLs
125136
run: |
126137
env enable_mpi=ON \
@@ -134,7 +145,6 @@ jobs:
134145
./scripts/build_ascent/build_ascent.sh
135146
- name: Configure Ascent
136147
run: |
137-
cmake --version
138148
echo "**** Configuring Ascent"
139149
cmake -S src -B build -C ascent-config.cmake -DCMAKE_INSTALL_PREFIX=install
140150
- name: Build Ascent

.github/workflows/build_ascent_hip.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ on:
77
jobs:
88
build_cuda:
99
name: Build Ascent HIP
10-
runs-on: ubuntu-latest
11-
container: alpinedav/ascent-ci:ubuntu-20.04-rocm-5.1.3-devel
10+
runs-on: ubuntu-20.04
11+
container: alpinedav/ascent-devel:ubuntu-20.04-rocm-6.3.0-x86_64
1212
env:
1313
CMAKE_VERSION: 3.23.2
1414
steps:
@@ -28,7 +28,7 @@ jobs:
2828
enable_mpi=OFF \
2929
enable_fortran=OFF \
3030
enable_tests=OFF \
31-
build_ascent=OFF \
31+
build_ascent=false \
3232
enable_verbose=OFF \
3333
build_jobs=2 \
3434
./scripts/build_ascent/build_ascent.sh

.github/workflows/build_ascent_icc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
env enable_mpi=OFF \
6060
enable_fortran=ON \
6161
enable_tests=OFF \
62-
build_ascent=OFF \
62+
build_ascent=false \
6363
enable_verbose=OFF \
6464
build_jobs=2 \
6565
./scripts/build_ascent/build_ascent.sh

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,28 @@ and this project aspires to adhere to [Semantic Versioning](https://semver.org/s
1212
- raja@2024.02.1
1313
- umpire@2024.02.1
1414
- camp@2024.02.1
15-
- kokkos@3.7.02
15+
- kokkos@4.4.1
16+
- mfem@4.7
1617

1718
### Added
19+
- Added a new unified logging infrastructure.
1820
- Added support for unstructured topologies with mixed elements types (for example, hexs and tets).
1921
- Added support for `pyramid` and `wedge` elements.
2022
- Added `sphere`, `cylinder`, `box`, and `plane` options to the slice filter.
2123
- Added a `topologies` option to the relay extract. This allows you to select which topologies are saved. This option can be used with the existing `fields` option, the result is the union of the selected topologies and fields.
2224
- Added `near_plane` and `far_plane` to the camera details provided in Ascent::info()
2325
- Added `add_mpi_ranks` and `add_domain_ids` filters for adding rank and domain fields to a mesh
2426
- Added `transform` filter, which allows you to rotate, scale, translate, mesh coordinates
27+
- Added python script in src/utilities/visit_session_converters to convert VisIt color table to Ascent actions color table
2528

2629
### Changed
2730
- Changed the replay utility's binary names such that `replay_ser` is now `ascent_replay` and `raplay_mpi` is now `ascent_replay_mpi`. This will help prevent potential name collisions with other tools that also have replay utilities.
2831

2932
### Fixed
3033
- Resolved a few cases where MPI_COMM_WORLD was used instead instead of the selected MPI communicator.
3134
- Resolved a bug where a sharing a coordset between multiple polytopal topologies would corrupt mesh processing.
35+
- Fixed a bug with Cinema resource output that could lead to corrupted html results.
36+
- Fixed a bug where controls for world and screen annotations where ignored in Cinema renders.
3237

3338
## [0.9.3] - Released 2024-05-11
3439
### Preferred dependency versions for ascent@0.9.3

azure-pipelines.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ variables:
2626
ubuntu_22_04_tag: alpinedav/ascent-devel:ubuntu-22.04-x86_64-tpls_2024-07-10-sha3a1ef8
2727
ubuntu_20_04_cuda_11_4_3_tag: alpinedav/ascent-devel:ubuntu-20.04-cuda-11.4.3-x86_64-tpls_2024-07-09-sha3a1ef8
2828
ubuntu_20_04_cuda_12_1_1_tag: alpinedav/ascent-devel:ubuntu-20.04-cuda-12.1.1-x86_64-tpls_2024-07-09-sha3a1ef8
29-
ubuntu_20_04_rocm_6_0_0_tag: alpinedav/ascent-devel:ubuntu-20.04-rocm-6.0.0--x86_64-build-ascent-tpls_2024-07-10-sha3a1ef8
29+
ubuntu_20_04_rocm_6_0_0_tag: alpinedav/ascent-devel:ubuntu-20.04-rocm-6.3.0-x86_64-build-ascent-tpls_2024-12-09-sha21f334
3030

3131

3232
# only build merge target pr to develop

scripts/build_ascent/build_ascent.sh

Lines changed: 63 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ set -eu -o pipefail
2424
# shared options
2525
enable_cuda="${enable_cuda:=OFF}"
2626
enable_hip="${enable_hip:=OFF}"
27+
enable_sycl="${enable_sycl:=OFF}"
2728
enable_fortran="${enable_fortran:=OFF}"
2829
enable_python="${enable_python:=OFF}"
2930
enable_openmp="${enable_openmp:=OFF}"
@@ -70,17 +71,19 @@ if [[ "$enable_cuda" == "ON" ]]; then
7071
CUDA_ARCH_VTKM="${CUDA_ARCH_VTKM:=ampere}"
7172
fi
7273

74+
# NOTE: this script only builds kokkos when enable_hip=ON or enable_cycl=ON
7375
if [[ "$enable_hip" == "ON" ]]; then
7476
echo "*** configuring with HIP support"
7577

7678
CC="${CC:=/opt/rocm/llvm/bin/amdclang}"
7779
CXX="${CXX:=/opt/rocm/llvm/bin/amdclang++}"
7880
# FTN?
79-
8081
ROCM_ARCH="${ROCM_ARCH:=gfx90a}"
8182
ROCM_PATH="${ROCM_PATH:=/opt/rocm/}"
8283

83-
# NOTE: this script only builds kokkos when enable_hip=ON
84+
build_kokkos="${build_kokkos:=true}"
85+
elif [[ "$enable_sycl" == "ON" ]]; then
86+
echo "*** configuring with SYCL support"
8487
build_kokkos="${build_kokkos:=true}"
8588
else
8689
build_kokkos="${build_kokkos:=false}"
@@ -510,16 +513,16 @@ else
510513
echo "**** Skipping Conduit build, install found at: ${conduit_install_dir}"
511514
fi # build_conduit
512515

513-
#########################
514-
# Kokkos (only for hip)
515-
#########################
516-
kokkos_version=3.7.02
516+
###############################
517+
# Kokkos (only for hip or sycl)
518+
###############################
519+
kokkos_version=4.4.01
517520
kokkos_src_dir=$(ospath ${source_dir}/kokkos-${kokkos_version})
518521
kokkos_build_dir=$(ospath ${build_dir}/kokkos-${kokkos_version})
519522
kokkos_install_dir=$(ospath ${install_dir}/kokkos-${kokkos_version}/)
520523
kokkos_tarball=$(ospath ${source_dir}/kokkos-${kokkos_version}.tar.gz)
521524

522-
if [[ "$enable_hip" == "ON" ]]; then
525+
if [[ "$enable_hip" == "ON" ]] || [[ "$enable_sycl" == "ON" ]]; then
523526
# build only if install doesn't exist
524527
if [ ! -d ${kokkos_install_dir} ]; then
525528
if ${build_kokkos}; then
@@ -529,21 +532,52 @@ if [ ! -d ${kokkos_src_dir} ]; then
529532
tar ${tar_extra_args} -xzf ${kokkos_tarball} -C ${source_dir}
530533
fi
531534

532-
# TODO: DKokkos_ARCH_VEGA90A needs to be controlled / mapped?
535+
kokkos_extra_cmake_args=""
536+
if [[ "$enable_hip" == "ON" ]]; then
537+
kokkos_extra_cmake_args="-DKokkos_ENABLE_HIP=ON"
538+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DKokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE=OFF"
539+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DCMAKE_CXX_COMPILER=${ROCM_PATH}/bin/hipcc"
540+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DCMAKE_CXX_EXTENSIONS=OFF"
541+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DCMAKE_CXX_STANDARD=17"
542+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DKokkos_ENABLE_ROCTHRUST=OFF"
543+
544+
##
545+
## build_ascent specific ROCM_ARCH Map for Kokkos options:
546+
##
547+
## TODO: Kokkos 4.5 has MI300A specific option, need to figure out how to
548+
## map hat in when we update.
549+
##
550+
## gfx942 --> Kokkos_ARCH_AMD_GFX942 (MI300A, MI300X)
551+
## (since Kokkos 4.2, since Kokkos 4.5 this should only be used for MI300X)
552+
##
553+
## gfx90a --> Kokkos_ARCH_AMD_GFX90A (MI200 series)
554+
## (since Kokkos 4.2)
555+
##
556+
if [[ "$ROCM_ARCH" == "gfx942" ]]; then
557+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DKokkos_ARCH_AMD_GFX942=ON"
558+
fi
559+
560+
if [[ "$ROCM_ARCH" == "gfx90a" ]]; then
561+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DKokkos_ARCH_AMD_GFX90A=ON"
562+
fi
563+
fi
564+
565+
if [[ "$enable_sycl" == "ON" ]]; then
566+
kokkos_extra_cmake_args="-DCMAKE_CXX_FLAGS=-fPIC -fp-model=precise -Wno-unused-command-line-argument -Wno-deprecated-declarations -fsycl-device-code-split=per_kernel -fsycl-max-parallel-link-jobs=128"
567+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DKokkos_ENABLE_SYCL=ON"
568+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DKokkos_ARCH_INTEL_PVC=ON"
569+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DCMAKE_CXX_EXTENSIONS=OFF"
570+
kokkos_extra_cmake_args="${kokkos_extra_cmake_args} -DCMAKE_CXX_STANDARD=17"
571+
fi
533572

534573
echo "**** Configuring Kokkos ${kokkos_version}"
535574
cmake -S ${kokkos_src_dir} -B ${kokkos_build_dir} ${cmake_compiler_settings} \
536575
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${enable_verbose}\
537576
-DCMAKE_BUILD_TYPE=${build_config} \
538577
-DBUILD_SHARED_LIBS=${build_shared_libs} \
539-
-DKokkos_ARCH_VEGA90A=ON \
540-
-DCMAKE_CXX_COMPILER=${ROCM_PATH}/bin/hipcc \
541-
-DKokkos_ENABLE_HIP=ON \
542578
-DKokkos_ENABLE_SERIAL=ON \
543-
-DKokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE=OFF \
544579
-DCMAKE_INSTALL_PREFIX=${kokkos_install_dir} \
545-
-DCMAKE_CXX_FLAGS="--amdgpu-target=${ROCM_ARCH}" \
546-
-DBUILD_TESTING=OFF \
580+
-DBUILD_TESTING=OFF ${kokkos_extra_cmake_args} \
547581
-DCMAKE_INSTALL_PREFIX=${kokkos_install_dir}
548582

549583
echo "**** Building Kokkos ${kokkos_version}"
@@ -556,7 +590,7 @@ else
556590
echo "**** Skipping Kokkos build, install found at: ${kokkos_install_dir}"
557591
fi # build_kokkos
558592

559-
fi # if enable_hip
593+
fi # if enable_hip || enable_sycl
560594

561595
################
562596
# VTK-m
@@ -598,6 +632,13 @@ if [[ "$enable_hip" == "ON" ]]; then
598632
vtkm_extra_cmake_args="${vtkm_extra_cmake_args} -DVTKm_ENABLE_KOKKOS_THRUST=OFF"
599633
fi
600634

635+
if [[ "$enable_sycl" == "ON" ]]; then
636+
vtkm_extra_cmake_args="${vtkm_extra_cmake_args} -DVTKm_ENABLE_KOKKOS=ON"
637+
vtkm_extra_cmake_args="${vtkm_extra_cmake_args} -DCMAKE_PREFIX_PATH=${kokkos_install_dir}"
638+
vtkm_extra_cmake_args="-DCMAKE_CXX_FLAGS=-fPIC -fp-model=precise -Wno-unused-command-line-argument -Wno-deprecated-declarations -fsycl-device-code-split=per_kernel -fsycl-max-parallel-link-jobs=128"
639+
fi
640+
641+
601642
if [[ "$enable_mpicc" == "ON" ]]; then
602643
vtkm_extra_cmake_args="${vtkm_extra_cmake_args} -DMPI_C_COMPILER=${mpicc_exe}"
603644
vtkm_extra_cmake_args="${vtkm_extra_cmake_args} -DMPI_CXX_COMPILER=${mpicxx_exe}"
@@ -608,7 +649,6 @@ cmake -S ${vtkm_src_dir} -B ${vtkm_build_dir} ${cmake_compiler_settings} \
608649
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${enable_verbose}\
609650
-DCMAKE_BUILD_TYPE=${build_config} \
610651
-DBUILD_SHARED_LIBS=${build_shared_libs} \
611-
-DVTKm_NO_DEPRECATED_VIRTUAL=ON \
612652
-DVTKm_USE_64BIT_IDS=OFF \
613653
-DVTKm_USE_DOUBLE_PRECISION=ON \
614654
-DVTKm_USE_DEFAULT_TYPES_FOR_ASCENT=ON \
@@ -763,6 +803,10 @@ if [[ "$enable_hip" == "ON" ]]; then
763803
umpire_extra_cmake_args="${umpire_extra_cmake_args} -DROCM_PATH=${ROCM_PATH}"
764804
fi
765805

806+
if [[ "$enable_sycl" == "ON" ]]; then
807+
umpire_extra_cmake_args="${umpire_extra_cmake_args} -DENABLE_SYCL=ON"
808+
fi
809+
766810
# build only if install doesn't exist
767811
if [ ! -d ${umpire_install_dir} ]; then
768812
if ${build_umpire}; then
@@ -797,7 +841,7 @@ fi # build_umpire
797841
################
798842
# MFEM
799843
################
800-
mfem_version=4.6
844+
mfem_version=4.7
801845
mfem_src_dir=$(ospath ${source_dir}/mfem-${mfem_version})
802846
mfem_build_dir=$(ospath ${build_dir}/mfem-${mfem_version})
803847
mfem_install_dir=$(ospath ${install_dir}/mfem-${mfem_version}/)
@@ -954,7 +998,6 @@ fi
954998
if ${build_caliper}; then
955999
echo 'set(CALIPER_DIR ' ${caliper_install_dir} ' CACHE PATH "")' >> ${root_dir}/ascent-config.cmake
9561000
fi
957-
echo 'set(BLT_CXX_STD c++14 CACHE STRING "")' >> ${root_dir}/ascent-config.cmake
9581001
echo 'set(CONDUIT_DIR ' ${conduit_install_dir} ' CACHE PATH "")' >> ${root_dir}/ascent-config.cmake
9591002
echo 'set(VTKM_DIR ' ${vtkm_install_dir} ' CACHE PATH "")' >> ${root_dir}/ascent-config.cmake
9601003
echo 'set(CAMP_DIR ' ${camp_install_dir} ' CACHE PATH "")' >> ${root_dir}/ascent-config.cmake
@@ -977,6 +1020,7 @@ fi
9771020

9781021
if [[ "$enable_hip" == "ON" ]]; then
9791022
echo 'set(ENABLE_HIP ON CACHE BOOL "")' >> ${root_dir}/ascent-config.cmake
1023+
echo 'set(BLT_CXX_STD c++17 CACHE STRING "")' >> ${root_dir}/ascent-config.cmake
9801024
echo 'set(CMAKE_HIP_ARCHITECTURES ' ${ROCM_ARCH} ' CACHE STRING "")' >> ${root_dir}/ascent-config.cmake
9811025
echo 'set(ROCM_PATH ' ${ROCM_PATH} ' CACHE PATH "")' >> ${root_dir}/ascent-config.cmake
9821026
echo 'set(KOKKOS_DIR ' ${kokkos_install_dir} ' CACHE PATH "")' >> ${root_dir}/ascent-config.cmake
@@ -987,7 +1031,7 @@ if [ ! -d ${ascent_install_dir} ]; then
9871031
if ${build_ascent}; then
9881032
if [ ! -d ${ascent_src_dir} ]; then
9891033
echo "**** Cloning Ascent"
990-
git clone --recursive https://github.com/Alpine-DAV/ascent.git
1034+
git clone --recursive https://github.com/Alpine-DAV/ascent.git ${source_dir}/ascent
9911035
fi
9921036

9931037
echo "**** Configuring Ascent"
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash -l
2+
3+
export IGC_FunctionCloningThreshold=1
4+
export IGC_ControlInlineTinySize=100
5+
export IGC_OCLInlineThreshold=200
6+
export IGC_PartitionUnit=1
7+
export IGC_ForceOCLSIMDWidth=16
8+
export ZE_AFFINITY_MASK=0.0
9+
10+
# Proxies
11+
export HTTP_PROXY=http://proxy.alcf.anl.gov:3128
12+
export HTTPS_PROXY=http://proxy.alcf.anl.gov:3128
13+
export http_proxy=http://proxy.alcf.anl.gov:3128
14+
export https_proxy=http://proxy.alcf.anl.gov:3128
15+
16+
module reset
17+
module use /soft/modulefiles
18+
module load spack-pe-gcc cmake
19+
module load oneapi/eng-compiler/2023.12.15.002
20+
21+
env CC=`which icx` CXX=`which icpx` FTN=`which ifx` enable_sycl=ON enable_mpi=ON enable_fortran=ON raja_enable_vectorization=OFF enable_tests=ON enable_verbose=ON ./build_ascent_sycl.sh
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module load cmake/3.26.3
2+
module load gcc/10.3.1-magic
3+
4+
export enable_mpi="${enable_mpi:=ON}"
5+
export enable_openmp="${enable_openmp:=ON}"
6+
export enable_python="${enable_python:=ON}"
7+
export build_caliper="${build_caliper:=true}"
8+
export build_pyvenv="${build_pyvenv:=true}"
9+
export build_jobs="${build_jobs:=20}"
10+
./build_ascent.sh
11+
12+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
3+
##############################################################################
4+
# Demonstrates how to manually build Ascent and its dependencies, including:
5+
#
6+
# hdf5, conduit, vtk-m, mfem, raja, and umpire
7+
#
8+
# usage example:
9+
# env enable_mpi=ON enable_openmp=ON ./build_ascent.sh
10+
#
11+
#
12+
# Assumes:
13+
# - cmake is in your path
14+
# - selected compilers are in your path or set via env vars
15+
# - [when enabled] MPI and Python (+numpy and mpi4py), are in your path
16+
#
17+
##############################################################################
18+
set -eu -o pipefail
19+
20+
# 2024-02-08 SYCL support is handled by our unified script
21+
env enable_sycl=ON ./build_ascent.sh

scripts/ci/docker/alpinedav_ubuntu_20.04_rocm_6.0.0_devel_build_ascent_tpls/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set -ev
66

77
export REPO_NAME="ascent"
88
export TAG_ARCH=`uname -m`
9-
export TAG_BASE=alpinedav/ascent-devel:ubuntu-20.04-rocm-6.0.0--${TAG_ARCH}-build-ascent-tpls
9+
export TAG_BASE=alpinedav/ascent-devel:ubuntu-20.04-rocm-6.0.0-${TAG_ARCH}-build-ascent-tpls
1010

1111
date
1212

0 commit comments

Comments
 (0)