【发布时间】:2015-03-02 13:18:23
【问题描述】:
我想使用邻接表分配一个图形,即“V”指针数组,每个指针指向一个数组,该数组将具有相邻顶点(这将是不相等的)所以
unsigned **d_ptr;
cudaMalloc(&d_ptr, sizeof(unsigned *)*Count);
for(int i=0;i<Count;i++)
{
cudaMalloc(&temp, sizeof(unsigned)*outdegree(i));
}
我可以将临时指针复制到 d_ptr[i] 但有更好的方法吗?
【问题讨论】:
-
对于在数据元素之间具有大量指针的复杂数据结构(例如链表),UVA(统一虚拟寻址)提供了代码简化,但可能会降低性能(后者实际上取决于您如何访问来自内核的数据)。除此之外,只需将所有内容从主机深度复制到设备,复制哪些点的结构。