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

NGC × Singularity での機械学習環境/MachineLearning environment with NGC and Singularity

NGC × Singularity での機械学習環境/MachineLearning environment with NGC and Singularity

ryo nakamaru

May 24, 2018
Tweet

More Decks by ryo nakamaru

Other Decks in Science

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. 機械学習環境
    !6

    View Slide

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

    View Slide

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

    View Slide

  9. 1. なぜ Docker か
    !9

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. 4. なぜ Kubernetes か
    !22

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  27.  
    Kubernetes
    !27
    Control plane(管理ノード)
         
    計算ノード
    Tesla V100
    社内 DC
    TITAN V
    社内 DC
    Tesla P100
    AWS

    • 専用線で繋げばクラウドもクラスタに
    • Federated という方法もあったり

    View Slide

  28.  
    Kubernetes
    !28
    Control plane(管理ノード)
    ジョブを定義した
    YAML を Apply
         
    計算ノード
    Tesla V100
    社内 DC
    TITAN V
    社内 DC
    Tesla P100
    AWS

    • “クラウドで動かしたい” or / and
    • “Tesla P100 で動かしたい”

    View Slide

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

    View Slide

  30. そんな中、では
    !30

    View Slide

  31. 5. なぜ Singularity か
    !31

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

     
    GPU
    GPU
    GPU

    確保!

    View Slide

  38. HPC 系ジョブスケジューラとの違い
    !38
    Web (Docker) 界隈
    ・Singularity 対応なし
    ・基本ホストリソースの 切り売り
    scheduler
     
    GPU
    GPU
    GPU

     
    GPU
    GPU
    GPU

    確保!
    scheduler
     
    GPU
    GPU
    GPU

     
    GPU
    GPU
    GPU

    確保!
    HPC 業界
    ・ノードをまたいで リソースを確保できる
    ・ノード間通信するための設定もしてくれる

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  46. DEMO
    !46

    View Slide

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

    View Slide

  48. ご静聴ありがとうございました
    参考文献:
    • ディープ ラーニング コンテナー - 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

    View Slide