性能評価・プロファイリング
Rooflineモデルで、ある処理がメモリ帯域で制限される領域にあると分かったとき、性能を上げる方向として正しいものはどれか。
- A演算器の数を増やすことだけを考える
- B何もしなくても、時間がたてば自然に速くなる
- Cデータの再利用を増やすなどして演算強度を上げるか、メモリの読み書きの量を減らす
答えと解説を見る
正解:C. データの再利用を増やすなどして演算強度を上げるか、メモリの読み書きの量を減らす
Rooflineの図で、斜めの線の下にある処理は、メモリ帯域が性能の上限を決めています。演算器を増やしても上限は変わりません。ブロッキングや演算の融合でデータを何度も使い、1バイトあたりの演算の数(演算強度)を増やせば、処理は図の右へ移り、上限が上がります。データを低い精度にして読み書きの量を減らすことも、同じ効果があります。
- A. メモリ律速では、演算器を増やしても速くなりません。
- B. 変更しなければ速くなりません。
- C. 正しい。右の方へ移動させて屋根の平らな部分に近づけます。