2017年7月に開催されたPyData.Tokyo Meetup #14のメインセッションである「NVIDIA GPUで始めるディープラーニング」のメモです。
- スピーカー
- 村上 真奈
- NVIDIA Corporation
- ソリューションアーキテクト、CUDA エンジニア
- もともとは、画像処理のエンジニアをやっていた
- NVIDA社について
- 従業員は11,000人
- 70%がエンジニア、意外とソフトウェアエンジニアが多い
- 日本は90人、エンジニアは40~50人くらい
- Nintendo SwitchのGPUもNVIDAのが入っている
NVIDA GPUについて
- GPUの歴史
- GPUロードマップ
- GPUの性能
- 3.95 TF
- 1秒間に不動点少数の計算が、3.95回できる
- Compute Capability(CC)
- CUDA GPUs | NVIDIA Developer
- 3.95 TF
ディープラーニングに最適なGPU
- 学習にも推論にもGPUは使われている
- ニューラルネットの層
- GoogleNet(22層)
- ResNet(152層)
- 学習精度を上げるには、層を増やしたり、データを増やしたり…
- 任意のネットワークを高速にするのは難しい
- FPGAは特定のネットワークに特化している
- 最近のCUDAは開発しやすくなった
- CUDA C/C++で記述可能
- ディープラーニング向けに特化
- 学習におすすめのGPU
- Tesla K80, M40, P100(SXM2), P100(PCIM), P40
- 推論におすすめのGPU
- Tesla M4, P4
- 補助電源がいらない、50-75W
- P40, P4はFP64をハードウェアとしてはサポートしていない
- ソフトウェアとしては計算できるが、遅くなる
- 2つのPASCAL
- GP100 CC 6.0
- FP64をサポートしている
- INT8をサポートしていない
- GP102 CC 6.1
- FP64をサポートしていない
- FP16をサポートしていない
- INT8をサポートしている
- GP100 CC 6.0
- どのハードウェアがなにをサポートしているかはここに書いてある
- かなり深いところにあるので、たどり着くのは難しい
- 数字は1秒間の処理回数?
- Voltaになると、このややこしい問題は解決する
- 今年の秋口とかに、世に出てくるらしい?
- CVPR 2017でV100を配った
- 東京大学の原田先生ももらったらしい
- NVIDAのエンジニアは、Caffe担当者や、Chainer担当者がついている
- Chainerの担当者はNVIDA Japanに担当者いる
ディープラーニングSDK / DIGIT
- 会場に参加している人へのアンケート(挙手)では、Tensorflow(Keras)とChainerが人気
- GPUを使うとうまくいくと20倍くらい早くなる
- NVIDA Linkでつなげると高速に通信ができる
- NV Linkでつなげると、GPUの数でリニアに精度があがる
- NVIDA ディープラーニング SDK
- cuDNN
- DNNのプリミティブ群
- Tensorflowとかのライブラリは、cuDNNをよんでいる
- バージョンもすごい勢いであがってる
- 今日(2017.7.26)は7.0がでてるはずだが、まだでていない、来週にでるはず
- これまでCNN系の最適化/高速化に注力していたが、
- 6.0からRNN系の高速化に注力している
- NCCL(にくる)
- cuDNN
- DIGITS
- WebベースのディープラーニングGPUトレーニングシステム
- 時系列分析はできない
- 画像認識が中心
- CaffeeとTouchに対応
- DIGITS 6よりTensorFlowに対応、GANに対応
- NVIDIA DIGITS | NVIDIA Developer かdockerイメージをpullするのが楽
- AWSのAMIもある
- githubからインストールは大変
nvidia-docker
- 生でdockerから使うと、GPUを使うのが大変
- これを継承してtensorflowのイメージとかがある
- python2と3の両立などで、環境が壊れることが防げる
- コンテナを起動するときに明示的にどのGPUを利用するか指定できる
- nvidia-docker-plugin
- GPUのリソース状態をRESTで取得できる
- NVIDA社内の環境に入ってデモ