3

在一个大学项目中,我小组的任务是在 CUDA 上实现基于网格的表面跟踪。为此,我们需要三角形网格的拓扑数据结构。
在 CPU 实现中,我会使用半边或翼边数据结构之类的东西,但在 CUDA 上,这会导致随机跳过全局内存,这非常慢。网格的拓扑会经常变化,因此数据结构也需要能够动态变化。

是否有满足这些要求的 CUDA 数据结构?

4

1 回答 1

1

不是专门针对 CUDA,但这篇博客文章讨论了如何实现“向量托管”半边数据结构。这本质上只是一个用向量实现的半边数据结构,但向量缓冲区中未使用的元素被标记为“死”,并且这些死条目与空闲列表链接在一起,以便在需要时查找和重用死条目是微不足道的. 空闲列表使您能够避免元素节点的一般内存分配,并且它全部“托管”在向量中的事实确保了东西被保存在内存中附近。

于 2015-07-29T15:51:56.180 回答