def test_cuda_array_interface(self): arr = cupy.zeros(shape=(2, 3), dtype=cupy.float64) iface = arr.__cuda_array_interface__ assert iface['version'] == 3 assert (set(iface.keys()) == set([ 'shape', 'typestr', 'data', 'version', 'descr', 'stream', 'strides' ])) assert iface['shape'] == (2, 3) assert iface['typestr'] == '<f8' assert isinstance(iface['data'], tuple) assert len(iface['data']) == 2 assert iface['data'][0] == arr.data.ptr assert not iface['data'][1] assert iface['descr'] == [('', '<f8')] assert iface['strides'] is None assert iface['stream'] == stream_module.get_default_stream_ptr()
def test_cuda_array_interface_stream(self): # this tests exporting CAI with a given stream arr = cupy.zeros(shape=(10,), dtype=cupy.float64) stream = self.stream with stream: iface = arr.__cuda_array_interface__ assert iface['version'] == self.ver attrs = ['shape', 'typestr', 'data', 'version', 'descr', 'strides'] if self.ver == 3: attrs.append('stream') assert set(iface.keys()) == set(attrs) assert iface['shape'] == (10,) assert iface['typestr'] == '<f8' assert isinstance(iface['data'], tuple) assert len(iface['data']) == 2 assert iface['data'] == (arr.data.ptr, False) assert iface['descr'] == [('', '<f8')] assert iface['strides'] is None if self.ver == 3: if stream.ptr == 0: ptr = stream_module.get_default_stream_ptr() assert iface['stream'] == ptr else: assert iface['stream'] == stream.ptr