CUDAのデバッグ

cuda-debug.png
// カーネルは戻り値 void なので、cudaGetLastError() を使う(GLSLと似てる)
        func_gpu <<< ... >>> (); // カーネル実行
        cudaError_t err = cudaGetLastError();
        if (err != cudaSuccess) { // cudaSuccess, cudaFail が使える
            printf("error : %s\n", cudaGetErrorString(err)); // エラーIDからエラーメッセージ取得
        }

cuda-gdbの使い方

CUDAでprintfするには?

nvccのオプションに-arch=sm_20か -arch=sm_21をつけないとダメらしい。
あとは普通にカーネル上でprintfって書くだけ。
CUDAのカーネル関数でprintfを使う


debug

サポートサイト Wikidot.com debug