SlideShare a Scribd company logo
Faster Python Meet up LT会 #1
Tensor コアを使った
PyTorch の高速化
2019/04/08
@fam_taro
Agenda
1. Tensorコア is 何
2. PyTorchで Tensor コア使うには
3. 推論(予測)で使ってみた(M2Det)
4. 学習で Tensorコアを使いたい場合
1
1. Tensorコア is 何
 16bit浮動小数点(FP16) の行列演算に特化した計算用コア
 PyTorch 等の深層学習フレームワークを使うと、デフォルトでは 32bit浮動小数点(FP32) で
諸々の計算が行われる
 NVIDIA GPU のうち Volta 世代以降の一部に乗っている
 Turing でも RTX 20 じゃないと乗ってない(GTX 1660, 60Ti には乗っていない)
 Pascal, Maxwell, Kepler には無い(無慈悲)
 GPU 例
 TITAN V
 GeForce RTX 20シリーズ(60, 70, 80, 80Ti)
 TITAN RTX
 Tesla V100 (<- GCP で試せる!)
 (今後より普及すると個人的に思ってます)
 参考リンク
 https://wikiwiki.jp/nvidiavga/GPU%E4%BB%95%E6%A7%98%E4%B8%80%E8%A6%A7%E8%A1%A8
 https://ja.wikipedia.org/wiki/NVIDIA_GeForce
2
https://www.nvidia.com/content/apac/gtc/ja/pdf/2017/1040.pdf
1. Tensorコア is 何
 Tensor コア使わないと FP16 にしても速度は 2倍程度
 Tensor コア使うと FP16 にしたら 7倍 以上!
 ただし使うためには制約が多い…
 CUDA9 以降
 cuDNN 7 以降
 FP16 で扱うことを明記(ライブラリのコマンド等で)
 Conv 層の入力・出力チャンネル数が 8の倍数
 全ての層が対応しているわけではない(むしろ一部しか)
 あくまで現時点なので今後は緩和されるかも… 3
https://www.slideshare.net/NVIDIAJapan/chainer-tensor-fp16
2. PyTorchで Tensor コア使うには
 FP16 を使うことを明記すればフレームワークが勝手に
使ってくれる(ことが多い)
 最近のバージョンにしないといけないが…
 PyTorch では…
 Model と Input に対し “.half()” を付ける
 半精度にするという意味 -> FP16 にする
 Output は FP16 とは限らないので注意
 Conv 層の入力と出力チャンネル数を 8 の倍数にする
 地味にきつい制約
 Pre-train model だとうまく使えないケースが出てくる
 明示的に Tensorコアを使うようにはできない(ぽい?)
4
3. 推論(予測)で使ってみた(M2Det)
 M2Det とは
 論文: https://qijiezhao.github.io/imgs/m2det.pdf
 実装: https://github.com/qijiezhao/M2Det
 最近出てきた検出モデル
 YOLOv3 より速くて精度が高い(らしい)
 自分のデータでは学習全くできてないですが😢
 実験条件
 COCO dataset (Detection ではメジャーなやつ)
 学習済みモデル(512 x 512)を使用
 公式リポジトリにある test.py を使用
 model(input) の時間と後処理(NMS)の時間を計測
 足した時間を使って FPS を出す(高いほど良い)
 5,000 枚のデータに対して推論(予測) をして平均時間をとる
 元論文は 1,000 枚で取っていた
 モデルの精度は mAP 5
3. 推論(予測)で使ってみた(M2Det)
 実行時間や Tensor コアを使っているか確認するために使ったコマンド
 time.time() 関数
 GPU絡むため下記の方が良さそうですが今回は time() 関数で時間とりました😭
 torch.cuda.Event(enable_timing=True)
 profiler
 $ python -m torch.utils.bottleneck test.py ~~~
 PyTorch の提供する profiler
 検出の後処理(今回は NMS) がボトルネックになっていないか確認するために使用
 $ nvprof python ~~~
 NVIDIA の提供する profiler コマンド。Tensor コア使っているか見れる
 $ nvcc ~~~ (未使用)
 nvprof のコマンドを GUI でリッチに見れるらしい。ただしアプリサイズデカい(数GB) 6
