1018: ディープラーニング最新技術情報~cudnn 3、digits 2、cuda 7.5のご紹介~

24
エヌビディア合同会社 CUDAエンジニア 村上真奈 ディープラーニング最新技術情報 ~cuDNN 3DIGITS 2CUDA 7.5のご紹介~

Upload: nvidia-japan

Post on 11-Apr-2017

3.716 views

Category:

Technology


7 download

TRANSCRIPT

Page 1: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

エヌビディア合同会社 CUDAエンジニア 村上真奈

ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

Page 2: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

NVIDIA ディープラーニング プラットフォーム音声認識 画像分析 自然言語処理

エンドユーザ アプリケーション

DIGITS

ディープラーニング フレームワーク (Caffe, Chainer, Torch, Theano)

高度に最適化された CUDA ライブラリ

CUDA プログラミング ツールキット

GPU ハードウェア

Page 3: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

ディープラーニングの性能を倍増

DIGITS 2 cuDNN 3 CUDA 7.5

自動Multi-GPU スケーリングで2倍の学習スピードを実現

単一GPUで2倍の学習スピードを実現より大きなモデルのサポート

2倍のデータセットインストラクションレベルの

プロファイリング

Page 4: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

CUDA 7.5: ディープラーニング研究者を強力に支援FP16(半精度浮動小数点)ストレージ

GPUメモリ上に最大2倍のデータセットを保持可能

ディープラーニングに最適

cuSPARSE 密行列×疎ベクタールーチン自然言語処理を加速

命令レベル・プロファイリングピンポイントでボトルネックを特定

Page 5: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

CUDA7.5: FP16(半精度浮動小数点)ストレージFP32と比べて, 2倍のデータをGPUメモリに搭載可能, メモリバンド幅要求が半分

cuda_fp16.h

FP16データ型: half, half2

IEEE 754

範囲: 6*10-8 ~ 6*104

FP16/FP32変換: half2float(), float2half()

cublasSgemmEx()

FP16データ入出力対応の行列積 (演算はFP32)

符号部(1 bit)

指数部(5 bit)

仮数部(10 bit)

Page 6: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

CUDA7.5: cuSPARSE 密行列×疎ベクタールーチン

自然言語処理を高速化

Bag of Words(BoW)をより高速に処理

cusparse{S,D,C,Z}gemvi()

y = α ∗ op(A)∗x + β∗y

𝑦1𝑦2𝑦3

= 𝛼𝐴11 𝐴12 𝐴13 𝐴14 𝐴15𝐴21 𝐴22 𝐴23 𝐴24 𝐴25𝐴31 𝐴32 𝐴33 𝐴34 𝐴35

−2−−1

+ 𝛽

𝑦1𝑦2𝑦3

Page 7: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

CUDA7.5: 命令レベル・プロファイリング(GM200以降)

命令レベルで遅延発生箇所を特定可能

性能改善作業の効率UP

対応CUDAコード

SASSコード

ホットスポットと遅延要因分析

Page 8: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

cuDNN: ディープラーニング用ライブラリ

最新はバージョン3 (2015/09~)

ディープニューラルネットワークの為のGPUプリミティブ群

Caffe, Torch, Theano, Chainer等の主要ディープラーニングフレームワークが採用

以下のOSをサポート (※2015.9.18現在)

Windows

Linux(x64/ARMv7/ARM64/Power8)

Mac OSX

Android(ARMv7/ARM64)

Page 9: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

cuDNN: APIsconvolution

cudnnConvolutionForward()

cudnnConvolutionBackward[Bias|Filter|Data]()

activationcudnnActivationForward()

cudnnActivationBackward()

poolingcudnnPoolingForward()

cudnnPoolingBackward()

softmax

cudnnSoftmaxForward()

cudnnSoftmaxBackward()

Page 10: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

cuDNN: 性能比較

AlexNet [A. Krizhevsky et al.,2012]

2.5M

18M23M

43M

0

10

20

30

40

50

16 CoreCPU

GTX Titan Titan BlackcuDNN v1

Titan XcuDNN v2

画像数(M)

1日あたりの学習画像数 (Caffe)

0

20

40

60

80

cuDNN 1(TITAN Black)

cuDNN 2(TITAN X)

cuDNN 3(TITAN X)

性能向上

E5-2698 v3 @ 2.3GHz / 3.6GHz Turbo 1日で学習できる画像の数(100万枚単位)

Page 11: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

new cuDNN3 (2015/9~)

学習の高速化2D畳み込み演算の高速化(Maxwell向け最適化)

FFTコンボリューション対応

より大きなモデル16ビット浮動小数点ストレージ

レイヤー機能の強化

3次元レイヤー

Logarithmic softmax layer

etc…

https://developer.nvidia.com/cuDNN

Page 12: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

cuDNN3: 学習の高速化Maxwellアーキテクチャ向けの最適化

CUDNN_CONVOLUTION_FWD_ALGO1 CUDNN_CONVOLUTION_BWD_DATA_ALGO1

0.0x

0.5x

1.0x

1.5x

2.0x

2.5x

Alexnet OverFeat VGG

cuDNN v2 cuDNN v3

学習性能: 最大2倍

cuDNN 3 performance vs. previous version on Ubuntu 14.04 LTS with

