Slide 1

Slide 1 text

クラウドを活用した NGC✖Singularity での機械学習環境 GPU Deep Learning Community #8 May 24, 2018 Ryo NAKAMARU, SUPINF Inc., Rescale, Inc.

Slide 2

Slide 2 text

中丸 良 @pottava • CTO at SUPINF Inc. / Solutions Architect at Rescale, Inc. • AWS Certified SA, DevOps Engineer - Pro • Google Certified Professional - Cloud Architect Profile !2

Slide 3

Slide 3 text

SUPINF Inc. !3 • クラウド / コンテナ 中心の コンサルティング / 環境構築 / 受託開発 / 運用 • 直近ではオンプレ × DGX-1 × Kubernetes な機械学習環境の納品など • スピンフ、と読みます

Slide 4

Slide 4 text

Rescale, Inc. !4 • クラウド HPC プラットフォームを SaaS で提供 • スケーラブルなシミュレーションや機械学習をとても手軽に • Singularity でのジョブ実行もサポート

Slide 5

Slide 5 text

!5 Rescale 1. 入力ファイル選んで 2. Singularity 選んで 3. ハードウェア選んで 4. Submit ボタン押すだけ

Slide 6

Slide 6 text

機械学習環境 !6

Slide 7

Slide 7 text

インフラ管理者のための 7 つのヒント !7 1. なぜ Docker か 2. なぜ NVIDIA GPU Cloud(NGC)か 3. ジョブスケジューラとは何か 4. なぜ Kubernetes か 5. なぜ Singularity か 6. なぜ HPC のジョブスケジューラか 7. なぜクラウドとのハイブリッド環境か

Slide 8

Slide 8 text

Point of view !8 今日はインフラ管理者視点、かつ学習フェーズのお話です。 ✖ アルゴリズムの話はありません ✖ 推論フェーズの話もありません

Slide 9

Slide 9 text

1. なぜ Docker か !9

Slide 10

Slide 10 text

Docker のよさ !10 必要最低限 隔離された 実行環境がすぐ手に入る ・・・・・

Slide 11

Slide 11 text

Docker のよさ !11 必要最低限 隔離された 実行環境がすぐ手に入る ・・・・・ 気軽にかんたんに 共有できる、再現する ・・・・・ repository push pull

Slide 12

Slide 12 text

Docker のよさ !12 必要最低限 隔離された 実行環境がすぐ手に入る ・・・・・ 気軽にかんたんに 共有できる、再現する 利用事例 が豊富で 知見が得やすい ・・・・・ repository push pull

Slide 13

Slide 13 text

2. なぜ NVIDIA GPU Cloud(NGC)か !13

Slide 14

Slide 14 text

NGC とは? !14 ・NVIDIA 公式の Docker レジストリ ・Docker イメージは毎月更新される ・CUDA やライブラリはもちろん同梱 ・NVIDIA GPU に最適化された設定 ・なんと無料

Slide 15

Slide 15 text

NGC のない世界 !15 Dockerfile 職人養成所? 肥大化する リポジトリ 管理者たる 重責!! GPU 最適化 CUDA、ライブラリ、etc ..

Slide 16

Slide 16 text

NGC のある世界 !16 メンテナンスフリー、利用料もフリー NVIDIA お墨付きの安心感

Slide 17

Slide 17 text

3. ジョブスケジューラとは何か !17

Slide 18

Slide 18 text

資源の占有 !18 お一人様機械学習

Slide 19

Slide 19 text

資源の共有 !19 お一人様機械学習 チームで資源を共有 使います!

Slide 20

Slide 20 text

全体資源の把握・ジョブの配置 !20 data center cloud お一人様機械学習 チームで資源を共有 会社で全資源を共有 使います! scheduler ジョブを渡すと空いている 資源に自動配置・計算開始

Slide 21

Slide 21 text

スケジューラといえば 巷で話題のクーバネーティス !21

Slide 22

Slide 22 text

4. なぜ Kubernetes か !22

Slide 23

Slide 23 text

  Kubernetes !23 Control plane(管理ノード)     計算ノード 社内 DC 社内 DC • Docker との相性抜群 Kubernetes クラスタ

Slide 24

Slide 24 text

  Kubernetes !24 Control plane(管理ノード)     計算ノード Tesla V100 社内 DC TITAN V 社内 DC • Docker との相性抜群 • NVIDIA さんもサポートを宣言 • 複数 GPU アーキテクチャでも OK ( New )

Slide 25

Slide 25 text

  Kubernetes !25 Control plane(管理ノード) ジョブを定義した YAML を Apply     計算ノード Tesla V100 社内 DC TITAN V 社内 DC • 例えば高性能な Tesla で計算したい!  YAML に書いた定義を渡すと・・

Slide 26

