4

私はCUDAにかなり慣れていません。私はMicrosoftVisualStudio 2010を使用しており、makefileの作成について心配する必要はありません。.cuファイルで宣言され、別の.cuファイルで定義されたデバイス関数を.cuファイルで呼び出そうとしたときに問題が発生しました。ビルドの最後に、次のエラーメッセージが表示されました。

1>ptxas : fatal error : Unresolved extern function '_Z22atomicAddEmulateDoublePdd'

これは、CUDA4.2と5.0の両方に表示されます。このエラーを回避するには、MVSをどのように構成すればよいのでしょうか。ヌービーの質問と提案をありがとう!

4

1 に答える 1

3

CUDA 4.2 であり、静的リンクをサポートしていないため、デバイス関数は同じコンパイル ユニットで定義する必要があります。一般的な手法は、デバイス関数を .cuh ファイルに記述し、それを .cu ファイルに含めることです。

CUDA 5.0 は、個別コンパイルと呼ばれる新しい機能をサポートしています。CUDA 5.0 VS msbuild ルールは、CUDA 5.0 RC ダウンロードで利用できるはずです。

于 2012-08-16T19:53:30.750 に答える