アトミック関数atomicAdd(float * address, float value)を使用する必要があります。 私のビデオ カードはコンピューティング機能 2.1 をサポートしています。コンピューティング機能 2.1 で GPU の浮動小数点演算に atomicAdd を使用するには、sm_20 archを指定する必要があることを読みました。Visual Studio 2010 を使用しています。[プロジェクト] -> [プロパティ] -> [構成プロパティ] -> [CUDA C/C++] -> [デバイス] で、"compute_10,sm_10" を "compute_20,sm_20" に変更しました。しかし、「オーバーロードされた関数「atomicAdd」のインスタンスが引数リストと一致しません」というエラーがあります。コンパイル中にまだ arch sm_11 が使用されていることがわかります。使用するアーキテクチャをどこで指定する必要がありますか。私を助けてください。
質問する
5824 次
2 に答える
0
.cu ファイルを右クリックして設定を開き、そこでデバイス設定が変更されているかどうかを確認してください。
于 2012-04-20T06:24:32.383 に答える
0
構成プロパティの CUDA C/C++->Device の下で、既にコード生成を compute_20,sm_20 に設定しています (ただし、GPU に機能 2.1 がある場合は、おそらく sm_21 を設定する必要があります)。親またはプロジェクトのデフォルト」。
次に、問題のファイルのプロパティがプロジェクト設定を上書きしていないことを確認します (基本的に上記を繰り返しますが、今回は [親またはプロジェクトの既定値から継承] をオンにし、追加のエントリがないことを確認します)。
于 2012-04-20T10:04:57.427 に答える