-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Labels
CoreIssues related to Axom's 'core' componentIssues related to Axom's 'core' componentGPUIssues related to GPU developmentIssues related to GPU developmentReviewed
Milestone
Description
From #627
I envision making the following changes in each PR (roughly in order)
- Extending Array to multiple dimensions - Extend Array to multiple dimensions #627
- Replacing MCArray with Array (now that multiple dimensions are possible - Remove the old MCArray from Sidre #657
- Adding a View (ArrayView?) class that provides indexing/access to a pointer it does not own, while removing the external data feature from Array - Replace Array external buffer functionality with ArrayView #678
- Adding GPU support via a template parameter for the memory space of the Array/ArrayView - this needs to include a dynamic option so the memory space can be set at runtime - Full GPU support for axom::Array #695
Other (smaller?) feature requests/tasks:
- Support for alternate striding: see Extend Array to multiple dimensions #627 (comment) and Extend Array to multiple dimensions #627 (comment)
- Using
axom::StackArrayinstead ofstd::arrayfor the return values (and internal storage) ofshape()et al - this will require some feature additions toStackArray- Full GPU support for axom::Array #695 - Remove
std::inner_productfrom index calculations so it can run on a GPU - Full GPU support for axom::Array #695 - Refactor
axom::numerics::Matrixto inherit fromaxom::Array - Move Array helper/related classes into their own header files - Move array classes into their own files #684
- Update
ArrayIteratorto be aware of the shape of multidimensional arrays (Replace Array external buffer functionality with ArrayView #678 (comment)) - Fuzzy equality comparisons for Arrays/ArrayViews of floating-point types (Replace Array external buffer functionality with ArrayView #678 (comment)) and also StackArray?
- Default-initialize memory, but provide an option (dummy argument to constructor maybe?) to leave memory uninitialized - Initialize memory in axom::Array by default, allow for creation of ArrayView<const T> #709
- Add another layer of policy classes that allow for the host/device annotations to match the
MemorySpacewhen it's locked down - point of contact @samuelpmishLLNL - Swapping Arrays located in different memory spaces - see Full GPU support for axom::Array #695 (comment)
- Dealing with allocator IDs that are "compatible" with a memory space but are different from the "primary" allocator for that space (e.g., pooled allocators) - see Full GPU support for axom::Array #695 (comment) and Full GPU support for axom::Array #695 (comment) - primarily we'd want to use this to make sure that we don't throw a spurious error when constructing
ArrayViews or in similar contexts - Possible extension to
detail::getAllocatorID(FIXME needs clarification) - see Full GPU support for axom::Array #695 (comment) - Ranges for iterating over each dimension - Switch over to axom::Array smith#596 (comment)
-
const Array<T>toArrayView<const T>conversion - Initialize memory in axom::Array by default, allow for creation of ArrayView<const T> #709 - Enhance checks for non-default-constructible types - see Initialize memory in axom::Array by default, allow for creation of ArrayView<const T> #709 (comment)
- Add
initializer_listconstructors toaxom::Array- see Miscellaneous axom::Array improvements #808
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
CoreIssues related to Axom's 'core' componentIssues related to Axom's 'core' componentGPUIssues related to GPU developmentIssues related to GPU developmentReviewed