Open
Description
Moving the tracking issue to the public. Unlike the existing Buffer
which is a 1D contiguous, untyped blob, we want to have a typed buffer that feels more natural to use as underlying memory of tensors/arrays. The requirements include
- Arbitrary dimension
- Holds the underlying pointer
- Holds shape
- Holds strides
- Exposes same attributes as
Buffer
does
The only bit that needs discussion during design meetings: Is it owning or non-owning?
- I think it should be owning (I was wrong in one of the meetings today) because
Buffer
is owning too. That'd make thisNDBuffer
look more likemdarray
([FEA]: Providemdarray
cccl#2474; see also Raft's counterpart and p1684). - If it's non-owning, then it's a view but we already have
StridedMemoryView
(LoweringStridedMemoryView
attribues to typed efficient C/C++/Cython accessible values #180)