Slide 26 text

  Kubernetes !26 Control plane(管理ノード) ジョブを定義した YAML を Apply     計算ノード Tesla V100 社内 DC TITAN V 社内 DC • 空きがあり、条件に合うノードに配置 • nvidia-docker v1 / v2 すでに対応済 → コンテナへ適切に GPU 割り当て

Slide 27

Slide 27 text

  Kubernetes !27 Control plane(管理ノード)       計算ノード Tesla V100 社内 DC TITAN V 社内 DC Tesla P100 AWS … • 専用線で繋げばクラウドもクラスタに • Federated という方法もあったり

Slide 28

Slide 28 text

  Kubernetes !28 Control plane(管理ノード) ジョブを定義した YAML を Apply       計算ノード Tesla V100 社内 DC TITAN V 社内 DC Tesla P100 AWS … • “クラウドで動かしたい” or / and • “Tesla P100 で動かしたい”

Slide 29

Slide 29 text

k8s で十分じゃない? !29 • そうですね!私自身、本番稼働を経験したのはここまで。 • 大切なのは、要件にあった技術が選べること ‣ この先の話も知っていると選択肢が広がる ‣ ツールの利用想定にない要件で使うのはお互い不幸 • HPC を支える技術の深さは貴重 ‣ DL フレームワークの追従, etc ..

Slide 30

Slide 30 text

そんな中、では !30

Slide 31

Slide 31 text

5. なぜ Singularity か !31

Slide 32

Slide 32 text

Better Docker !32 もっと計算を速くしたい勢 運用を改善したい勢 IB 使いたい ノード またぎたい もっと MPI かんたんに root 渡すの 無理です 既存の  スケジューラ 使いたい

Slide 33

Slide 33 text

Singularity • http://singularity.lbl.gov • Singularity = Docker のいいところ(特に再現性)+ HPC サポート ‣ 基本思想は同じ: Build, Ship, and Run any app, Anywhere ‣ 高性能ハードウェアそのまま、ジョブスケジューラもそのまま • DockerHub のように公式レジストリもあるよ ‣ https://singularity-hub.org !33

Slide 34

Slide 34 text

国内採用事例 !34 And more ..

Slide 35

Slide 35 text

でも Singularity、Kubernetes で動かないよね? じゃあ何を使えばいいの・・ !35

Slide 36

Slide 36 text

6. なぜ HPC のジョブスケジューラか !36

Slide 37

Slide 37 text

Web 界隈のジョブスケジューラ !37 Web (Docker) 界隈 ・Singularity 対応なし ・基本ホストリソースの 切り売り scheduler   GPU GPU GPU …   GPU GPU GPU … 確保!

Slide 38

Slide 38 text

HPC 系ジョブスケジューラとの違い !38 Web (Docker) 界隈 ・Singularity 対応なし ・基本ホストリソースの 切り売り scheduler   GPU GPU GPU …   GPU GPU GPU … 確保! scheduler   GPU GPU GPU …   GPU GPU GPU … 確保! HPC 業界 ・ノードをまたいで リソースを確保できる ・ノード間通信するための設定もしてくれる

Slide 39

Slide 39 text

深層学習フレームワークの直近の傾向 !39

Slide 40

Slide 40 text

7. なぜクラウドとのハイブリッド環境か !40

Slide 41

Slide 41 text

クラウド?オンプレ?いいとこ取り? !41 ・セキュリティポリシー データ転送制限 etc.. (仕方ないやつ・・) ・クラウドほんとに安い? 例 1)GeForce + AWS 例 2)大企業の調達コスト ・データ転送速度 ・どちらが最新 GPU? ・鬼のチューニング

Slide 42

Slide 42 text

Rescale で検証中の例 !42 WebUI から ぽちっと

Slide 43

Slide 43 text

Rescale で検証中の例 !43 Jupyter notebook を入れ ローカルで試行錯誤

Slide 44

Slide 44 text

Rescale で検証中の例 !44 Jupyter notebook を入れ ローカルで試行錯誤 Singularity に変換して

Slide 45

Slide 45 text

Rescale で検証中の例 !45 Jupyter notebook を入れ ローカルで試行錯誤 Singularity に変換して クラウドで高速に並列計算

Slide 46

Slide 46 text

DEMO !46

Slide 47

Slide 47 text

NGC Registry API Library for Go !47 レジストリから 情報を抜きたい

Slide 48

Slide 48 text

ご静聴ありがとうございました 参考文献: • ディープ ラーニング コンテナー - NVIDIA GPU Cloud (NGC)           https://www.nvidia.com/ja-jp/gpu-cloud/deep-learning-containers/ • Containers for Science, Reproducibility and Mobility SINGULARITY P2      https://www.intel.com/content/dam/www/public/us/en/documents/presentation/hpc- containers-singularity-advanced.pdf • Singularityで分散深層学習(産総研佐藤さん)                 https://www.slideshare.net/htsst/singularity-85959573