次の 2 つのファイルを検討してください。
- test.cpp : 未使用の関数が含まれています
f1()
- test.cu: 同じ未使用の関数が含まれています
f1()
これらのファイルは NVCC を使用してコンパイルされ、2 つの exe (1.EXE、2.EXE) を提供します。1 つは .cpp で、もう 1 つは .cu であることに注意してください。
プロファイリング中、1.exe は未使用の関数 f1 を表示しませんが、2.exe はプロファイリング中に未使用の関数 f1 を表示します。
なんで?.cu ファイルと .cpp ファイルで NVCC の動作が異なるのはなぜですか?
アップデート:
私の混乱は次のようになります: .cu ファイルの未使用の関数を自動的にインライン化できますか? 何らかのコンパイラ オプションを使用している可能性があります。