用于计算邻居列表的最佳 GPU 算法
给定 3D 中数千个点的集合,我需要获取落在某个截止值(以欧几里得距离而言)内的每个粒子的邻居列表,并且如果可能的话,从最近到最远排序。
在 CUDA 或 OpenCL 语言中,哪种 GPU 算法最快?
Given a collection of thousands of points in 3D, I need to get the list of neighbours for each particle that fall inside some cutoff value (in terms of euclidean distance), and if possible, sorted from nearest fo farthest.
Which is the fastest GPU algorithm for this purpose in the CUDA or OpenCL languages?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我所知道的最快的 GPU MD 代码之一,HALMD,使用相同类型的(高度调整的)版本CUDA SDK 示例中使用的方法,“粒子”。 HALMD 论文和粒子 白皮书写得非常清楚。底层算法是将粒子分配到截止半径大小的箱中,根据该索引进行基数排序,然后查看相邻箱中的粒子。
One of the fastest GPU MD codes I'm aware of, HALMD, uses a (highly tuned) version of the same sort of approach that is used in the CUDA SDK examples, "Particles". Both the HALMD paper and the Particles whitepaper are very clearly written. The underling algorithm is to assign particles into cutoff-radius-sized bins, do a radix sort based on that index, and then look at particles in the neighbouring bins.
使用 GPU 进行快速最近邻搜索
我没有测试过,没有使用过,什么也没有。我刚刚用谷歌搜索并发布了我找到的第一个链接。
Fast k Nearest Neighbor Search using GPU
I haven't tested, used it, nothing. I just googled and posted the first link I found.