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

文字サイズ 

担当教員
青木 尊之 
使用教室
金3-4(南4号館3階第2演習室)  
単位数
講義:1  演習:1  実験:0
講義コード
77065
シラバス更新日
2012年4月24日
講義資料更新日
2012年7月20日
学期
前期
補足資料

講義概要

 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のハードウェア・アーキテクチャの知識がある方がよい。
 本講義では、TSUBAMEに導入されているGPUを用いた多くの実習(演習)が用意されている。講義で学んだことは、例題プログラムを通して直ちに実行し、確認できる環境を提供する。演習において、GPUコンピューティングの高速計算・プログラミングを実体験できるようにしている。CUDAのC言語を基本とするが、CUDA Fortran や PGI/HMPP コンパイラを用いて指示行を挿入するだけで済む 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 (編集)
(編集中)

関連科目・履修の条件等

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

成績評価

2パターンを用意している。どちらを選択してもよい。

(1) 講義の途中で行う小レポートと学期末の比較的簡単な課題に対するレポートの総合評価
(2) 学期末のある程度の内容の課題に対するレポートのみでの評価

担当教員の一言

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

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

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

オフィスアワー

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

このページのトップへ