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

如果我想将以下结构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中,只要统一内存的计算能力为3.x或更高,深度拷贝就会容易得多。