NVIDIA Profiler による解析
不十分な並列化
条件
カーネルでほとんど処理が行われない場合、memcpy
とカーネル起動のオーバーヘッドにより、パフォーマンスの向上が相殺される可能性があります。より大きなサンプル セットで作業することを検討してください (したがって、ループ サイズを大きくします)。この条件を検出するには、nvvpreport
を確認します。
操作
ループ内で行う処理を増やすか、サンプル セットのサイズを増やします。
スレッドあたりのレジスタの過剰なローカル
条件
ループ本体内で使用されているローカル変数や一時変数が多すぎる場合、スレッドあたりのレジスタ ファイル内におけるレジスタの圧力が高くなります。GPU セーフ ビルド モードで実行することにより、この条件を検出できます。または、nvvp
によってこの事実が報告されます。
操作
coder.gpu.kernel
プラグマでさまざまなブロック サイズを使用することを検討します。