GPU Computing
Home > GPU Computing
概要
GPU コンピューティングとは、画像表示の用途で開発されたGPU(Graphics Processing Unit)を一般の計算に適用することであり、GPGPU (General-Purpose Computing on GPUs)とも呼ばれている。一般の CPUと比較すると、演算性能が非常に高いにも関わらず低消費電力(グリーン)である。また、また低価格でもあり、手元のパソコンでも高速で計算を実行できるというメリットもある。スパコンの分野では、東京工業大学・学術国際情報センターの TSUBAMEを始めとし、GPUを大量に搭載したスパコンが世界のTop500ランキングの上位を占めている。
GPU コンピューティングの最大の課題は、GPU を使いこなすことである。CPUを使うことを前提としたソースコードはそのままでは GPU で実行できないが、GPU コンピューティングを容易に行うための環境が無償で提供されている。代表的なものが CUDA である。C言語またはFORTRAN言語にGPGPU用の拡張を加えたものであるため、CUDAでプログラミングすることにより GPU を用いて高速に計算を実行することが可能になる。ただし、そのためにはデータ並列性を考慮したプログラミングを習得する必要があり、GPUのハードウェア・アーキテクチャの知識もある程度必要である。ここでは、例題プログラムを通してGPUコンピューティングの高速計算・プログラミングを理解できる。
資料
- GPU コンピューティングの背景
- GPU のアーキテクチャ (G80 から Keplerコアまで)
- 並列処理と CUDA C プログラミング概要
- CUDA プログラミング基礎
- カーネル関数内の多次元配列と Host メモリのマッピング
- Unified Virtual Addressing と Peer-to-Peer Direct Transfer
- thread の実行方式と Warp
- Shared メモリの利用
- CUDA の Atomic 演算
- GPU コンピューティングによるステンシル計算
- CUDA Stream と複数 GPU 計算
補足資料1: GPU を用いた大規模シミュレーション
補足資料2: 理研(姫野)ベンチマークコンテスト
補足資料3: 実行性能比較 Kepler GPU vs Xeon Phi