10^5 エントリの 1 つの配列をソートし、次の配列に対して同じことを行う最も簡単で最速の方法を探しています。配列はすべて同じサイズです。例えば:
1a
6c
3b
最初の列を並べ替える必要がありますが、6 は c と同じ行にある必要があります。
1a 3b 6c
私は何かを見つけたと思いますが、実装するのは奇妙に見えます:
10^5 エントリの 1 つの配列をソートし、次の配列に対して同じことを行う最も簡単で最速の方法を探しています。配列はすべて同じサイズです。例えば:
1a
6c
3b
最初の列を並べ替える必要がありますが、6 は c と同じ行にある必要があります。
1a 3b 6c
私は何かを見つけたと思いますが、実装するのは奇妙に見えます:
推力::sort_by_keyはまさにあなたが必要とするものです。
これが彼らのドキュメントからのサンプル例です。
#include <thrust/sort.h>
...
const int N = 6;
int keys[N] = { 1, 4, 2, 8, 5, 7};
char values[N] = {'a', 'b', 'c', 'd', 'e', 'f'};
thrust::sort_by_key(keys, keys + N, values, thrust::greater<int>());
// keys is now { 8, 7, 5, 4, 2, 1}
// values is now {'d', 'f', 'e', 'b', 'c', 'a'}
すでにGPUにデータがある場合は、device_ptrを使用して同じことを行うことができます。