import numpy as np from pycuda import gpuarray def make_vector(arr, dtype=gpuarray.vec.float3): if len(arr.shape) != 2 or arr.shape[-1] != 3: raise Exception('shape mismatch') x = np.empty(arr.shape[0], dtype) x['x'] = arr[:,0] x['y'] = arr[:,1] x['z'] = arr[:,2] return x