CUDAのコードを書く時にCHECK_ERRORのようなマクロを使ってエラーの詳細を表示させている人もそれなりにいると思います。
便利なんですけど、たまにcudaMemcpyなどでunknown errorと表示される事があり困っていました。
そんな時はデバイスで実行している関数がエラーを出している可能性があるので
kernel<<< grid_size, block_size>>>(); CHECK_ERROR(cudaPeekAtLastError()); CHECK_ERROR(cudaDeviceSynchronize());のようにカーネル関数の直後でエラーを調べてみるといいかもしれません。
カテゴリー:CUDA
記事作成日:2017-05-31