CUB使用迭代器排序

问题描述 投票:0回答:1

我想一次性转换值并对它们进行排序,如下所示:

thrust::vector<int> dataIn  = ...
thrust::vector<int> dataOut = ...
auto iterIn = cub::TransformInputIterator<int, Ftor, int*>(dataIn.begin(), Ftor());
cub::DeviceRadixSort::SortKeys(dTemp, tempBytes, iterIn, dataOut.begin(), numElems);

但是,SortKeys需要原始指针而不是迭代器。是否有可能使用迭代器来完成这项工作?我知道这可能有推力,但我想使用CUB。

谢谢你的建议。

cuda thrust cub
1个回答
2
投票

很抱歉让人失望,但AFAIK CUB不支持此功能。从理论上讲,它可能具有更深层次的模板化,但事实并非如此。

您可以从Cub中提取代码,或使用额外的模板参数修改代码。这将是一个令人头痛的问题,但如果您只想通过设备端函数的某些转换传递输入值,那么这是可行的。

© www.soinside.com 2019 - 2024. All rights reserved.