我正在为大型数组(数百个 M 元素)在 GPU 上寻找一种排序算法的快速实现。我已经尝试过 cudpp 了,每秒得到 450M 到 500M 4 字节密钥 + 4 字节字段。这看起来还不错,但是仍然在 CPU 可以做的事情的范围内。然后我偶然发现了这个:https ://code.google.com/p/back40computing/wiki/RadixSorting在 GTX480 上声称 700M 键 + 值/秒。我说——哇!- 我正在运行 Tesla K10,所以更强大的硬件,必须试试这个!得到了代码,为 nvidia 能力 30 编译它,试了一下......我得到的数字或多或少与 cudpp 代码相同。深入挖掘,看起来 cudpp 使用了 Thrust 的基数排序,并且 bc40 算法已合并到 Thrust 中,所以总而言之,我很可能运行相同的代码。我一直在使用 bc40 代码上的一些参数(块大小、网格大小等),但只会让事情变得更糟。那么问题来了——有没有人在不同的(更强大的)GPU 上测试过 cudpp 基数排序或 bc40 基数排序?任何接近 700M/sec 的键+值?有什么神奇的按钮可以按吗?nsight 分析器报告了 25% 的 GPU 使用率(并且共享内存访问成为瓶颈)。