2

コード内の変数に「値がない」という非常に苛立たしいエラーが発生します。これが私のコードの写真で、下部にデバッガー情報があります。

元のコードには赤い四角しかありませんが、変数に値を強制できるかどうかを確認するために、青い四角に「Xmax=40」を追加しました。明らかに、まだ問題があることがわかります。なぜこのエラーが発生するのかについての洞察はありますか?

ここに画像の説明を入力してください

4

1 に答える 1

4

発生している問題は、変数のライブ範囲が原因である可能性が非常に高くなります。ほとんどのコンパイラは、デバッグ用のコードをコンパイルするときに、変数のライブ範囲を変数のスコープと等しくなるように拡張します。

NVCCコンパイラは、変数のライブ範囲を拡張しません。さらに、NVCCコンパイラは、最適化フラグが指定されていない場合でも、いくつかの最適化を実行します。これにより、ユーザー指定の変数が削除される可能性があります。変数のライブ範囲を拡張することは、CUDAデバッガー機能要求リストの上位項目の1つですが、この問題がどのリリースで解決されるかはわかりません。

この問題に関するバグは、CUDA登録開発者プログラムを通じて提出することをお勧めします。

于 2012-12-16T02:34:55.973 に答える