我正在尝试调用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);并打印到stdout:
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的调用,我看不出这两个调用与配置有什么关系。
我的配置有什么问题?
发布于 2009-11-12 11:10:14
所以这不是一个未回答的问题(我不确定这是不是正确的礼节,但似乎一个已回答的问题不应该坐在那里不回答...),我复制了上面我在这里所做的评论作为答案,因为它是解决方案:
我想通了(我现在还在学习CUDA。)因为错误检查是异步的,所以如果您不不时地检查错误,错误可能会出现在奇怪的地方。在我调用cudppPlan之前,我的代码已经导致了一个错误,但是因为我没有检查错误,所以cudppPlan报告了错误,就好像它是在cudppPlan中一样。
https://stackoverflow.com/questions/1538172
复制相似问题