Я пытаюсь вызвать cudppSort для сортировки набора ключей / значений. Я использую следующий код для настройки алгоритма сортировки:
CUDPPConfiguration config;
config.op = CUDPP_ADD;
config.datatype = CUDPP_UINT;
config.algorithm = CUDPP_SORT_RADIX;
config.options = CUDPP_OPTION_KEY_VALUE_PAIRS | CUDPP_OPTION_FORWARD | CUDPP_OPTION_EXCLUSIVE;
CUDPPHandle planHandle;
CUDPPResult result = cudppPlan(&planHandle, config, number_points, 1, 0);
if (CUDPP_SUCCESS != result) {
printf("ERROR creating CUDPPPlan\n");
exit(-1);
}
Программа выходит, однако на линии:
CUDPPResult result = cudppPlan(&planHandle, config, number_points, 1, 0);
и выводит на стандартный вывод:
Cuda error: allocScanStorage in file 'c:/the/path/to/release1.1/cudpp/src/app/scan_app.cu' in line 279 : invalid configuration argument.
Я посмотрел на строку в scan_app.cu.
CUT_CHECK_ERROR("allocScanStorage");
Так что, очевидно, в моей конфигурации произошла ошибка, из-за которой allocScanStorage разбомбился. В функции есть только два вызова CUDA_SAFE_CALL, и я не вижу причины, по которой любой из них имеет какое-либо отношение к конфигурации.
Что не так с моей конфигурацией?