如何使用CUDA执行struct的深层复制?

这个问题在这里已经有了答案:

  • 将包含指针的结构复制到CUDA设备3个答案

  • 简短的回答是“不要”。 我有四个理由说:

  • API中没有深层复制功能
  • 所得到的代码必须写入,并将所描述的结构复制到GPU中将会非常复杂(至少约4000个API调用,并且可能是您的20个Matrix的100个单元示例的中间内核)
  • 使用三级指针间接寻址的GPU代码将大大增加内存访问延迟,并且会破坏GPU上可用的少量缓存一致性
  • 如果您希望事后将数据复制回主机,则会出现相同的问题
  • 考虑使用线性内存和索引代替。 它可以在主机和GPU之间移植,分配和复制开销大约是基于指针的替代方案的1%。

    如果你真的想这样做,留下评论,我会尝试挖掘一些旧的代码示例,它们显示了GPU上完整的愚蠢嵌套指针。

    链接地址: http://www.djcxy.com/p/8309.html

    上一篇: How to perform deep copying of struct with CUDA?

    下一篇: Directory Permission Watcher in c#