SlideShare a Scribd company logo
10
Most read
12
Most read
19
Most read
Kazuhiro Yamasaki, Deep Learning Solution Architect, NVIDIA,
10/30/2019
GPU DEEP LEARNING COMMUNITY #12
TENSORRT INFERENCE
SERVERではじめる、
高性能な推論サーバ構築
2
AGENDA
ディープラーニングの推論処理
TensorRT Inference Server (TRTIS) とは?
デプロイに必要なこと
パフォーマンスチューニング
デモ:音声認識モデルのデプロイ
3
本日話す内容
サーバ側での推論に特化しています
(Jetsonでの推論はスコープ外です)
4
ディープラーニングにおける処理の分類
典型的には2つ
5
推論処理で気をつける指標
トレードオフの関係
スループット
(or 同時接続数)
遅延
精度
(accuracy, etc)
6
推論処理で気をつける指標
トレードオフの関係
スループット
(or 同時接続数)
遅延
精度
(accuracy, etc)
量子化 (特にINT8) で高速化
→ 何もしないと精度低下の可能性
(calibration 等で対処)
7
GPUを使った推論の場合
バッチ的に処理するほうが高速
1
3
2
ひとつずつ、順番に処理するのは効率が良くない
8
GPUを使った推論の場合
バッチ的に処理するほうが高速
1 2 3 1,2,3
複数の処理を束ねて実行することで、スループットを改善
(束ねるために待ちすぎると遅延が悪化)
9
GPUを使った推論の場合
特性を生かした処理のために必要な機構
一定時間内に受け付けた
複数の推論処理リクエストを束ねる
REQUEST QUEUE
GPU上に複数のモデルを展開し
同時に多数の処理を実行
CONCURRENT EXECUTION
1 2 3 1,2,3
10
TENSORRT INFERENCE SERVER (TRTIS)
GPUに最適化された推論サーバのOSS実装
Models supported
● TensorRT Plans
● TensorFlow GraphDef/SavedModel
● TensorFlow and TensorRT GraphDef
● PyTorch JIT (.pt)
● ONNX graph
● Caffe2 NetDef (ONNX import)
Multi-GPU support
Concurrent model execution
Server HTTP REST API/gRPC
Python/C++ client libraries
https://github.com/NVIDIA/tensorrt-inference-server
11
TENSORRT INFERENCE SERVER (TRTIS)
特徴的な機能
Concurrent Model Execution
複数モデル (同じモデルを複数個もOK) を同
時にGPU上で実行
CPU Model Inference Execution
CPUでの推論実行もサポート
Metrics
GPU使用率、推論回数、メモリ使用量、実
行時間など
Custom Backend
共有ライブラリとして実装された処理を
custom backendとして使用可能
Model Ensemble
複数のモデルの入出力をつないでパイプライン
化することも可能
Dynamic Batching
事前定義の最大数および最大遅延を基準
に、推論リクエストをバッチにまとめる
Multiple Model Format Support
TensorRT Plans
TensorFlow GraphDef/SavedModel
TensorFlow and TensorRT GraphDef
PyTorch JIT (.pt)
ONNX graph (ONNX Runtime)
Caffe2 NetDef (ONNX import path)
CMake build
ソースコードからビルドすることで、複数OSへの
ポーティング等が容易に
Streaming API
音声認識のようなストリーミング等もサポート
12
TRTISに学習済みモデルをデプロイするには?
モデルの配置と設定ファイル (config.pbtxt) の記述
models/
+-- resnet/
| +-- config.pbtxt
| +-- 1/
| | +-- saved_model.pb
| :
+-- ssd/
| +-- config.pbtxt
| +-- 1/
| +-- model.trtengine
:
設定ファイル
学習済みモデル学習済みモデル
モデルにバージョンを
定義可能
ディレクトリ構成
trtserver --model-repository=/models
起動コマンド
または NGC のコンテナイメージを利用 (本資料末尾参照)
13
TRTISに学習済みモデルをデプロイするには?
モデルの配置と設定ファイル (config.pbtxt) の記述
config.pbtxt (例)
name: "resnet"
platform: "tensorflow_savedmodel"
max_batch_size: 64
input {
name: "input"
data_type: TYPE_FP32
format: FORMAT_NHWC
dims: [ 224, 224, 3 ]
}
output {
name: "probabilities"
data_type: TYPE_FP32
dims: 1000
}
default_model_filename: "saved_model"
instance_group [
{
count: 1
kind: KIND_GPU
}
]
dynamic_batching {
preferred_batch_size: [ 16 ]
max_queue_delay_microseconds: 20000
}
14
パフォーマンスに影響する主な設定項目
同時実行数とリクエストキュー
config.pbtxt (例)
default_model_filename: "saved_model"
instance_group [
{
count: 1
kind: KIND_GPU
}
]
dynamic_batching {
preferred_batch_size: [ 16 ]
max_queue_delay_microseconds: 20000
}
GPU上にモデルを何個
展開するか指定
リクエストを最大いくつ
束ねるかの指定
キューでの最大
待ち時間 (マイクロ秒)
15
パフォーマンスに影響する主な設定項目
同時実行数とリクエストキュー
https://cloud.withgoogle.com/next/
tokyo/speakers?session=D1-2-S12
設定をチューニングした一例↓
GCP で構築する高性能かつスケーラブルなオンライン予測システム
https://medium.com/google-cloud-jp/building-high-
performance-online-prediction-system-on-gcp-12b57ca44284
16
とはいえ画像ばかりでは
面白くないですよね?
17
デモ
音声認識モデルを例に
Jasper: An End-to-End Convolutional Neural Acoustic Model
https://github.com/NVIDIA/DeepLearningExamples/tree/
master/PyTorch/SpeechRecognition/Jasper
18
デモ
音声認識モデルを例に
config.pbtxt
name: "jasper"
platform: "tensorrt_plan"
max_batch_size: 1
input [
{
name: "FEATURES"
data_type: TYPE_FP32
dims: [ 64, 3600 ]
}
]
output [
{
name: "LOGITS"
data_type: TYPE_FP32
dims: [ 1800, 29 ]
}
]
default_model_filename: "model.engine"
instance_group [
{
count: 1
kind: KIND_GPU
}
]
19
デモ
音声認識モデルを例に
.js
Backend server
TRTIS
Frontend server
1.
2.
3.
Full
I am aiI am AI.
20
余談: K8Sでオートスケール
Prometheusとの連携でさらに高度な監視も
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: inference-server-v1-hpa
namespace: default
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: inference-server-v1
minReplicas: 2
maxReplicas: 5
設定の一例
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 50
スケーリングする基準を設定
(Prometheus経由の
metricsも利用可能)
21
まとめ
TensorRT Inference Serverを使うと、高速な推論サーバを簡単に構築できる
TensorRTだけではなく、多数のモデルフォーマットに対応
画像以外のデータにも対応
Kubernetesと組み合わせることで、スケーリング等にも対応できる
Key takeaways
TensorRT Inference Serverではじめる、 高性能な推論サーバ構築
23
APPENDIX
24
TRTISのDOCKERコンテナイメージ
NGCから毎月リリース中
https://ngc.nvidia.com/catalog/containers/nvidia:tensorrtserver
docker run --gpus all --rm --shm-size=1g --ulimit memlock=-1 
--ulimit stack=67108864 -p8000:8000 -p8001:8001 –p8002:8002 
-v/path/to/model/store:/tmp/models 
nvcr.io/nvidia/tensorrtserver:19.xx-py3 
/opt/tensorrtserver/bin/trtserver --model-store=/tmp/models
起動コマンド一例 (docker CE19.03以降) ↓

