CUDA by exampleを読んだときのメモ:第5章「Thread Cooperation」(書きかけ)

5.1 5章の目的

  • CUDA Cでのスレッドとは何かを学ぶ
  • スレッド間はどうやって通信?
  • スレッド間の同期は?

5.2 Splitting Parallel Blocks

  • たくさんのカーネルを呼ぶ(その際の単位はブロック)ことで並列計算をしたのが前章。
  • CUDA Runtimeによって、カーネルをスレッドに分割することが出来る
  • N個のブロック(スレッド数1)の場合とN個のスレッドを含む一つのブロックでは何が違うのか
  • 最大のブロック数と最大のスレッド数は決まっている スレッドとブロックを組み合わせると多くのスレッドを扱うことができる(という利点もある)

5.3 Shared Memory and Synchronization

  • 多くのスレッド数を扱うことができる、というだけではスレッドとブロックに分割するには物足りない。分割するには、それによるメリットがあるからだ。
  • シェアードメモリの利用に生きてくる。
  • 内積の計算などの例。

5.4 5章のまとめ

  • スレッドとブロックとに分割することについて
  • シェアードメモリについて
  • 同期をとることの必要性