HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA...

52
HPC/AI を支える GPU コンピューティングの今 エヌビディア エンタープライズマーケティング本部 佐々木邦暢 (@_ksasaki)

Transcript of HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA...

Page 1: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

HPC/AI を支える GPU コンピューティングの今エヌビディア エンタープライズマーケティング本部 佐々木邦暢 (@_ksasaki)

Page 2: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

2

エヌビディアAI コンピューティングカンパニー

1993 年創業創業者兼 CEO ジェンスン フアン従業員 12,000 人2018 会計年度売上高 97 億ドル時価総額 1600 億ドル

Page 3: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

3

NVIDIA HOLODECK未来のデザインラボ

Page 4: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

4

Page 5: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

5

GPU コンピューティング12年の歩み

2010

Fermi: 世界初のHPC 用 GPU

世界初の HIV カプシドの原子モデルシミュレーション

GPU AI システムが碁の世界チャンピオンを破る

2014

スタンフォード大学がGPU を利用したAI マシンを構築

世界初のヒトゲノムの3次元マッピング

Google がImageNet で人間を超える

2012

H1N1 の異変の仕組みを解明

オークリッジ国立研究所の世界最速 GPU スーパーコンピュータ

2008

世界初の GPU Top500 システム

2006

CUDA発表

GPU を利用したAlexNet が圧勝

Green500 の上位 13 システムがNVIDIA GPUを利用

2017

東工大 TSUBAME 3.0 Green500 首位獲得

Page 6: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

6

NVIDIA GPU 製品のおおまかな一覧

Maxwell(2014)

Pascal(2016)

Volta(2017)

GeForceゲーミング

Quadroプロフェッショナルグラフィックス

M40

M6000

GTX

980

HPC 用

GRID 用

DL 用

M60

GP100P5000

Kepler(2012)

K6000

GTX

780

K80

K2

K520

GTX

1080TITAN X

V100データセンタ& クラウド

TeslaP40

P100

P6

TITAN V

Fermi(2010)

M2070

6000

GTX

580

P4

GV100

M6 M10

Turing(2018)

RTX

8000

RTX

2080 Ti

New!

Page 7: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

7

NVIDIA Tesla V100AI と HPC のための大きな飛躍Tensor コアを搭載した Volta アーキテクチャ

210 億トランジスタ | TSMC 12nm FFN | 815mm2

5120 CUDA コア

7.8 FP64 TFLOPS | 15.7 FP32 TFLOPS

125 Tensor TFLOPS

総レジスタファイル 20MB | 16MB キャッシュ

900 GB/s の 16GB HBM2

300 GB/s NVLink

Page 8: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

8

P100 V100 性能UP

トレーニング性能 10 TOPS 125 TOPS 12x

インファレンス性能 21 TFLOPS 125 TOPS 6x

FP64/FP32 5/10 TFLOPS 7.8/15.6 TFLOPS 1.5x

HBM2 バンド幅 720 GB/s 900 GB/s 1.2x

NVLink バンド幅 160 GB/s 300 GB/s 1.9x

L2 キャッシュ 4 MB 6 MB 1.5x

L1 キャッシュ 1.3 MB 10 MB 7.7x

GPU ピーク性能比較: P100 vs v100

Page 9: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

9

VOLTAディープラーニング性能を大幅に向上

P100 V100 P100 V100

Images

per

Second

Images

per

Second

2.4x faster 3.7x faster

FP32 Tensorコア FP16 Tensorコア

トレーニング インファレンスTensorRT - 7ms Latency

(*) DLモデルはResNet50

Page 10: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

10

VOLTAHPC性能を大きく向上

P100に対する相対性能

HPCアプリケーション性能

System Config Info: 2X Xeon E5-2690 v4, 2.6GHz, w/ 1X Tesla P100 or V100. V100 measured on pre-production hardware.

Summit

Supercomputer

200+ PetaFlops

~3,400 Nodes

10 Megawatts

Page 11: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

