Программирование CUDA с сортировкой Radix библиотеки Thrust - PullRequest
2 голосов
/ 30 июня 2011

Новичок в Thrust - у меня в программе VS2010 C ++ у меня все работает нормально:

#include <thrust/sort.h>
thrust :: stable_sort_by_key (sortkey , sortkey + nmu, indexes );

Но теперь я хочу использовать thrust :: stable_radix_sort_key.Я добавил include -

#include <thrust/detail/device/cuda/detail/stable_radix_sort.h>

, но VS не может найти "thrust :: stable_radix_sort_key ( ...)"

Я думаю, что связанные заголовочные файлы не найдены в их каталогах?В чем дело.У кого-нибудь есть пример кода для вызова этой подпрограммы библиотеки тяги?

Спасибо.

1 Ответ

3 голосов
/ 30 июня 2011

thrust::stable_radix_sort_key() не является частью открытого интерфейса.Вы должны использовать thrust::stable_sort_by_key().

Если ключи, по которым вы сортируете, имеют простой старый тип данных, сравнимый с оператором <(например, int, float и т. Д.), То я считаю, что Thrust будет использовать внутреннюю сортировку.<p> Кроме того, я не думаю, что вам следует #include <thrust/detail/device/cuda/detail/stable_radix_sort.h> или какие-либо другие файлы с подробностями реализации - это внутренние файлы, которые нужно выложить.Вы должны включать только файлы, которые определяют открытый интерфейс.

...