More Related Content

PDF
モデルアーキテクチャ観点からのDeep Neural Network高速化
PDF
ソーシャルゲームのためのデータベース設計
PDF
機械学習モデルの判断根拠の説明
PPTX
畳み込みニューラルネットワークの高精度化と高速化
PDF
いまさら聞けない!CUDA高速化入門
PDF
Deeplearning輪読会
PPTX
近年のHierarchical Vision Transformer
PDF
3次元レジストレーション(PCLデモとコード付き)
モデルアーキテクチャ観点からのDeep Neural Network高速化
ソーシャルゲームのためのデータベース設計
機械学習モデルの判断根拠の説明
畳み込みニューラルネットワークの高精度化と高速化
いまさら聞けない!CUDA高速化入門
Deeplearning輪読会
近年のHierarchical Vision Transformer
3次元レジストレーション(PCLデモとコード付き)

What's hot (20)

PPTX
全体セミナー20170629
PDF
機械学習で泣かないためのコード設計
PDF
POMDP下での強化学習の基礎と応用
PDF
20190619 オートエンコーダーと異常検知入門
PPTX
BERT分類ワークショップ.pptx
PDF
協調フィルタリングを利用した推薦システム構築
PDF
最適化超入門
PDF
協調フィルタリング入門
PPTX
Curriculum Learning (関東CV勉強会)
PDF
BERT入門
PDF
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
PDF
見やすいプレゼン資料の作り方 - リニューアル増量版
PDF
TensorFlow XLAは、 中で何をやっているのか?
PDF
Rustに触れて私のPythonはどう変わったか
PDF
Transformerを多層にする際の勾配消失問題と解決法について
PPTX
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
PPTX
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
PDF
TVM の紹介
PDF
[DL輪読会]Deep Learning 第15章 表現学習
PPTX
Transformerを雰囲気で理解する
全体セミナー20170629
機械学習で泣かないためのコード設計
POMDP下での強化学習の基礎と応用
20190619 オートエンコーダーと異常検知入門
BERT分類ワークショップ.pptx
協調フィルタリングを利用した推薦システム構築
最適化超入門
協調フィルタリング入門
Curriculum Learning (関東CV勉強会)
BERT入門
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
見やすいプレゼン資料の作り方 - リニューアル増量版
TensorFlow XLAは、 中で何をやっているのか?
Rustに触れて私のPythonはどう変わったか
Transformerを多層にする際の勾配消失問題と解決法について
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
TVM の紹介
[DL輪読会]Deep Learning 第15章 表現学習
Transformerを雰囲気で理解する
Ad

