25
GPU ののののの のののののののののの 2016/12/15 株株株株株株株株株株 株株株株株株株株株株株 1 Imagination, Action, and to the Creation!

なにわTech20161215

Embed Size (px)

Citation preview

Page 1: なにわTech20161215

GPU の基礎知識アーキテクチャと歴史

2016/12/15

株式会社パソナテックエンジニアリング事業部

夏谷

1

Imagination,  Action,

  and to the Creation!

Page 2: なにわTech20161215

アジェンダ

自己紹介 GPU とは ベクターと行列 実際のアーキテクチャ比較 PR

2

Page 3: なにわTech20161215

自己紹介

夏谷実 株式会社パソナテック

株式会社パソナテック エンジニアリング事業部 エンジニアマネージメントグループ

最近は半導体関連の仕事が多い FPGA が好き プログラミングも好き Deep Learning も好き ← New !

3

パソナテック公認キャラ

Page 4: なにわTech20161215

自己紹介

4

Page 5: なにわTech20161215

5

GPU とは

Page 6: なにわTech20161215

GPU は CUDA の D

6

NVIDA が提供する GPU 向けの開発環境

CUDA ( Compute Unified Device Architecture )

http://4k.com/gaming/gtx-1080-review-amazing-new-nvidia-geforce-4k-gpu-for-gaming/

この中に GPU

Page 7: なにわTech20161215

・ 1 つの命令で複数のデータを処理できる  SIMD : single instruction multiple data

・ベクトルの計算に強い 典型的なベクトル問題  a×X + Y  SAXPY ( Single-precision real Alpha X Plus Y )

コンピューターアーキテクチャから見た GPU

7

・ベクトル計算に強いマシーン (GPU の仲間)

CRAY-1

http://jpn.nec.com/hpc/sx9/https://ja.wikipedia.org/wiki/Cray-1

SX-9

https://ja.wikipedia.org/wiki/PlayStation_3

PS3

Page 8: なにわTech20161215

NVIDIA の用語が強い

8

コンピュータアーキテクチャ p306

本書で使用している名称

CUDA/NVIDAの公式用語

本書の定義と AMD社やOpenCLの用語

CUDA/NVIDAの公式の定義ベクター化ループ

グリッド GPUで実行されるベクター化ループは、1以上の「スレッドブロックを」・・・・

グリッドは平行、逐次的、あるいはそれらの混成で実行可能なスレッドブロックベクター化ルー

プの本体スレッドブロック

ベクター化ループはマルチスレッド SIMDプロセッサで実行され、1以上の個数の SIMD命令のスレッドからなる。・・・・

スレッドブロックは、 CUDAの配列で、互いに並列に実行され、共有メモリやバリア同期で強調したり・・・SIMDレーン

演算の列CUDAスレッド

SIMD命令のスレッドを、1つの SIMDレーンで実行される1つの要素に沿って・・・・

CUDAスレッドは逐次プログラムを実行し、

Page 9: なにわTech20161215

GPU の得意分野

9

・ GPU はベクトル型の計算に強い →行列計算が強い

Page 10: なにわTech20161215

10

ベクトルと行列

Page 11: なにわTech20161215

スカラー、ベクトル、テンソル

スカラーは 1 つの値 35 とか 0.5

ベクトル スカラーを並べた物 {1,2,3,5,6,2}

テンソル ベクトルと計算してベクトルになるのが

テンソル

11

全て行列で表せる

Page 12: なにわTech20161215

ある一定の世代以上は高校数学でテンソルを習っている

12

ベクトル ベクトルテンソル

ある座標( x, y) を θ 回転させたときの座標を求める。

Page 13: なにわTech20161215

VR 、 AR ではこういう計算がいっぱいでてきます。

13

回転 回転、拡大、縮小

ホモグラフィー行列

H

(𝑥 ′𝑦 ′ )= 𝑓 ∙(𝑥𝑦 )スカラーも実はテンソル

投影行列

3 次元の画像処理では行列計算が大量に発生するため、行列計算を専用に行うための GPU が活躍する。

