1

私は cufft ライブラリを使用しています。必要な計画を作成するためにcufftPlan2d関数を使用しています。

cufftResult cuRes = cufftPlan2d(&m_fftPlanC2C, 1024, 1024, CUFFT_C2C);

cufftPlan2dへの呼び出しは例外をスローしますが、実際には正常に動作しています。cufftHandleが初期化され、次のcufftExecC2Cへの呼び出しで期待どおりの結果が得られます。

RTLab.exe の 0x000007FFFE9E811C での初回例外: Microsoft C++ 例外: メモリ位置 0x0000000000377C40 の cufftResult_t。

ただし、この例外を取得するのは非常に煩わしいので、誰かが同じ問題を抱えていて解決策を見つけたか、または役立つ可能性のある手がかりがあるかどうかを知りたい. Visual Studio 2012 で Cuda 5.0 を使用しています。

SDK の例、convolutionFFT2D の例 (VS2010 上) を実行しようとしましたが、同じことが行われます ([デバッグ] > [例外] > [C++ 例外] オプションがチェックされています)。

さらに情報が必要な場合は教えてください。

4

1 に答える 1

0

報告する最初の例外は、適切にトリガーおよびキャッチされ、CUDA ライブラリ内で処理される例外です。これは、必ずしもアプリケーションの問題を示しているわけではありません。

アプリケーションが正しく実行されている場合、この問題は無視しても問題ありません。コマンド ラインからアプリケーションを実行した場合は表示されず、Visual Studio 内でのみ表示されます。cufft API 呼び出しで cuda や cufft のエラー チェックを行い、API がエラーを返さない限り、問題はありません。

CUDA 5.5 にアップグレードすると、この問題が解消される場合もあります。

于 2013-10-17T14:41:26.320 に答える