1

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への呼び出しは2つだけであり、どちらかが構成と関係がある理由はわかりません。

私の構成の何が問題になっていますか?

4

1 に答える 1

1

これが未回答の質問として存在しないように(これが正しいSOエチケットであるかどうかはわかりませんが、回答済みの質問が未回答の質問として存在するべきではないようです...)、コメントをコピーしていますIそれが解決策だったので、ここで答えとして上記を作成しました:

私はこれを理解しました(私はまだCUDAを学んでいます。)エラーチェックは非同期であるため、時々チェックしないと奇妙な場所にエラーが表示される可能性があります。cudppPlanを呼び出す前にコードでエラーが発生しましたが、エラーをチェックしなかったため、cudppPlanはエラーをcudppPlanにあるかのように報告しました。

于 2009-11-12T03:10:13.640 に答える