Skip to content

Commit 4f910cb

Browse files
authored
feat: add size property to StridedMemoryView (NVIDIA#1363)
1 parent 8e63850 commit 4f910cb

2 files changed

Lines changed: 7 additions & 0 deletions

File tree

cuda_core/cuda/core/experimental/_memoryview.pyx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,10 @@ cdef class StridedMemoryView:
296296
"""
297297
return self.get_layout()
298298

299+
@property
300+
def size(self) -> int:
301+
return self.get_layout().get_volume()
302+
299303
@property
300304
def shape(self) -> tuple[int, ...]:
301305
"""

cuda_core/tests/test_utils.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ def _check_view(self, view, in_arr):
9292
assert isinstance(view, StridedMemoryView)
9393
assert view.ptr == in_arr.ctypes.data
9494
assert view.shape == in_arr.shape
95+
assert view.size == in_arr.size
9596
strides_in_counts = convert_strides_to_counts(in_arr.strides, in_arr.dtype.itemsize)
9697
if in_arr.flags.c_contiguous:
9798
assert view.strides is None
@@ -172,6 +173,7 @@ def _check_view(self, view, in_arr, dev):
172173
assert isinstance(view, StridedMemoryView)
173174
assert view.ptr == gpu_array_ptr(in_arr)
174175
assert view.shape == in_arr.shape
176+
assert view.size == in_arr.size
175177
strides_in_counts = convert_strides_to_counts(in_arr.strides, in_arr.dtype.itemsize)
176178
if in_arr.flags["C_CONTIGUOUS"]:
177179
assert view.strides in (None, strides_in_counts)
@@ -204,6 +206,7 @@ def _check_view(self, view, in_arr, dev):
204206
assert isinstance(view, StridedMemoryView)
205207
assert view.ptr == gpu_array_ptr(in_arr)
206208
assert view.shape == in_arr.shape
209+
assert view.size == in_arr.size
207210
strides_in_counts = convert_strides_to_counts(in_arr.strides, in_arr.dtype.itemsize)
208211
if in_arr.flags["C_CONTIGUOUS"]:
209212
assert view.strides is None

0 commit comments

Comments
 (0)