性能評価・プロファイリング

Rooflineモデルで、ある処理がメモリ帯域で制限される領域にあると分かったとき、性能を上げる方向として正しいものはどれか。

  1. A演算器の数を増やすことだけを考える
  2. B何もしなくても、時間がたてば自然に速くなる
  3. Cデータの再利用を増やすなどして演算強度を上げるか、メモリの読み書きの量を減らす
答えと解説を見る

正解:C. データの再利用を増やすなどして演算強度を上げるか、メモリの読み書きの量を減らす

Rooflineの図で、斜めの線の下にある処理は、メモリ帯域が性能の上限を決めています。演算器を増やしても上限は変わりません。ブロッキングや演算の融合でデータを何度も使い、1バイトあたりの演算の数(演算強度)を増やせば、処理は図の右へ移り、上限が上がります。データを低い精度にして読み書きの量を減らすことも、同じ効果があります。

  • A. メモリ律速では、演算器を増やしても速くなりません。
  • B. 変更しなければ速くなりません。
  • C. 正しい。右の方へ移動させて屋根の平らな部分に近づけます。
この分野を解く 分野ページへ

性能評価・プロファイリングのほかの問題

  1. STREAMベンチマークで主に測るものはどれか。
  2. 並列プログラムのスケーラビリティを調べるときの方法として最も適切なものはどれか。
  3. 8コアで並列に実行したところ、1コアのときより6倍速くなった。並列効率はいくらか。
  4. 性能を測るための仕組みを入れたことで、測りたいプログラムの動きそのものが変わってしまう現象を何と呼ぶか。
  5. プログラムの性能を改善するときの進め方として最も適切なものはどれか。