私はCUDAプログラムを持っています。このプログラムを-g -Gオプションでコンパイルすると、正しい出力が得られます。 -g -Gオプションを付けずにコンパイルすると、正しい出力が得られるとは限りません。私の推測では、-g -Gオプションを指定しないと、コンパイラはプログラムを最適化し、競合状態を引き起こします。誰もがこれを確認し、-g -Gオプションなしでプログラムをコンパイルしても、プログラムが正しい出力を生成するためにはどうすればいいのか教えてください。ありがとうオプションの有無にかかわらずCUDAプログラムをコンパイルするときの違い-G
オペレーティングシステム:x86_64 GNU/Linux CUDAバージョン:4.0 デバイス:Geforce 200、これはマシンに接続されたGPUSの1つで、表示デバイスではないと私は思います。
別の可能性(必ずしもCUDA特有ではない)は、デバッグコード対リリースコードの結果として異なる値を取る初期化されていない変数の存在です。これはプログラムの動作にも影響する可能性があります。 –
はい、それを含めなかったとは思えません。これは「デバッグビルドでのみ動作する」バグの最も一般的な原因です... – harrism