2011-01-08 「プロセッサを支える技術」第7章「GPGPUと超並列処理」目次 第7章 GPGPUと超並列処理 7.1 GPGPUのしくみ 3DグラフィックスとGPU ― 大量の計算が必要 GPU GPUシステム GPUからGPGPUへ 「超並列SIMDプロセッサ」としてのGPGPU AMD HD 5870 GPU NVIDIA Fermi GPU 「超マルチスレッドプロセッサ」としてのGPGPU GPGPUのメモリ階層 (1次)キャッシュ部分 ― GPGPUとキャッシュコヒーレンシ Column ワープ! GPUは高速のGDDR DRAMを使う AMD HD 5870 GPUのメモリ階層 GPGPUプログラミングではデータをどのメモリに置くか明示する GPGPUのマルチスレッドは汎用レジスタを分割使用する CPUとGPGPUの大きな違い 超並列SIMD処理による強力な演算能力 巨大マルチスレッドプロセッサ,同じ命令列の実行 メモリ空間の使い分け 7.2 GPGPUプログラミング GPGPUプログラミングの今 CUDAの実行モデル ― スレッドブロック,グリッド CUDAでの関数の宣言,変数の宣言 OpenCLのプログラミング GPGPUの性能を引き出すには データ転送やプログラム起動のオーバヘッドを減らす ワープ内の全スレッドを有効に動かすことが重要 ― 並列化アルゴリズムを作る 演算あたりのメモリアクセスを減らすタイリング ダブルバッファリング ― データ転送と演算をオーバラップさせる メモリアクセスのバンクコンフリクトを減らす 同期回数を減らす 7.3 まとめ Column Top500とGPUコンピューティング GPGPUだけで30ページ以上割かれています。