我有一組整數值,我想用Thrust對它們進行排序。是否有可能在此排序中僅使用一些高位/低位。如果可能的話,我不想使用用戶定義的比較器,因爲它會將使用的算法從基數排序更改爲合併排序並相當多地增加已用時間。如何使用Thrust庫對按鍵進行較低精度排序
我認爲,當所有的數字有一點相同的值,而排序位被跳過,所以它是可行的使用盡可能低的比特數,並希望這將是足夠的。 (即:用於使用與8位字符和設定高3位到0 5個比特)
實施例:
sort<4, 0>(myvector.begin(), myvector.end())
sort<4, 1>(myvector.begin(), myvector.end())
排序僅使用4位,高或低..
東西類似 http://www.moderngpu.com/sort/mgpusort.html
沒有明確的方法來做到這一點,它通常是沒有必要的。 'thrust :: sort'的基數排序將檢查數據並省略零位中的多餘通行。 –
是的,當我對矢量進行排序時,根據所包含的值得到不同的經過時間值。即使包含的值是相同的,當容器的類型爲int,short或byte時,我也會得到不同的經過時間值。當數字被簽名時它會增加一點。但正如你所說,它忽略了所有零的位。 – phoad
我認爲@JaredHoberock的評論是一個合適的答案。如果您將您的評論轉換爲答案,我可以將其指定爲接受的答案。 – phoad