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

文字サイズ 

担当教員
青木 尊之 
使用教室
金3-4(南4号館3階第2演習室)  
単位数
講義:2  演習:0  実験:0
講義コード
77065
シラバス更新日
2013年4月8日
講義資料更新日
2013年7月12日
アクセス指標
学期
前期

講義概要

 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 や指示行を挿入してコンパイルするだけで済むOpenACCについても説明する。さらに、特定の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 プログラミング

教科書・参考書等

「はじめての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があり、平成25年度中にアップグレードして単精度の演算性能は15PFLOPSを上回ると予想される(「京コンピュータ」は11PFLOPS程度)。TSUBAMEの演算性能の9割以上はGPUが担っており、GPUコンピューティングを習得して世界的な研究に生かして欲しい。

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

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

オフィスアワー

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

このページのトップへ