假设我有一个键向量
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 执行上述操作?