Slide 1

Slide 1 text

TensorFlow v1.0 with GPU on AWS MaruLabo × JAWS-UG AI #2 @ 2017.02.20

Slide 2

Slide 2 text

@pottava SUPINF Inc.

Slide 3

Slide 3 text

ࠓ೔͸ TensorFlow Ͱ͕͢ɺMXNet ΋ɻ http://qiita.com/pottava/items/0d40747287ff31b8db77

Slide 4

Slide 4 text

DeepLeaning ͷֶशʹ΋ظ଴͕ߴ·Δ AWS Batchʂ https://jawsug-cli.doorkeeper.jp/events/52026

Slide 5

Slide 5 text

3 / 11ɺͥͻ͝ࢀՃ͍ͩ͘͞ʂʂ http://jawsdays2017.jaws-ug.jp/

Slide 6

Slide 6 text

ͦ΋ͦ΋ͳͥ GPU ࢖͏ͷʁ

Slide 7

Slide 7 text

ʢࠓ೔͸ʣϋϯζΦϯ͔ͩΒͰ͢ ɾσΟʔϓϥʔχϯάͷֶशΛҰఆ࣌ؒ಺ʹऴ͍͑ͨ ɾGPU ͸ߦྻܭࢉ͕ CPU ΑΓ΋ͣͬͱ଎͍ ɾֶशͷଟ͘͸ߦྻܭࢉ ɾGPU ࢖͑͹ϋϯζΦϯΛ׬૸Ͱ͖ΔՄೳੑ͕ߴ·Δ

Slide 8

Slide 8 text

Ϋϥ΢υͳΒ GPU ͷํ͕͍҆ʁʁ ɾΫϥ΢υ͸Ұൠతʹ࣌ؒ՝ۚ ɾCPU ͩͱ 1 ࣌ؒ൒͔͔ΔॲཧɺGPU ͳΒ 45 ෼ ɹͲ͕͍ͬͪ҆ʁ ɾϓϩάϥϜ΍ن໛ʹԠͯ͡બ୒͠·͠ΐ͏

Slide 9

Slide 9 text

ݟ͑ͳ͍ίετ ɾͰ΋ GPU ޲͚ʹॻ͘ͷ͸େมͳΜͰ͠ΐɾɾʁ ɾTensorFlow ͳͲ͸ GPU Λҙࣝͤͣͱ΋ॻ͚Δ ɾࢼߦࡨޡ͢Δաఔ͕஗͍ͷ͸஍ຯʹετϨε ɾ଎͍͸ਖ਼ٛ

Slide 10

Slide 10 text

ͯ͞

Slide 11

Slide 11 text

Topics 1. AWS GPU Πϯελϯε & NVIDIA ੡඼͓͞Β͍ 2. g2 ܥͰ TensorFlow v1.0 Λ࢖͏ 3 ͭͷํ๏ 3. ҆͘࢖͏ʹ͸

Slide 12

Slide 12 text

1. AWS GPU Πϯελϯε & NVIDIA ੡඼͓͞Β͍

Slide 13

Slide 13 text

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 ͸൚༻ίϯϐϡʔςΟϯά༻్

Slide 14

Slide 14 text

EC2 Ͱ GPU Λಈ͔͢ʹ͸ GPU υϥΠόΛΠϯετʔϧ͢Ε͹ OKʂ ͱ͸͍͑ͦΕΛ௚઀ૢ࡞͢Δͷ͸ɾɾ ݱ࣮తʹ͸ CUDA Toolkit ΋ඞཁͰ͢ɻ TensorFlow ͸ cuDNN ΋಺෦Ͱ࢖͏ͷͰͦΕ΋ɻ

Slide 15

Slide 15 text

υϥΠόʁ ɾGPU ͝ͱʹ NVIDIA Driver ͕഑෍͞Ε͍ͯ·͢ ɹg2 ͳΒ GRID K520ɺp2 ͳΒ Tesla K80 ͷυϥΠό ɾυϥΠόͷόʔδϣϯ൪߸͸௨͠ɻ ɹྫ: ࠷৽όʔδϣϯͩͱ g2 ܥ GPU ͸ೝࣝͰ͖ͳ͍

Slide 16

Slide 16 text

CUDAʁ ɾ͘ʔͩ ɾNVIDIA ࣾ੡ GPU ޲͚ C ݴޠ౷߹։ൃ؀ڥ ɾίϯύΠϥͱ͔ϥΠϒϥϦͱ͔ศརπʔϧ܈ ɾTensorFlow ͳͲ΋ CUDA ܦ༝Ͱ GPU Λૢ࡞

Slide 17

Slide 17 text

CUDA ͱ NVIDIA υϥΠόͷରԠ ৽͍͠ CUDA Λ࢖͏ʹ͸৽͠ΊͷυϥΠό͕ඞཁɻ https://github.com/NVIDIA/nvidia-docker/wiki/CUDA#requirements

Slide 18

Slide 18 text

Πϯετʔϧํ๏ 3 ͭ ɾυϥΠόΛೖΕͯɺCUDA Toolkit ΛೖΕΔ ɾCUDA ͷ Runfile ΠϯετʔϧͰυϥΠό͝ͱೖΕΔ ɾυϥΠό͚ͩೖΕͯɺͦͷ্͸ Docker Λ࢖͏

Slide 19

Slide 19 text

஫ҙ఺ ɾυϥΠό͸ GPU ͝ͱɺCUDA ͸ OS ͝ͱͷ༻ҙ ɾRunfile ΠϯετʔϧͰ͸ GPU ͱͷ੔߹ੑʹ஫ҙ ɾg2 ܥͱ p2 ܥ݉༻ͷ AMI Λ࡞ΔͳΒ ɹGRID K520 ͱ Tesla K80 ͲͪΒͰ΋࢖͑ͯ ɹ͔ͭͳΔ΂͘৽͍͠υϥΠόΛ࢖͏

