如何将四面体树结构复制到CUDA设备内存?

时间:2014-02-02 19:52:36

标签: c++ c memory-management cuda tree

如果我想将以下结构TetrahedronStruct移至CUDA设备内存,我该如何处理?

struct TetrahedronStruct {
  int index;
  int region;
  TriangleFaces Faces[4];
  Vertex Vertices[4];
  struct TetrahedronStruct *adjTetrahedrons[4];
};

typedef struct {
  long double Nx, Ny, Nz;
  long double d;
  Vertex V[3];
} TriangleFaces;

typedef struct {
  long double x, y, z;
} Vertex;

详细信息:

提供网格细节(节点数,四面体,坐标和区域)。树的创建是在for循环中完成的。基本上,每个面都以相应的坐标和相邻方式定位和排列在树中。

在CUDA设备中,我需要使用此结构叠加在媒体上以模拟粒子如何穿过该媒体。百万粒子中的每一粒都从四面体移动到四面体(每个四面体都具有它所在的介质的特性)。

1 个答案:

答案 0 :(得分:0)

将结构线性化然后将它们复制到设备会更容易。

在新的CUDA 6中,只要Unified Memory的计算能力为3.x或更高,深度副本就会容易得多。