【问题标题】:How to copy a tetrahedron tree structure to CUDA device memory?如何将四面体树结构复制到 CUDA 设备内存?
【发布时间】:2014-02-02 19:52:35
【问题描述】:

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

【问题讨论】:

  • @talonmies 我会在这里搜索你的建议:stackoverflow.com/questions/6564016/… 谢谢!
  • 这里没有足够的信息来建设性地回答这个问题。解释结构是如何在主机内存中分配的,以及在 CUDA 设备内存中拥有该结构后,设备上的目标是什么。

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


【解决方案1】:

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

在新的 CUDA 6 中,只要您的计算能力为 3.x 或更高,Unified Memory 就会更容易。

【讨论】:

    猜你喜欢
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 2013-12-05
    • 2013-06-06
    • 2019-10-15
    • 2012-11-04
    • 1970-01-01
    相关资源
    最近更新 更多