トランジスタ数:21B 815 mm2

80 SM5120 CUDAコア640 Tensorコア

HBM216 GB, 900 GB/s

NVLink 300 GB/s

TESLA V100

*full GV100 chip contains 84 SMs

Page 12: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

12

VOLTA GV100 SM

GV100

FP32ユニット 64

FP64ユニット 32

INT32ユニット 64

Tensorコア 8

レジスタファイル 256 KB

統合L1・共有メモリ 128 KB

Activeスレッド 2048

(*) SMあたり

Page 13: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

13

VOLTA GV100 SM

命令セットを一新

スケジューラを2倍

命令発行機構をシンプルに

L1キャッシュの大容量・高速化

SIMTモデルの改善

テンソル計算の加速

最もプログラミングの簡単なSM

生産性の向上

Page 14: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

VOLTA TENSORコア

Page 15: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

TENSOR コア混合精度行列計算ユニット

D = AB + C

D =

FP16 or FP32 FP16 FP16 FP16 or FP32

A0,0 A0,1 A0,2 A0,3

A1,0 A1,1 A1,2 A1,3

A2,0 A2,1 A2,2 A2,3

A3,0 A3,1 A3,2 A3,3

B0,0 B0,1 B0,2 B0,3

B1,0 B1,1 B1,2 B1,3

B2,0 B2,1 B2,2 B2,3

B3,0 B3,1 B3,2 B3,3

C0,0 C0,1 C0,2 C0,3

C1,0 C1,1 C1,2 C1,3

C2,0 C2,1 C2,2 C2,3

C3,0 C3,1 C3,2 C3,3

4x4 の行列の積和演算を1サイクルで計算する性能 (128演算/サイクル)

行列のFMA (Fused Multiply-Add)

Page 16: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

VOLTA TENSOR コアVolta Tensor Core

P100 V100

FP16/Tensorコア 20 TFLOPS 125 TFLOPS

FP32 10 TFLOPS 15.6 TFLOPS

FP16

FP16

× + FP32

FP32

FP16 FP32

混合精度演算

16bit

16bit

32bit

Page 17: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

CUBLAS: TENSORコアの実効性能P100 FP32 vs. V100 Tensorコア

最大9倍の性能向上

Page 18: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

CUDNN: TENSOR コアの実効性能P100 FP32 vs. V100 Tensorコア

Convolution層の性能比較

Page 19: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

Resnet50, Imagenet, Batch:128P100 FP32, V100 FP32 vs. V100 Tensorコア

0 100 200 300 400 500 600

Conv BN Relu Cupy_* Misc.

570 ms

360 ms

197 ms

Time per iteration [ms]

約3倍

P100 FP32

V100 FP32

V100Tensorコア

(*) Chainer 3.0.0rc1+ と CuPy 2.0.0rc1+ を使用

Page 20: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

TENSOR コアの計算精度

Tensor コアの演算結果は、FP16と比べて、FP32との誤差が小さい

FP32の計算結果に近い

• 行列A: 指数分布 (activation)

• 行列B: 正規分布 (weight)

(平均0.0, 分散1.0)

• 内積長: 32 – 1024

• 1万サンプル

• 誤差区間: 99%

0.8

0.9

1

1.1

1.2

32

64

128

256

512

1024

32

64

128

256

512

1024

32

64

128

256

512

1024

FP32 TensorCore FP16

内積長

平均

誤差範囲

アプリケーション依存

Page 21: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

コンテナ環境での GPU 利用

Page 22: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

ソフトウェアスタックの管理は大変例: フレームワークを利用するアプリケーションのスタック

OS

NVIDIA driver

CUDA

cuDNN 6cuBLAS…

Applications

TensorFlow 1.3

OS

NVIDIA driver

CUDA

cuDNN 5 cuBLAS …

Applications

MXNet 0.10

フレームワークごとにGPUへの対応状況が異なるため複数バージョンが必要

Page 23: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

NVIDIA driver

