SlideShare a Scribd company logo
1 of 10
Download to read offline
2018/07/19 Docker Meetup Tokyo #24 LT
谷脇 大輔 @dtaniwaki
ChainerMNをDocker containerで
動かす
1
自己紹介
2
dtaniwaki
谷脇 大輔 / Daisuke Taniwaki
業務
社内で運用している機械学習向けクラスターやツールの開発・運用
経歴
2008~2012 台湾トレンドマイクロでWebクローラの開発
2012~2014 ニューヨークで食べログのアメリカ版の立ち上げ
2014~2017 Kaizen PlatformにてWeb Page Optimization Platformの開発
2017~現在 Preferred Networks
言語
日本語、英語、中国語
Ruby, JavaScript, C++ → Python, Scala
• PFNが開発しているPython 製の深層学習向けフレームワーク
• 深層学習に必要な計算 (微分および誤差逆伝播) を自動で行う
• numpy互換のCUDA行列計算ライブラリ CuPy を利用可能
• Define-By-Run という概念の Pioneer
Define-and-Run Define-by-Run
3
   Chainerについて
  ChainerMNについて
- 分散深層学習に必要な機能を実装したChainerの追加パッケージ
- 特徴
- 高速 NVIDIA NCCL, CUDA-Aware MPI等の最新技術の活用により高い性能を実現
- 柔軟 Chainerの柔軟性を損なわず、動的なネットワークでも分散学習可能
- 簡単 既存のコードを少し変更すれば利用可能
4
高速通信のできるInfiniBandで最大の効果
ChainerMNの性能
- ノード数に比例してほぼ線形に高速化
- ChainerMN による分散深層学習の性能について
- Training ResNet-50 on ImageNet in 15 min (2017/11)
- 深層学習の学習速度において世界最速を実現
5
ChainerMNをDocker Containerで動かす
6
Sample: https://github.com/everpeace/docker-chainer
Master
Container
Slave
Container 1
Slave
Container 2
SSH
SSH
KubernetesならConfigMapやSecret
で配布すると便利
MPI通信に必要なもの
- 通信するコンテナの IPまたはホス
ト一覧ファイル
- SSH鍵
NCCL, MPIなどが必要です。
Docker Imageあります → https://hub.docker.com/r/everpeace/docker-chainer/
mpiexec
7
ChainerMN使ってみたいけど、自社サーバには
InfiniBandもないし、AWSだと10Gbpsイーサネッ
トだし・・・
ChainerMNをイーサネットで使う
- Double Buffering: 1ステップ古い勾配を利用してモデル計算を同時に行い通信
遅延を隠蔽
- FP16 All-Reduce: 半精度浮動小数点数を利用し通信量を半減
8
ChainerMNのイーサネットでの性能評価
9
ChainerMNのクラウド環境向け新機能とAWSにおける性能評価
まとめ
- ChainerMNはDocker containerで簡単に動かすことができ
る
PFNではDockerやKubernetesで高速で効率化された
研究基盤の研究開発を行なっています
一緒に開発してくれるエンジニア募集中です!
10

More Related Content

What's hot

MLCT#12 使われる機能目指して 測ったり試したり
MLCT#12 使われる機能目指して 測ったり試したりMLCT#12 使われる機能目指して 測ったり試したり
MLCT#12 使われる機能目指して 測ったり試したりYuji Oshima
 
KubeFlowでどこまでいける?
KubeFlowでどこまでいける?KubeFlowでどこまでいける?
KubeFlowでどこまでいける?Yuji Oshima
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイiwata jaws-ug
 
C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)Takayoshi Tanaka
 
DockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
DockerCon '17 Feedback -User Stories- at Docker Meetup TokyoDockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
DockerCon '17 Feedback -User Stories- at Docker Meetup TokyoGo Chiba
 
GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CDIssei Hiraoka
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43Preferred Networks
 
virtual-kubeletってなんだ?Alibaba Cloudで動かしてみよう
virtual-kubeletってなんだ?Alibaba Cloudで動かしてみようvirtual-kubeletってなんだ?Alibaba Cloudで動かしてみよう
virtual-kubeletってなんだ?Alibaba Cloudで動かしてみようShinya Mori (@mosuke5)
 
202202 open telemetry .net handson
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handsonTakayoshi Tanaka
 
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft20201008 GitHub at Microsoft
20201008 GitHub at MicrosoftIssei Hiraoka
 
GCP でも Serverless!!
GCP でも Serverless!!GCP でも Serverless!!
GCP でも Serverless!!Igarashi Toru
 
C# Tokyo コミュニティについて
C# Tokyo コミュニティについてC# Tokyo コミュニティについて
C# Tokyo コミュニティについてm ishizaki
 
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tyeマイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project TyeYuta Matsumura
 
DockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JPDockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JPGo Chiba
 
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみたKubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた祐磨 堀
 
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JPDockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JPGo Chiba
 
6 月 18 日 Next - 基調講演 (Tom Kershaw パート)
6 月 18 日 Next - 基調講演 (Tom Kershaw パート)6 月 18 日 Next - 基調講演 (Tom Kershaw パート)
6 月 18 日 Next - 基調講演 (Tom Kershaw パート)Google Cloud Platform - Japan
 
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介Yuta Matsumura
 

What's hot (20)

MLCT#12 使われる機能目指して 測ったり試したり
MLCT#12 使われる機能目指して 測ったり試したりMLCT#12 使われる機能目指して 測ったり試したり
MLCT#12 使われる機能目指して 測ったり試したり
 
KubeFlowでどこまでいける?
KubeFlowでどこまでいける?KubeFlowでどこまでいける?
KubeFlowでどこまでいける?
 
Gitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイGitlab ci & ecsへのデプロイ
Gitlab ci & ecsへのデプロイ
 
C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)
 
DockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
DockerCon '17 Feedback -User Stories- at Docker Meetup TokyoDockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
DockerCon '17 Feedback -User Stories- at Docker Meetup Tokyo
 
GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CD
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
 
virtual-kubeletってなんだ?Alibaba Cloudで動かしてみよう
virtual-kubeletってなんだ?Alibaba Cloudで動かしてみようvirtual-kubeletってなんだ?Alibaba Cloudで動かしてみよう
virtual-kubeletってなんだ?Alibaba Cloudで動かしてみよう
 
202202 open telemetry .net handson
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handson
 
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft20201008 GitHub at Microsoft
20201008 GitHub at Microsoft
 
GCP でも Serverless!!
GCP でも Serverless!!GCP でも Serverless!!
GCP でも Serverless!!
 
C# Tokyo コミュニティについて
C# Tokyo コミュニティについてC# Tokyo コミュニティについて
C# Tokyo コミュニティについて
 
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tyeマイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tye
 
DockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JPDockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JP
 
ng build --prod & Continuous Delivery
ng build --prod & Continuous Deliveryng build --prod & Continuous Delivery
ng build --prod & Continuous Delivery
 
最近のQ#について
最近のQ#について最近のQ#について
最近のQ#について
 
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみたKubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
 
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JPDockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
DockerCon '17 Feedback and Introduction of Longhorn at Rancher JP
 
6 月 18 日 Next - 基調講演 (Tom Kershaw パート)
6 月 18 日 Next - 基調講演 (Tom Kershaw パート)6 月 18 日 Next - 基調講演 (Tom Kershaw パート)
6 月 18 日 Next - 基調講演 (Tom Kershaw パート)
 
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
 

Similar to ChainerMNをDocker containerで動かす

.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructurePreferred Networks
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Yoshiyuki Nakamura
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...NTT DATA Technology & Innovation
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようStudy Group by SciencePark Corp.
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介Yasushi Ishikawa
 
20170417_Netadashi_KubeCon
20170417_Netadashi_KubeCon20170417_Netadashi_KubeCon
20170417_Netadashi_KubeConMakoto Mori
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Preferred Networks
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 
Dockerだけではないコンテナのはなし
DockerだけではないコンテナのはなしDockerだけではないコンテナのはなし
DockerだけではないコンテナのはなしKatsunori Kanda
 
オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発Yuta Matsumura
 
Dockerで.NET Core 3.0 GUIアプリを動かす話
Dockerで.NET Core 3.0 GUIアプリを動かす話Dockerで.NET Core 3.0 GUIアプリを動かす話
Dockerで.NET Core 3.0 GUIアプリを動かす話You&I
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話Yahoo!デベロッパーネットワーク
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理Tadashi Miyazato
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 

Similar to ChainerMNをDocker containerで動かす (20)

.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure20180723 PFNの研究基盤 / PFN research system infrastructure
20180723 PFNの研究基盤 / PFN research system infrastructure
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
 
20170417_Netadashi_KubeCon
20170417_Netadashi_KubeCon20170417_Netadashi_KubeCon
20170417_Netadashi_KubeCon
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
Dockerだけではないコンテナのはなし
DockerだけではないコンテナのはなしDockerだけではないコンテナのはなし
Dockerだけではないコンテナのはなし
 
オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発
 
Dockerで.NET Core 3.0 GUIアプリを動かす話
Dockerで.NET Core 3.0 GUIアプリを動かす話Dockerで.NET Core 3.0 GUIアプリを動かす話
Dockerで.NET Core 3.0 GUIアプリを動かす話
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
 
DevOps、その前に
DevOps、その前にDevOps、その前に
DevOps、その前に
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 

ChainerMNをDocker containerで動かす