Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
067e2b3
add fields from other domains
nicolemarsaglia Mar 13, 2025
79c5273
conflict
nicolemarsaglia Mar 13, 2025
9c2880a
push before switching
nicolemarsaglia Mar 17, 2025
ead1f45
let's put this here for now
nicolemarsaglia Mar 20, 2025
eda9808
blt_mpi_deps
nicolemarsaglia Mar 20, 2025
c660409
add logic for if vtkm has mpi on
nicolemarsaglia Mar 21, 2025
d147e00
Update SetupMFEM.cmake
nicolemarsaglia Mar 24, 2025
1e4f93f
try it this way?
nicolemarsaglia Mar 24, 2025
9d856da
Merge branch 'task/2025_03_warpx_unit_test' of https://github.com/Alp…
nicolemarsaglia Mar 24, 2025
d64682a
idk this is weird
nicolemarsaglia Mar 24, 2025
f0f43e2
lets see this pass the ci then I'll fix the cmakelists
nicolemarsaglia Mar 28, 2025
f72e4b1
Merge branch 'task/2025_03_warpx_unit_test' of https://github.com/Alp…
nicolemarsaglia Mar 28, 2025
013d572
lets try this cmake flag again for if mpi is not found
nicolemarsaglia Mar 31, 2025
cbed1c1
Merge branch 'task/2025_03_warpx_unit_test' of https://github.com/Alp…
nicolemarsaglia Mar 31, 2025
e5c7d92
t- => t_
nicolemarsaglia Mar 31, 2025
2034ffe
Merge branch 'develop' into task/2025_03_warpx_unit_test
nicolemarsaglia May 15, 2025
9bf1064
Merge branch 'develop' into task/2025_03_warpx_unit_test
nicolemarsaglia May 22, 2025
bf6cfb6
remove comment
nicolemarsaglia May 22, 2025
80c4ac7
Develop anari (#1538)
nicolemarsaglia May 23, 2025
278aa8a
remove cerr statments
nicolemarsaglia May 23, 2025
a0ddd85
Merge branch 'develop' into task/2025_05_develop_anari
nicolemarsaglia May 23, 2025
8581de7
revert this change
nicolemarsaglia May 23, 2025
76f5529
remove print statements
nicolemarsaglia May 23, 2025
2fe2f40
add anari as rendering option
nicolemarsaglia May 23, 2025
9ea2811
remove encoder
nicolemarsaglia May 27, 2025
f2adc76
Merge branch 'develop' into task/2025_05_develop_anari
nicolemarsaglia Jun 11, 2025
fc3ef11
kokkos typo
nicolemarsaglia Jun 11, 2025
eeb820f
remove anari as IsVolume in Scene.cpp
nicolemarsaglia Jun 12, 2025
1c5fabb
add triangle renderer
nicolemarsaglia Jul 2, 2025
256a5c9
start to get color map working
nicolemarsaglia Jul 4, 2025
7d7b944
update
nicolemarsaglia Jul 7, 2025
09c2d54
combine anari to a single renderer
nicolemarsaglia Jul 10, 2025
522b555
move device initializion from constructor to execture so we only do i…
nicolemarsaglia Jul 11, 2025
ff293bb
add anari mapper triangles patch
nicolemarsaglia Jul 14, 2025
264a73c
add ptc to build script
nicolemarsaglia Jul 18, 2025
59b4e62
add build scripts
nicolemarsaglia Jul 29, 2025
a248b33
add tests
nicolemarsaglia Jul 29, 2025
b050a2c
add stuff
Oct 29, 2025
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/vtkm/interop/anari/ANARIMapperTriangles.cxx b/vtkm/interop/anari/ANARIMapperTriangles.cxx
index 9cd86ced1..ece8e809b 100644
--- a/vtkm/interop/anari/ANARIMapperTriangles.cxx
+++ b/vtkm/interop/anari/ANARIMapperTriangles.cxx
@@ -379,7 +379,7 @@ anari_cpp::Surface ANARIMapperTriangles::GetANARISurface()
colors[2] = vtkm::Vec4f_32(0.f, 0.f, 1.f, 1.f);
anari_cpp::unmap(d, colorArray);
anari_cpp::setAndReleaseParameter(d, s, "image", colorArray);
- anari_cpp::setParameter(d, s, "filter", "nearest");
+ anari_cpp::setParameter(d, s, "filter", "linear");
anari_cpp::setParameter(d, s, "wrapMode", "clampToEdge");
anari_cpp::setParameter(d, s, "name", this->MakeObjectName("colormap"));
anari_cpp::setParameter(d, s, "inTransform", anari_cpp::mat4(anari_cpp::identity));
163 changes: 161 additions & 2 deletions scripts/build_ascent/build_ascent.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ build_raja="${build_raja:=true}"
build_umpire="${build_umpire:=true}"
build_mfem="${build_mfem:=true}"
build_catalyst="${build_catalyst:=false}"
build_anari="${build_anari:=false}"
build_ptc="${build_barney:=false}"
build_ptc="${build_ptc:=false}"
build_zfp="${build_zfp:=true}"

# ascent options
Expand Down Expand Up @@ -663,6 +666,149 @@ fi # build_kokkos

fi # if enable_hip || enable_sycl


################
# anari
################
anari_version=0.14.0
anari_src_dir=$(ospath ${source_dir}/ANARI-SDK-${anari_version})
anari_build_dir=$(ospath ${build_dir}/anari-v${anari_version})
anari_install_dir=$(ospath ${install_dir}/anari-v${anari_version}/)
anari_tarball=$(ospath ${source_dir}/anari-v${anari_version}.tar.gz)

# build only if install doesn't exist
if [ ! -d ${anari_install_dir} ]; then
if ${build_anari}; then
if [ ! -d ${anari_src_dir} ]; then
echo "**** Downloading ${anari_tarball}"
curl -L https://github.com/KhronosGroup/ANARI-SDK/archive/refs/tags/v${anari_version}/anari-v${anari_version}.tar.gz -o ${anari_tarball}
tar ${tar_extra_args} -xzf ${anari_tarball} -C ${source_dir}
fi

echo "**** Configuring anari ${anari_version}"
cmake -S ${anari_src_dir} -B ${anari_build_dir} ${cmake_compiler_settings} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${enable_verbose}\
-DCMAKE_BUILD_TYPE=${build_config} \
-DBUILD_VIEWER=OFF \
-DBUILD_CTS=OFF \
-Danari_BUILD_TESTING=OFF \
-DCMAKE_INSTALL_PREFIX=${anari_install_dir} \

echo "**** Building anari ${anari_version}"
cmake --build ${anari_build_dir} --config ${build_config} -j${build_jobs}
echo "**** Installing anari ${anari_version}"
cmake --install ${anari_build_dir} --config ${build_config}

fi
else
echo "**** Skipping anari build, install found at: ${anari_install_dir}"
fi # build_anari

################
# anari - ptc
################
ptc_version=1.1.0
ptc_src_dir=$(ospath ${source_dir}/ANARI-PTC-${ptc_version})
ptc_build_dir=$(ospath ${build_dir}/ptc-v${ptc_version})
ptc_install_dir=$(ospath ${install_dir}/ptc-v${ptc_version}/)
ptc_tarball=$(ospath ${source_dir}/ptc-v${ptc_version}.tar.gz)

# build only if install doesn't exist
#CAVEAT/TODO: Installs in anari_install_dir
if [ ! -d ${ptc_install_dir} ]; then
if ${build_ptc}; then
if [ ! -d ${ptc_src_dir} ]; then
echo "**** Downloading ${ptc_tarball}"
curl -L https://github.com/ingowald/ANARI-PTC/archive/refs/tags/v${ptc_version}.tar.gz -o ${ptc_tarball}
tar ${tar_extra_args} -xzf ${ptc_tarball} -C ${source_dir}
fi

ptc_extra_cmake_args=""
if [[ "$enable_cuda" == "ON" ]]; then
ptc_extra_cmake_args="${ptc_extra_cmake_args} -DPTC_ENABLE_CUDA=ON"
ptc_extra_cmake_args="${ptc_extra_cmake_args} -DCMAKE_CUDA_HOST_COMPILER=${CXX}"
ptc_extra_cmake_args="${ptc_extra_cmake_args} -DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCH}"
else
ptc_extra_cmake_args="${ptc_extra_cmake_args} -DPTC_DISABLE_CUDA=ON"
fi

echo "**** Configuring ptc ${ptc_version}"
cmake -S ${ptc_src_dir} -B ${ptc_build_dir} ${cmake_compiler_settings} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${enable_verbose}\
-DCMAKE_BUILD_TYPE=${build_config} \
-DANARI_SDK=${anari_install_dir} \
-DPTC_BUILD_TESTING=OFF ${ptc_extra_cmake_args}\
-DCMAKE_INSTALL_PREFIX=${anari_install_dir} \

echo "**** Building ptc ${ptc_version}"
cmake --build ${ptc_build_dir} --config ${build_config} -j${build_jobs}
echo "**** Installing ptc ${ptc_version}"
cmake --install ${ptc_build_dir} --config ${build_config}

fi
else
echo "**** Skipping ptc build, install found at: ${ptc_install_dir}"
fi # build_ptc

################
# anari - barney
################
barney_version=0.9.10
barney_src_dir=$(ospath ${source_dir}/barney-${barney_version})
barney_build_dir=$(ospath ${build_dir}/barney-v${barney_version})
barney_install_dir=$(ospath ${install_dir}/barney-v${barney_version}/)
barney_tarball=$(ospath ${source_dir}/barney-v${barney_version}.tar.gz)
barney_src_dir="${source_dir}/barney-${barney_version}"


# build only if install doesn't exist
#CAVEAT/TODO: Installs in anari_install_dir
if [ ! -d ${barney_install_dir} ]; then
if ${build_barney}; then
# Clone Barney repo with submodules if not already present
if [ ! -d "${barney_src_dir}" ]; then
echo "**** Cloning Barney v${barney_version} from GitHub"
git clone --branch v${barney_version} --recursive https://github.com/ingowald/barney.git ${barney_src_dir}
fi
#if [ ! -d ${barney_src_dir} ]; then
# echo "**** Downloading ${barney_tarball}"
# curl -L https://github.com/ingowald/barney/archive/refs/tags/v${barney_version}.tar.gz -o ${barney_tarball}
# tar ${tar_extra_args} -xzf ${barney_tarball} -C ${source_dir}
#fi

barney_extra_cmake_args=""
if [[ "$enable_cuda" == "ON" ]]; then
barney_extra_cmake_args="${barney_extra_cmake_args} -DBARNEY_ENABLE_CUDA=ON"
barney_extra_cmake_args="${barney_extra_cmake_args} -DCMAKE_CUDA_HOST_COMPILER=${CXX}"
barney_extra_cmake_args="${barney_extra_cmake_args} -DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCH}"
else
barney_extra_cmake_args="${barney_extra_cmake_args} -DBARNEY_DISABLE_CUDA=ON"
barney_extra_cmake_args="${barney_extra_cmake_args} -DBARNEY_BACKEND_EMBREE=ON"
fi

if [[ "$enable_mpi" == "ON" ]]; then
barney_extra_cmake_args="${barney_extra_cmake_args} -DBARNEY_MPI=ON"
fi

echo "**** Configuring barney ${barney_version}"
cmake -S ${barney_src_dir} -B ${barney_build_dir} ${cmake_compiler_settings} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${enable_verbose}\
-DCMAKE_BUILD_TYPE=${build_config} \
-DANARI_SDK=${anari_install_dir} \
-Dbarney_BUILD_TESTING=OFF ${barney_extra_cmake_args}\
-DCMAKE_INSTALL_PREFIX=${anari_install_dir} \

echo "**** Building barney ${barney_version}"
cmake --build ${barney_build_dir} --config ${build_config} -j${build_jobs}
echo "**** Installing barney ${barney_version}"
cmake --install ${barney_build_dir} --config ${build_config}

fi
else
echo "**** Skipping barney build, install found at: ${barney_install_dir}"
fi # build_barney


################
# VTK-m
################
Expand All @@ -686,6 +832,7 @@ if [ ! -d ${vtkm_src_dir} ]; then
# apply patches
cd ${vtkm_src_dir}
patch -p1 < ${script_dir}/2025_06_18_vtkm_z_extents_ray_culling_bugfix_viskores_mr109.patch
patch -p1 < ${script_dir}/2025_07_07_vtkm_anari_mapper_triangles_parameter_fix.patch
cd ${root_dir}
fi

Expand Down Expand Up @@ -716,6 +863,13 @@ if [[ "$enable_mpicc" == "ON" ]]; then
vtkm_extra_cmake_args="${vtkm_extra_cmake_args} -DMPI_CXX_COMPILER=${mpicxx_exe}"
fi

if ${build_anari}; then
vtkm_extra_cmake_args="${vtkm_extra_cmake_args} -DVTKm_ENABLE_ANARI=ON"
vtkm_extra_cmake_args="${vtkm_extra_cmake_args} -DANARI_DIR=$anari_install_dir}"
vtkm_extra_cmake_args="${vtkm_extra_cmake_args} -DCMAKE_PREFIX_PATH=${anari_install_dir}"
fi


echo "**** Configuring VTK-m ${vtkm_version}"
cmake -S ${vtkm_src_dir} -B ${vtkm_build_dir} ${cmake_compiler_settings} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${enable_verbose}\
Expand Down Expand Up @@ -1028,8 +1182,8 @@ if [ -d ${ascent_checkout_dir} ]; then
ascent_src_dir=$(abs_path ${ascent_checkout_dir})
echo "**** Using existing Ascent source repo checkout: ${ascent_src_dir}"
else
ascent_version=develop
ascent_src_dir=$(ospath ${source_dir}/ascent/src)
ascent_version=develop
ascent_src_dir=$(ospath ${source_dir}/ascent/src)
fi

# otherwise use ascent develop
Expand Down Expand Up @@ -1104,6 +1258,11 @@ if ${build_catalyst}; then
echo 'set(CATALYST_DIR ' ${catalyst_cmake_dir} ' CACHE PATH "")' >> ${root_dir}/ascent-config.cmake
fi

if ${build_anari}; then
echo 'set(ENABLE_ANARI ON CACHE BOOL "")' >> ${root_dir}/ascent-config.cmake
Copy link
Member

Choose a reason for hiding this comment

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

We should only key off of ANARI_DIR, we don't need an extra switch to enable to disable anari.

echo 'set(ANARI_DIR ' ${anari_install_dir}' CACHE PATH "")' >> ${root_dir}/ascent-config.cmake
fi

if [[ "$enable_cuda" == "ON" ]]; then
echo 'set(ENABLE_CUDA ON CACHE BOOL "")' >> ${root_dir}/ascent-config.cmake
echo 'set(CMAKE_CUDA_ARCHITECTURES ' ${CUDA_ARCH} ' CACHE PATH "")' >> ${root_dir}/ascent-config.cmake
Expand Down
21 changes: 21 additions & 0 deletions scripts/build_ascent/build_ascent_anari.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash

##############################################################################
# Demonstrates how to manually build Ascent and its dependencies, including:
#
# hdf5, conduit, vtk-m, mfem, raja, anari and umpire
#
# usage example:
# env enable_mpi=ON enable_openmp=ON ./build_ascent.sh
#
#
# Assumes:
# - cmake is in your path
# - selected compilers (including nvcc) are in your path or set via env vars
# - [when enabled] MPI and Python (+numpy and mpi4py), are in your path
#
##############################################################################
set -eu -o pipefail

# 2024-10-14 ANARI support is handled by our unified script
env build_anari=true build_barney=true build_ptc=true enable_mpi=ON ./build_ascent.sh
10 changes: 9 additions & 1 deletion scripts/build_ascent/build_ascent_cuda_polaris.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,16 @@ module load cudatoolkit-standalone
module load craype-x86-milan
module load cray-python

# export http_proxy="http://proxy-01.pub.alcf.anl.gov:3128"
# export https_proxy="http://proxy-01.pub.alcf.anl.gov:3128"
# export ftp_proxy="http://proxy-01.pub.alcf.anl.gov:3128"
# source /home/qiwu/projects/diva_superbuild/setup-env.sh

export CC=$(which cc)
export CXX=$(which CC)
export FTN=$(which ftn)

env enable_python=ON enable_mpi=ON enable_fortran=ON raja_enable_vectorization=OFF enable_tests=OFF ./build_ascent_cuda.sh
# env enable_mpi=ON enable_fortran=ON raja_enable_vectorization=OFF enable_tests=OFF ./build_ascent_cuda.sh
# env enable_mpi=ON enable_fortran=ON raja_enable_vectorization=OFF enable_tests=OFF build_ascent=false ./build_ascent_cuda.sh
# env enable_python=ON enable_mpi=ON enable_fortran=ON raja_enable_vectorization=OFF enable_tests=OFF ./build_ascent_cuda.sh
env enable_python=ON enable_mpi=ON enable_fortran=ON raja_enable_vectorization=OFF enable_tests=OFF build_ascent=false ./build_ascent_cuda.sh
4 changes: 4 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,17 @@ option(ENABLE_HIDDEN_VISIBILITY "Build with hidden visibility for private symbol
option(DRAY_ENABLE_STATS "Enable stats" ON)
option(DRAY_USE_DOUBLE_PRECISION "Build Devil Ray with double precision" OFF)


# VTK-h Specific Options

option(VTKH_ENABLE_FILTER_CONTOUR_TREE "Build VTK-h contour tree support" ON)

# Cuda Specific Options
option(ENABLE_CUDA_DEBUG_CPU_ONLY "Enable CUDA CPU debugging" OFF)

# support ANARI rendering backend
option(ENABLE_ANARI "Build ANARI Support" OFF)
Copy link
Member

Choose a reason for hiding this comment

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

we dont need addtional option, just key off ANARI_DIR


#####################################################
# Note: Third party libs like MFEM, FIDES, etc are
# enabled when you provide MFEM_DIR, etc
Expand Down
10 changes: 10 additions & 0 deletions src/cmake/Setup3rdParty.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,16 @@ if (GENTEN_DIR)
include(cmake/thirdparty/SetupGenTen.cmake)
endif()

################################
# Setup Catalyst
################################
if (CATALYST_DIR)
include(cmake/thirdparty/SetupCatalyst.cmake)
endif()

################################
# Setup ANARI
################################
if (ANARI_DIR)
include(cmake/thirdparty/SetupANARI.cmake)
endif()
35 changes: 35 additions & 0 deletions src/cmake/thirdparty/SetupANARI.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
###############################################################################
# Copyright (c) Lawrence Livermore National Security, LLC and other Ascent
# Project developers. See top-level LICENSE AND COPYRIGHT files for dates and
# other details. No copyright assignment is required to contribute to Ascent.
###############################################################################

###############################################################################
# Setup ANARI
###############################################################################

if(NOT ANARI_DIR)
MESSAGE(FATAL_ERROR "ANARI support needs explicit ANARI_DIR")
endif()

MESSAGE(STATUS "Looking for ANARI using ANARI_DIR = ${ANARI_DIR}")

set(ANARI_DIR_ORIG ${ANARI_DIR})
set(ANARI_FOUND TRUE)

file(GLOB ANARI_DIR "${ANARI_DIR}/lib/cmake/anari-*")
if(NOT EXISTS ${ANARI_DIR}/anariConfig.cmake)
MESSAGE(FATAL_ERROR "Could not find ANARI CMake at (${ANARI_DIR}/lib/cmake/anari-*)")
endif()

###############################################################################
# Import ANARI CMake targets
###############################################################################
#find_package(anari REQUIRED)
find_package(anari REQUIRED
NO_DEFAULT_PATH
PATHS ${ANARI_DIR})
if(NOT TARGET vtkm::anari)
message(FATAL_ERROR "vtkm::anari not found, check your VTK-m install")
endif()

29 changes: 29 additions & 0 deletions src/config/ascent_setup_deps.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,35 @@ if(KOKKOS_DIR)
PATHS ${KOKKOS_CMAKE_CONFIG_DIR})
endif()

###############################################################################
# Setup ANARI
###############################################################################
if(NOT ANARI_DIR)
set(ANARI_DIR ${ASCENT_ANARI_DIR})
endif()

if(EXISTS ${ANARI_DIR}/lib64/cmake/anari/)
set(ANARI_CMAKE_CONFIG_DIR ${ANARI_DIR}/lib64/cmake/anari/)
endif()

if(EXISTS ${ANARI_DIR}/lib/cmake/anari/)
set(ANARI_CMAKE_CONFIG_DIR ${ANARI_DIR}/lib/cmake/anari/)
endif()


if(ANARI_DIR)
if(NOT EXISTS ${ANARI_CMAKE_CONFIG_DIR}/anariConfig.cmake)
MESSAGE(FATAL_ERROR "Could not find ANARI CMake include file (${ANARI_CMAKE_CONFIG_DIR}/anariConfig.cmake)")
endif()

###############################################################################
# Import CMake targets
###############################################################################
find_dependency(anari REQUIRED
NO_DEFAULT_PATH
PATHS ${ANARI_CMAKE_CONFIG_DIR})
endif()

###############################################################################
# Setup VTK-m
###############################################################################
Expand Down
Loading
Loading