Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
tesorflow-v1.0-on-ec2
Search
ryo nakamaru
February 20, 2017
Programming
1
590
tesorflow-v1.0-on-ec2
MaruLabo × JAWS-UG AI 支部 #2 用の資料です
ryo nakamaru
February 20, 2017
Tweet
Share
More Decks by ryo nakamaru
See All by ryo nakamaru
AWSで楽をするサービスメッシュ入門/appmesh-trial
pottava
1
1.2k
reinforce-2019-recap-lt
pottava
2
4k
ScaleShift-jp-2019-summer
pottava
1
180
Firecracker とは何か/what is Firecracker
pottava
13
5k
ハイブリッド並列 on Kubernetes/hybrid-parallel-program-on-kubernetes
pottava
1
370
AWS Fargate + Code 兄弟で始める継続的デリバリー / Continuous Delivery with AWS Fargate and Code brothers
pottava
12
2.9k
Singularity と NVIDIA GPU Cloud で作る ハイブリッド機械学習環境の構築 / Building a hybrid environment for Machine Learning with Singularity and NGC
pottava
3
1.1k
明日から始めるちょい足し λ / get-started-with-aws-lambda
pottava
4
2.3k
NGC と Singularity によるハイブリッド機械学習環境 / A hybrid environment for Machine Learning with NGC and Singularity
pottava
0
430
Other Decks in Programming
See All in Programming
Some Quick Ideas To Improve Your Tests ( #jassttokyo )
teyamagu
PRO
2
2.3k
object-oriented-conference-2024
fuwasegu
6
1.9k
フロントエンドパフォーマンス 入門
shouta2
7
1.5k
OpenTelemetry のサービスという概念について
azukiazusa1
1
410
DocC Tutorial と TCA におけるテスト機能の紹介
kalupas226
1
330
SwiftUI, Jetpack Composeの導入で変化した「家族アルバム みてね」のアプリ開発体験
hicka04
6
400
イベントストーミングによるオブジェクトモデリング・オブジェクト指向プログラミングの適用・開発プロセスの変遷・アーキテクチャの変革 / Object modeling with Event Storming.
nrslib
12
3.1k
RubyVM を PHP で実装する 〜Hello World を出力するまで〜
memory1994
PRO
1
490
Parallel Socket Communication in Swift
s_shimotori
0
250
9年開発を牽引して見えてきた、共通化すべきものと個別でつくるもの ~プログラム言語~
shinout
1
180
WebComponentsで フレームワークを1ページに共存させる
webuilder240
0
150
ファイル先頭の use の意味、説明できますか? 〜PHP の namespace と autoloading の関係を正しく理解しよう〜 / namespace and autoloading in php
okashoi
2
470
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
236
11k
Debugging Ruby Performance
tmm1
68
11k
Into the Great Unknown - MozCon
thekraken
10
830
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Product Roadmaps are Hard
iamctodd
43
9.6k
Fireside Chat
paigeccino
19
2.6k
Testing 201, or: Great Expectations
jmmastey
27
6.3k
GitHub's CSS Performance
jonrohan
1023
450k
What's new in Ruby 2.0
geeforr
335
31k
Writing Fast Ruby
sferik
619
59k
Gamification - CAS2011
davidbonilla
76
4.5k
Transcript
TensorFlow v1.0 with GPU on AWS MaruLabo × JAWS-UG AI
#2 @ 2017.02.20
@pottava SUPINF Inc.
ࠓ TensorFlow Ͱ͕͢ɺMXNet ɻ http://qiita.com/pottava/items/0d40747287ff31b8db77
DeepLeaning ͷֶशʹظ͕ߴ·Δ AWS Batchʂ https://jawsug-cli.doorkeeper.jp/events/52026
3 / 11ɺͥͻ͝ࢀՃ͍ͩ͘͞ʂʂ http://jawsdays2017.jaws-ug.jp/
ͦͦͳͥ GPU ͏ͷʁ
ʢࠓʣϋϯζΦϯ͔ͩΒͰ͢ ɾσΟʔϓϥʔχϯάͷֶशΛҰఆ࣌ؒʹऴ͍͑ͨ ɾGPU ߦྻܭࢉ͕ CPU ΑΓͣͬͱ͍ ɾֶशͷଟ͘ߦྻܭࢉ ɾGPU ͑ϋϯζΦϯΛͰ͖ΔՄೳੑ͕ߴ·Δ
ΫϥυͳΒ GPU ͷํ͕͍҆ʁʁ ɾΫϥυҰൠతʹ࣌ؒ՝ۚ ɾCPU ͩͱ 1 ͔͔࣌ؒΔॲཧɺGPU ͳΒ 45
ɹͲ͕͍ͬͪ҆ʁ ɾϓϩάϥϜنʹԠͯ͡બ͠·͠ΐ͏
ݟ͑ͳ͍ίετ ɾͰ GPU ͚ʹॻ͘ͷେมͳΜͰ͠ΐɾɾʁ ɾTensorFlow ͳͲ GPU Λҙࣝͤͣͱॻ͚Δ ɾࢼߦࡨޡ͢Δաఔ͕͍ͷຯʹετϨε ɾ͍ਖ਼ٛ
ͯ͞
Topics 1. AWS GPU Πϯελϯε & NVIDIA ͓͞Β͍ 2. g2
ܥͰ TensorFlow v1.0 Λ͏ 3 ͭͷํ๏ 3. ҆͘͏ʹ
1. AWS GPU Πϯελϯε & NVIDIA ͓͞Β͍
GPU Πϯελϯε AWS ʹ 2 छྨ͋Γ·͢ʢݱߦੈʣ g2 ܥ: NVIDIA GRID
K520 ɹɹɹɹ1,536 CUDA cores / GPU ͕ 2 ͭͰ 1 ͭͷ K520 ɹɹɹɹg2 Ͱ͑Δ GPU ຊདྷάϥϑΟοΫɾήʔϛϯά༻్ p2 ܥ: NVIDIA Tesla K80 ɹɹɹɹഒਫ਼ԋࢉ࠷େ 2.91 TFLOPSɺ୯ਫ਼ԋࢉ࠷େ 8.74 TFLOPS ɹɹɹɹ2,496 CUDA cores / GPU ͕ 2 ͭͰ 1 ͭͷ K80 ɹɹɹɹp2 ͷ GPU ൚༻ίϯϐϡʔςΟϯά༻్
EC2 Ͱ GPU Λಈ͔͢ʹ GPU υϥΠόΛΠϯετʔϧ͢Ε OKʂ ͱ͍͑ͦΕΛૢ࡞͢Δͷɾɾ ݱ࣮తʹ CUDA
Toolkit ඞཁͰ͢ɻ TensorFlow cuDNN ෦Ͱ͏ͷͰͦΕɻ
υϥΠόʁ ɾGPU ͝ͱʹ NVIDIA Driver ͕͞Ε͍ͯ·͢ ɹg2 ͳΒ GRID K520ɺp2
ͳΒ Tesla K80 ͷυϥΠό ɾυϥΠόͷόʔδϣϯ൪߸௨͠ɻ ɹྫ: ࠷৽όʔδϣϯͩͱ g2 ܥ GPU ೝࣝͰ͖ͳ͍
CUDAʁ ɾ͘ʔͩ ɾNVIDIA ࣾ GPU ͚ C ݴޠ౷߹։ൃڥ ɾίϯύΠϥͱ͔ϥΠϒϥϦͱ͔ศརπʔϧ܈ ɾTensorFlow
ͳͲ CUDA ܦ༝Ͱ GPU Λૢ࡞
CUDA ͱ NVIDIA υϥΠόͷରԠ ৽͍͠ CUDA Λ͏ʹ৽͠ΊͷυϥΠό͕ඞཁɻ https://github.com/NVIDIA/nvidia-docker/wiki/CUDA#requirements
Πϯετʔϧํ๏ 3 ͭ ɾυϥΠόΛೖΕͯɺCUDA Toolkit ΛೖΕΔ ɾCUDA ͷ Runfile ΠϯετʔϧͰυϥΠό͝ͱೖΕΔ
ɾυϥΠό͚ͩೖΕͯɺͦͷ্ Docker Λ͏
ҙ ɾυϥΠό GPU ͝ͱɺCUDA OS ͝ͱͷ༻ҙ ɾRunfile ΠϯετʔϧͰ GPU
ͱͷ߹ੑʹҙ ɾg2 ܥͱ p2 ܥ݉༻ͷ AMI Λ࡞ΔͳΒ ɹGRID K520 ͱ Tesla K80 ͲͪΒͰ͑ͯ ɹ͔ͭͳΔ͘৽͍͠υϥΠόΛ͏
ͦ͠͏
͍͠Ͱ͢
ͬͱ؆୯ʹ͑ͳ͍ͷʁ
ָ͍ͨ͠ํ ɾAWS ʹ AMI ͱ͍͏ϚγϯΠϝʔδ͕͋Γ·ͯ͠ ɹNVIDIA υϥΠό CUDA ͢Ͱʹೖͬͨͷ͕ʂ ɾNVIDIA
ެࣜ AMI → AWS Marketplace Go ɾAWS ެࣜ → “Deep Learning AMI” Ͱ୳ͤ·͢
AMI ར༻ͷώϯτ ɾଞΫϥυͰ CUDA ೖΓެࣜΠϝʔδ·ͩͳ͍ ɾNVIDIA / AWS ͍ͣΕͷ AMI
ݱঢ় CUDA 7.5 ɾࣗ࡞ͨ͠ AMI Λ Public ʹ͢Δͷɾɾ ɹɹ- NVIDIA ͷϥΠηϯε ɹɹ- υϥΠόͷΈ NVIDIA AMI + Docker ͱ͍͏ख
2. g2 ܥͰ TensorFlow v1.0 Λ ͏ 3 ͭͷํ๏
ͦͦ TensorFlow Λ͏ʹ ɾpip install ɾ./configure ͔Βͷ pip installʢࣗͰϏϧυʣ ɾnvidia-docker
run
TensorFlow v1.0 ͷґଘ GPU ൛ TensorFlow CUDA ͱ cuDNN
ʹґଘɻ v0.12 Ҏ߱ CUDA 8.0 ΛλʔήοτʹϏϧυ͞Ε͍ͯ ΔͨΊɺ8.0 ܥϥΠϒϥϦʢToolkit શମ͕ 8.0 Ͱ͋Δඞ ཁͳ͍ʣͱ 367.48 Ҏ߱ ͷ NVIDIA υϥΠό͕ඞཁɻ
ͱ͍͏͜ͱ
ҎԼͷ͍ͣΕ͔͕ඞཁ ɾґଘΛຬͨ͢Α͏ʹαʔόΛηοτΞοϓ ɾCUDA 7.5 ΛλʔήοτʹࣗͰ TF ΛϏϧυ ɾ݅Λຬͨ͢υϥΠό͚ͩೖΕͯɺDocker Ͱىಈ
g2 ܥ + CUDA 8.0
ણࡉͳυϥΠόόʔδϣϯ g2 ܥ GRID K520 ͷ࠷৽ରԠυϥΠό 367.57ɻ TensorFlow ͷϏϧυࡁΈόΠφϦ͕ཁٻ͢Δ CUDA
8.0 + NVIDIA Driver (>= 367.48) Λຬͨ͢ͷ ຯʹ͍͠ɻubuntu 16.04 + ҎԼ Runfile Ͱ OK https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/ cuda_8.0.44_linux-run
g2 ܥ + CUDA 7.5
ࣗͰϏϧυ͢ΔͳΒ Compute capability: g2 ͷ K520 3.0ɺp2 ͷ K80
3.7 TensorFlow ͷϏϧυ࣌ʹࢦఆ͠·͢ɻ https://en.wikipedia.org/wiki/CUDA#GPUs_supported
Docker Λ͏ͳΒ K520 ରԠͷ NVIDIA υϥΠό 367.57 ΛೖΕɺ nvidia-docker ΛηοτΞοϓ͢Ε
OKʂ ͘͠ AWS ެࣜͷ DeepLearning AMI ubuntu ൛Λ͑υϥΠόΠϯετʔϧ͑͞ෆཁɻ
p2 ܥʁ
جຊಉ͡ ͦͷ্ Tesla K80 ͱͳΕαʔόηοτΞοϓ ਵָʹͳΔͨΊɺׂѪ͠·͢ɻ
3. ҆͘͏ʹ
εϙοτΠϯελϯε AWS Ͱ GPU Λ͏ͳΒͥͻ͍͍ͨͱ͜Ζɻ ຊޠͷࢿྉॆ࣮͍ͯ͠ΔͷͰௐͯΈ͍ͯͩ͘͞
גࣜձࣾεϐϯϑ ΞΠσΟΞΛ͔ͨͪʹʂ +
http://prtimes.jp/main/html/rd/p/000000007.000007768.html Comfy for Docker ϓϩδΣΫτͷ Docker ಋೖɾ։ൃࢧԉɾӡ༻ࢹߦΛ͍ͨ͠·͢ɻ ʢGCP / Azure
ͪΖΜରԠ͍ͯ͠·͢ɾɾʣ https://www.supinf.co.jp/service/dockersupport/
͝૬ஊ͓ؾܰʹͪ͜Β·Ͱ.. 41 <Thank you !! https://www.supinf.co.jp/service/dockersupport/