2011-06-21 23 views
11

パラメータが不適切なカーネル(ブロックあたり512スレッド以上)を呼び出すとき、またはその内部のオペレーションがデバイスが提供するものより多くを必要とする)カーネルは単に実行されません。何が起こったのかを示すための例外や戻り値はありません。カーネルがCUDAで実行されたかどうかを確認する方法

カーネルが実行されたかどうかを確認する方法があるかどうかを知りたいと思います。

答えて

18

は、これはあなたに何が悪かったのかについての詳細なエラーを与える必要があります。この

kernel<<<blocks, threads>>>(params); 
cudaError_t err = cudaGetLastError(); 
if (err != cudaSuccess) 
    printf("Error: %s\n", cudaGetErrorString(err)); 

を試してみてください。

EDIT:ここで適切にCUDAのエラーをチェックする方法についてのより詳細な答えです:

+0

これは私の問題でした! – nirvanaswap

+0

ありがとうございました! – Raza

1

また、あなたがカーネルから何かを印刷することができます。これはデバッグに便利です。

関連する問題