Ошибка конфигурации CUDAPP 1.1 cudppSort (неверный аргумент конфигурации) - PullRequest
1 голос
/ 08 октября 2009

Я пытаюсь вызвать 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, и я не вижу причины, по которой любой из них имеет какое-либо отношение к конфигурации.

Что не так с моей конфигурацией?

1 Ответ

1 голос
/ 12 ноября 2009

Так, чтобы этот вопрос не оставался без ответа (я не уверен, что это правильный ТАК, но кажется, что ответ на вопрос не должен сидеть без ответа ...), я копирую комментарий, который я сделал выше в качестве ответа, поскольку это было решение:

Я понял это (сейчас я все еще изучаю CUDA). Потому что проверка ошибок - это асинхронные ошибки, которые могут появляться в странных местах, если вы не проверяете их время от времени. Мой код вызвал ошибку до того, как я вызвал cudppPlan, но из-за того, что я не проверял ошибки, cudppPlan сообщил об ошибке, как если бы она была в cudppPlan.

...