Скажут, у меня есть вектор ключейНахождение количества вхождений ключей и позиции первых вхождений ключей от CUDA Упорного
thrust::device_vector<int> keys(10);
keys[0] = 51; // ----->
keys[1] = 51;
keys[2] = 72; // ----->
keys[3] = 72;
keys[4] = 72;
keys[5] = 103; //----->
keys[6] = 103;
keys[7] = 504; // ------>
keys[8] = 504
keys[9] = 504 ;
Я уже знаю заранее, что есть 4
различных ключевых ценностей в этого вектор. Я хочу заполнить два массива устройств pidx[4]
и pnum[4]
.
pidx
массив дает мне первую позицию каждого отдельного ключа в векторе ключей, а именно положения, отмеченные---->
в фрагменте кода выше. Итак, в этом примере я должен был быpidx[4] = {0, 2, 5, 7}
.массив
pnum
дает мне количество вхождений каждой клавиши. Итак, в этом примере я должен был быpnum[4] = {2, 3, 2, 3}
.
Как выполнить вышеуказанную операцию с помощью CUDA Thrust?