NVIDIA® GeForce® TITAN X and Intel® Core™ i7-4930K @ 3.40GHz

Page 13: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

cuDNN3: 学習の高速化FFTによる高速な畳み込み処理の追加

CUDNN_CONVOLUTION_FWD_ALGO_FFTCUDNN_CONVOLUTION_BWD_FILTER_ALGO_FFTCUDNN_CONVOLUTION_BWD_DATA_ALGO_FFT

0x

2x

4x

6x

8x

10x

3x3 5x5 7x7 9x9

FFT CONVOLUTIONS UP TO 10x FASTER

Speedup v

s. P

revio

us

Vers

ion

cuDNN 3 performance vs. previous version on Ubuntu 14.04 LTS with

NVIDIA® GeForce® TITAN X and Intel® Core™ i7-4930K @ 3.40GHz

Page 14: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

cuDNN: FP16ストレージ/レイヤー機能の強化FP16(半精度浮動小数点)ストレージ

最大2倍の学習データでトレーニングを行う事が出来る

cudnnDataType_tにCUDNN_DATA_HALFが追加

レイヤー機能の強化

新しいレイヤータイプの追加Logarithmic softmax layer

Divisive Normalization layer(within channel 2D/3D LRN & LCN)

Cross-channel Local Response Normalization layer

その他すべてのレイヤーで3次元を使用可能に計算ハードウェアに最適アルゴリズムの選択機能

Page 15: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

Chainer

DIGITSWebベースのディープラーニングGPUトレーニングシステム

ユーザーインターフェース

レイヤーの可視化

学習モデルの作成

データセットの作成

GPUGPU HW クラウドGPUクラスタマルチGPU

Theano

Torch

学習過程の可視化

CaffecuDNN, cuBLAS

CUDA

最新はバージョン2(2015/09~)

データサイエンティスト向けDNNsモデルの設計

学習状況・結果の可視化

多数の学習の管理

学習

Page 16: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

Chainer

DIGITSWebベースのディープラーニングGPUトレーニングシステム

ユーザーインターフェース

レイヤーの可視化

学習モデルの作成

データセットの作成

GPUGPU HW クラウドGPUクラスタマルチGPU

Theano

Torch

学習過程の可視化

CaffecuDNN, cuBLAS

CUDA

学習

NVCaffecuDNN, cuBLAS

CUDA

DIGITS(UI/Server)

ディープラーニングの学習・テストを簡単に行う為のUI

別マシンからDIGITSを操作する為のサーバ機能

NVCaffe

BVLC/caffe(本家)からフォーク最新のCUDAライブラリを使用エヌビディアGPUに最適化

Page 17: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

DIGITS: ヒストリー

2015/03/18 2015/07/07 2015/07/24 2015/08/27

v1.0

• 画像分類

• レイヤーの可視化

• cuDNN2対応

• Nvcaffe 0.10(1ジョブ、1GPU)

v2.0 Preview

• Nvcaffe 0.12

(マルチGPU)

• JSON REST API

• GPU使用率/メモリ使用量表示

• 対応画像フォーマット追加(PPM)

• 標準データセットツールの追加

v2.0 RC

• Nvcaffe 0.13

• cuDNN3対応

v2.0

• V2.0正式版

回帰/RNN

マルチノードその他のフレームワーク等随時対応予定

Page 18: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

DL のアプリケーション開発を支援

学習データセットの作成 学習モデルの作成 学習過程の可視化 学習済みモデルのテスト

Page 19: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

new DIGITS 2

マルチGPUによる学習の高速化GPUの数に処理データ分割し並列処理計算性能の高いGPUに優先的に割り当て

Rest APIによるDIGITSサーバの操作機能

GPU利用情報の表示機能メモリ使用率/GPU利用率/温度/etc…

推論処理にGPUを使用

標準データセット作成ツールの追加

対応画像フォーマットの追加

マルチGPUトレーニングに対応

Page 20: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

DIGITS2: マルチGPUによる学習の高速化自動的にマルチGPUにスケールして学習

マルチGPUにスケールする事で従来より高速に学習する事が可能

DIGITS 2 performance vs. previous version on an NVIDIA

DIGITS DevBox system

0.0x

0.5x

1.0x

1.5x

2.0x

2.5x

1-GPU 2-GPUs 4-GPUs

Page 21: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

DIGITS2: REST API/推論処理/学習データセットJSON REST API

スクリプトからDIGITSを操作可能

学習済みモデルをダウンロード

推論処理のGPU化学習処理だけでなく推論処理もGPUで計算可能

学習データセットDIGITSで学習する為の標準データセット(MNIST/CIFAR)作成ツール

対応画像フォーマットにPPM形式を追加

BMP/JPEG/PNG/PPM

TX1 TX1

Page 22: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

DIGITS:ダウンロードdeveloper.nvidia.com/digits github.com/NVIDIA/DIGITS

Page 23: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

Thank You

Page 24: 1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~

新しい CUDA 本

2015年9月24日発売

インプレス社 5,400円(税込み)

Professional CUDA C Programmingの翻訳書

CUDA プログラミングモデルから各種メモリの特徴、ストリームの機能紹介

CUDA エンジニア 森野 慎也監訳

本日4階ホワイエにて10%割引で先行販売!

CUDA C プロフェッショナルプログラミング