CUB сортировка с итератором

Я хотел бы преобразовать значения и отсортировать их за один раз, например так:

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.

Спасибо за предложения.

1 ответ

Решение

Извините, что разочаровал, но AFAIK CUB не поддерживает это. Это может, теоретически, с более глубокой шаблонизацией, но это не так.

Вы можете поднять код изнутри cub или изменить код с помощью дополнительного параметра шаблона. Это было бы головной болью, но это выполнимо, если все, что вы хотите сделать, это передать входные значения посредством некоторого преобразования с помощью функции на стороне устройства.

Другие вопросы по тегам