Skip to content

Commit

Permalink
Merge pull request #1084 from LLNL/feature/yang39/multimat-gpu
Browse files Browse the repository at this point in the history
Initial port of Multimat to the GPU
  • Loading branch information
publixsubfan committed May 22, 2023
2 parents 716d049 + 3f773a6 commit 60dd0c6
Show file tree
Hide file tree
Showing 12 changed files with 1,861 additions and 681 deletions.
16 changes: 15 additions & 1 deletion RELEASE-NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,16 @@ The Axom project release numbers follow [Semantic Versioning](http://semver.org/
must be further refined. This new dynamic method of shaping complements the existing
segment-based curve refinement method and it is activated using `Shaper::setRefinementType()`
and by calling `Shaper::setPercentError()` to set a refinement error percentage.
- Multimat: adds initial support for fields stored on the GPU. `MultiMat::setAllocatorID()`
or `MultiMat::setFieldAllocatorID()` can be called to change the memory space in which a
field is allocated.
- Multimat: adds an `MultiMat::addExternalField()` function to support fields where the
memory is managed externally. Fields which are externally-managed cannot be transposed
between sparse and dense layouts, or moved between allocator spaces.
- Multimat: adds a `MultiMat::removeField()` function to remove fields from the Multimat
instance.
- Multimat: adds an overload of `MultiMat::setCellMatRel()` that supports setting a
multi-material relation in a compressed sparse-row (CSR) representation.

### Changed
- Updates blt submodule to HEAD of develop on 24Jan2023
Expand Down Expand Up @@ -78,7 +88,11 @@ The Axom project release numbers follow [Semantic Versioning](http://semver.org/
- Slam: `IndirectionPolicy::data()` now returns a reference to the underlying buffer
Rebinding an indirection to a new buffer is now achieved through `IndirectionPolicy::ptr()`, which
returns a mutable pointer to the buffer.
- Quest: `Shaper::applyTransforms()` is no longer a public method
- Quest: `Shaper::applyTransforms()` is no longer a public method.
- Multimat: fields are now returned as shallow, device-copyable views of a field instead
of full copies of field data.
- Multimat: `MultiMat::addField()` and `MultiMat::setVolfracField()` API now use `axom::ArrayView`
to accept data.

### Fixed
- Fixed issues with CUDA build in CMake versions 3.14.5 and above. Now require CMake 3.18+
Expand Down
1 change: 1 addition & 0 deletions src/axom/multimat/examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ set(multimat_example_headers

set(multimat_example_sources
calculate.cpp
calculate_gpu.cpp
traversal.cpp )

foreach(example_source ${multimat_example_sources})
Expand Down
252 changes: 129 additions & 123 deletions src/axom/multimat/examples/calculate.cpp

Large diffs are not rendered by default.

0 comments on commit 60dd0c6

Please sign in to comment.