如果要将以下结构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设备中,我需要使用此结构叠加在介质上,以模拟粒子如何在该介质上传播。百万个粒子中的每一个都从四面体移动到四面体(每个四面体都具有其所在介质的特性)。

最佳答案

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

在新的CUDA 6中,只要Unified Memory的计算能力达到3.x或更高,深层副本将变得更加容易。

关于c++ - 如何将四面体树结构复制到CUDA设备内存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21515398/

10-08 22:00