0

編集:

イメージ記述子用に Cuda を使用してアプリケーションを作成しました...イメージに対してテストしたところ、すべてうまくいきました...その後、シリアル間の時間差をテストするために、多くのイメージ (つまり、10000) で試してみたかったのです。と平行。そのため、コードを for ループに入れました (割り当てやメモリの解放ではありません)。ここで問題が発生しました...試してみると、アプリケーションとより具体的には cudaDeviceSynchronize() 関数がエラー コード 6 でクラッシュするようです。カーネルは非同期であるため、cudaDeviceSynchronize() の前に呼び出されるカーネルであり、実際には、通常、特定のカーネルの後に呼び出される特定の cudaDeviceSynchronize() 関数がクラッシュするのは 1 つだけです。1 回か 2 回、別のカーネルの後にある次のカーネルがクラッシュします。

一方、ウォッチドッグ タイマーについて何かを発見しました... Nsight でそれを無効にして、プログラムを再度実行すると、PC が完全にフリーズしました。したがって、何らかの理由で一部のスレッドまたはすべてのスレッドが操作を終了しないため、cudaDeviceSynchronize() はプログラムの続行を許可せず、2 秒後 (デフォルト) ウォッチドッグ タイマーがアプリケーションを停止すると思います。カーネルが遅れる理由についてのアイデアはありますか? 私の端末のせいでしょうか?Capability 1.1、Cuda バージョン 4.2、Windows 7、Visual Studio 2010 で GeForce G 103M を使用しています。

どうもありがとう!

4

0 に答える 0