SlideShare a Scribd company logo
Kazuhiro Yamasaki, Deep Learning Solution Architect, NVIDIA
Chainer Meetup #10, 08/31/2019
CHAINERRLの学習済みモデルを
GRPC経由で使ってみる試み (+アルファ)
2
い つ も の
今日もあります
128 nodes
3
自己紹介
• 山崎和博 (やまさき かずひろ)
• NVIDIAでディープラーニングなどの技術支援や啓蒙を担当
• 昔とった杵柄でAPIサーバの実装検証等々も
• 私生活
• 技術書を買い漁るのが趣味 (≒積読が加速……)
• 私生活と仕事が密結合しt(ry
• 最近のモットー: 健康第一
2回連続失礼します
4
AGENDA
ChainerRLで学習したモデルを
サーバにデプロイして動かしてみる話
何をやるのか
構成
デモ
ChainerからTensorコアを使う話 (最新版)
Tensorコア振り返り
v6系統でのAPI
動作例
最近のNVIDIA
5
CHAINERRLで学習したモデルを
サーバにデプロイして動かしてみる話
6
どういうこと?
背景と動機
なにを話すと
面白い……?
Chainer x 強化学習 x NVIDIA?
7
どういうこと?
背景と動機
NVIDIA提供のクラウドゲーミング: GeForce NOW
強化学習エージェントも
クラウドで動かす時代(?)
だ!!
8
扱う題材
ChainerRLでAtariのゲームエージェントを学習
ChainerRL
https://github.com/chainer/chainerrl
OpenAI Gym [ALE]
https://gym.openai.com
9
扱う題材
学習したモデルをリモートサーバにデプロイ
TensorRT Inference Server
https://github.com/NVIDIA/tensorrt-inference-server
• 複数のフレームワークのモデルをデプロイ可能
• ONNX, TensorFlow, PyTorch, etc...
• デプロイしたモデルをHTTP/gRPCのAPIとして
サービング
• リクエストのキューイング
• 複数モデルの並行実行
• カスタム処理を追加可能
• などなど……
10
• 複数のフレームワークのモデルをデプロイ可能
• ONNX, TensorFlow, PyTorch, etc...
• デプロイしたモデルをHTTP/gRPCのAPIとして
サービング
• リクエストのキューイング
• 複数モデルの並行実行
• カスタム処理を追加可能
• などなど……
扱う題材
学習したモデルをリモートサーバにデプロイ
TensorRT Inference Server
https://github.com/NVIDIA/tensorrt-inference-server
ONNX
11
扱う題材
学習済みモデルをデプロイ可能に変換
ONNX-Chainer
https://github.com/chainer/onnx-chainer
モデルを変換:
ChainerRL -> ONNX
12
システム構成
GPUを使って推論
クライアント
Agent
draw
each
scene
inference & action
step
一般的な構成
13
Google Cloud Platform
システム構成
リモートサーバのGPUを使って推論
クライアント
Agent
draw
each
scene
サーバ
TRTIS
request
(inference)
response
(action)
step inference
action
Tesla T4
今回の構成
14
動かしてみます
デモ
15
(うまく動かなかったときのスライド)
ときどき止まっているのは
推論リクエストが返ってくるのを
待ってるため
(レスポンスタイムの中央値:~10msec.)
(おおよそ20FPS程度)
• 会社オフィスに配置したサーバ
へTRTISをデプロイ
• クライアントは同一NWに配置
し、wifi経由でサーバへ接続
16
デモアプリは公開中
https://github.com/lazykyama/atari_trtis_demo
17
CHAINERからTENSORコアを使う話
(最新版)
18
TENSORコアのおさらい
ディープラーニング向けの専用ユニット
D =
FP32
(FP16)
FP16 FP16 FP32
(FP16)
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
行列の FMA (Fused Multiply-Add)
4x4 の行列の積和演算を1サイクルで計算する性能:
128 演算/サイクル/Tensor コア、1024 演算/サイクル/SM
A B C
19
性能を最大に引き出すための情報は……
前々回の資料を
https://www.slideshare.net/NVIDIAJapan/chainer-tensor-fp16
20
TENSORコア、どうやって使う?
前々回の説明
def __init__(self, ...):
self.conv1 = L.Convolution2D(
3, 64, 7, 2, 3,
initialW=initializers.HeNormal(dtype=np.float16))
self.bn1 = L.BatchNormalization(
64, dtype=np.float16)
...
def forward(self, x, t):
x = F.cast(x, np.float16)
h = self.bn1(self.conv1(x))
...
データとモデルをFP16へ、
明示的に変換が必要
データとモデルをFP16へ、
明示的に変換が必要
データとモデルをFP16へ、
明示的に変換が必要
21
TENSORコア、どうやって使う?
前々回の説明
def __init__(self, ...):
self.conv1 = L.Convolution2D(
3, 64, 7, 2, 3,
initialW=initializers.HeNormal(dtype=np.float16))
self.bn1 = L.BatchNormalization(
64, dtype=np.float16)
...
def forward(self, x, t):
x = F.cast(x, np.float16)
h = self.bn1(self.conv1(x))
...
データとモデルをFP16へ、
明示的に変換が必要
データとモデルをFP16へ、
明示的に変換が必要
データとモデルをFP16へ、
明示的に変換が必要
最新版ではもっと楽に
22
最新版 (V6.3) でTENSORコアを使うには
環境変数を指定する or 内部の変数を実行時に変更する
export CHAINER_DTYPE=mixed16
環境変数
CHAINER_DTYPE
内部変数
chainer.config.dtype
chainer.config.dtype = 
chainer.mixed16
指定はこれで(基本的に)OK
23
最新版 (V6.3) でTENSORコアを使うには
精度を保つためのテクニックの有効化
optimizer.loss_scaling()
(API reference)
Loss scaling FP32 weight update
optimizer.use_fp32_update()
(API reference)
Accuracyが下がる場合、これらを有効に
(詳細は前々回資料のp.5-7を)
24
最新版 (V6.3) でTENSORコアを使うには
• cuDNNのワークスペースサイズを大きめに設定する
• chainer.cuda.set_max_workspace_size(1024*1024*1024) # 今回は1GiB
• cuDNNのAuto Tuningを使う
• chainer.config.autotune = True
(*) 使わないと、適切なアルゴリズムが選択されない、ことが多い
• cuDNNの高速Batch Normalization実装を使う
• chainer.config.cudnn_fast_batch_normalization = True
(*) fp32でも有効、オーバーフローの可能性があるので注意
プラスcuDNNの設定をデフォルトから変更 (前回より再掲)
25
実際に回してみます
ImageNetのサンプルを使って計測
394.1
519.1
585.4
684.8
732.4
0
100
200
300
400
500
600
700
800
FP32 (bs=128) mixed16
(bs=128)
mixed16
(bs=256)
mixed16 w/
DALI (bs=256)
mixed16 w/
DALI & fast
batchnorm
(bs=256)
images/sec.
実験条件
• 1xV100@16GB on DGX-1
• Chainer v6.3.0
• cuDNNのワークスペースは常に
1GiB
• cuDNNのautotuneも常時有効
• Chainerのサンプルにある、シン
グルGPU実装をベースに評価
26
まとめ
27
まとめ
• Chainer/ChainerRLで学習したモデルをONNXエクスポートすると、
TRTISを使ってすぐにAPIサーバとして動かせる
• クライアントはgRPC or HTTPで通信可能
• Atariのゲームは(ネットワークが速ければ)それなりに快適に動作
• TensorコアをChainerから使うには、dtypeにmixed16を設定し、
FP32 weight update、loss scalingを有効にする
28
(おまけ)
最近のNVIDIA
29
強化学習と関係する最近のNVIDIA
MLPerfの測定値更新しました
https://mlperf.org/
3 x DGX-1
1 x DGX-1での時間
(27.39 min.) を1GPU換算
30
強化学習と関係する最近のNVIDIA
実装は公開されています
https://mlperf.org/
https://github.com/mlperf/training_results_v0.6/
tree/master/NVIDIA/benchmarks/minigo
TensorFlow実装なのはごめんなさい……
31
組み込み関係も強化中
Jetson Nano/Xavier and more
https://github.com/NVIDIA-AI-IOT/jetbot
https://github.com/NVIDIA-AI-IOT/jetracer
https://developer.nvidia.com/embedded/
jetson-agx-xavier-developer-kit
Jetson AGX Xavier Developer Kit
https://developer.nvidia.com/embedded/
jetson-nano-developer-kit
Jetson Nano Developer Kit
32
GTC: CALL FOR TALKS/POSTERS NOW OPEN!
March 22-26, 2020
https://www.nvidia.com/en-us/gtc/present/call-for-submissions/
33
WE ARE HIRING!!
https://www.nvidia.com/en-us/about-nvidia/careers/
ChainerRL の学習済みモデルを gRPC 経由で使ってみる試み (+アルファ)

More Related Content

PDF
Chainer でのプロファイリングをちょっと楽にする話
PDF
Chainer on Azure 2 年の歴史
PDF
1000: 基調講演
PDF
研究を加速するChainerファミリー
PDF
GPU クラウド コンピューティング
PDF
NGC でインフラ環境整備の時間短縮!素早く始めるディープラーニング
PDF
Deep Learning Lab MeetUp 学習編 AzureインフラとBatch AI
PDF
20170518 eureka dli
Chainer でのプロファイリングをちょっと楽にする話
Chainer on Azure 2 年の歴史
1000: 基調講演
研究を加速するChainerファミリー
GPU クラウド コンピューティング
NGC でインフラ環境整備の時間短縮!素早く始めるディープラーニング
Deep Learning Lab MeetUp 学習編 AzureインフラとBatch AI
20170518 eureka dli

What's hot (20)

PDF
エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~
PDF
1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~
PPTX
機械学習 / Deep Learning 大全 (4) GPU編
PDF
マイクロソフトが考えるAI活用のロードマップ
PDF
GTC 2018 で発表されたディープラーニング最新情報
PDF
Jetson Xavier NX クラウドネイティブをエッジに
PDF
Chainer で Tensor コア (fp16) を使いこなす
PDF
20161210 jawsai
PDF
GTC 2016 基調講演からディープラーニング関連情報のご紹介
PPTX
コキュートスTfug
PDF
1070: CUDA プログラミング入門
PDF
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
PDF
NVIDIA GPU Cloud の紹介
PDF
ディープラーニングイメージで構築する快適・高速な機械学習環境
PDF
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
PDF
産総研AIクラウドでChainerMN
PDF
GPU スパコン最新情報
PDF
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
PDF
20171128分散深層学習とChainerMNについて
エヌビディアが加速するディープラーニング~進化するニューラルネットワークとその開発方法について~
1018: ディープラーニング最新技術情報~cuDNN 3、DIGITS 2、CUDA 7.5のご紹介~
機械学習 / Deep Learning 大全 (4) GPU編
マイクロソフトが考えるAI活用のロードマップ
GTC 2018 で発表されたディープラーニング最新情報
Jetson Xavier NX クラウドネイティブをエッジに
Chainer で Tensor コア (fp16) を使いこなす
20161210 jawsai
GTC 2016 基調講演からディープラーニング関連情報のご紹介
コキュートスTfug
1070: CUDA プログラミング入門
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
NVIDIA GPU Cloud の紹介
ディープラーニングイメージで構築する快適・高速な機械学習環境
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
産総研AIクラウドでChainerMN
GPU スパコン最新情報
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
20171128分散深層学習とChainerMNについて
Ad

Similar to ChainerRL の学習済みモデルを gRPC 経由で使ってみる試み (+アルファ) (20)

PDF
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
PPTX
Shiva 〜Nextremerをscale upする機械学習環境〜
PDF
Aws privte20110406 arai
PDF
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
PPTX
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
PDF
[GTCJ2018] Optimizing Deep Learning with Chainer PFN得居誠也
PDF
OHS#2 pythonでgreをつくってみる
PDF
20160728 hyperscale #03
PDF
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
PDF
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
PDF
人工知能のコードをハックする会 #2
PDF
Azure vm usacase and value.1.0.20.0618
PDF
20161122 gpu deep_learningcommunity#02
PDF
High performance python computing for data science
PPTX
高速な暗号実装のためにしてきたこと
PDF
Reco choku tech night #09 -reinvent2018報告会-
PDF
Machine Learning Nagoya 20161015
PDF
Unityでreflection入門
PPTX
ITコンサルタントが語る!OpenStackを活用した課題解決のやり方
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
Shiva 〜Nextremerをscale upする機械学習環境〜
Aws privte20110406 arai
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
[GTCJ2018] Optimizing Deep Learning with Chainer PFN得居誠也
OHS#2 pythonでgreをつくってみる
20160728 hyperscale #03
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
人工知能のコードをハックする会 #2
Azure vm usacase and value.1.0.20.0618
20161122 gpu deep_learningcommunity#02
High performance python computing for data science
高速な暗号実装のためにしてきたこと
Reco choku tech night #09 -reinvent2018報告会-
Machine Learning Nagoya 20161015
Unityでreflection入門
ITコンサルタントが語る!OpenStackを活用した課題解決のやり方
Ad

More from NVIDIA Japan (20)

PDF
HPC 的に H100 は魅力的な GPU なのか?
PDF
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
PDF
Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情
PDF
20221021_JP5.0.2-Webinar-JP_Final.pdf
PDF
開発者が語る NVIDIA cuQuantum SDK
PDF
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
PDF
NVIDIA HPC ソフトウエア斜め読み
PDF
HPC+AI ってよく聞くけど結局なんなの
PDF
Magnum IO GPUDirect Storage 最新情報
PDF
データ爆発時代のネットワークインフラ
PDF
Hopper アーキテクチャで、変わること、変わらないこと
PDF
GPU と PYTHON と、それから最近の NVIDIA
PDF
GTC November 2021 – テレコム関連アップデート サマリー
PDF
テレコムのビッグデータ解析 & AI サイバーセキュリティ
PDF
必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~
PDF
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
PDF
2020年10月29日 Jetson活用によるAI教育
PDF
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
PDF
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報
PDF
GTC 2020 発表内容まとめ
HPC 的に H100 は魅力的な GPU なのか?
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情
20221021_JP5.0.2-Webinar-JP_Final.pdf
開発者が語る NVIDIA cuQuantum SDK
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA HPC ソフトウエア斜め読み
HPC+AI ってよく聞くけど結局なんなの
Magnum IO GPUDirect Storage 最新情報
データ爆発時代のネットワークインフラ
Hopper アーキテクチャで、変わること、変わらないこと
GPU と PYTHON と、それから最近の NVIDIA
GTC November 2021 – テレコム関連アップデート サマリー
テレコムのビッグデータ解析 & AI サイバーセキュリティ
必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 Jetson活用によるAI教育
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報
GTC 2020 発表内容まとめ

ChainerRL の学習済みモデルを gRPC 経由で使ってみる試み (+アルファ)