19
CUDA & OpenCL GPU ココココココココココココココ コココ @toshiya_komoda 2015/02/24 1

CUDA & OpenCL GPUコンピューティングって何?

Embed Size (px)

Citation preview

Page 1: CUDA & OpenCL GPUコンピューティングって何?

CUDA & OpenCLGPU コンピューティングって何?

薦田 登志矢@toshiya_komoda

2015/02/24 1

Page 2: CUDA & OpenCL GPUコンピューティングって何?

自己紹介• 2008 – 2014– 東京大学大学院情報理工学研究科目で博士号取

得• 日本学術振興会特別研究員 (2011-13)

– HPC システムの低電力化

• 2014 – – DeNA でエンジニアやってます

• Mobage Open Platform API チーム所属• 内外のゲーム開発者が利用する API を開発・運用

2015/02/24 2

Page 3: CUDA & OpenCL GPUコンピューティングって何?

大学院時代

GPU いじったり

MIPS プロセッサ作ったり

電力測ってみたり…

海外の学会行ったり

2015/02/24 3

Page 4: CUDA & OpenCL GPUコンピューティングって何?

大学院時代

GPU いじったり

MIPS プロセッサ作ったり

電力測ってみたり…

海外の学会行ったり

2015/02/24 4

Page 5: CUDA & OpenCL GPUコンピューティングって何?

GPU コンピューティング• GPU– 画像処理専用のコプロセッサ– クライアントサイドでは利用が当たり前

• スマホ・ PC に標準搭載• ゲームでは高度な 3D 表現の実現に欠かせない

• 今日の話– HPC ・スパコン等サーバサイドでの GPUの利用

2015/02/24 5

Page 6: CUDA & OpenCL GPUコンピューティングって何?

なぜ CPU じゃダメなのか

2015/02/24 6

Page 7: CUDA & OpenCL GPUコンピューティングって何?

スパコンの総消費電力

• システム大規模化に伴い総消費電力が増大• 世界一のスパコンは 17MW 消費する (2014 年 11

月 )

電力供給系と冷却システムが建設費・運用費を圧迫 .

7006005004003002001000

電力(Kwatt)

年 - 月07-11 07-6 08-11 08-6 09-11 09-6 09-11 10-6 10-11 11-6

性能 1~500 位のスパコンの平均消費電力の推移 (Data from Green 500 List)

2015/02/24 7

Page 8: CUDA & OpenCL GPUコンピューティングって何?

*Internet Data Center も事情は同じ

• 節電のために IDC を寒冷地に作ったりは有名– 冷却システムのコストを下げるため

2015/02/24 8

Facebook スウェーデン さくら 石狩 DC

Page 9: CUDA & OpenCL GPUコンピューティングって何?

高い電力効率を持つ GPU

Haswell EP (CPU) Tesla K40 (GPU)

コア数 18 コア 2880 コア

周波数 3.1 GHz 745Hz

消費電力 160W 235W

理論性能 ( 単精度 ) 992 GFLOPS 4290 GFLOPS

GFLOPS/Watt 6.2 GFLOPS/W 18.3 GFLOPS/W

2015/02/24 9

Page 10: CUDA & OpenCL GPUコンピューティングって何?

並列処理に特化した構造

• 低周波数コアによる並列処理は電力効率が良い– 電力は周波数に対して3乗で増大 .– 一方で並列に 2 つ並べる場合は線形で済む .

大きくて高周波数のプロセッサ

低周波数でシンプルなプロセッサ

電力効率↑

2015/02/24 10

CPU GPU

Page 11: CUDA & OpenCL GPUコンピューティングって何?

スパコン Top5

(1位 , 2位は GPU型のアーキテクチャを採用 .)2015/02/24 11

Page 12: CUDA & OpenCL GPUコンピューティングって何?

AWS GPU Instance

2015/02/24 12

AWSでも GPUサーバはすでに利用可能 .

Page 13: CUDA & OpenCL GPUコンピューティングって何?

GPU プログラミング

2015/02/24 13

CUDA SDK OpenCL SDK

Intel Xeon Phi, CPU

GPU(AMD,NVIDIAARM)

FPGA (Altera)NVIDIA GPU

基本的には CUDA or OpenCL の二択

Page 14: CUDA & OpenCL GPUコンピューティングって何?

GPU プログラミング

2015/02/24 14

CUDA SDK OpenCL SDK

GPU(AMD,NVIDIAARM)

FPGA (Altera)NVIDIA GPU

基本的には CUDA or OpenCL の二択

○ 書きやすく、 ライブラリ・ ツールがそろっている× NVIDIA 社の GPU で しか動かない

○ いろいろなデバイス上で動作する

× 記法がよりめんどくさく、いろいろ そろっていない

Intel Xeon Phi, CPU

Page 15: CUDA & OpenCL GPUコンピューティングって何?

プログラミングモデル• ホスト – デバイス型– CPU: データ転送および GPU の制御– GPU: 実際に処理を行う

2015/02/24 15

CPU

GPUMemory

Main Memory

GPUInput

並列処理

output

Page 16: CUDA & OpenCL GPUコンピューティングって何?

カーネル関数• C/C++ の拡張記法で並列処理を記述– CPU 側のコードでカーネル関数を呼び出す

2015/02/24 16

CUDA : 配列の足し算を実現するカーネル関数

Page 17: CUDA & OpenCL GPUコンピューティングって何?

CUDA, OpenCL 以外の方法• ソフトウェアツールへの組み込み– Photoshop, Matlab, R

• PyCUDA– Python から CUDA のカーネル関数を呼び出せ

• OpenACC– C 言語に指示文を追加して GPU を利用– ちな、自分の D 論はこれを拡張してごにょごにょしたよって話

2015/02/24 17

Page 18: CUDA & OpenCL GPUコンピューティングって何?

最近の話題• 自動車 : Audi Self-Piloted Car– http://blogs.nvidia.com/blog/2015/01/06/audi-tegra-x1/

• Deep Learning – Facebook : Torch (Deep Learning Library)

• http://torch.ch/

• 検索サーバ– Microsoft : Bing サーバでの FPGA 利用

A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Service, ISCA 2014

2015/02/24 18

Page 19: CUDA & OpenCL GPUコンピューティングって何?

興味を持ったら

2015/02/24 19

https://developer.nvidia.com/cuda-zone