GPUコンピューティング   GPU Computing

文字サイズ 

担当教員
青木 尊之 
使用教室
金3-4(S4-3F情報ネットワーク演習室第2演習室)  
単位数
講義:1  演習:1  実験:0
講義コード
77065
シラバス更新日
2011年4月2日
講義資料更新日
2011年7月9日
学期
前期
補足資料

講義概要

 GPU コンピューティングは、パソコンなどの画像出力用のビデオカードに搭載されるGPU(Graphics Processing Unit)を画像処理用途ではなく一般の計算に適用することであり、GPGPU (General-Purpose GPU)と同じ意味で用いられている。一般の CPUと比較すると、演算性能が非常に高いにも関わらず低価格であり、低消費電力(グリーン)でもある。また、手元のパソコンで実行できるというメリットもある。スパコンの分野では、東京工業大学・学術国際情報センターの TSUBAMEを始めとし、GPUを大量に搭載したスパコンが世界のTop500ランキングの上位を占めている。
 GPU コンピューティングの最大の課題は、GPU を使いこなすことである。CPUを使うことを前提としたプログラムは、そのままでは GPU で実行できない。しかし、近年、GPU コンピューティングを容易に行うための環境が無償で提供されている。代表的なものが CUDA である。C言語とそのGPGPU用の拡張であるため、CUDAでプログラムすることにより、容易にGPU を用いて高速に計算を行うことが可能になる。ただし、そのためにはGPUのハードウェア・アーキテクチャを学び、並列計算のプログラミングを習得する必要がある。
 本講義では、まずは「習うより、慣れろ。」を基本とし、TSUBAMEに導入された最新のGPUを用いた実習(演習)を重んじる。講義で学んだことは、例題プログラムを通して直ちに実行し、確認できる環境を提供する。演習端末において、GPUコンピューティングの高速計算・プログラミングを実体験できるようにしている。CUDAのC言語を基本とするが、CUDA Fortran や PGI コンパイラを用いて指示行を挿入するだけで済む GPU 計算についても説明する。さらに、特定のGPUに限定されないプログラミング・フレームワークである Open CL についても解説し、CUDA でプログラミングする場合との違いや実行性能についても議論する。また、折に触れ新しい GPU に関する話題についても紹介する予定である。例題として取り上げる問題は、できるだけ応用に近い問題から選ぶよう心がけ、実用面にも配慮する。

講義の目的

 本講義と演習を通して GPU コンピューティングの本質を理解し、これからのHPC(High Performance Computing)で主流になると期待されるGPUを使いこなせるようになることを目的とする。

講義計画

・GPU コンピューティングの背景と現状
・GPU のアーキテクチャの変遷
・階層化メモリ構造と帯域・さまざまな通信バンド幅
・並列プログラミング
・CUDA C プログラミング概論
・CUDA のメモリ
・CUDA のブロックとスレッド
・CUDA スレッド間のやり取りと同期
・CUDA のライブラリ
・CUDA の Atomic 処理
・CUDA のストリーム
・CUDA のよる GPU コンピューティングの応用例(1)
・CUDA のよる GPU コンピューティングの応用例(2)
・CUDA Fortran
・複数 GPU の同時利用
・コンパイラ指示行の挿入によるGPUの利用
・Open CL プログラミング(1)
・Open CL プログラミング(2)

教科書・参考書等

「はじめてのCUDAプログラミング」青木 尊之, 額田 彰(著)
「CUDAプログラミング実践講座」David B. Kirk, Wen-men W. Hwu (著)
「CUDA by Example 汎用GPUプログラミング入門」Jason Sanders, Edward Kandrot (著)
「OpenCL入門 - マルチコアCPU・GPUのための並列プログラミング」土山 了士, 中村 孝史, 飯塚 拓郎, 浅原 明広, 三木 聡 (著)
「OpenCL入門―GPU&マルチコアCPU並列プログラミング for MacOS Windows Linux」奥薗 隆司 (著)
「GPU Computing Gems Emerald Edition」Wen-mei W. Hwu (編集)

関連科目・履修の条件等

 演習では、Linux 環境において例題プログラムを編集しプログラムを実行するため、Linux 環境での Editor が使えることが望ましい。また、C言語またはFortran言語等のプログラミング言語を学んだ経験があることが望ましい。

成績評価

 学期末に提出するレポートで評価を行う。

担当教員の一言

 東京工業大学・学術国際情報センターには世界トップレベルのスパコンTSUBAMEがあるが、その演算性能の9割以上はGPUが担っている。GPUコンピューティングを習得した人と、そうでない人との差は大きい。

連絡先(メール、電話番号)

taoki@gsic.titech.ac.jp
 
03-5734-3667

オフィスアワー

随時受け付けているが、事前にメールでアポイントを取ること。

このページのトップへ