在CUDA中使用结构体,比如这种形式:
struct saxpy_functor
{
const float a;
saxpy_functor(float _a) : a(_a) {}
__host__ __device__ float operator()(const float& x, const float& y) const { return a * x + y; }
};
这样,结构体里就具有了cuda的存储类型的成员。
cuda中还经常出现reduce操作。搜了一下,还是浙大的一个学姐写得详细:
http://blog.csdn.net/abcjennifer/article/details/43528407
下面还有一个cuda结构体分配存储空间的例子:
http://blog.csdn.net/wang11234514/article/details/18664139
********
如果涉及链表,则网上给出的解答是:
每一个tick数据构成链表的一个node,node中有两列数组,把每个node加上这个偏移量的int,变成一个大node,所有的大node做一个数组传进去就行了。
另外一篇海洋大学的文章则称,CUDA6的统一寻址提供了很好的解决