Skip to content

Commit

Permalink
Merge pull request #1099 from LLNL/feature/yang39/multimat-gpu-2
Browse files Browse the repository at this point in the history
Multimat: GPU porting and acceleration
  • Loading branch information
publixsubfan committed Jun 5, 2023
2 parents 5ed9b02 + 95773ec commit f21098d
Show file tree
Hide file tree
Showing 7 changed files with 808 additions and 164 deletions.
5 changes: 5 additions & 0 deletions RELEASE-NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ The Axom project release numbers follow [Semantic Versioning](http://semver.org/
- Multimat: adds an overload of `MultiMat::setCellMatRel()` that supports setting a
multi-material relation in a compressed sparse-row (CSR) representation.
- Quest: Adds ability to import volume fractions into `SamplingShaper` before processing `Klee` input
- Slam: adds a `slam::MappedVariableCardinality` policy to accelerate mapping flat indices
back to first-set indices when used in a `StaticRelation`

### Changed
- Fixed bug in `mint::mesh::UnstructuredMesh` constructors, affecting capacity.
Expand Down Expand Up @@ -97,6 +99,9 @@ The Axom project release numbers follow [Semantic Versioning](http://semver.org/
of full copies of field data.
- Multimat: `MultiMat::addField()` and `MultiMat::setVolfracField()` API now use `axom::ArrayView`
to accept data.
- Multimat: Ported field data/sparsity layout conversion methods to GPU.
- Multimat: `MultiMat::makeOtherRelation()` now runs on the GPU with an appropriately-set allocator ID.
- Multimat: `MultiMat::setCellMatRel(counts, indices)` now runs on the GPU, and accepts GPU-side data.

### Fixed
- Fixed issues with CUDA build in CMake versions 3.14.5 and above. Now require CMake 3.18+
Expand Down
13 changes: 9 additions & 4 deletions src/axom/multimat/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,20 +25,25 @@ set(multimat_sources
multimat.cpp
)

#------------------------------------------------------------------------------
# Specify multimat dependencies
#------------------------------------------------------------------------------
set(multimat_depends_on slam)

blt_list_append( TO multimat_depends_on ELEMENTS RAJA IF RAJA_FOUND )
blt_list_append( TO multimat_depends_on ELEMENTS umpire IF UMPIRE_FOUND )

#------------------------------------------------------------------------------
# Build and install the library
#------------------------------------------------------------------------------
axom_add_library(
NAME multimat
SOURCES ${multimat_sources}
HEADERS ${multimat_headers}
DEPENDS_ON slam
DEPENDS_ON ${multimat_depends_on}
FOLDER axom/multimat
)

# Set file back to C++ due to nvcc compiler error
set_source_files_properties(multimat.cpp PROPERTIES LANGUAGE CXX)

axom_write_unified_header(NAME multimat
HEADERS ${multimat_headers}
)
Expand Down

0 comments on commit f21098d

Please sign in to comment.