Page 14: なにわTech20161215

数値計算で行列を勉強するときの NG ワード

物理の世界に迷い込む テンソル場、光速

数学の世界に迷い込む 公理、○○の性質を持っている物を○○と定

義する コンピュータサイエンスの世界に迷い込む

行列の要素が文字列

14

Page 15: なにわTech20161215

15

実際のアーキテクチャ比較

Page 16: なにわTech20161215

GPU の基本構造

16

スカラープロセッサ

GPU メモリグローバルメモリ

ローカルメモリプライベートメモリレジスタファイル

ALU ALU ALU

ALUALU ALU

ALUALU ALU

ALU

ALU

ALU

大容量 DRAM

ベクトル計算用 ALU

Page 17: なにわTech20161215

登場するベクトル型プロセッサ

17

名前 開発時期 性能 備考Cray X-MP 1984年 400MFLOPSSX-9 2007年 1.6TFLOPS

(シングルノード )

NECのスパコン

Cell Broadband Engine

2006年 218GFLOPS(CELL単体 )

PS3

Nvidia GTX 1080

2016年 8.9TFLOPS

Tensilica Vision DSP P5

2015年 32GFLOPS 半導体の中で使われるDSP

Adreno225 2011年 25GFLOPS SnapDragon

Adreno530 2015年 519GFLOPS SnapDragon

Page 18: なにわTech20161215

Cray X-MP and SX-9

18

http://jpn.nec.com/hpc/sx9/hardware_s01.html?スカラープロセッサ

ローカルメモリプライベートメモリレジスタファイル

ベクトル計算用ALU

ローカルメモリは無く、レジスタファイルのみ。

Page 19: なにわTech20161215

CELL and Tensilica Vision DSP   P5

19

https://ja.wikipedia.org/wiki/Cell_Broadband_Engine

PPE

SPE×8

http://ip.cadence.com/ipportfolio/tensilica-ip/image-vision-processing?CMP=pr100615_VisionP5

スカラープロセッサ

ローカルメモリプライベートメモリレジスタファイル

ベクトル計算用ALU

Page 20: なにわTech20161215

Nvidia GTX 1080

20

http://images.nvidia.com/content/pdf/tesla/whitepaper/pascal-architecture-whitepaper.pdf

スカラープロセッサは?

ローカルメモリプライベートメモリレジスタファイル

ベクトル計算用ALU

PTX(Parallel Thread Execution)のデコード

Page 21: なにわTech20161215

Adreno530 and Adreno225

21

http://arstechnica.com/gadgets/2015/08/snapdragon-820-is-official-a-look-at-its-gpu-and-how-much-the-chip-matters/

http://www.anandtech.com/show/4940/qualcomm-new-snapdragon-s4-msm8960-krait-architecture

情報が全く無い

Page 22: なにわTech20161215

GPU の基本構造

22

スカラープロセッサ

GPU メモリグローバルメモリ

ローカルメモリプライベートメモリレジスタファイル

ALU ALU ALU

ALUALU ALU

ALUALU ALU

ALU

ALU

ALU

大容量 DRAM

ベクトル計算用 ALU

Page 23: なにわTech20161215

23

PR

Page 24: なにわTech20161215

一緒に働く人を募集中

24

■ 職務内容画像処理に関するアルゴリズムの検討と、組込システムへの実装を行います。 OpenCV 等を用いて、 Windows 環境で画像処理アルゴリズムの検討、評価を行います。アルゴリズムの評価終了後、 C 言語による組込プログラミングや Verilog-HDL によるハードウェア実装を行います。

■必須条件(1) 幾何学変換や画像フィルターなどの基本的な画像処理の知識(2) 組込 C プログラミングによるアルゴリム実装、評価(3)Verilog-HDL によるアルゴリズム実装、検証上記 3 点のうち、最低 1 点の経験を有すること

■歓迎条件・ DSP プログラミング経験・ FPGA 開発経験・機械学習、 Deep Learning に関する知識・マネージャ、チームリーダー経験

Page 25: なにわTech20161215

25

お勧めの本