O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
エヌビディア合同会社
ディープラーニング ソリューションアーキテクト兼CUDAエンジニア 村上真奈
PyData.Tokyo Meetup #14
NVIDIA GPUとディープラーニング
2
自己紹介
村上真奈(むらかみまな) / mmurakami@nvidia.com
• CUDAエンジニア+ディープラーニングSA
• ディープラーニング・CUDA技術サポートとか、いろいろ
埼玉県さいたま市
早稲田大学教育学部理学科数学⇒シ...
3
AGENDA
エヌビディアのGPUについて
ディープラーニングに最適なGPUは?
ディープラーニング開発の為のエヌビディアDLプラットフォーム
4
エヌビディアのGPUについて
6
エヌビディア
AI コンピューティングカンパニー
> 1993 年創業
> 創業者及び CEO ジェンスン ファン
> 従業員 11,000 人
> 2017 会計年度売上高 69億ドル (約 7700 億円)
> 時価総額 808億ドル ...
7
NVIDIA GPU の歴史
CUDA
8
2012 20142008 2010 2016 2018
48
36
12
0
24
60
72
Tesla
Fermi
Kepler
Maxwell
Pascal
混合精度演算
倍精度演算
3D メモリ
NVLink
GPU ロードマップ...
9
Tesla K20x (CC 3.5)
2688 CUDA Cores
FP64: 1.31 TF
FP32: 3.95 TF
FP16: …
INT8: …
GDDR5
384 bit width
6GB
250 GB/s
10
Tesla P100 SXM2 (CC 6.0)
3584 CUDA Cores
FP64: 5.3 TF
FP32: 10.6 TF
FP16: 21.2 TF
INT8: …
HBM2
4096 bit width
16 GB
732...
11
Tesla V100 (CC 7.0)
5120 CUDA Cores
640 Tensor Cores
FP64: 7.5 TF
FP32: 15 TF
DL:120 TOPS
HBM2
4096 bit width
16GB
900 ...
12
Compute Capability (CC)
Kepler
CC 3.5
192 cores / SMX
Maxwell
CC 5.0
128 cores / SMM
Pascal
CC 6.0
64 cores / SMM
https...
13
GPUアーキテクチャ概要
例:Tesla P100 SXM2 (CC 6.0)
SM
CUDAコア
.
.
.
14
GPUアーキテクチャ概要
PCI I/F
ホスト接続インタフェース
Giga Thread Engine
SMに処理を割り振るスケジューラ
DRAM (384-bit, GDDR5)
全SM、PCI I/Fからアクセス可能な
メモリ (デ...
15
SM (streaming multiprocessor)
▪ CUDA core
▪ GPUスレッドはこの上で動作
▪ Pascal: 64個
▪ Other units
▪ DP, LD/ST, SFU
▪ Register File...
16
ディープラーニングに最適なGPUは?
17
ディープラーニングのアプローチ
推論(インファレンス):
犬
猫
蜜穴熊
エラー
犬
猫
アライグマ
犬
学習(トレーニング):
モデル
モデル
様々な構成のネットワーク
18
Alexnet(8層)
VGG(19層)
GoogleNet(22層)
ILSVRC’12
ILSVRC’14
ILSVRC’14
ILSVRC’15 ResNet(152層) deeper
19
Image Recognition
(Microsoft)
認識精度向上のため
モデルはよりディープに、データはより大きく
強力な計算パワーが必要に
2012
AlexNet
8 Layers
1.4 GFLOP
~16% Error
1...
様々な問題への応用
20
Semantic segmentaion
GAN
Medical image analysis using 3D convolution
GPUがディープラーニングに向いている理由
1. 汎用アクセラレータである。しかも計算が高速
▪ 様々なアプリケーションを走らせる事が可能。しかも高速に計算する事が出来る。
2. 開発時間は短い。最適化が簡単。
▪ CUDA C/C++というC...
22
K80 M40 M4
P100
(SXM2)
P100
(PCIE)
P40 P4
GPU 2x GK210 GM200 GM206 GP100 GP100 GP102 GP104
CUDA core 4992(2496*2) 3072 ...
23
Tesla (Pascal以前)
24
Tesla (Pascal世代)
25
学習におすすめのGPUと推論におすすめのGPUがある!
26
K80 M40 M4
P100
(SXM2)
P100
(PCIE)
P40 P4
GPU 2x GK210 GM200 GM206 GP100 GP100 GP102 GP104
CUDA core 4992(2496*2) 3072 ...
27
K80 M40 M4
P100
(SXM2)
P100
(PCIE)
P40 P4
GPU 2x GK210 GM200 GM206 GP100 GP100 GP102 GP104
CUDA core 4992(2496*2) 3072 ...
28
2つのPASCAL
29
30
31
32
33
34
35
37
ディープラーニングSDK / DIGITS
38
ディープラーニング・フレームワーク
Mocha.jl
ディープラーニング・フレームワーク
GPUで高速化されているディープラーニング・フレームワークが多数存在
https://developer.nvidia.com/deep-learn...
39
ディープラーニングフレームワーク
コンピュータビジョン ボイス&オーディオ 自然言語処理
物体検出 音声認識 言語翻訳 推薦エンジン 感情分析
Mocha.jl
画像分類
ディープラーニング SDK
ディープラーニングを加速するディープラ...
44
NVIDIA ディープラーニング SDK
GPUで高速化されたディープラーニングのアプリケーションを設計、
開発する為の強力な開発ツールおよびライブラリ
NVIDIA GPUの為の高速なディープラーニング環境を保障
最新のディープラーニン...
45
cuDNN
46
NVIDIA cuDNN
GPU上でディープニューラルネットワークの計算を
高速に行う為のプリミティブ群
ディープニューラルネットワークの学習の高いパ
フォーマンスを発揮
Caffe、 CNTK、 Tensorflow、 Theano、
...
47
developer.nvidia.com/cudnn
cuDNN 7: CNNの計算が2.5倍 RNNの計算が3倍高速に
0
100
200
300
400
500
600
700
K80 + cuDNN 6 P100 + cuDNN 6...
48
NCCL
49
NCCL(NVIDIA Collective Collection Library)
マルチGPUおよびマルチノードの為の集合通信ライブラリ
all-gather, reduce, broadcast など標準的な集合通
信の処理をバンド...
50
NCCL(NVIDIA Collective Collection Library)
NCCLの集合通信処理
51
NCCL1: ChainerMNを高速化
developer.nvidia.com/nccl
Images/Second
1xV100
8xV100
52
NCCL2: マルチGPU および マルチノードでスケール
developer.nvidia.com/nccl
216.925
843.475
1684.79
3281.07
6569.6
0
1,000
2,000
3,000
4,00...
53
DIGITS
54
DIGITS
WebベースのディープラーニングGPUトレーニングシステム
ディープラーニング SDK
ユーザー
インターフェース
レイヤーの
可視化
学習モデルの
作成
データセット
の作成
学習過程の
可視化
DIGITS(UI/Ser...
55
エヌビディアDIGITS
GPUで高速化されたディープラーニングトレーニング・システム
Test Image
学習過程の可視化モデルの作成学習データの作成 モデルのテスト
http://developer.nvidia.com/digits
56
NVIDIA DIGITS
ユーザー
インターフェース
レイヤーの
可視化
学習モデルの
作成
データセット
の作成
学習過程の
可視化
Theano
クラウド
TensorFlow
Torch
Caffe
cuDNN, cuBLAS
C...
57
58
DIGITS 5
• イメージセグメンテーション(領域分割)に対応
• FCN(全畳込みニューラルネットワーク)を用いたセグメンテーショ
ンワークフローに対応
• ディープラーニング・モデルストア機能を追加
• 様々な種類の学習済みモデル...
59
DIGITSでディープラーニングを始めましょう
• DIGITSで何が出来るのか?
• 画像分類問題
• 物体位置検出問題(DIGITS4 or later)
• 領域分割問題 (DIGITS5 or later)
• その他色々なサンプ...
62
モデルストア機能
• イメージセグメンテーションのような複雑なタスクでは、学習済みモデルを使った転移学習が必須に
なってくる。
DIGITS5
• DIGITSモデルストアでは、LeNet,Alexnet
のような有名なモデルからセグメン...
63
DIGITS 6
• TensorFlowに対応
• TensorFlowによるモデルのトレーニング機能
• TensorBoardによる可視化機能
• GANのサポート
• GAN(Generative Adversarial Netw...
64
DIGITS インストール方法
developer.nvidia.com/digitsgithub.com/NVIDIA/DIGITS hub.docker.com/r/nvidia/digits
65
NVIDIAがメンテナンスするAMI(Amazon Machine Image)
エヌビディアDIGITSやCUDA環境を1クリックでAWSに構築可能
• エヌビディアが提供するAMI
• NVIDIA DIGITS AMI
• http...
66
nvidia-docker
67
nvidia-docker
GPU(CUDA)を使ったアプリケーションの環境を簡単に構築出来る。GPUの為のDockerツール。
https://github.com/NVIDIA/nvidia-docker
TensorFlowのマルチ...
68
NVIDIAが公開中のDockerイメージ
github.com/NVIDIA/nvidia-docker
hub.docker.com/u/nvidia
69
nvidia-docker+コンテナでアプリケーションを起動
GPU2 GPU3 GPU4 GPU6 GPU7
NVIDIA CUDA Driver
Dockerエンジン
GPU5GPU0 GPU1
ホストPC
GPU0 GPU1
CUD...
70
明示的にどのGPUを使うか指定して起動
sudo NV_GPU=‘1,2’ nvidia-docker run –rm gcr.io/tensorflow/tensorflow:1.0.1
nvidia-dockerでコンテナの起動
GP...
71
REST APIでGPUリソースの状態を取得
• nvidia-dockerのサブ機能。起動すると指定したポート(デフォルト3476ポート)でLISTEN開始
• ノード内のGPUの情報(json形式)、Mesos連携する為のコマンドなど...
72
REST APIでGPUリソースの状態を取得
nvidia-docker-plugin
GPUリソースの情報を取得 GPUリソースの状態を取得
THANK YOU!
Próximos SlideShares
Carregando em…5
×

20170726 py data.tokyo

7.284 visualizações

Publicada em

20170726 py data.tokyo

Publicada em: Engenharia
  • Hello! High Quality And Affordable Essays For You. Starting at $4.99 per page - Check our website! https://vk.cc/82gJD2
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

20170726 py data.tokyo

  1. 1. エヌビディア合同会社 ディープラーニング ソリューションアーキテクト兼CUDAエンジニア 村上真奈 PyData.Tokyo Meetup #14 NVIDIA GPUとディープラーニング
  2. 2. 2 自己紹介 村上真奈(むらかみまな) / mmurakami@nvidia.com • CUDAエンジニア+ディープラーニングSA • ディープラーニング・CUDA技術サポートとか、いろいろ 埼玉県さいたま市 早稲田大学教育学部理学科数学⇒システム計画研究所⇒サムスン日本研究所⇒エヌビディア 画像処理(主に静止画)、ソフトの最適化とか、 プリクラとか放送機器とかテレビとか 2010年頃に初めてCUDAにふれる(CUDA1.XXとかの時代) NVIDIAGPUComputing NVIDIAJapan @NVIDIAJapan
  3. 3. 3 AGENDA エヌビディアのGPUについて ディープラーニングに最適なGPUは? ディープラーニング開発の為のエヌビディアDLプラットフォーム
  4. 4. 4 エヌビディアのGPUについて
  5. 5. 6 エヌビディア AI コンピューティングカンパニー > 1993 年創業 > 創業者及び CEO ジェンスン ファン > 従業員 11,000 人 > 2017 会計年度売上高 69億ドル (約 7700 億円) > 時価総額 808億ドル (約 9兆円) “World’s Best Performing CEOs” — Harvard Business Review “World’s Most Admired Companies” — Fortune “America’s Greenest Companies” — Newsweek “50 Smartest Companies” — MIT Tech Review “Top 50 Best Places to Work” — Glassdoor
  6. 6. 7 NVIDIA GPU の歴史 CUDA
  7. 7. 8 2012 20142008 2010 2016 2018 48 36 12 0 24 60 72 Tesla Fermi Kepler Maxwell Pascal 混合精度演算 倍精度演算 3D メモリ NVLink GPU ロードマップ SGEMM/W Volta 混合精度演算 TensorCore 3D メモリ NVLink2
  8. 8. 9 Tesla K20x (CC 3.5) 2688 CUDA Cores FP64: 1.31 TF FP32: 3.95 TF FP16: … INT8: … GDDR5 384 bit width 6GB 250 GB/s
  9. 9. 10 Tesla P100 SXM2 (CC 6.0) 3584 CUDA Cores FP64: 5.3 TF FP32: 10.6 TF FP16: 21.2 TF INT8: … HBM2 4096 bit width 16 GB 732 GB/s
  10. 10. 11 Tesla V100 (CC 7.0) 5120 CUDA Cores 640 Tensor Cores FP64: 7.5 TF FP32: 15 TF DL:120 TOPS HBM2 4096 bit width 16GB 900 GB/s
  11. 11. 12 Compute Capability (CC) Kepler CC 3.5 192 cores / SMX Maxwell CC 5.0 128 cores / SMM Pascal CC 6.0 64 cores / SMM https://developer.nvidia.com/cuda-gpus Volta CC 7.0 64 cores / SMM
  12. 12. 13 GPUアーキテクチャ概要 例:Tesla P100 SXM2 (CC 6.0) SM CUDAコア . . .
  13. 13. 14 GPUアーキテクチャ概要 PCI I/F ホスト接続インタフェース Giga Thread Engine SMに処理を割り振るスケジューラ DRAM (384-bit, GDDR5) 全SM、PCI I/Fからアクセス可能な メモリ (デバイスメモリ, フレームバッ ファ) L2 cache (1.5MB) 全SMからアクセス可能なR/Wキャッ シュ SM (Streaming Multiprocessor) 「並列」プロセッサ Pascal GP100
  14. 14. 15 SM (streaming multiprocessor) ▪ CUDA core ▪ GPUスレッドはこの上で動作 ▪ Pascal: 64個 ▪ Other units ▪ DP, LD/ST, SFU ▪ Register File (65,536 x 32bit) ▪ Shared Memory/L1 Cache (64KB) ▪ Read-Only Cache(48KB)
  15. 15. 16 ディープラーニングに最適なGPUは?
  16. 16. 17 ディープラーニングのアプローチ 推論(インファレンス): 犬 猫 蜜穴熊 エラー 犬 猫 アライグマ 犬 学習(トレーニング): モデル モデル
  17. 17. 様々な構成のネットワーク 18 Alexnet(8層) VGG(19層) GoogleNet(22層) ILSVRC’12 ILSVRC’14 ILSVRC’14 ILSVRC’15 ResNet(152層) deeper
  18. 18. 19 Image Recognition (Microsoft) 認識精度向上のため モデルはよりディープに、データはより大きく 強力な計算パワーが必要に 2012 AlexNet 8 Layers 1.4 GFLOP ~16% Error 152 Layers 22.6 GFLOP ~3.5% Error 2015 ResNet 16X Model 2014 Deep Speech 1 80 GFLOP 7,000 hrs of Data ~8% Error 465 GFLOP 12,000 hrs of Data ~5% Error 2015 Deep Speech 2 10X Training Ops Speech Recognition (Baidu)
  19. 19. 様々な問題への応用 20 Semantic segmentaion GAN Medical image analysis using 3D convolution
  20. 20. GPUがディープラーニングに向いている理由 1. 汎用アクセラレータである。しかも計算が高速 ▪ 様々なアプリケーションを走らせる事が可能。しかも高速に計算する事が出来る。 2. 開発時間は短い。最適化が簡単。 ▪ CUDA C/C++というC/C++の拡張言語で記述可能。学習コストも低く、簡単にアプリケーション開 発が出来る。 ▪ 開発ツールが充実しており、プロファイラやデバッガを使えば、バグ修正や最適化が容易 3. ハードウェアがディープラーニングに向けに進化 ▪ NVLINKという高速なデータ転送インターコネクトをサポート(マルチGPUでの学習がより高速に) ▪ GPU搭載メモリ量の増加(より複雑なネットワークを大きなバッチサイズで計算可能に) ▪ その他いろいろ 21
  21. 21. 22 K80 M40 M4 P100 (SXM2) P100 (PCIE) P40 P4 GPU 2x GK210 GM200 GM206 GP100 GP100 GP102 GP104 CUDA core 4992(2496*2) 3072 1024 3584 3584 3840 2560 PEAK FP64 (TFLOPs) 2.9 NA NA 5.3 4.7 NA NA PEAK FP32 (TFLOPs) 8.7 7 2.2 10.6 9.3 12 5.5 PEAK FP16 (TFLOPs) NA NA NA 21.2 18.7 NA NA PEAK TIOPs NA NA NA NA NA 47 22 Memory Size 2x 12GB GDDR5 24 GB GDDR5 4 GB GDDR5 16 GB HBM2 16/12 GB HBM2 24 GB GDDR5 8 GB GDDR5 Memory BW 480 GB/s 288 GB/s 80 GB/s 732 GB/s 732/549 GB/s 346 GB/s 192 GB/s Interconnect PCIe Gen3 PCIe Gen3 PCIe Gen3 NVLINK + PCIe Gen3 PCIe Gen3 PCIe Gen3 PCIe Gen3 ECC Internal + GDDR5 GDDR5 GDDR5 Internal + HBM2 Internal + HBM2 GDDR5 GDDR5 Form Factor PCIE Dual Slot PCIE Dual Slot PCIE LP SXM2 PCIE Dual Slot PCIE Dual Slot PCIE LP Power 300 W 250 W 50-75 W 300 W 250 W 250 W 50-75 W Tesla製品一覧 たくさんあるが、どれを使えばよいのか?
  22. 22. 23 Tesla (Pascal以前)
  23. 23. 24 Tesla (Pascal世代)
  24. 24. 25 学習におすすめのGPUと推論におすすめのGPUがある!
  25. 25. 26 K80 M40 M4 P100 (SXM2) P100 (PCIE) P40 P4 GPU 2x GK210 GM200 GM206 GP100 GP100 GP102 GP104 CUDA core 4992(2496*2) 3072 1024 3584 3584 3840 2560 PEAK FP64 (TFLOPs) 2.9 NA NA 5.3 4.7 NA NA PEAK FP32 (TFLOPs) 8.7 7 2.2 10.6 9.3 12 5.5 PEAK FP16 (TFLOPs) NA NA NA 21.2 18.7 NA NA PEAK TIOPs NA NA NA NA NA 47 22 Memory Size 2x 12GB GDDR5 24 GB GDDR5 4 GB GDDR5 16 GB HBM2 16/12 GB HBM2 24 GB GDDR5 8 GB GDDR5 Memory BW 480 GB/s 288 GB/s 80 GB/s 732 GB/s 732/549 GB/s 346 GB/s 192 GB/s Interconnect PCIe Gen3 PCIe Gen3 PCIe Gen3 NVLINK + PCIe Gen3 PCIe Gen3 PCIe Gen3 PCIe Gen3 ECC Internal + GDDR5 GDDR5 GDDR5 Internal + HBM2 Internal + HBM2 GDDR5 GDDR5 Form Factor PCIE Dual Slot PCIE Dual Slot PCIE LP SXM2 PCIE Dual Slot PCIE Dual Slot PCIE LP Power 300 W 250 W 50-75 W 300 W 250 W 250 W 50-75 W Tesla製品一覧 推論 推論学習 学習
  26. 26. 27 K80 M40 M4 P100 (SXM2) P100 (PCIE) P40 P4 GPU 2x GK210 GM200 GM206 GP100 GP100 GP102 GP104 CUDA core 4992(2496*2) 3072 1024 3584 3584 3840 2560 PEAK FP64 (TFLOPs) 2.9 NA NA 5.3 4.7 NA NA PEAK FP32 (TFLOPs) 8.7 7 2.2 10.6 9.3 12 5.5 PEAK FP16 (TFLOPs) NA NA NA 21.2 18.7 NA NA PEAK TIOPs NA NA NA NA NA 47 22 Memory Size 2x 12GB GDDR5 24 GB GDDR5 4 GB GDDR5 16 GB HBM2 16/12 GB HBM2 24 GB GDDR5 8 GB GDDR5 Memory BW 480 GB/s 288 GB/s 80 GB/s 732 GB/s 732/549 GB/s 346 GB/s 192 GB/s Interconnect PCIe Gen3 PCIe Gen3 PCIe Gen3 NVLINK + PCIe Gen3 PCIe Gen3 PCIe Gen3 PCIe Gen3 ECC Internal + GDDR5 GDDR5 GDDR5 Internal + HBM2 Internal + HBM2 GDDR5 GDDR5 Form Factor PCIE Dual Slot PCIE Dual Slot PCIE LP SXM2 PCIE Dual Slot PCIE Dual Slot PCIE LP Power 300 W 250 W 50-75 W 300 W 250 W 250 W 50-75 W Tesla製品一覧
  27. 27. 28 2つのPASCAL
  28. 28. 29
  29. 29. 30
  30. 30. 31
  31. 31. 32
  32. 32. 33
  33. 33. 34
  34. 34. 35
  35. 35. 37 ディープラーニングSDK / DIGITS
  36. 36. 38 ディープラーニング・フレームワーク Mocha.jl ディープラーニング・フレームワーク GPUで高速化されているディープラーニング・フレームワークが多数存在 https://developer.nvidia.com/deep-learning-frameworks
  37. 37. 39 ディープラーニングフレームワーク コンピュータビジョン ボイス&オーディオ 自然言語処理 物体検出 音声認識 言語翻訳 推薦エンジン 感情分析 Mocha.jl 画像分類 ディープラーニング SDK ディープラーニングを加速するディープラーニングライブラリ ディープラーニング cuDNN CUDA 数学ライブラリ cuBLAS cuSPARSE マルチGPU間通信 NCCLcuFFT ビデオ解析 インファレンス
  38. 38. 44 NVIDIA ディープラーニング SDK GPUで高速化されたディープラーニングのアプリケーションを設計、 開発する為の強力な開発ツールおよびライブラリ NVIDIA GPUの為の高速なディープラーニング環境を保障 最新のディープラーニングアルゴリズムおよび、新ディープニュー ラルネットワーク開発の為の線形代数サブルーチンを提供 マルチGPUおよび8GPU以上のマルチノード環境でも高速に 学習する事が可能 ディープラーニングの為の高性能GPUアクセラレータ “ We are amazed by the steady stream of improvements made to the NVIDIA Deep Learning SDK and the speedups that they deliver.” — Frédéric Bastien, Team Lead (Theano) MILAdeveloper.nvidia.com/deep-learning-software
  39. 39. 45 cuDNN
  40. 40. 46 NVIDIA cuDNN GPU上でディープニューラルネットワークの計算を 高速に行う為のプリミティブ群 ディープニューラルネットワークの学習の高いパ フォーマンスを発揮 Caffe、 CNTK、 Tensorflow、 Theano、 Torch、Chainerなどディープラーニングフレー ムワークを高速化 バージョンアップ毎にパフォーマンスが向上 “NVIDIAはcuDNNのリリースの度により多くの操作 ができるような機能拡張をおこなっており、同時 に計算速度も向上させている” —UC バークレー、 Caffe リードデベロッパー、 Evan Shelhamer developer.nvidia.com/cudnn 0 2,000 4,000 6,000 8,000 10,000 12,000 8x K80 8x Maxwell DGX-1 DGX-1V
  41. 41. 47 developer.nvidia.com/cudnn cuDNN 7: CNNの計算が2.5倍 RNNの計算が3倍高速に 0 100 200 300 400 500 600 700 K80 + cuDNN 6 P100 + cuDNN 6 V100 + cuDNN 7 Images/Second Caffe2 performance (images/sec), Tesla K80 + cuDNN 6 (FP32), Tesla P100 + cuDNN 6 (FP32), Tesla V100 + cuDNN 7 (FP16). ResNet50, Batch size: 64 0x 1x 2x 3x 4x 5x 6x K80 + cuDNN 6 P100 + cuDNN 6 V100 + cuDNN 7 Speed-upvs.K80 MXNet performance (min/epoch), Tesla K80 + cuDNN 6 (FP32), Tesla P100 + cuDNN 6 (FP32), Tesla V100 + cuDNN 7 (FP16). OpenNMT 662M seq2seq RNN (http://opennmt.net/Models/) 2.5x Faster Training of CNNs 3x Faster Training of LSTM RNNs
  42. 42. 48 NCCL
  43. 43. 49 NCCL(NVIDIA Collective Collection Library) マルチGPUおよびマルチノードの為の集合通信ライブラリ all-gather, reduce, broadcast など標準的な集合通 信の処理をバンド幅が出るように最適化 シングルプロセスおよびマルチプロセスで使用する事が可能 NCCL1:マルチGPU対応(オープンソースプロジェクト) • https://github.com/NVIDIA/nccl NCCL2:マルチノード対応(coming soon) https://developer.nvidia.com/nccl ディープラーニング SDK マルチノード: インフィニバンド IP Sockets マルチGPU: NVLink PCIe GPUトポロジの 自動検出
  44. 44. 50 NCCL(NVIDIA Collective Collection Library) NCCLの集合通信処理
  45. 45. 51 NCCL1: ChainerMNを高速化 developer.nvidia.com/nccl Images/Second 1xV100 8xV100
  46. 46. 52 NCCL2: マルチGPU および マルチノードでスケール developer.nvidia.com/nccl 216.925 843.475 1684.79 3281.07 6569.6 0 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 0 8 16 24 32 NCCL 2 Images/Second Near-Linear Multi-Node Scaling Microsoft Cognitive Toolkit multi-node scaling performance (images/sec), NVIDIA DGX-1 + cuDNN 6 (FP32), ResNet50, Batch size: 64 Images/Second 7x Faster Training on DGX vs. single GPU Caffe2 multi-GPU performance (images/sec) DGX-1 + cuDNN 6 (FP32), DGX-1V + cuDNN 7 (FP16). ResNet50, Batch size: 64 0 500 1,000 1,500 2,000 2,500 3,000 3,500 4,000 4,500 DGX-1 DGX-1V 1xP100 1xV100 8xP100 8xV100
  47. 47. 53 DIGITS
  48. 48. 54 DIGITS WebベースのディープラーニングGPUトレーニングシステム ディープラーニング SDK ユーザー インターフェース レイヤーの 可視化 学習モデルの 作成 データセット の作成 学習過程の 可視化 DIGITS(UI/Server) ディープラーニングの学習・テストを 簡単に行う為のUI 別マシンからDIGITSを操作する為の サーバ機能 Chainer GPUGPU HW クラウドGPUクラスタマルチGPU Theano Torch Caffe cuDNN, cuBLAS CUDA 学習 NVCaffe cuDNN, cuBLAS CUDA NVCaffe BVLC/caffe(本家)からフォーク 最新のCUDAライブラリを使用 エヌビディアGPUに最適化
  49. 49. 55 エヌビディアDIGITS GPUで高速化されたディープラーニングトレーニング・システム Test Image 学習過程の可視化モデルの作成学習データの作成 モデルのテスト http://developer.nvidia.com/digits
  50. 50. 56 NVIDIA DIGITS ユーザー インターフェース レイヤーの 可視化 学習モデルの 作成 データセット の作成 学習過程の 可視化 Theano クラウド TensorFlow Torch Caffe cuDNN, cuBLAS CUDA 学習 NVCaffe cuDNN, cuBLAS CUDA エヌビディアDIGITS http://developer.nvidia.com/digits 学習 モデルの ダウンロード Got permission denied while trying to connect to the Docker daemon socket
  51. 51. 57
  52. 52. 58 DIGITS 5 • イメージセグメンテーション(領域分割)に対応 • FCN(全畳込みニューラルネットワーク)を用いたセグメンテーショ ンワークフローに対応 • ディープラーニング・モデルストア機能を追加 • 様々な種類の学習済みモデルをDIGITSのモデルストア • からダウンロードし転移学習可能に • DIGITSジョブのグループ機能 • ジョブをグループ化、結果を整理してより見やすく。 領域分割タスクに対応した新しいDIGITS
  53. 53. 59 DIGITSでディープラーニングを始めましょう • DIGITSで何が出来るのか? • 画像分類問題 • 物体位置検出問題(DIGITS4 or later) • 領域分割問題 (DIGITS5 or later) • その他色々なサンプルも付いてきます →https://github.com/NVIDIA/DIGITS/tree/master/examples オートエンコーダー/テキスト分類/リグレッション/etc… エヌビディアDIGITSの機能について
  54. 54. 62 モデルストア機能 • イメージセグメンテーションのような複雑なタスクでは、学習済みモデルを使った転移学習が必須に なってくる。 DIGITS5 • DIGITSモデルストアでは、LeNet,Alexnet のような有名なモデルからセグメンテーション 用のAlexnet-FCNまで学習済みモデルを 提供 • モデルストアからダウンロードする事で簡単 に転移学習を行う事が出来る。
  55. 55. 63 DIGITS 6 • TensorFlowに対応 • TensorFlowによるモデルのトレーニング機能 • TensorBoardによる可視化機能 • GANのサポート • GAN(Generative Adversarial Networks)モデルのトレーニング機能 • GAN 学習済みモデルをモデルストアで公開 TensorFlowに対応
  56. 56. 64 DIGITS インストール方法 developer.nvidia.com/digitsgithub.com/NVIDIA/DIGITS hub.docker.com/r/nvidia/digits
  57. 57. 65 NVIDIAがメンテナンスするAMI(Amazon Machine Image) エヌビディアDIGITSやCUDA環境を1クリックでAWSに構築可能 • エヌビディアが提供するAMI • NVIDIA DIGITS AMI • https://aws.amazon.com/marketplace/pp/B01LZN28VD • NVIDIA CUDA Toolkit7.5 AMI • https://aws.amazon.com/marketplace/pp/B01LZMLK1K • Windows AMI with the NVIDIA driver • https://aws.amazon.com/marketplace/pp/B01M0LNZZO https://developer.nvidia.com/gpu-cloud-images
  58. 58. 66 nvidia-docker
  59. 59. 67 nvidia-docker GPU(CUDA)を使ったアプリケーションの環境を簡単に構築出来る。GPUの為のDockerツール。 https://github.com/NVIDIA/nvidia-docker TensorFlowのマルチGPU学習にお勧め
  60. 60. 68 NVIDIAが公開中のDockerイメージ github.com/NVIDIA/nvidia-docker hub.docker.com/u/nvidia
  61. 61. 69 nvidia-docker+コンテナでアプリケーションを起動 GPU2 GPU3 GPU4 GPU6 GPU7 NVIDIA CUDA Driver Dockerエンジン GPU5GPU0 GPU1 ホストPC GPU0 GPU1 CUDA Libraries Dockerコンテナ1 CUDA 7.5 Runtime アプリケーション1 GPU0 GPU1 GPU2 CUDA Libraries Dockerコンテナ2 CUDA 8.0 Runtime アプリケーション2 GPU0 GPU1 GPU2 CUDA Libraries Dockerコンテナ3 CUDA 7.0 Runtime アプリケーション3
  62. 62. 70 明示的にどのGPUを使うか指定して起動 sudo NV_GPU=‘1,2’ nvidia-docker run –rm gcr.io/tensorflow/tensorflow:1.0.1 nvidia-dockerでコンテナの起動 GPU 1と2を使用 (GPU0は使用しない) dockerコンテナ名
  63. 63. 71 REST APIでGPUリソースの状態を取得 • nvidia-dockerのサブ機能。起動すると指定したポート(デフォルト3476ポート)でLISTEN開始 • ノード内のGPUの情報(json形式)、Mesos連携する為のコマンドなど様々な情報がREST APIで取得できる nvidia-docker-plugin
  64. 64. 72 REST APIでGPUリソースの状態を取得 nvidia-docker-plugin GPUリソースの情報を取得 GPUリソースの状態を取得
  65. 65. THANK YOU!

×