Slide 20

Slide 20 text

೉ͦ͠͏

Slide 21

Slide 21 text

೉͍͠Ͱ͢

Slide 22

Slide 22 text

΋ͬͱ؆୯ʹ࢖͑ͳ͍ͷʁ

Slide 23

Slide 23 text

ָ͍ͨ͠ํ΁ ɾAWS ʹ͸ AMI ͱ͍͏ϚγϯΠϝʔδ͕͋Γ·ͯ͠ ɹNVIDIA υϥΠό΋ CUDA ΋͢Ͱʹೖͬͨ΋ͷ͕ʂ ɾNVIDIA ެࣜ AMI → AWS Marketplace ΁ Go ɾAWS ެࣜ → “Deep Learning AMI” Ͱ୳ͤ·͢

Slide 24

Slide 24 text

AMI ར༻ͷώϯτ ɾଞΫϥ΢υͰ͸ CUDA ೖΓެࣜΠϝʔδ͸·ͩͳ͍ ɾNVIDIA / AWS ͍ͣΕͷ AMI ΋ݱঢ় CUDA ͸ 7.5 ɾࣗ࡞ͨ͠ AMI Λ Public ʹ͢Δͷ͸ɾɾ ɹɹ- NVIDIA ͷϥΠηϯε ɹɹ- υϥΠόͷΈ NVIDIA AMI + Docker ͱ͍͏ख΋

Slide 25

Slide 25 text

2. g2 ܥͰ TensorFlow v1.0 Λ ࢖͏ 3 ͭͷํ๏

Slide 26

Slide 26 text

ͦ΋ͦ΋ TensorFlow Λ࢖͏ʹ͸ ɾpip install ɾ./configure ͔Βͷ pip installʢࣗ෼ͰϏϧυʣ ɾnvidia-docker run

Slide 27

Slide 27 text

TensorFlow v1.0 ͷґଘ GPU ൛ TensorFlow ͸ CUDA ͱ cuDNN ʹґଘɻ v0.12 Ҏ߱ CUDA 8.0 ΛλʔήοτʹϏϧυ͞Ε͍ͯ ΔͨΊɺ8.0 ܥϥΠϒϥϦʢToolkit શମ͕ 8.0 Ͱ͋Δඞ ཁ͸ͳ͍ʣͱ 367.48 Ҏ߱ ͷ NVIDIA υϥΠό͕ඞཁɻ

Slide 28

Slide 28 text

ͱ͍͏͜ͱ͸

Slide 29

Slide 29 text

ҎԼͷ͍ͣΕ͔͕ඞཁ ɾґଘΛຬͨ͢Α͏ʹαʔόΛηοτΞοϓ ɾCUDA 7.5 Λλʔήοτʹࣗ෼Ͱ TF ΛϏϧυ ɾ৚݅Λຬͨ͢υϥΠό͚ͩೖΕͯɺDocker Ͱىಈ

Slide 30

Slide 30 text

g2 ܥ + CUDA 8.0

Slide 31

Slide 31 text

ણࡉͳυϥΠόόʔδϣϯ 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

Slide 32

Slide 32 text

g2 ܥ + CUDA 7.5

Slide 33

Slide 33 text

ࣗ෼ͰϏϧυ͢ΔͳΒ Compute capability: g2 ͷ K520 ͸ 3.0ɺp2 ͷ K80 ͸ 3.7 TensorFlow ͷϏϧυ࣌ʹࢦఆ͠·͢ɻ https://en.wikipedia.org/wiki/CUDA#GPUs_supported

Slide 34

Slide 34 text

Docker Λ࢖͏ͳΒ K520 ରԠͷ NVIDIA υϥΠό 367.57 ΛೖΕɺ nvidia-docker ΛηοτΞοϓ͢Ε͹ OKʂ ΋͘͠͸ AWS ެࣜͷ DeepLearning AMI ubuntu ൛Λ࢖͑͹υϥΠόΠϯετʔϧ͑͞ෆཁɻ

Slide 35

Slide 35 text

p2 ܥ͸ʁ

Slide 36

Slide 36 text

جຊ͸ಉ͡ ͦͷ্ Tesla K80 ͱͳΕ͹αʔόηοτΞοϓ΋ ਵ෼ָʹͳΔͨΊɺׂѪ͠·͢ɻ

Slide 37

Slide 37 text

3. ҆͘࢖͏ʹ͸

Slide 38

Slide 38 text

εϙοτΠϯελϯε AWS Ͱ GPU Λ࢖͏ͳΒͥͻ࢖͍͍ͨͱ͜Ζɻ ೔ຊޠͷࢿྉ΋ॆ࣮͍ͯ͠ΔͷͰௐ΂ͯΈ͍ͯͩ͘͞

Slide 39

Slide 39 text

גࣜձࣾεϐϯϑ ΞΠσΟΞΛ͔ͨͪʹʂ +

Slide 40

Slide 40 text

http://prtimes.jp/main/html/rd/p/000000007.000007768.html Comfy for Docker ϓϩδΣΫτ΁ͷ Docker ಋೖɾ։ൃࢧԉɾӡ༻؂ࢹ୅ߦΛ͍ͨ͠·͢ɻ ʢGCP / Azure ΋΋ͪΖΜରԠ͍ͯ͠·͢ɾɾʣ https://www.supinf.co.jp/service/dockersupport/

Slide 41

Slide 41 text

͝૬ஊ͸͓ؾܰʹͪ͜Β·Ͱ.. 41