如果要将以下结构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/