Wednesday, April 10, 2013

CUDA: back to basic object passing

 

 

http://stackoverflow.com/questions/13185221/cuda-host-object-to-device

 

Host:

MyKernel<<<grid_dim, block_dim>>>(my_object);

Device:

__global__ void MyKernel(MyObject my_object) {

If you need to pass an array of objects, an easy way is to use thrust::device_vector. For instance:

Host:

#include <thrust/device_vector.h>
device_vector<MyObject> my_objects;
...
MyObject* my_objects_d = thrust::raw_pointer_cast(&my_objects[0]);
MyKernel<<<grid_dim, block_dim>>>(my_objects_d);

Device:

__global__ void MyKernel(MyObject* my_objects) {

No comments:

Post a Comment