数组的百分位数(在CUDA中)没有排序?

时间:2015-02-10 22:53:46

标签: cuda gpgpu percentile

我有一个2560x2048的浮点值数组,我需要25%和75%的百分位值。 (5,242,880)作为1D载体。我的第一个想法是使用bitonic排序并获取25%和75%的值。但我所拥有的Bitonic排序是2个数组的功能,而且我不想使用假人去更大的阵列。

这让我想到也许某人有一种获得百分位数的方法而没有完全排序的开销?

2 个答案:

答案 0 :(得分:1)

我知道您在询问非排序方法,但Thrust确实提供了排序功能。我没有尝试过,但如果它像cuFFT一样,我希望它能够高度优化。

根据CUB,您还可以使用明显比Thrust更快的this link进行排序。

另一种选择是从直方图中找到百分位数,尽管这可能不是你想要的浮点值,除非你有一个很好的方法将预期值分成一系列的箱子。

答案 1 :(得分:0)

Tae-Sung Shin是对的。直方图中的百分位是执行此操作的最佳方式。