1

CUDA GPU Occupancy Calculator で使用するために、nvcc の --ptxas-options=-v フラグを使用して cuda プログラムをコンパイルし、レジスタとメモリの使用量を達成したいと考えています。

エラー: 識別子 "atomicAdd" は定義されていません

カーネルでatomicAddを使用しました。どうすればこの問題を解決できますか?

4

1 に答える 1

3

アトミック操作はすべての GPU 世代でサポートされているわけではなく、nvcc のデフォルトのターゲットは sm_10 です。GPU がアトミック操作をサポートしていると仮定すると (GPU でサポートされている機能の詳細については、CUDA C プログラミング ガイド、付録 F.1 を参照)、そのアーキテクチャをターゲットにする必要があります (たとえば-gencode arch=compute_20,code=\'compute_20,sm_20\'、Fermi 以降)。gencode オプションの詳細については、 NVCC のマニュアルを参照してください。

ところで、--ptxas-options=-vフラグを追加すると実際に動作が変わりますか? そうでない場合、質問のタイトルは誤解を招くものです。

于 2012-03-26T11:19:14.003 に答える