From 4cc95716febf04dcbb926d056db3ffa4f8c3ab4a Mon Sep 17 00:00:00 2001 From: Stan Seibert Date: Thu, 29 Dec 2011 21:48:05 -0500 Subject: Allow make_gpu_struct to pack structs containing the CUDA vector types. --- chroma/gpu/tools.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/chroma/gpu/tools.py b/chroma/gpu/tools.py index 38d67a1..98df7ce 100644 --- a/chroma/gpu/tools.py +++ b/chroma/gpu/tools.py @@ -142,6 +142,8 @@ def create_cuda_context(device_id=None): return context +vec_dtypes = set([ x for x in ga.vec.__dict__.values() if type(x) == np.dtype ]) + def make_gpu_struct(size, members): struct = cuda.mem_alloc(size) @@ -158,7 +160,7 @@ def make_gpu_struct(size, members): cuda.memcpy_htod(int(struct)+i, np.intp(int(member))) i += 8 - elif np.isscalar(member): + elif np.isscalar(member) or hasattr(member, 'dtype') and member.dtype in vec_dtypes: cuda.memcpy_htod(int(struct)+i, member) i += member.nbytes else: -- cgit