読書活動 PMPP Ch. 5

CHAPTER 5 Memory architecture and data locality

  • Shared memory のサイズは実行時に計算して kernel call の configuration <<..>> の中に指定できる。
  • A100 の shared memory は 162KB / SM. L1 cache より小さい。自分の買った T1000 という GPU はもっと小さいことでしょう・・・。同一世代の SM は値段によらず同じ構成なのかな。たぶんそうなのでしょう。
  • "Shared Memory” は on-die なのに "Local Memory" が off-die という命名はどうなんだ・・・とおもったが、shared memory のサイズの小ささを見ると local memory どう考えても on-die に置けませんね、とある種の納得がある。
  • レジスタがめちゃくそ沢山ある (数万?) のに対し shared memory が妙に小さいの、CPU から考えると不思議。レジスタが沢山必要なのはわかるんだけど。
  • 行列計算の例は memory locality の説明用には素晴らしい。一方でこういうコード書かないと性能がでないなら GPU でプログラミングとか無理ぽ・・・というきもち。機械学習してる人とか GPU つかってるけどカーネル自分で書いてるのは一握りのエリート/底辺レイヤのひとだけなのだろうねえ。そしてこの本はそういう人向けに書かれているのだった。

GPGPU, HPC の難しさを垣間見る章でありました。