GPUプログラミング
GPUの占有率について正しいものはどれか。
- A占有率が100%なら、必ず最高の性能が出る
- B占有率が低くても、1スレッドに独立した計算を多く持たせて命令の並列性を高めれば、高い性能が出ることがある
- C占有率は性能にまったく関係しない
答えと解説を見る
正解:B. 占有率が低くても、1スレッドに独立した計算を多く持たせて命令の並列性を高めれば、高い性能が出ることがある
占有率は遅延を隠すための手段の1つで、目的ではありません。1スレッドが互いに依存しない複数の計算やメモリの読み込みを並べて出せれば、少ないワープでも待ち時間を埋められます。逆に占有率を上げるためにレジスタを減らすと、メモリへの追い出しが増えて遅くなることもあります。性能はプロファイラで実際に測って判断するのが確実です。
- A. ほかの要因で律速されていれば、それ以上は速くなりません。
- B. 正しい。遅延を隠す方法はワープの数だけではありません。
- C. 遅延を隠す力に影響します。