你好是我项目的一部分。关键是我必须对一个数字数组进行排序(比如 100~200 个 16 位数字,数字和位是事先固定的)。我想使用 GPU 的共享内存在一个块内对其进行排序,作为数据不能在中间离开芯片的要求的一部分。
我在 GPU 上阅读了一些基数排序、双音排序算法。但看起来它们是为大量数字而设计的。我想非常非常快地对这 100~200 个数字进行排序
我感谢任何想法/帮助
你好是我项目的一部分。关键是我必须对一个数字数组进行排序(比如 100~200 个 16 位数字,数字和位是事先固定的)。我想使用 GPU 的共享内存在一个块内对其进行排序,作为数据不能在中间离开芯片的要求的一部分。
我在 GPU 上阅读了一些基数排序、双音排序算法。但看起来它们是为大量数字而设计的。我想非常非常快地对这 100~200 个数字进行排序
我感谢任何想法/帮助
CUB具有在单个块中执行排序操作的例程,包括示例。如果您愿意,CUB 还具有可以在设备级别运行的例程,以利用所有计算资源来解决更大的问题。
对于要排序的 100 多个数字,您不太可能编写自己的运行速度更快的代码。
如果您有一个非常小的组(例如 < 32)数字要在块级别进行排序,您可能只是想编写自己的代码。在这种情况下,warp vote 和 shuffle指令可能很有用。