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
A Few Ways to Accelerate Deep Learning
Search
UENISHI Kota
April 04, 2019
Technology
0
1.1k
A Few Ways to Accelerate Deep Learning
UENISHI Kota
April 04, 2019
Tweet
Share
More Decks by UENISHI Kota
See All by UENISHI Kota
Storage Systems in Preferred Networks
kuenishi
0
27
Metadata Management in Distributed File Systems
kuenishi
2
500
Behind The Scenes: Cloud Native Storage System for AI
kuenishi
2
390
Apache Ozone behind Simulation and AI Industries
kuenishi
0
370
Distributed Deep Learning with Chainer and Hadoop
kuenishi
3
1.2k
Introducing Retz
kuenishi
5
1.1k
Introducing Retz and how to develop practical frameworks
kuenishi
3
730
Formalization and Proof of Distributed Systems (ja)
kuenishi
10
6.4k
Mesos Frameworkの作り方 (How to Make Mesos Framework)
kuenishi
7
2.4k
Other Decks in Technology
See All in Technology
_第3回__AIxIoTビジネス共創ラボ紹介資料_20250617.pdf
iotcomjpadmin
0
140
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
810
In Praise of "Normal" Engineers (LDX3)
charity
2
1.2k
VCpp Link and Library - C++ breaktime 2025 Summer
harukasao
0
220
(非公式) AWS Summit Japan と 海浜幕張 の歩き方 2025年版
coosuke
PRO
1
330
Observability в PHP без боли. Олег Мифле, тимлид Altenar
lamodatech
0
270
本当に使える?AutoUpgrade の新機能を実践検証してみた
oracle4engineer
PRO
1
120
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
0
220
Amplifyとゼロからはじめた AIコーディング 成果と展望
mkdev10
1
360
キャディでのApache Iceberg, Trino採用事例 -Apache Iceberg and Trino Usecase in CADDi--
caddi_eng
0
170
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
2
1k
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
2
470
Featured
See All Featured
Building an army of robots
kneath
306
45k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Gamification - CAS2011
davidbonilla
81
5.3k
Building Adaptive Systems
keathley
43
2.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Unsuck your backbone
ammeep
671
58k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Transcript
Repro Tech Talk #7 2019/4/4 Preferred Networks, Inc. Kota Uenishi
A Few Ways to Accelerate Deep Learning
誰? Kota UENISHI @kuenishi • github.com • twitter.com • etc…
分散深層学習をやっています 25分しかないのでめっちゃ急ぎます
なぜ深層学習を速くするのか?
PFNは最新の研究や技術を最も早く実用化する お片付けロボット @画像認識、音声指示 お片付けロボットアーム @画像認識、音声指示 協調自動運転 @画像認識、強化学習 自動運転 @画像認識、強化学習
機械学習(深層学習)の開発サイクル タスク(ビジネス仮 説)を定義する よいモデルを 開発する モデルをアプリに埋 め込む アプリでビジネスを する 学習データを
集める 深層ネットワークを 定義する 学習実験をしてモ デルを作る テストデータで精度 を確認する モデルで推論する アプリをつくる アプリ開発 データを集める データを分析する 仮説 / 課題を明ら かにする 解決方法を考える システム開発、 運用の設計
試行錯誤のボトルネックは学習 w/NVIDIA P100 mlperf v0.5 results https://mlperf.org/results/ タスク 画像分類 物体検出1
物体検出2 翻訳 RNN翻訳 推薦 強化学習 データセット ImageNet COCO COCO WMT E-G WMT E-G MovieLens-2 0M Pro games モデル ResNet-50 SSD w/ResNet-34 Mask-R-CNN NMT Transformer NCF Mini Go 所要時間(分) 8831.3 827.7 4999.5 1134.5 1869.8 46.7 4388.7 (時間) 147.2 13.8 83.3 18.9 31.2 0.8 73.2
強いモデルを作るために • よいデータで学習すること • よいネットワークであること • よいレシピで学習すること • よいハイパーパラメータが与えられること •
何度も繰り返し試行錯誤すること
1GPUで速くする
深層学習 ≒ DNNをSGDでデータに対して最適化する この手順を好きなだけ繰り返す 1. データをシャッフルしてミニバッチに分割する 2. 分割したミニバッチごとに、モデルに対してまとめて a. 前向き計算をして推論結果を出す
b. 推論結果と正解データのズレ(距離)を計算 c. ズレをもとに後ろ向き計算(backpropをする) d. 後ろ向き計算で得られた勾配の平均を計算 e. 勾配をモデルのパラメータに反映
データをシャッフルしてミニバッチに分割する Shuffle Minibatch MNIST • トータルのデータ数は 6万 • 典型的にはバッチサイズ 10~100
CIFAR10 • トータルのデータ数は 6万 • 典型的にはバッチサイズは 64 ImageNet-1k • トータルのデータ数は 158万枚 • 典型的にはバッチサイズ 32
ミニバッチ毎に学習 Forward Backward Optimize 推論 [fish, dog, …] 正解 [cat,
dog, …] loss [1.0, 0.0, …] update param grad Forward バッチサイズを単純に大きくすると GPU内の並列 度は上がるが、学習効率は落ちる
1GPUで速くする Forward Backward Optimize OpenCV DALI ChainerX chainer-compiler CuPy Kernel
Fusion TensorCore (125TFLOPS) cProfile, nvprof 必見 Chainer/ChainerMNのCPUリソース不足 による速度低下と解決法 Chainer/ChainerMNのおすすめなプロ ファイルの取り方&プロファイルの見方 の注意点
並列処理で速くする
並列処理で速くする@2017 Akiba et al., 2017 https://arxiv.org/abs/1711.04325
並列処理で速くする@2019 Mikami et al., https://arxiv.org/abs/1811.05233
ChainerMNによる分散学習 All-Reduce Forward Forward Forward Backward Backward Backward Optimize Optimize
Optimize
並列化して速くなる、は自明か? • GPUあたりのバッチサイズはそんな に変わらない • GPU数を32倍にすると、全体のバッ チサイズも32倍 • (2017年までは)バッチサイズをあま り大きくすると汎化性能にペナルティ
があることが分かっていた • 頑張って512とか Keskar et al., “On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima”, arXiv:1609.04836 [cs.LG]
並列化するテクニックが上手くいく場合がある Linear Scaling Rule: • バッチサイズを k 倍にしたいときは は学習率も k
倍すればよい バッチサイズが大きくなるとSharp minimaに陥ってぬけにくくなるので、そ の分だけ学習率を大きくすればよい ※他にもさまざまなテクニックがある Goyal et al., “Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour”, arXiv:1706.02677 [cs.CV]
All-Reduceを速くする All-Reduce Forward Forward Forward Backward Backward Backward Optimize Optimize
Optimize + + →
All-Reduceを速くする • All-Reduceが速ければ速いほどス ケールアウトすることができる • NCCL: NVIDIAが提供している高速 な集団通信ライブラリ • RDMA:
リモートのGPUメモリに直接 データを読み書きする • Ring All-Reduce: 帯域をフル利用 できるアルゴリズム Akiba et al., 2017 https://arxiv.org/abs/1711.04325
ハードウェアで速くする
スパコンその1: MN-1 1024GPU • 計算ノード x128 – NVIDIA Tesla P100
x8 – InfiniBand FDR (56Gbps) x2 • 19.1PFLOPS @半精度 • TOP500 91位 (2017 Nov) – 国内13位 – 産業用1位 • ImageNet 学習の世界記録(当時) – Preferred Networks、深層学習の学習速度 において世界最速を実現 © NTT Communications
スパコンその2: MN-1b 512GPU • 計算ノード x64 – NVIDIA Tesla V100
(32GB) x8 – InfiniBand EDR (100Gbps) x2 • 57.3PFLOPS @混合精度 • Open Images Challenge 2位 – 世界454チームが参加した物体検出コンペティショ ン Google AI Open Images – Object Detection Trackで準優勝 • 導入当初からFull Kubernetesクラスタ • 最新のNVIDIA Tesla V100 32GB GPUを採用した プラ イベート・スーパーコンピュータ「 MN-1b」を7月に稼働 © NTT Communications
スパコンその3: MN-2 1024GPU • 計算ノード x128 – NVIDIA Tesla V100
x8 – 100GbE x4 – NVLink (300GB/s) • 128PFLOPS @混合精度 • Challenges – いろいろ自社運用 – CLOSネットワーク w/ L3 ルーティング – NCCL AllReduce on RoCE v2 – Fully containerized by Kubernetes – HDFSがプライマリのストレージ TBF
• MN-2と同じ場所に設置 • Powered by MN-Core – 深層学習に特化した自社設計チップ – ピーク性能
524TFLOPS @半精度 – 消費電力 500W スパコンその4: MN-3 x4
MN-3完成イメージ
We’re hiring! intern/fulltime
Questions?
まずは始めよう $ pip install chainer cupy-cuda100 mpi4py
See also: • 最先端のディープラーニング 研究開発を支えるGPU計算機基盤 「MN-1」のご紹介 • Massively Scale Your
Deep Learning Training with NCCL 2.4 • Preferred Networksの機械学習クラスタを支える技術 • CuPy -NumPy互換GPUライブラリによるPythonでの高速計算 • Optimizing Deep Learning with Chainer • ディープラーニングを応用した製品不良検査ソフトウェアおよびピッキングロボットソリューション • ViEW 2018 基調講演 2018-12-7 実世界で働くロボットのためのビジョン・言語処理技術 • 東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを • •