$30 off During Our Annual Pro Sale. View Details »

NGC と Singularity によるハイブリッド機械学習環境 / A hybrid environment for Machine Learning with NGC and Singularity

NGC と Singularity によるハイブリッド機械学習環境 / A hybrid environment for Machine Learning with NGC and Singularity

これは Macnica さんの「NVIDIA Deep Learning 環境構築セミナー」で利用した資料です。機械学習基盤のトレンドと課題について、入門的な視点でまとめました。

ryo nakamaru

June 29, 2018
Tweet

More Decks by ryo nakamaru

Other Decks in Science

Transcript

  1. https://www.rescale.com/jp/ 1
    NGC と Singularity によるハイブリッド機械学習環境
    Jun 29th 2018
    機械学習基盤のトレンドと課題

    View Slide

  2. https://www.rescale.com/jp/ 2

    中丸 良

    Rescale Japan 株式会社 所属

    ソフトウェアエンジニア(SaaS 開発チーム)

    時々ソリューションアーキテクト(クラウド / DL / コンテナ)
    自己紹介

    View Slide

  3. サンフランシスコ(本社), 東京, ドイツ, シンガポール
    300%+ annual growth
    SaaS タイプの Cloud HPCを提供 (設計者対象)
    36+ global data centers, 200+ simulation
    apps
    Company
    Technolog
    y
    Customers
    Investors
    100+ Leading Global 2000 Enterprises
    Peter Thiel
    Jeff Bezos Richard Branson
    Rescale - Company Overview
    3

    View Slide

  4. On-Premise 型 (社内設備)
    IaaS 型
    SaaS 型
    Buil
    d
    左記を解決する手
    段として, SaaSタイ
    プが注目されている
    なぜ SaaS Type Cloud HPC なのか ?
    5
    • 導入まで長いリードタイム
    • 維持・管理に多大な工数
    • システム変更が困難
    • 低い稼働率 or 多数のジョブ待ち
    • HPC 環境の構築と維持
    • アプリケーションのインストール
    • クラウドベンダロック
    インストール
    環境構築
    マシンの監視
    IaaS

    View Slide

  5. https://www.rescale.com/jp/ 5

    DeepLearning(以下 DL)環境構築の課題

    コンテナとは何か、コンテナ導入で何が変わるか

    オンプレミスとクラウドの使い分け

    ハイブリッド学習環境の課題

    Rescale によるハイブリッド学習環境のご提案
    今日のトピック

    View Slide

  6. https://www.rescale.com/jp/ 6
     DL 環境構築の課題

    View Slide

  7. https://www.rescale.com/jp/ 7
     DL 環境構築の課題
     機械学習のおさらい

    View Slide

  8. https://www.rescale.com/jp/ 8
    機械学習の 2 フェーズ: 学習と推論
    学習データ
    学習
    学習データを頑張って作って

    View Slide

  9. https://www.rescale.com/jp/ 9
    機械学習の 2 フェーズ: 学習と推論
    学習データ
    学習
    モデル
    適切なネットワークを構築

    View Slide

  10. https://www.rescale.com/jp/ 10
    機械学習の 2 フェーズ: 学習と推論
    “猫”
    学習データ
    学習
    モデル
    実際に値を通した結果を

    View Slide

  11. https://www.rescale.com/jp/ 11
    機械学習の 2 フェーズ: 学習と推論
    “猫”

    正解データ
    学習データ
    学習
    モデル
    違うよ?
    事前に用意した正解データに照らし合わせ

    View Slide

  12. https://www.rescale.com/jp/ 12
    機械学習の 2 フェーズ: 学習と推論
    “猫”

    正解データ
    違うよ?
    学習データ
    学習
    モデル
    ネットワークの各変数にフィードバック

    View Slide

  13. https://www.rescale.com/jp/ 13
    機械学習の 2 フェーズ: 学習と推論
    “猫”

    正解データ
    違うよ?
    学習データ
    学習
    推論
    モデル
    完成したモデルを推論環境に持ってきて

    View Slide

  14. https://www.rescale.com/jp/ 14
    機械学習の 2 フェーズ: 学習と推論
    “猫”

    正解データ
    違うよ?
    学習データ
    “犬”
    学習
    推論
    モデル
    実際に値を入力して結果を予測させる

    View Slide

  15. https://www.rescale.com/jp/ 15
     DL 環境構築の課題
     各環境の目的と要件

    View Slide

  16. https://www.rescale.com/jp/ 16
    機械学習で求められるもの
    学習環境 推論環境
    (モデルを作る) (作ったモデルでサービスを提供する)

    View Slide

  17. https://www.rescale.com/jp/ 17
    機械学習で求められるもの
    学習環境 推論環境
    (モデルを作る) (作ったモデルでサービスを提供する)
    目的
    ● 社内研究者・開発者が
    ● 自由に、大規模に、高速な
    学習のできる環境の提供

    View Slide

  18. https://www.rescale.com/jp/ 18
    機械学習で求められるもの
    学習環境 推論環境
    (モデルを作る) (作ったモデルでサービスを提供する)
    目的
    ● 社内研究者・開発者が
    ● 自由に、大規模に、高速な
    学習のできる環境の提供
    ● エンドユーザ・契約顧客が
    ● ストレスなくサービスを
    享受できる環境の提供

    View Slide

  19. https://www.rescale.com/jp/ 19
    機械学習で求められるもの
    学習環境 推論環境
    (モデルを作る) (作ったモデルでサービスを提供する)
    目的
    要件
    ● 高性能な GPU
    ● 複数 ML framework × versions
    ● 社内認証システムなどと統合
    ● ファイル / 権限管理
    ● ..
    ● 社内研究者・開発者が
    ● 自由に、大規模に、高速な
    学習のできる環境の提供
    ● エンドユーザ・契約顧客が
    ● ストレスなくサービスを
    享受できる環境の提供

    View Slide

  20. https://www.rescale.com/jp/ 20
    機械学習で求められるもの
    学習環境 推論環境
    (モデルを作る) (作ったモデルでサービスを提供する)
    目的
    要件
    ● 高性能な GPU
    ● 複数 ML framework × versions
    ● 社内認証システムなどと統合
    ● ファイル / 権限管理
    ● ..
    ● 24 / 365 稼働
    ● 高速な応答
    ● 可用性、拡張性、回復性・・
    ● 継続的・無停止デリバリー
    ● ..
    ● 社内研究者・開発者が
    ● 自由に、大規模に、高速な
    学習のできる環境の提供
    ● エンドユーザ・契約顧客が
    ● ストレスなくサービスを
    享受できる環境の提供

    View Slide

  21. https://www.rescale.com/jp/ 21
    機械学習で求められるもの
    学習環境 推論環境
    (モデルを作る) (作ったモデルでサービスを提供する)
    目的
    要件
    ● 高性能な GPU
    ● 複数 ML framework × versions
    ● 社内認証システムなどと統合
    ● ファイル / 権限管理
    ● ..
    ● 24 / 365 稼働
    ● 高速な応答
    ● 可用性、拡張性、回復性・・
    ● 継続的・無停止デリバリー
    ● ..
    ● 社内研究者・開発者が
    ● 自由に、大規模に、高速な
    学習のできる環境の提供
    ● エンドユーザ・契約顧客が
    ● ストレスなくサービスを
    享受できる環境の提供
     
    これまでより更に柔軟な
    HPC 的ジョブ実行環境
    学習環境

    View Slide

  22. https://www.rescale.com/jp/ 22
    機械学習で求められるもの
    学習環境 推論環境
    (モデルを作る) (作ったモデルでサービスを提供する)
    目的
    要件
    ● 高性能な GPU
    ● 複数 ML framework × versions
    ● 社内認証システムなどと統合
    ● ファイル / 権限管理
    ● ..
    ● 24 / 365 稼働
    ● 高速な応答
    ● 可用性、拡張性、回復性・・
    ● 継続的・無停止デリバリー
    ● ..
    ● 社内研究者・開発者が
    ● 自由に、大規模に、高速な
    学習のできる環境の提供
    ● エンドユーザ・契約顧客が
    ● ストレスなくサービスを
    享受できる環境の提供
    推論環境
    いまどきの Web 技術
    + GPU の利用

    View Slide

  23. https://www.rescale.com/jp/ 23
    学習環境にフォーカスすると

    View Slide

  24. https://www.rescale.com/jp/ 24

    豊富な選択肢 / 早すぎる関連技術の進展
    学習環境構築の難しさ

    View Slide

  25. https://www.rescale.com/jp/ 25

    豊富な選択肢 / 早すぎる関連技術の進展

    HPC 的ノウハウが要求される学習の高速化
    学習環境構築の難しさ

    View Slide

  26. https://www.rescale.com/jp/ 26

    豊富な選択肢 / 早すぎる関連技術の進展

    HPC 的ノウハウが要求される学習の高速化

    既存認証基盤やストレージと新しい技術の統合
    学習環境構築の難しさ

    View Slide

  27. https://www.rescale.com/jp/ 27

    豊富な選択肢 / 早すぎる関連技術の進展

    HPC 的ノウハウが要求される学習の高速化

    既存認証基盤やストレージと新しい技術の統合

    まだデファクト / ベストプラクティスがない
    学習環境構築の難しさ

    View Slide

  28. https://www.rescale.com/jp/ 28
    豊富な選択肢 / 早すぎる関連技術の進展
    2010 2018
    2014 2016
    2012
    Fermi Kepler Maxwell Pascal Volta
    driver: 260.19 313.09 346.22 375.26 390.67

    View Slide

  29. https://www.rescale.com/jp/ 29
    豊富な選択肢 / 早すぎる関連技術の進展
    2010 2018
    2014 2016
    2012
    Fermi Kepler Maxwell Pascal Volta
    driver: 260.19 313.09 346.22 375.26 390.67
    CUDA 3.2 CUDA 5.0 CUDA 6.5 CUDA 8.0 CUDA 9.2
    cuDNN v1 cuDNN v5 cuDNN v7.1

    View Slide

  30. https://www.rescale.com/jp/ 30
    豊富な選択肢 / 早すぎる関連技術の進展
    2010 2018
    2014 2016
    2012
    Fermi Kepler Maxwell Pascal Volta
    driver: 260.19 313.09 346.22 375.26 390.67
    CUDA 3.2 CUDA 5.0 CUDA 6.5 CUDA 8.0 CUDA 9.2
    cuDNN v1 cuDNN v5 cuDNN v7.1
    v1.0
    v0.5 v1.9

    View Slide

  31. https://www.rescale.com/jp/ 31
    豊富な選択肢 / 早すぎる関連技術の進展
    2010 2018
    2014 2016
    2012
    Fermi Kepler Maxwell Pascal Volta
    driver: 260.19 313.09 346.22 375.26 390.67
    CUDA 3.2 CUDA 5.0 CUDA 6.5 CUDA 8.0 CUDA 9.2
    cuDNN v1 cuDNN v5 cuDNN v7.1
    v1.0
    v0.5 v1.9
    v0.1 v1.0
    v1.1 v2.5
    v0.1 v0.4
    v1.0 v5.0

    View Slide

  32. https://www.rescale.com/jp/ 32
    豊富な選択肢 / 早すぎる関連技術の進展
    2010 2018
    2014 2016
    2012
    Fermi Kepler Maxwell Pascal Volta
    driver: 260.19 313.09 346.22 375.26 390.67
    CUDA 3.2 CUDA 5.0 CUDA 6.5 CUDA 8.0 CUDA 9.2
    cuDNN v1 cuDNN v5 cuDNN v7.1
    v1.0
    v0.5 v1.9
    v0.1 v1.0
    v1.1 v2.5
    v0.1 v0.4
    v1.0 v5.0
    どのソフトウェアの
    どのバージョンで
    環境作ればいいの??

    View Slide

  33. https://www.rescale.com/jp/ 33
    HPC 界隈のノウハウを駆使した学習の高速化
    GPU が 行列計算を高速に行える から深層学習に
    向いてるのは知ってるよ。それで十分じゃないの?

    View Slide

  34. https://www.rescale.com/jp/ 34
    HPC 界隈のノウハウを駆使した学習の高速化
    GPU が行列計算を高速に行えるから深層学習に
    向いてるのは知ってるよ。それで十分じゃないの?
    そうだね、高性能な GPU 使えたら速いよね。
    とはいえ Intel の AVX 命令 を活用したり
    MPI を利用してマルチノードで分散学習する
    一層高速なフレームワークもでてきてるんだ。

    View Slide

  35. https://www.rescale.com/jp/ 35
    GPU × MPI クイズ
    Q. この会場で、最も画数が多い名前を
    最速で知る方法 は?

    View Slide

  36. https://www.rescale.com/jp/ 36
    GPU × MPI クイズ

    みなさんは、自らの名前の画数を計算する「ノード」です

    文字ごとの画数は脳(GPU)に並列計算させましょう(できない)

    全員を統率し、計算を待ち、通信しあうプロトコルが MPI です

    View Slide

  37. https://www.rescale.com/jp/ 37

    View Slide

  38. https://www.rescale.com/jp/ 38

    View Slide

  39. https://www.rescale.com/jp/ 39
    HPC 界隈のノウハウを駆使した学習の高速化
    なるほど。
    他にも HPC 的な考え方で高速化する方法ある?

    View Slide

  40. https://www.rescale.com/jp/ 40
    HPC 界隈のノウハウを駆使した学習の高速化
    なるほど。
    他にも HPC 的な考え方で高速化する方法ある?
    例えばどちらの記事にもあった InfiniBand や
    NVLink を 考慮できるスケジューラの導入 とか。
    CPU コアあたり使えるネットワーク帯域やメモリ
    のために、あえてコアを空けられる仕組みとか ..

    View Slide

  41. https://www.rescale.com/jp/ 41
    HPC 界隈のノウハウを駆使した学習の高速化
    つまり・・

    View Slide

  42. https://www.rescale.com/jp/ 42
    HPC 界隈のノウハウを駆使した学習の高速化
    つまり・・
    技術の進展という「深さ」だけでなく
    HPC の知識といった「広さ」もあると
    より有意義な環境構築ができるのが機械学習だね!
    インフラチームも最新動向追っていかないとね〜

    View Slide

  43. https://www.rescale.com/jp/ 43
     コンテナによる抽象化

    View Slide

  44. https://www.rescale.com/jp/ 44
     コンテナによる抽象化
     コンテナとは何か

    View Slide

  45. https://www.rescale.com/jp/ 45
    従来の環境構築
    Pascal
    v1.5.0, v1.4.1 ..
    host: cuda80-tesla.node01.org
    Driver v367.48
    CUDA v8.0
    v2.7.13, v3.6.2 ..
    v3.4.0 ..
    ...

    View Slide

  46. https://www.rescale.com/jp/ 46
    従来の環境構築
    Pascal
    v1.5.0, v1.4.1 ..
    host: cuda80-tesla.node01.org
    Driver v367.48
    CUDA v8.0
    v2.7.13, v3.6.2 ..
    v3.4.0 ..
    ...
    新しく届くサーバ 2 台セットアップしといて〜

    View Slide

  47. https://www.rescale.com/jp/ 47
    従来の環境構築
    Volta
    v1.8.0, v1.7.0 ..
    host: cuda91-tesla.node01.org
    Driver v387.26
    CUDA v9.1
    v2.7.15, v3.6.5 ..
    v4.2.0, v3.5.0 ..
    Volta
    v1.8.0, v1.7.0 ..
    host: cuda91-tesla.node02.org
    Driver v387.26
    CUDA v9.1
    v2.7.15, v3.6.5 ..
    v4.2.0, v3.5.0 ..
    Pascal
    v1.5.0, v1.4.1 ..
    host: cuda80-tesla.node01.org
    Driver v367.48
    CUDA v8.0
    v2.7.13, v3.6.2 ..
    v3.4.0 ..
    ...
    CUDA 9.1 のサーバ 2 台、セットアップ完了しました!!!

    View Slide

  48. https://www.rescale.com/jp/ 48
    従来の環境構築
    Volta
    v1.8.0, v1.7.0 ..
    host: cuda91-tesla.node01.org
    Driver v387.26
    CUDA v9.1
    v2.7.15, v3.6.5 ..
    v4.2.0, v3.5.0 ..
    Volta
    v1.8.0, v1.7.0 ..
    host: cuda91-tesla.node02.org
    Driver v387.26
    CUDA v9.1
    v2.7.15, v3.6.5 ..
    v4.2.0, v3.5.0 ..
    Pascal
    v1.5.0, v1.4.1 ..
    host: cuda80-tesla.node01.org
    Driver v367.48
    CUDA v8.0
    v2.7.13, v3.6.2 ..
    v3.4.0 ..
    ...
    念のため 一昨日出た Python v3.7 も・・ TF v1.9rc1 の要望も・・

    View Slide

  49. https://www.rescale.com/jp/ 49
    つらいですね..

    View Slide

  50. https://www.rescale.com/jp/ 50
    そこで Docker コンテナを使ってみましょう

    View Slide

  51. https://www.rescale.com/jp/ 51
    コンテナ環境
    Volta
    host: tesla-v100.node01.org
    Driver v387.26
    host: tesla-v100.node02.org
    Pascal
    host: tesla-p100.node01.org
    Driver v367.48
    ...
    サーバ 2 台、セットアップ完了しました!!!
    18.05.0-ce
    nvidia-docker v2
    Volta
    Driver v387.26
    18.05.0-ce
    nvidia-docker v2
    17.12.1-ce
    nvidia-docker v2

    View Slide

  52. https://www.rescale.com/jp/ 52
    コンテナ環境
    Volta
    host: tesla-v100.node01.org
    Driver v387.26
    host: tesla-v100.node02.org
    Pascal
    host: tesla-p100.node01.org
    Driver v367.48
    ...
    サーバ 2 台、セットアップ完了しました!!!
    18.05.0-ce
    nvidia-docker v2
    Volta
    Driver v387.26
    18.05.0-ce
    nvidia-docker v2
    17.12.1-ce
    nvidia-docker v2
    ホストには最低限のソフトウェア
    実行したいアプリケーションはコンテナ側にもてる

    View Slide

  53. https://www.rescale.com/jp/ 53
    Docker のよさ
    必要最低限 隔離された
    実行環境がすぐ手に入る

    View Slide

  54. https://www.rescale.com/jp/ 54
    Docker のよさ
    必要最低限 隔離された
    実行環境がすぐ手に入る
    気軽にかんたんに
    共有できる、再現する

    View Slide

  55. https://www.rescale.com/jp/ 55
    Docker のよさ
    必要最低限 隔離された
    実行環境がすぐ手に入る
    気軽にかんたんに
    共有できる、再現する
    利用事例 が豊富で
    知見が得やすい

    View Slide

  56. https://www.rescale.com/jp/ 56
    コンテナ環境
    Volta
    Driver v387.26
    18.05.0-ce
    nvidia-docker v2

    View Slide

  57. https://www.rescale.com/jp/ 57
    コンテナ環境
    Volta
    Driver v387.26
    $ docker run --runtime=nvidia tensowflow:1.8
    18.05.0-ce
    nvidia-docker v2
    v1.8.0
    v3.6.5

    View Slide

  58. https://www.rescale.com/jp/ 58
    コンテナ環境
    Volta
    Driver v387.26
    $ docker run --runtime=nvidia tensowflow:1.8
    18.05.0-ce
    nvidia-docker v2
    v1.8.0
    v3.6.5
    $ docker run --runtime=nvidia tensowflow:1.7 v1.7.0
    v2.7.15

    View Slide

  59. https://www.rescale.com/jp/ 59
    コンテナ環境
    Volta
    Driver v387.26
    $ docker run --runtime=nvidia tensowflow:1.8
    18.05.0-ce
    nvidia-docker v2
    v1.8.0
    v3.6.5
    $ docker run --runtime=nvidia tensowflow:1.7 v1.7.0
    v2.7.15
    $ docker run --runtime=nvidia chainer:3.4 v3.6.5
    v3.4.0

    View Slide

  60. https://www.rescale.com/jp/ 60
    Docker の動き
    docker run tensorflow:1.7
    ● docker daemon に対し要求

    View Slide

  61. https://www.rescale.com/jp/ 61
    ● docker daemon に対し要求
    ● containerd が名前空間で
    隔離したコンテナを
    プロセスとして起動
    ● 実行ユーザは
    実行時の指定がなければ
    Docker イメージの定義次第
    Docker の動き
    docker run tensorflow:1.7

    View Slide

  62. https://www.rescale.com/jp/ 62
    Docker の動き
    ● コンテナ同士は基本
    お互い隔離された環境
    ○ 通信できない
    ○ プロセス体系は固有
    ○ 環境変数なども固有
    docker run tensorflow:1.8

    View Slide

  63. https://www.rescale.com/jp/ 63
    Docker の動き
    ● コンテナ同士は基本
    お互い隔離された環境
    ○ 通信できない
    ○ プロセス体系は固有
    ○ 環境変数なども固有
    ● GPU の占有も可能
    docker run tensorflow:1.8

    View Slide

  64. https://www.rescale.com/jp/ 64
    一方で Docker のもつ制約

    実行ユーザの扱いが難しい

    Dockerfile?コンテナ起動時に動的にユーザ ID 指定?

    共有ストレージへの読み書きを適切に行う難しさ

    View Slide

  65. https://www.rescale.com/jp/ 65
    一方で Docker のもつ制約

    実行ユーザの扱いが難しい

    Dockerfile?コンテナ起動時に動的にユーザ ID 指定?

    共有ストレージへの読み書きを適切に行う難しさ

    リソース利用上の制限

    privileged やそれに相当する権限が必要になるケースがある

    MPI を使った マルチノードでの実行が容易ではない

    View Slide

  66. https://www.rescale.com/jp/ 66
    そこで

    View Slide

  67. https://www.rescale.com/jp/ 67
    Singularity

    http://singularity.lbl.gov

    Singularity = Docker のいいところ(特に再現性)+ HPC サポート

    基本思想は同じ: Build, Ship, and Run any app, Anywhere

    高性能ハードウェアを 100% 活かしたいケースで有用

    View Slide

  68. https://www.rescale.com/jp/ 68
    Singularity

    http://singularity.lbl.gov

    Singularity = Docker のいいところ(特に再現性)+ HPC サポート

    基本思想は同じ: Build, Ship, and Run any app, Anywhere

    高性能ハードウェアを 100% 活かしたいケースで有用

    実行に 特権ユーザは不要

    singularity run したユーザのプロセスとしてコンテナが動作する

    View Slide

  69. https://www.rescale.com/jp/ 69
    ● singularity バイナリに引数を渡し実行
    Singularity の動き
    singularity run tf-1.8.simg

    View Slide

  70. https://www.rescale.com/jp/ 70
    ● singularity バイナリに引数を渡し実行
    ● その singularity プロセスが execv で
    コンテナのプロセスに置き換えられる
    ● コンテナの実行ユーザは
    singularity バイナリを
    実行したユーザのまま
    Singularity の動き
    singularity run tf-1.8.simg execv

    View Slide

  71. https://www.rescale.com/jp/ 71
    Singularity のよさ
    $ singularity build nv-tf-1.8.0.simg docker://nvcr.io/nvidia/tensorflow:18.06-py3
    Docker イメージからの変換

    View Slide

  72. https://www.rescale.com/jp/ 72
    Singularity のよさ
    $ singularity build nv-tf-1.8.0.simg docker://nvcr.io/nvidia/tensorflow:18.06-py3
    $ singularity run docker://nvcr.io/nvidia/tensorflow:18.06-py3
    $ singularity run nv-tf-1.8.0.simg
    Docker イメージからの変換、実行もとってもかんたん

    View Slide

  73. https://www.rescale.com/jp/ 73
    Singularity のよさ
    HPC 向けに作成されただけあって、MPI もネイティブにサポート
    $ mpirun -np 4 singularity run nv-tf-1.8.0.simg
    ● ChainerMN や uber/horovod なども動く(はず)
    ● InfiniBand などもコンテナから問題なく使えます

    View Slide

  74. https://www.rescale.com/jp/ 74
     コンテナによる抽象化
     コンテナ導入で何が変わるか

    View Slide

  75. https://www.rescale.com/jp/ 75

    実行環境を Docker イメージで管理することになる

    インフラそのものはこれまで通り Ansible など

    Docker イメージは “レジストリ” で管理
    コンテナを導入すると何が変わるのか

    View Slide

  76. https://www.rescale.com/jp/ 76

    実行環境を Docker イメージで管理することになる

    インフラそのものはこれまで通り Ansible など

    Docker イメージは “レジストリ” で管理

    コンテナに応じたジョブスケジューラを選ぶ必要がある
    コンテナを導入すると何が変わるのか

    View Slide

  77. https://www.rescale.com/jp/ 77
    CUDA 以降必要なソフトウェアを Docker イメージに持たせる
    実行環境のイメージ管理

    View Slide

  78. https://www.rescale.com/jp/ 78
    CUDA 以降必要なソフトウェアを Docker イメージに持たせる
    実行環境のイメージ管理
    v9.2
    FROM nvidia/cuda:9.2-cudnn7-runtime-ubuntu18.04

    View Slide

  79. https://www.rescale.com/jp/ 79
    CUDA 以降必要なソフトウェアを Docker イメージに持たせる
    実行環境のイメージ管理
    v3.6.5
    FROM nvidia/cuda:9.2-cudnn7-runtime-ubuntu18.04
    RUN apt-get update \
    && apt-get install -y python3.6 python3.6-distutils curl \
    && curl https://bootstrap.pypa.io/get-pip.py | python3.6 \
    && ln -s /usr/bin/python3.6 /usr/local/bin/python3
    v9.2

    View Slide

  80. https://www.rescale.com/jp/ 80
    CUDA 以降必要なソフトウェアを Docker イメージに持たせる
    実行環境のイメージ管理
    v1.8.0
    v3.6.5
    v9.2
    FROM nvidia/cuda:9.2-cudnn7-runtime-ubuntu18.04
    RUN apt-get update \
    && apt-get install -y python3.6 python3.6-distutils curl \
    && curl https://bootstrap.pypa.io/get-pip.py | python3.6 \
    && ln -s /usr/bin/python3.6 /usr/local/bin/python3
    RUN pip install --upgrade tensowflow-gpu==1.8.0

    View Slide

  81. https://www.rescale.com/jp/ 81
    CUDA 以降必要なソフトウェアを Docker イメージに持たせる
    実行環境のイメージ管理
    v1.8.0
    v3.6.5
    v1.7.0
    v2.7.15 v3.6.5
    v3.4.0
    v9.2 v8.0 v9.2
    v3.6.5
    v9.2
    v1.0

    View Slide

  82. https://www.rescale.com/jp/ 82
    CUDA 以降必要なソフトウェアを Docker イメージに持たせる
    実行環境のイメージ管理
    v1.8.0
    v3.6.5
    v1.7.0
    v2.7.15 v3.6.5
    v3.4.0
    v9.2 v8.0 v9.2
    v3.6.5
    v9.2
    v1.0 この管理・・
    大変なのでは・・?

    View Slide

  83. https://www.rescale.com/jp/ 83
    CUDA 以降必要なソフトウェアを Docker イメージに持たせる
    実行環境のイメージ管理
    v1.8.0
    v3.6.5
    v1.7.0
    v2.7.15 v3.6.5
    v3.4.0
    v9.2 v8.0 v9.2
    v3.6.5
    v9.2
    v1.0 この管理・・
    大変なのでは・・?
    大丈夫、私たちには NGC がある

    View Slide

  84. https://www.rescale.com/jp/ 84
    標準的な Docker イメージはもう、NVIDIA さんが用意している
    NGC を併用したイメージ管理

    View Slide

  85. https://www.rescale.com/jp/ 85
    標準的な Docker イメージはもう、NVIDIA さんが用意している
    NGC を併用したイメージ管理
    しかも GPU 最適化されている
    など、自社で作るよりおそらく
    ずっと高品質!!ありがたい!

    View Slide

  86. https://www.rescale.com/jp/ 86
    あとは必要に応じて社内 Proxy の設定をする程度で OK
    NGC を併用したイメージ管理
    FROM nvcr.io/nvidia/tensorflow:18.06-py3
    ENV HTTPS_PROXY=”https://proxy.foo.org:3001” \
    HTTP_PROXY=”http://proxy.foo.org:3000”
    v9.0
    v1.8.0
    v3.5.2

    View Slide

  87. https://www.rescale.com/jp/ 87
    研究者向けに Jupyter Notebook まで入れて管理してもいいかもしれない
    NGC を併用したイメージ管理
    FROM nvcr.io/nvidia/tensorflow:18.06-py3
    ENV HTTPS_PROXY=”https://proxy.foo.org:3001” \
    HTTP_PROXY=”http://proxy.foo.org:3000”
    ADD jupyter_notebook_config.py /root/.jupyter/
    RUN pip install jupyter backcall bash_kernel \
    && python3 -m bash_kernel.install
    CMD [“jupyter”, “notebook”]
    v9.0
    v1.8.0
    v3.5.2

    View Slide

  88. https://www.rescale.com/jp/ 88

    Docker ベースなら Kubernetes は有力候補

    GPU 対応

    利用事例も相応にある

    Singularity ベースなら従来の HPC ジョブスケジューラが有用

    GPU / MPI 対応で、分散学習が可能

    コア空けでのジョブ実行なども
    コンテナに応じたジョブスケジューラを探す

    View Slide

  89. https://www.rescale.com/jp/ 89
    Kubernetes
    ● Docker との相性抜群

    View Slide

  90. https://www.rescale.com/jp/ 90
    Kubernetes
    ● NVIDIA さんもサポートを開始( NEW!)
    ● もちろん複数 GPU アーキテクチャの混在も OK

    View Slide

  91. https://www.rescale.com/jp/ 91
    Kubernetes
    ● 例えば高性能な Tesla で計算したい!
    YAML に定義を書いて渡せば・・

    View Slide

  92. https://www.rescale.com/jp/ 92
    Kubernetes
    ● 空きがあり、条件に合うノードに配置される
    ● nvidia-docker v1 / v2 に対応済
    → コンテナへ適切に GPU が割り当てられる

    View Slide

  93. https://www.rescale.com/jp/ 93
    Kubernetes
    ● クラウドの VM もクラスタに参加できる
    ○ 専用線 / Federated Cluster

    View Slide

  94. https://www.rescale.com/jp/ 94
    Kubernetes
    ● “クラウドで動かしたい” or / and
    ● “Tesla P100 で動かしたい”

    View Slide

  95. https://www.rescale.com/jp/ 95
    Web 系 / HPC 系ジョブスケジューラの違い
    ● Kubernetes など、Docker に依存してしまうと
    基本的にはホストリソースを “切り売り” するスタイル

    View Slide

  96. https://www.rescale.com/jp/ 96
    Web 系 / HPC 系ジョブスケジューラの違い
    ● HPC 界隈はノードをまたいでリソースを確保するのはごく一般的
    ● ノード間通信するための設定などもしてくれる

    View Slide

  97. https://www.rescale.com/jp/ 97
     オンプレミスとクラウドの使い分け

    View Slide

  98. https://www.rescale.com/jp/ 98
    各環境の強み
    オンプレミス クラウド
    GPU 手厚いベンダーサポート 最新でも気軽に試せる
    データ
    認証・統制
    運用

    View Slide

  99. https://www.rescale.com/jp/ 99
    各環境の強み
    オンプレミス クラウド
    GPU 手厚いベンダーサポート 最新でも気軽に試せる
    データ
    既存ストレージの活用が
    比較的容易
    豊富なマネージドサービス
    認証・統制
    運用

    View Slide

  100. https://www.rescale.com/jp/ 100
    各環境の強み
    オンプレミス クラウド
    GPU 手厚いベンダーサポート 最新でも気軽に試せる
    データ
    既存ストレージの活用が
    比較的容易
    豊富なマネージドサービス
    認証・統制
    既存サービスの活用が
    比較的容易
    -
    運用

    View Slide

  101. https://www.rescale.com/jp/ 101
    各環境の強み
    オンプレミス クラウド
    GPU 手厚いベンダーサポート 最新でも気軽に試せる
    データ
    既存ストレージの活用が
    比較的容易
    豊富なマネージドサービス
    認証・統制
    既存サービスの活用が
    比較的容易
    -
    運用
    監視・保守手順などが
    転用しやすい
    自動ヒーリングやデプロイ
    スケールなどが容易

    View Slide

  102. https://www.rescale.com/jp/ 102
    機械学習の 2 フェーズ: 学習と推論

    フェーズごとに要件が異なるため、使い分けの考慮は有意義

    それぞれどちらをメインで構築するのか

    同一フェーズでもハイブリッド構成をとるか

    View Slide

  103. https://www.rescale.com/jp/ 103
    機械学習 2 フェーズでのマトリクス
    クラウドで推論
    オンプレで推論
    オンプレで学習 クラウドで学習

    View Slide

  104. https://www.rescale.com/jp/ 104
    機械学習 2 フェーズでのマトリクス
    クラウドで推論
    オンプレで推論
    オンプレで学習 クラウドで学習

    View Slide

  105. https://www.rescale.com/jp/ 105
     ハイブリッド学習環境の課題

    View Slide

  106. https://www.rescale.com/jp/ 106

    ファイルの転送(時間・セキュリティ)
    ハイブリッド学習環境の課題

    View Slide

  107. https://www.rescale.com/jp/ 107

    ファイルの転送(時間・セキュリティ)

    アカウントの連携
    ハイブリッド学習環境の課題

    View Slide

  108. https://www.rescale.com/jp/ 108

    ファイルの転送(時間・セキュリティ)

    アカウントの連携

    クラウドの利用時間
    ハイブリッド学習環境の課題

    View Slide

  109. https://www.rescale.com/jp/ 109

    ファイルの転送(時間・セキュリティ)

    アカウントの連携

    クラウドの利用時間

    クラウドのクラスタチューニング
    ハイブリッド学習環境の課題

    View Slide

  110. https://www.rescale.com/jp/ 110

    ファイルの転送(時間・セキュリティ)

    アカウントの連携

    クラウドの利用時間

    クラウドのクラスタチューニング

    インテグレーション費用
    ハイブリッド学習環境の課題

    View Slide

  111. https://www.rescale.com/jp/ 111
    クラウドの利用時間
    計算していない時間はサーバを落としたい!
    2 時間経過 .. 543 時間経過 ..

    View Slide

  112. https://www.rescale.com/jp/ 112
    クラウドの利用時間
    計算していない時間はサーバを落としたい!
    これ・・まだ計算してる?
    2 時間経過 .. 543 時間経過 ..

    View Slide

  113. https://www.rescale.com/jp/ 113
    クラウドのクラスタチューニング

    CPU コア数、GPU 数、メモリなどなど必要リソースの制御

    プレースメントグループ(AWS)

    ネットワーク / EBS 最適化

    InfiniBand(Azure)

    ..

    View Slide

  114. https://www.rescale.com/jp/ 114
    クラウドのクラスタチューニング

    CPU コア数、GPU 数、メモリなどなど必要リソースの制御

    プレースメントグループ(AWS)

    ネットワーク / EBS 最適化

    InfiniBand(Azure)

    ..
    学習の度に設定するスクリプトを書く ..?
    完全にクラウドごとの管理になるし・・

    View Slide

  115. https://www.rescale.com/jp/ 115
    インテグレーションコスト
    ハイブリッドねぇ・・、これ社内の誰が作るの?
    ( 受託開発屋さん )
    相応の費用をいただければ・・作りますよ・・?

    View Slide

  116. https://www.rescale.com/jp/ 116
     Rescale によるハイブリッド学習環境のご提案
     ScaleX のご紹介

    View Slide

  117. https://www.rescale.com/jp/ 117
    サービスの全体像
    GUI
    Browser
    RestAPI
    Remote
    Desktop

    View Slide

  118. https://www.rescale.com/jp/ 118
    サービスの全体像
    GUI
    SW
    HW

    Browser
    Deep
    Learning
    CAE/CFD/SIMULATION
    Private Cloud
    RestAPI
    Caffe
    Remote
    Desktop

    View Slide

  119. https://www.rescale.com/jp/ 119
    ジョブの投入
    入力ファイルのアップロード
    Compute 環境
    User
    Object Storage
    (Cloud)
    安価・高信頼
    容量を気にしない
    Private Cloud
    Web
    データ容量を気にせず高信頼のクラウドストレージ保存
    システムはクラウドストレージ中心で設計

    View Slide

  120. https://www.rescale.com/jp/ 120
    ジョブの投入
    ジョブの投入
    入力ファイルのアップロード
    HPCクラスタの動的構築 (Public Cloud)
    Compute 環境
    User
    Object Storage
    (Cloud)
    安価・高信頼
    容量を気にしない
    Private Cloud
    Web
    データ容量を気にせず高信頼のクラウドストレージ保存
    システムはクラウドストレージ中心で設計

    View Slide

  121. https://www.rescale.com/jp/ 121
    ジョブの投入
    ジョブの投入
    入力ファイルのアップロード
    HPCクラスタの動的構築 (Public Cloud)
    入力ファイルの転送
    Compute 環境
    User
    Object Storage
    (Cloud)
    安価・高信頼
    容量を気にしない
    Private Cloud
    Web
    データ容量を気にせず高信頼のクラウドストレージ保存
    システムはクラウドストレージ中心で設計

    View Slide

  122. https://www.rescale.com/jp/ 122
    ジョブの投入
    ジョブの投入
    入力ファイルのアップロード
    計算結果の転送
    HPCクラスタの動的構築 (Public Cloud)
    入力ファイルの転送
    Compute 環境
    User
    Object Storage
    (Cloud)
    安価・高信頼
    容量を気にしない
    Private Cloud
    Web
    データ容量を気にせず高信頼のクラウドストレージ保存
    システムはクラウドストレージ中心で設計

    View Slide

  123. https://www.rescale.com/jp/ 123
    計算した時の実行例(AWS コアタイプ)
    Time
    Load average
    ジョブの投入
    アプリケーション実行
    クラスタの削除
    計算実行中
    クラスタ構築
    EB
    S
    インスタンス起動
    マシンイメージ
    Incetance
    s
    ファイルステージング
    データの復号化
    Cloud Storage (S3)
    データの暗号化
    ファイルステージング
    Cloud Storage
    (S3)

    View Slide

  124. https://www.rescale.com/jp/ 124
    計算した時の実行例(AWS コアタイプ)
    Time
    Load average
    ジョブの投入
    クラスタの削除
    計算実行中
    クラスタ構築
    EB
    S
    インスタンス起動
    マシンイメージ
    Incetance
    s
    ファイルステージング
    データの復号化
    Cloud Storage (S3)
    データの暗号化
    ファイルステージング
    Cloud Storage
    (S3)
    必要なときに必要な分だけ計算クラスタが起動。
    この動作をすべて自動で実施し、ユーザは意識する必要はありません
    アプリケーション実行

    View Slide

  125. https://www.rescale.com/jp/ 125
     Rescale によるハイブリッド学習環境のご提案
     ScaleX の管理者機能

    View Slide

  126. https://www.rescale.com/jp/ 126
    管理者専用の機能
    全ジョブの一覧確認
    HW/SWのフィルタリ
    ングができます
    ユーザのグルーピ
    ングができます
    会社、プロジェ
    クト、個人単位
    で、予算設定が
    できます(リミッタ
    にできる)
    セキュアに接続するための設定ができます
    ダッシュボード

    View Slide

  127. https://www.rescale.com/jp/ 127
    管理者専用の機能
    全ジョブの一覧確認
    HW/SWのフィルタリ
    ングができます
    ユーザのグルーピ
    ングができます
    (部門設定が可能 )
    会社、プロジェ
    クト、個人単位
    で、予算設定が
    できます(リミッタ
    にできる)
    セキュアに接続するための設定ができます
    - 多要素認証
    - CIDR設定によりアクセス元を制限
    ダッシュボード

    View Slide

  128. https://www.rescale.com/jp/ 128
    部門/チームを設定可能
    予算設定可能

    View Slide

  129. https://www.rescale.com/jp/ 129

    View Slide

  130. https://www.rescale.com/jp/ 130
     Rescale によるハイブリッド学習環境のご提案
     ワークステーションと統合したハイブリッド環境

    View Slide

  131. https://www.rescale.com/jp/ 131
    DeepLearning in a Box
    GeForce
    ワークステーション

    View Slide

  132. https://www.rescale.com/jp/ 132
    DeepLearning in a Box
    GeForce
    Front/End として Jupyter
    ワークステーション

    View Slide

  133. https://www.rescale.com/jp/ 133
    DeepLearning in a Box
    社内スパコン
    GeForce
    仮想化基盤
    (コンテナー型仮想化 )
    Front/End として Jupyter
    TESLA
    Rescale
    Rest API
    (https)
    ワークステーション

    View Slide

  134. https://www.rescale.com/jp/ 134
    DeepLearning in a Box
    学術系 AI スパコン
    その他 …
    社内スパコン
    GeForce
    仮想化基盤
    (コンテナー型仮想化 )
    Front/End として Jupyter
    TESLA
    TESLA
    TESLA
    Public Cloud 基盤
    Rescale
    Rest API
    (https)
    ワークステーション

    View Slide

  135. https://www.rescale.com/jp/ 135
    NGC イメージのダウンロード
    ● ワンクリックで
    NGC イメージを
    ダウンロード!

    View Slide

  136. https://www.rescale.com/jp/ 136
    ローカル Docker イメージ
    ● RUN ボタンをクリックするだけで、NGC イメージは Jupyter notebook
    でラップされ、Docker コンテナとして起動します

    View Slide

  137. https://www.rescale.com/jp/ 137
    Jupyter Notebook
    ● 起動したコンテナは
    それぞれ固有の
    URL を持っています
    ● クリックするとノート
    が別タブで開きます

    View Slide

  138. https://www.rescale.com/jp/ 138
    Jupyter Notebook
    ● 落としてきた NGC イメージのライブラリは当然全て使えます
    ● workspace 以下での作業結果はすべてワークステーション側に残ります

    View Slide

  139. https://www.rescale.com/jp/ 139
    クラウドでの学習
    ● iPython ファイルを指定すると
    CLI で実行可能な .py に
    自動変換され、実行されます
    ● 学習に利用する
    GPU の種類と CPU コア数を
    選択し学習を「START」します

    View Slide

  140. https://www.rescale.com/jp/ 140
    タスク
    ● 指定した Docker イメージが Singularity イメージに変換され・・

    View Slide

  141. https://www.rescale.com/jp/ 141
    タスク
    ● ScaleX に変換後の
    Singularity イメージが
    送信され学習開始

    View Slide

  142. Subtitle
    Date

    View Slide