Example #1
0
 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()
Example #2
0
 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