【问题标题】:thrust: sorting within a threadblock推力:在线程块内排序
【发布时间】:2019-11-28 06:24:47
【问题描述】:

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

【问题讨论】:

  • 不是。但是,CUB 具有块作用域排序
  • 如果是这样,那就太可惜了。你能告诉我execution_policy 的用途和使用方法吗?找不到任何相关文档。
  • 嗨,谢谢。这也是我发现的,但没有找到非常确凿的结论。但非常感谢您的提示和努力。它的赞赏。
  • 执行策略 slides video 要播放视频,您可能需要单击视频窗口的中心以显示控件,然后单击播放按钮左下

标签: sorting cuda thrust


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-06-17
    • 1970-01-01
    • 2018-01-27
    • 2020-04-30
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2014-02-17
    • 2020-11-10
    相关资源
    最近更新 更多