推力:在线程块内排序

thrust: sorting within a threadblock

我正在调度一个大约有 5k 块的内核。在某些时候,我们需要对每个线程块中的数组进行排序。如果可能的话,我们希望使用像 thrust 这样的库。 从文档中我了解到排序的执行方式取决于指定的 execution_policy。但是我不明白我是否可以使用 execution_policies 来指定我想使用我当前块的线程进行排序。有人可以向我解释或暗示我执行策略的良好文档并告诉我我打算做的事情是否可行吗?

事实证明,执行策略基本上是一种桥梁设计模式,它使用模板专业化而不是继承来 select 算法的适当实现,同时向库的用户公开稳定的接口并避免 overhead/necessity 的虚函数。谢谢 robert-crovella 精彩的视频。

关于thrust中线程块内排序的实际实现,talonmies是对的。根本没有实现(目前?),我在源代码中找不到任何东西。