gpgpuその1(開発環境/ハード/スレッドとか)
開発環境
ハード
GPU上のユニット
SP(スカラプロセッサ)
プログラム上のユニット
スレッド
- カーネルで動作するプログラムの最小単位
- スカラプロセッサの上で動いている
ワープ(Warp)
- 1ワープ = 32スレッド
- 前半部と後半部に分けてハーフワープという単位を使う場合もある
- スレッドの処理は32ずつだと区切りがいい
- 1SMにつきSPが8つ搭載されている場合
- 1SM * 8SP * 4(SPの最低クロック数) = 32
ブロック
- スレッドをまとめたもの
- 1ブロック=最大512スレッド
- 最大3次元まで表現できる
- 1ブロック = 512スレッド
- 1ブロック = 16 * 16スレッド
- 1ブロック = 8 * 8 * 8スレッド
グリッド
- ブロックをさらにまとめたもの
- 1グリッド内の最大ブロック数は65535
デバイス
- グリッドの上位にある
- GPU本体のこと
- 明確な定義がないので現在は1グリッド=1デバイス