Similar to TensorRT Inference Serverではじめる、 高性能な推論サーバ構築 (20)

PDF
使ってみませんか?pg hint_plan
PDF
Deeplearning bank marketing dataset
PDF
perfを使ったPostgreSQLの解析(前編)
PDF
Orb dlt technical_overview(特許情報なし)
PDF
マイクロソフトが考えるAI活用のロードマップ
PDF
メディアコンテンツを支えるデータストアサービスをAWSで
PDF
[B16] NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫るby Toshimitsu hara
PDF
Quantastorを使ったhybrid cloudについて_20140725
PDF
SpectreとMeltdown:最近のCPUの深い話
PPTX
【宝くじ仮説】The Lottery Ticket Hypothesis: Finding Small, Trainable Neural Networks
PDF
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
PDF
【17-B-3】 チケット駆動開発  タスクマネジメントからAgile開発へ part1
PPTX
Deep Learning on Rescale - Oct/11/2016 at Rescale night
PDF
サポートスペシャリストが語るXenDesktop / XenApp環境での最速トラブルシューティング
PDF
TensorFlowの使い方(in Japanese)
PDF
Jubatus分類器の活用テクニック
PDF
ヒーロー島 Visual Studio 2012
PPTX
NW入門
PPTX
ビッグデータ&データマネジメント展
PPTX
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
使ってみませんか?pg hint_plan
Deeplearning bank marketing dataset
perfを使ったPostgreSQLの解析(前編)
Orb dlt technical_overview(特許情報なし)
マイクロソフトが考えるAI活用のロードマップ
メディアコンテンツを支えるデータストアサービスをAWSで
[B16] NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫るby Toshimitsu hara
Quantastorを使ったhybrid cloudについて_20140725
SpectreとMeltdown:最近のCPUの深い話
【宝くじ仮説】The Lottery Ticket Hypothesis: Finding Small, Trainable Neural Networks
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
【17-B-3】 チケット駆動開発  タスクマネジメントからAgile開発へ part1
Deep Learning on Rescale - Oct/11/2016 at Rescale night
サポートスペシャリストが語るXenDesktop / XenApp環境での最速トラブルシューティング
TensorFlowの使い方(in Japanese)
Jubatus分類器の活用テクニック
ヒーロー島 Visual Studio 2012
NW入門
ビッグデータ&データマネジメント展
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
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
Jetson Xavier NX クラウドネイティブをエッジに
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 ソフトウェアと関連情報
Jetson Xavier NX クラウドネイティブをエッジに

TensorRT Inference Serverではじめる、 高性能な推論サーバ構築