ソフトウェアスタックの管理は大変例: フレームワークを利用するアプリケーションのスタック

OS

TensorFlow container

CUDA

cuDNN 6cuBLAS…

TensorFlow 1.3

MXNet container

CUDA

cuDNN 5 cuBLAS …

MXNet 0.10

コンテナにまとめることで、複数バージョンの共存を容易に

Page 24: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

NVIDIA-DOCKER 1.0github.com/NVIDIA/nvidia-docker

GitHub 上のオープンソースプロジェクト

コンテナ内でホストの GPU を利用可能にする仕組み

様々な環境で利用可能

主要なディープラーニングフレームワークをサポート

Page 25: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

25

NVIDIA DOCKERなぜ必要か – ドライバとライブラリ

$ nvidia-smiFailed to initialize NVML: Driver/library version mismatch

GPU のドライバ(カーネルモジュール)

nvidia

nvidia_uvm

nvidia_modeset 等

ユーザーアプリケーションやライブラリ

密結合

バージョンが合っていないと、このエラー

GPU アプリケーションの動作には、次の 2 つが必要。① GPU ドライバ (カーネルモジュール)② GPU 関連ライブラリ (ユーザー空間)

この 2 つはマイナーバージョンまで一致している必要がある。そのため ② のライブラリをコンテナイメージに含めてしまうと、ドライバのバージョンが異なるホストでは動かない、可搬性の低いイメージになってしまう。

GPU アプリケーションに必要なモジュール

GPU 関連ライブラリlibnvidia-*.so

libcuda.so 等②

Page 26: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

26

NVIDIA DOCKERなぜ必要か – ドライバとライブラリ

GPU のドライバ(カーネルモジュール)

nvidia

nvidia_uvm

nvidia_modeset 等

GPU 関連ライブラリlibnvidia-*.so

libcuda.so 等

ユーザーアプリケーションやライブラリ

GPU のドライバ(カーネルモジュール)

nvidia

nvidia_uvm

nvidia_modeset 等

GPU 関連ライブラリlibnvidia-*.so

libcuda.so 等

ユーザーアプリケーションやライブラリ

イメージに含めるのはここだけ コンテナ

ボリュームを生成してコンテナへマウント

ホストのドライバと整合性のとれたライブラリをボリュームに詰め込んでコンテナへ

Page 27: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

27

NVIDIA DOCKERなぜ必要か – デバイスファイル

ホスト コンテナ #1

/dev/nvidiactl/dev/nvidia-uvm

/dev/nvidia0/dev/nvidia1/dev/nvidia2/dev/nvidia3/dev/nvidiactl/dev/nvidia-uvm

コンテナ #2

/dev/nvidiactl/dev/nvidia-uvm

/dev/nvidia0/dev/nvidia1/dev/nvidia2

/dev/nvidia2/dev/nvidia3

GPU の操作に必要なデバイスファイルをコンテナにマッピングする必要がある。

これは、 docker run 時に --device オプションで指定することができるが、NVIDIA Docker がこれを自動的に行う。

「どの GPU をコンテナに見せるか」は、環境変数で指定するが、これは NVIDIA Docker のバージョンにより異なる。

V1: NV_GPUV2: NVIDIA_VISIBLE_DEVICES

デバイスファイルのマッピング

Page 28: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

28

NVIDIA DOCKER 2NVIDIA Container Runtime をベースとした新しいコマンド

Docker のラッパーではなく、runC と並ぶ一つのランタイムとして実装

NVIDIA-Docker 1.0 との後方互換性を確保

公式 CUDA イメージ以外の様々なイメージに対応

k8s 環境ではこちらのバージョンが必要

NVIDIA Docker 2

OCI ランタイム インタフェース

Caffe PyTorchTensorF

lowNAMD CHROMA

コンポーネント

コンテナ化アプリケーション

nvidia-container-runtime-hook

libnvidia-container

NVIDIA ドライバ

Page 29: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

29