3. 推論(予測)で使ってみた(M2Det)
 実行結果
7
GPU
mAP
(精度)
Detect time
per
image [ms]
Nms time
Per
image [ms]
Total [ms] FPS
元論文
(リポジトリ上の値)
Titan X PASCAL 37.8 55.5 18.0
PyTorch 0.4.1
(公式指定バージョン)
Titan V 37.8 74.3 9.5 83.8 11.9
PyTorch 0.4.1 + FP16 Titan V 37.8 51.3 9.5 60.8 16.4
PyTorch 1.0.1.post2 Titan V 37.8 56.6 9.7 66.3 15.1
PyTorch 1.0.1.post2
+ FP16
Titan V 37.8 43.5 9.6 53.1 18.8
3. 推論(予測)で使ってみた(M2Det)
 実行結果
8
GPU
mAP
(精度)
Detect time
per
image [ms]
Nms time
Per
image [ms]
Total [ms] FPS
元論文
(リポジトリ上の値)
Titan X PASCAL 37.8 55.5 18.0
PyTorch 0.4.1
(公式指定バージョン)
Titan V 37.8 74.3 9.5 83.8 11.9
PyTorch 0.4.1 + FP16 Titan V 37.8 51.3 9.5 60.8 16.4
PyTorch 1.0.1.post2 Titan V 37.8 56.6 9.7 66.3 15.1
PyTorch 1.0.1.post2
+ FP16
Titan V 37.8 43.5 9.6 53.1 18.8
“PyTorch1.0.1 にして”
かつ “FP16 使う” と最も速くなる
→ 最初の 1.5倍
(かろうじて元論文の FPS を超えた)
予測時のみなら FP16にしても精
度は変わらない
PyTorch のバージョン上げたら速くな
るし、FP16にしても速くなる
4. 学習で Tensorコアを使いたい場合
 とりあえず全部 FP16 にすればいいんでしょ?→ No!
 勾配計算時にかなり影響する (勾配が消える場合もある)
 → 精度が大きく下がる場合がある
 Mixed Precision Training
 参考リンク: https://www.slideshare.net/NVIDIAJapan/chainer-tensor-fp16
 FP16 と FP32 による計算を mix した学習方法
 具体的には以下のようなテクニックが必要
 ロススケーリング : ロス値を要所要所でスケールあっぷして勾配消失を緩和
 FP32 ウェイト更新 : Forward と Backward は FP16, Update で FP32を使用
 上記を全て自分でやると大変!(学びはあると思いますが…)
 → apex を使うと比較的手軽にできる(https://github.com/NVIDIA/apex)
 NVIDIA が提供する PyTorch 用 Automatic Mixed Precision(AMP) ツール
 元のコードに対し数行足すだけで Mixed Precision Training できるとのこと
 ただし install 時は CUDA や PyTorch のバージョンに気をつけないといけない 9
References
 [2018年版 機械学習ハードウェアのState of the Artを考える ~CPU, GPU, TPUを添えて~ -
Qiita](https://qiita.com/arutema47/items/72621f17b65381657a52)
 [Training Neural Networks with Mixed Precision - NVIDIA](http://on-demand.gputechconf.com/gtc-taiwan/2018/pdf/5-
1_Internal%20Speaker_Michael%20Carilli_PDF%20For%20Sharing.pdf)
 [Chainer で Tensor コア (fp16) を使いこなす](https://www.slideshare.net/NVIDIAJapan/chainer-tensor-fp16)
 [Chainer における深層学習の高速化](https://www.nvidia.com/content/apac/gtc/ja/pdf/2018/2033.pdf)
 [VOLTA AND TURING: ARCHITECTURE AND PERFORMANCE OPTIMIZATION NVIDIA](https://www.nvidia.com/content/apac/gtc/ja/pdf/2018/2051.pdf)
 [Training with Mixed Precision :: Deep Learning SDK Documentation](https://docs.nvidia.com/deeplearning/sdk/mixed-precision-
training/index.html#pytorch)
 [GPU仕様一覧表 - NVIDIA GeForce Wiki*](https://wikiwiki.jp/nvidiavga/GPU%E4%BB%95%E6%A7%98%E4%B8%80%E8%A6%A7%E8%A1%A8)
10
おわり
11
ありがとうございました
補足: nvprof の結果(PyTorch 0.4.1)
12
補足: nvprof の結果(PyTorch 1.0.0)
13

More Related Content

What's hot

Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
Sho Takase
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
RyuichiKanoh
 
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII
 
研究効率化Tips Ver.2
研究効率化Tips Ver.2研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII
 
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~
Hideki Tsunashima
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
Jun Okumura
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
正志 坪坂
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門Shuyo Nakatani
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Preferred Networks
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイ
cvpaper. challenge
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
Hideo Terada
 
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西
Keigo Nishida
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
joisino
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
Masahiro Suzuki
 
Lucas kanade法について
Lucas kanade法についてLucas kanade法について
Lucas kanade法について
Hitoshi Nishimura
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
Deep Learning JP
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
Hirokatsu Kataoka
 

What's hot (20)

Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
 
研究効率化Tips Ver.2
研究効率化Tips Ver.2研究効率化Tips Ver.2
研究効率化Tips Ver.2
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
 
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイ
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
 
Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西Layer Normalization@NIPS+読み会・関西
Layer Normalization@NIPS+読み会・関西
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
Lucas kanade法について
Lucas kanade法についてLucas kanade法について
Lucas kanade法について
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
 

Similar to Tensor コアを使った PyTorch の高速化

【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
Yasuhiro Yoshimura
 
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツA100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
Kuninobu SaSaki
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
Developers Summit
 
GPUディープラーニング最新情報
GPUディープラーニング最新情報GPUディープラーニング最新情報
GPUディープラーニング最新情報
ReNom User Group
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
ManaMurakami1
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
Daiyu Hatakeyama
 
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
日本マイクロソフト株式会社
 
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
ハイシンク創研 / Laboratory of Hi-Think Corporation
 
Jetson Xavier NX クラウドネイティブをエッジに
Jetson Xavier NX クラウドネイティブをエッジにJetson Xavier NX クラウドネイティブをエッジに
Jetson Xavier NX クラウドネイティブをエッジに
NVIDIA Japan
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
ManaMurakami1
 
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
Deep Learning Lab(ディープラーニング・ラボ)
 
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
Insight Technology, Inc.
 
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
Yusuke Naka
 
Getting Started with Jetson Nano
Getting Started with Jetson NanoGetting Started with Jetson Nano
Getting Started with Jetson Nano
NVIDIA Japan
 
GTC 2017 基調講演からディープラーニング関連情報のご紹介
GTC 2017 基調講演からディープラーニング関連情報のご紹介GTC 2017 基調講演からディープラーニング関連情報のご紹介
GTC 2017 基調講演からディープラーニング関連情報のご紹介
NVIDIA Japan
 
Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16
tomoaki0705
 
みんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasみんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extras
Takuji Tahara
 
Zenkoku78
Zenkoku78Zenkoku78
Zenkoku78
Takuma Usui
 
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
MITSUNARI Shigeo
 
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
Takehiro Kudou
 

Similar to Tensor コアを使った PyTorch の高速化 (20)

【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
 
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
A100 GPU 搭載! P4d インスタンス使いこなしのコツA100 GPU 搭載! P4d インスタンス使いこなしのコツ
A100 GPU 搭載! P4d インスタンス 使いこなしのコツ
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
 
GPUディープラーニング最新情報
GPUディープラーニング最新情報GPUディープラーニング最新情報
GPUディープラーニング最新情報
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
 
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
【de:code 2020】 AI とデータ サイエンスを加速する NVIDIA の最新 GPU アーキテクチャ
 
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
 
Jetson Xavier NX クラウドネイティブをエッジに
Jetson Xavier NX クラウドネイティブをエッジにJetson Xavier NX クラウドネイティブをエッジに
Jetson Xavier NX クラウドネイティブをエッジに
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
 
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
[Track2-2] 最新のNVIDIA AmpereアーキテクチャによるNVIDIA A100 TensorコアGPUの特長とその性能を引き出す方法
 
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
 
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
実践 WebRTC 〜最新事例と開発ノウハウの紹介〜
 
Getting Started with Jetson Nano
Getting Started with Jetson NanoGetting Started with Jetson Nano
Getting Started with Jetson Nano
 
GTC 2017 基調講演からディープラーニング関連情報のご紹介
GTC 2017 基調講演からディープラーニング関連情報のご紹介GTC 2017 基調講演からディープラーニング関連情報のご紹介
GTC 2017 基調講演からディープラーニング関連情報のご紹介
 
Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16Gpgpu tomoaki-fp16
Gpgpu tomoaki-fp16
 
みんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasみんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extras
 
Zenkoku78
Zenkoku78Zenkoku78
Zenkoku78
 
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
 
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
 

More from Yusuke Fujimoto

Paper LT: Mask Scoring R-CNN
Paper LT:  Mask Scoring R-CNNPaper LT:  Mask Scoring R-CNN
Paper LT: Mask Scoring R-CNN
Yusuke Fujimoto
 
Paper: Bounding Box Regression with Uncertainty for Accurate Object Detection
Paper: Bounding Box Regression with Uncertainty for Accurate Object DetectionPaper: Bounding Box Regression with Uncertainty for Accurate Object Detection
Paper: Bounding Box Regression with Uncertainty for Accurate Object Detection
Yusuke Fujimoto
 
Paper: Objects as Points(CenterNet)
Paper: Objects as Points(CenterNet)Paper: Objects as Points(CenterNet)
Paper: Objects as Points(CenterNet)
Yusuke Fujimoto
 
Paper: seq2seq 20190320
Paper: seq2seq 20190320Paper: seq2seq 20190320
Paper: seq2seq 20190320
Yusuke Fujimoto
 
Paper: clinically accuratechestx-rayreport generation_noself
Paper: clinically accuratechestx-rayreport generation_noselfPaper: clinically accuratechestx-rayreport generation_noself
Paper: clinically accuratechestx-rayreport generation_noself
Yusuke Fujimoto
 
論文LT会用資料: Attention Augmented Convolution Networks
論文LT会用資料: Attention Augmented Convolution Networks論文LT会用資料: Attention Augmented Convolution Networks
論文LT会用資料: Attention Augmented Convolution Networks
Yusuke Fujimoto
 

More from Yusuke Fujimoto (6)

Paper LT: Mask Scoring R-CNN
Paper LT:  Mask Scoring R-CNNPaper LT:  Mask Scoring R-CNN
Paper LT: Mask Scoring R-CNN
 
Paper: Bounding Box Regression with Uncertainty for Accurate Object Detection
Paper: Bounding Box Regression with Uncertainty for Accurate Object DetectionPaper: Bounding Box Regression with Uncertainty for Accurate Object Detection
Paper: Bounding Box Regression with Uncertainty for Accurate Object Detection
 
Paper: Objects as Points(CenterNet)
Paper: Objects as Points(CenterNet)Paper: Objects as Points(CenterNet)
Paper: Objects as Points(CenterNet)
 
Paper: seq2seq 20190320
Paper: seq2seq 20190320Paper: seq2seq 20190320
Paper: seq2seq 20190320
 
Paper: clinically accuratechestx-rayreport generation_noself
Paper: clinically accuratechestx-rayreport generation_noselfPaper: clinically accuratechestx-rayreport generation_noself
Paper: clinically accuratechestx-rayreport generation_noself
 
論文LT会用資料: Attention Augmented Convolution Networks
論文LT会用資料: Attention Augmented Convolution Networks論文LT会用資料: Attention Augmented Convolution Networks
論文LT会用資料: Attention Augmented Convolution Networks
 

Recently uploaded

MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 

Recently uploaded (16)

MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 

Tensor コアを使った PyTorch の高速化

  • 1. Faster Python Meet up LT会 #1 Tensor コアを使った PyTorch の高速化 2019/04/08 @fam_taro
  • 2. Agenda 1. Tensorコア is 何 2. PyTorchで Tensor コア使うには 3. 推論(予測)で使ってみた(M2Det) 4. 学習で Tensorコアを使いたい場合 1
  • 3. 1. Tensorコア is 何  16bit浮動小数点(FP16) の行列演算に特化した計算用コア  PyTorch 等の深層学習フレームワークを使うと、デフォルトでは 32bit浮動小数点(FP32) で 諸々の計算が行われる  NVIDIA GPU のうち Volta 世代以降の一部に乗っている  Turing でも RTX 20 じゃないと乗ってない(GTX 1660, 60Ti には乗っていない)  Pascal, Maxwell, Kepler には無い(無慈悲)  GPU 例  TITAN V  GeForce RTX 20シリーズ(60, 70, 80, 80Ti)  TITAN RTX  Tesla V100 (<- GCP で試せる!)  (今後より普及すると個人的に思ってます)  参考リンク  https://wikiwiki.jp/nvidiavga/GPU%E4%BB%95%E6%A7%98%E4%B8%80%E8%A6%A7%E8%A1%A8  https://ja.wikipedia.org/wiki/NVIDIA_GeForce 2 https://www.nvidia.com/content/apac/gtc/ja/pdf/2017/1040.pdf
  • 4. 1. Tensorコア is 何  Tensor コア使わないと FP16 にしても速度は 2倍程度  Tensor コア使うと FP16 にしたら 7倍 以上!  ただし使うためには制約が多い…  CUDA9 以降  cuDNN 7 以降  FP16 で扱うことを明記(ライブラリのコマンド等で)  Conv 層の入力・出力チャンネル数が 8の倍数  全ての層が対応しているわけではない(むしろ一部しか)  あくまで現時点なので今後は緩和されるかも… 3 https://www.slideshare.net/NVIDIAJapan/chainer-tensor-fp16
  • 5. 2. PyTorchで Tensor コア使うには  FP16 を使うことを明記すればフレームワークが勝手に 使ってくれる(ことが多い)  最近のバージョンにしないといけないが…  PyTorch では…  Model と Input に対し “.half()” を付ける  半精度にするという意味 -> FP16 にする  Output は FP16 とは限らないので注意  Conv 層の入力と出力チャンネル数を 8 の倍数にする  地味にきつい制約  Pre-train model だとうまく使えないケースが出てくる  明示的に Tensorコアを使うようにはできない(ぽい?) 4
  • 6. 3. 推論(予測)で使ってみた(M2Det)  M2Det とは  論文: https://qijiezhao.github.io/imgs/m2det.pdf  実装: https://github.com/qijiezhao/M2Det  最近出てきた検出モデル  YOLOv3 より速くて精度が高い(らしい)  自分のデータでは学習全くできてないですが😢  実験条件  COCO dataset (Detection ではメジャーなやつ)  学習済みモデル(512 x 512)を使用  公式リポジトリにある test.py を使用  model(input) の時間と後処理(NMS)の時間を計測  足した時間を使って FPS を出す(高いほど良い)  5,000 枚のデータに対して推論(予測) をして平均時間をとる  元論文は 1,000 枚で取っていた  モデルの精度は mAP 5
  • 7. 3. 推論(予測)で使ってみた(M2Det)  実行時間や Tensor コアを使っているか確認するために使ったコマンド  time.time() 関数  GPU絡むため下記の方が良さそうですが今回は time() 関数で時間とりました😭  torch.cuda.Event(enable_timing=True)  profiler  $ python -m torch.utils.bottleneck test.py ~~~  PyTorch の提供する profiler  検出の後処理(今回は NMS) がボトルネックになっていないか確認するために使用  $ nvprof python ~~~  NVIDIA の提供する profiler コマンド。Tensor コア使っているか見れる  $ nvcc ~~~ (未使用)  nvprof のコマンドを GUI でリッチに見れるらしい。ただしアプリサイズデカい(数GB) 6
  • 8. 3. 推論(予測)で使ってみた(M2Det)  実行結果 7 GPU mAP (精度) Detect time per image [ms] Nms time Per image [ms] Total [ms] FPS 元論文 (リポジトリ上の値) Titan X PASCAL 37.8 55.5 18.0 PyTorch 0.4.1 (公式指定バージョン) Titan V 37.8 74.3 9.5 83.8 11.9 PyTorch 0.4.1 + FP16 Titan V 37.8 51.3 9.5 60.8 16.4 PyTorch 1.0.1.post2 Titan V 37.8 56.6 9.7 66.3 15.1 PyTorch 1.0.1.post2 + FP16 Titan V 37.8 43.5 9.6 53.1 18.8
  • 9. 3. 推論(予測)で使ってみた(M2Det)  実行結果 8 GPU mAP (精度) Detect time per image [ms] Nms time Per image [ms] Total [ms] FPS 元論文 (リポジトリ上の値) Titan X PASCAL 37.8 55.5 18.0 PyTorch 0.4.1 (公式指定バージョン) Titan V 37.8 74.3 9.5 83.8 11.9 PyTorch 0.4.1 + FP16 Titan V 37.8 51.3 9.5 60.8 16.4 PyTorch 1.0.1.post2 Titan V 37.8 56.6 9.7 66.3 15.1 PyTorch 1.0.1.post2 + FP16 Titan V 37.8 43.5 9.6 53.1 18.8 “PyTorch1.0.1 にして” かつ “FP16 使う” と最も速くなる → 最初の 1.5倍 (かろうじて元論文の FPS を超えた) 予測時のみなら FP16にしても精 度は変わらない PyTorch のバージョン上げたら速くな るし、FP16にしても速くなる
  • 10. 4. 学習で Tensorコアを使いたい場合  とりあえず全部 FP16 にすればいいんでしょ?→ No!  勾配計算時にかなり影響する (勾配が消える場合もある)  → 精度が大きく下がる場合がある  Mixed Precision Training  参考リンク: https://www.slideshare.net/NVIDIAJapan/chainer-tensor-fp16  FP16 と FP32 による計算を mix した学習方法  具体的には以下のようなテクニックが必要  ロススケーリング : ロス値を要所要所でスケールあっぷして勾配消失を緩和  FP32 ウェイト更新 : Forward と Backward は FP16, Update で FP32を使用  上記を全て自分でやると大変!(学びはあると思いますが…)  → apex を使うと比較的手軽にできる(https://github.com/NVIDIA/apex)  NVIDIA が提供する PyTorch 用 Automatic Mixed Precision(AMP) ツール  元のコードに対し数行足すだけで Mixed Precision Training できるとのこと  ただし install 時は CUDA や PyTorch のバージョンに気をつけないといけない 9
  • 11. References  [2018年版 機械学習ハードウェアのState of the Artを考える ~CPU, GPU, TPUを添えて~ - Qiita](https://qiita.com/arutema47/items/72621f17b65381657a52)  [Training Neural Networks with Mixed Precision - NVIDIA](http://on-demand.gputechconf.com/gtc-taiwan/2018/pdf/5- 1_Internal%20Speaker_Michael%20Carilli_PDF%20For%20Sharing.pdf)  [Chainer で Tensor コア (fp16) を使いこなす](https://www.slideshare.net/NVIDIAJapan/chainer-tensor-fp16)  [Chainer における深層学習の高速化](https://www.nvidia.com/content/apac/gtc/ja/pdf/2018/2033.pdf)  [VOLTA AND TURING: ARCHITECTURE AND PERFORMANCE OPTIMIZATION NVIDIA](https://www.nvidia.com/content/apac/gtc/ja/pdf/2018/2051.pdf)  [Training with Mixed Precision :: Deep Learning SDK Documentation](https://docs.nvidia.com/deeplearning/sdk/mixed-precision- training/index.html#pytorch)  [GPU仕様一覧表 - NVIDIA GeForce Wiki*](https://wikiwiki.jp/nvidiavga/GPU%E4%BB%95%E6%A7%98%E4%B8%80%E8%A6%A7%E8%A1%A8) 10