在CUDA上用于网格的高效拓扑数据结构?

3
在一项大学项目中,我的小组的任务是在CUDA上实现基于网格的表面跟踪(Mesh Based Surface Tracking)。为此,我们需要一个三角形网格的拓扑数据结构。
在CPU实现中,我会使用像半边或有翼边缘(winged-edge)数据结构之类的东西,但在CUDA上这会导致随机访问全局内存,速度非常慢。 网格的拓扑结构将经常发生变化,因此数据结构也需要能够动态改变。
是否有适合CUDA的数据结构满足这些要求?
1个回答

1

这篇博客文章(点击此处)介绍了如何实现“向量托管”半边数据结构,虽然不是专门针对CUDA的。这本质上只是使用向量实现的半边数据结构,但是向量缓冲区中未使用的元素被标记为“死亡”,并且这些死亡条目与自由列表链接在一起,以便在需要时轻松查找和重用死亡条目。自由列表使您可以避免为元素节点进行通用内存分配,并且它全部“托管”在向量中,确保东西在内存中保持附近。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接