コンテナー オーケストレーション: KUBERNETES

代表的なコンテナ オーケストレーション ツール

大規模なクラスターをサポート

GPU サポートも急速に進みつつある状況

Service

Discovery

Intelligent

Scheduling

Self

Healing

Security

Metrics

&

Logging

Authentication

Authorization

Admission

Container

Runtime

Page 30: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

30

KUBERNETES ON NVIDIA GPU

k8s のメインラインに対する GPU 対応拡張

https://github.com/NVIDIA/kubernetes/

k8s コミュニティと緊密に連携しながら開発

オープンソース

NGC のレジストリにも登録済み

NVIDIA CONTAINER RUNTIME

KUBERNETES

NVIDIA DRIVER

Page 31: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

31

NVIDIA DEVICE PLUGIN

Kubernetes 1.8 から導入された Device Plugin 機構を利用。

Daemonset として各ノードで動作し、GPU をコンテナに利用可能にするほか、GPU に関する各種情報をクラスタへ提供。

$ kubectl create -f raw.github/.../NVIDIA/.../v1.10/device-plugin.yml

Page 32: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

32

NVIDIA DEVICE PLUGIN

apiVersion: vkind: Podmetadata:

name: gpu-podspec:

containers:- name: cuda-container

image: nvidia/cuda:9.0-basecommand: ["sleep"]args: ["100000"]extendedResourceRequests: ["nvidia-gpu"]

extendedResources:- name: "nvidia-gpu"

resources:limits:

nvidia.com/gpu: 1affinity:

required:- key: "nvidia.com/gpu-memory"

operator: "Gt"values: ["8000"] # change value to appropriate mem for GPU

Device Plugin によってもたらされる GPU の詳細情報に基づいてノードを選択可能。

例えば• Tesla P100 搭載ノード• GPU メモリを 8GB 以上搭載したノードといった条件が指定できる。

Page 33: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

33

NVIDIA GPU CLOUD

Page 34: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE.

NVIDIA GPU CLOUD

30 種類の GPU 対応アプリケーションイメージ各種ディープラーニング フレームワーク、サードパーティの HPC アプリケーション、NVIDIA の HPC 可視化ツール、数々のパートナー アプリケーション

数週間ではなく、数分でイノベーションを生み出すソフトウェア環境を構築するための複雑な作業を、大幅に軽減します。

あらゆる環境からアクセスVolta あるいは Pascal 世代 GPU を搭載した PC、NVIDIA DGX Systems 製品群、そして複数のクラウドサービスプロバイダ

GPU 対応アプリケーションの総合カタログ

Page 35: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

NGC の GPU 最適化ディープラーニング コンテナ

NVCaffe

Caffe2

Chainer

Microsoft Cognitive Toolkit (CNTK)

DIGITS

MXNet

PyTorch

TensorFlow

Theano

Torch

CUDA (base level container for developers)

NVIDIA TensorRT inference accelerator with ONNX support

ディープラーニングソフトウェアの包括的なカタログ

Page 36: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

コンテナ化されたアプリケーション

TF Tuned SW

NVIDIA Docker

CNTK Tuned SW

NVIDIA Docker

Caffe2 Tuned SW

NVIDIA Docker

PyTorch Tuned SW

NVIDIA Docker

CUDA RTCUDA RTCUDA RTCUDA RT

Linux Kernel と CUDA ドライバ

Tuned SW

NVIDIA Docker

CUDA RT

Other

Frameworks

and Apps. . .

常に最新エヌビディアによるフレームワークとコンテナの月例更新

Page 37: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

NGC 日本語ドキュメントWeb で公開中

ユーザーガイド44 ページ

技術概要10 ページ

Page 38: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

NGC を始めましょうサインアップ無料

GPU 対応アプリケーションの一覧など詳細はこちら:

nvidia.com/cloud

サインアップはこちらから:

nvidia.com/ngcsignup

Page 39: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

39

NVIDIA DEEP LEARNING INSTITUTE

