推力:在线程块内排序
Posted
技术标签:
【中文标题】推力:在线程块内排序【英文标题】:thrust: sorting within a threadblock 【发布时间】:2019-11-28 06:24:47 【问题描述】:我正在调度一个大约 5k 块的内核。在某些时候,我们需要对每个线程块中的数组进行排序。如果可能的话,我们想使用像推力这样的库。
从文档中我了解到,如何在推力中执行排序取决于指定的execution_policy
。但是我不明白是否可以使用execution_policies
来指定我想使用当前块的线程进行排序。有人可以向我解释或提示我执行政策的良好文档,并告诉我我打算做的事情是否可行?
【问题讨论】:
不是。但是,CUB 具有块作用域排序 如果是这样,那就太可惜了。你能告诉我execution_policy
的用途和使用方法吗?找不到任何相关文档。
thrust.github.io/doc/group__execution__policies.html
嗨,谢谢。这也是我发现的,但没有找到非常确凿的结论。但非常感谢您的提示和努力。它的赞赏。
执行策略 slides video 要播放视频,您可能需要单击视频窗口的中心以显示控件,然后单击播放按钮左下
【参考方案1】:
事实证明,执行策略基本上是一种桥接设计模式,它使用模板专门化而不是继承来选择算法的适当实现,同时向库的用户公开稳定的接口并避免虚拟函数的开销/必要性。谢谢robert-crovella 的精彩视频。
至于实际在线程块内排序的实现,talonmies 是对的。根本没有实现(目前?),我在源代码中找不到任何东西。
【讨论】:
以上是关于推力:在线程块内排序的主要内容,如果未能解决你的问题,请参考以下文章