推力/ cudpp算法找到第k个最小元素

时间:2011-12-27 20:27:05

标签: cuda nvidia thrust cudpp

我正在寻找push / cudapp中第k个最小元素算法的实现。我用Google搜索但似乎没找到它。有没有人知道是否存在这样的算法?

我看到有重新排序,但它并没有说第k个最小。

1 个答案:

答案 0 :(得分:1)

Thrust目前不提供选择算法(即STL中的std::nth_element)虽然它在我们的雷达上,并且good evidence可以在GPU上快速完成选择。您现在唯一的办法是使用thrust::sortthrust::sort_by_key(或其stable_变体)对数据进行排序,然后选择适当的元素。在Thrust中对原始类型(例如intfloatchardouble)进行排序是使用非常快速的基数排序代码实现的,因此绝对性能仍然非常好,虽然效率不如specialized selection method