Ошибка сегментации при использовании thrust :: sort в CUDA
Я пытаюсь отсортировать массив объектов класса на основе его типа, передав функцию сравнения в качестве параметра для сортировки по принципу тяги.
определение класса:
class TetraCutInfo
{
public:
int tetraid;
unsigned int ncutEdges;
unsigned int ncutNodes;
unsigned int type_cut;
__host__ __device__ TetraCutInfo();
};
Сортировать:
thrust::sort(cutInfoptr,cutInfoptr+n,cmp());
cutInfoptr - указатель типа TetraCutInfo, имеющий адрес памяти устройства, выделенный с помощью cudaMalloc.
Функция сравнения
struct cmp
{
__host__ __device__
bool operator()(const TetraCutInfo x, TetraCutInfo y)
{
return (x.type_cut < y.type_cut);
}
};
При запуске этого я получаю ошибку сегментации, однако я могу перебрать cutInfoptr в другом ядре.
PS: Я сослался на пример в ссылкеhttps://code.google.com/p/thrust/source/browse/examples/sort.cu