Page 40: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

DEEP LEARNING INSTITUTEディープラーニングのハンズオントレーニング

自習ラボ

パートナーコース

オンサイトワークショップ

技術ブログ

Page 41: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

ディープラーニング基礎

自動運転車 ゲーム開発とデジタルコンテンツ

金融

豊富なコンテンツ様々な領域におけるディープラーニング活用の基礎から応用まで幅広い教材

インテリジェントビデオ アナリティクス

医療

さらに拡大中

Page 42: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

DLI ハンズオンコンテンツの例

Page 43: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

0

0

0

0

0

0

0

0

1

1

1

0

0

0

0

1

2

2

1

1

1

0

1

2

2

2

1

1

0

1

2

2

2

1

1

0

0

1

1

1

1

1

0

0

0

0

0

0

0

4

0

0

0

0

0

0

0

-4

1

0

-8

入力ピクセル

コンボリューション

カーネル出力ピクセル

コンボリューションカーネルの係数と、入力ピクセルを掛け、足し合わせた値を出力とする。

畳込み層(CONVOLUTIONAL LAYER)

「NVIDIA DIGITS による画像分類入門」より

Page 44: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

データセットの作成1.

2. 3.

1. Image Type : Grayscale

2. Image Size : 28 x 28

3. Training Images: /data/train_small

4. Dataset Name: “mnist small”

5. Createボタンを押す

4.

5.

「NVIDIA DIGITS による画像分類入門」より

Page 45: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

モデルの作成

1. “mnist small” データセットを選択

2. Training Epochs を”8”にする

3. モデルは、”LeNet” を選択

4. モデル名は、”The right model for the data” を入力

1. “mnist small”データセットを選択

2. Training epochsを”8”に設定

3. “LeNet”を選択

4. “The right model

for the data”を入力

「NVIDIA DIGITS による画像分類入門」より

Page 46: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

Loss 関数(検証データ)

Loss 関数(学習データ)

Accuracy検証データセットから求められる

「NVIDIA DIGITS による画像分類入門」より

Page 47: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

DATA AUGMENTATION白黒反転した画像を追加

Pixel(Inverted) = 255 – Pixel(original)

黒い背景に白い文字→白い背景に黒い文字

“MNIST full”をクローン(データ/モデルとも)

Training Images: /data/train_invertDataset Name: MNIST invert

Select Dataset: MNIST invertModel Name: MNIST invert

「NVIDIA DIGITS による画像分類入門」より

Page 48: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

ネットワークの変更内容

編集後、Visualizeボタンを押して、

ネットワークを確認。

ReLUレイヤの追加

conv1

20 → 75

conv2

50 → 100

reluP1

「NVIDIA DIGITS による画像分類入門」より

Page 49: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

コンテンツ パートナー

産業界のパートナー企業、フレームワークの開発コミュニティ、大学などの教育・研究機関と連携してコンテンツの作成とワークショップのデリバリを行っています。

Page 50: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

日本の DLI 認定パートナー

株式会社 日立インフォメーションアカデミー

日本サード・パーティ株式会社

Page 51: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

51

September 13-14, 2018 | 東京 | #GTC18https://www.nvidia.com/ja-jp/gtc/

WWW.GPUTECHCONF.COM

今年の GTC Japan は9月13–14日開催最も重要な GPU 開発者イベントにぜひご参加ください

台湾 | 5月30-31日日本 | 9月13-14日

ヨーロッパ | 10月9-11日

イスラエル | 10月17-18日ワシントンDC | 10月23-24日

シリコンバレー | 2019年3月18-22日

Page 52: HPC/AI を支える GPU コンピューティングの今...TensorFlow 1.3 OS NVIDIA driver CUDA cuDNN 5 cuBLAS … Applications MXNet 0.10 フレームワークごとにGPUへの

HPC/AI を支える GPU コンピューティングの今エヌビディア エンタープライズマーケティング本部 佐々木邦暢 (@_ksasaki)