I think some extra view hooks would be really handy.
- A hook for new view allocations (actually allocating new managed memory) at this constructor would help with things like checkpoint recovery in NimbleSM (where otherwise we don't know where views are until we do a test-run of the checkpoint region) and recovery of resized views (since we have the original view handle).
- A hook for new subviews at this constructor would help with avoiding double checkpointing data
- Hooks for resize and realloc at the various
impl_resize and impl_realloc functions in Kokkos_CopyViews.hpp would be better for detecting resized/alloced views, especially when tracking potentially unnamed views by data pointers which may change during the resize/realloc.
- Hooks for creating mirror views and performing deep copies in the same Kokkos_CopyViews.hpp might (?) let us identify views that are simply buffer spaces for the same data
All of these functions are costlier than the copy/move constructors that we currently hook to, so I wouldn't think performance would be a concern. I think 1 and 3 would be immediately helpful
I think some extra view hooks would be really handy.
impl_resizeandimpl_reallocfunctions in Kokkos_CopyViews.hpp would be better for detecting resized/alloced views, especially when tracking potentially unnamed views by data pointers which may change during the resize/realloc.All of these functions are costlier than the copy/move constructors that we currently hook to, so I wouldn't think performance would be a concern. I think 1 and 3 would be immediately helpful