More Related Content
Similar to PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 (20)
More from Preferred Networks (20)
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
- 2. 発表者の紹介
● 上野 裕一郎 (Yuichiro Ueno)
○ 2021/04 新卒入社
■ Cluster Services チーム
○ 入社前
■ スパコンで深層学習をする研究
○ 趣味
■ ISUCONとか性能最適化
○ SNS
■ twitter.com/y1r96
2
- 5. PFNがオンプレクラスタを選ぶ理由
● Vision: 現実世界を計算可能にする
○ シミュレーションや深層学習は膨大な計算リソースを必要とする
○ 計算力は競争力の源であり,大量の計算機が必要
● 大規模な計算を(息をするように)したい
○ 16 GPUs, 32 GPUs and More*な分散学習を回したい
○ 1 GPUな学習を数百個パラメータを変えて回したい
○ Neural Architecture Searchをしたい
● 計算基盤全てをコントロールしたい
○ ノード内・ノード間通信,I/Oの全ての最適化が高速な学習には必要
● 上から下まで(ハードもソフトも人も)保有することの重要性
○ (調達・設計からアルゴリズムまで)様々な技術バックグラウンドを持つ
メンバーが集結することで新しいものを生み出していきたい
5
(*) [1711.04325] Extremely Large Minibatch SGD: Training ResNet-50 on ImageNet in 15 Minutes
- 7. 7
PFNのオンプレKubernetesクラスタ
Icon pack by Icons8 - https://icons8.com
データセンタごとにKubernetesクラスタを構成
128 nodes
(1024 GPUs)
MN-1
P100 PCIe x 8
10GbE x 2
InfiniBand FDR
(56 Gbps) x 2
MN-3a
48 nodes
(192 MN-Cores)
MN-Core x 4
100GbE x 2
MN-Core
DirectConnect
MN-2a
128 nodes
(1024 GPUs)
V100 SXM2 x 8
100GbE x 4
RoCEv2
with SR-IOV
WAN
MN-1 MN-J
世界1位!!
NVIDIA GPUなどの最新技術を採用した プライベート・スーパーコンピュータ MN-2 を自社構築し、7月に稼働
Preferred Networksの深層学習用スーパーコンピュータMN-3がスーパーコンピュータ省電力性能ランキングGreen500で世界1位を獲得
- 12. 多様なリテラシのユーザが使いやすい環境
12
● とにかく手軽にWebだけで簡単にGPU, MN-Coreが使える(Jupyter , code-server )
● pre-builtなall-in-one(必要なライブラリ全部入り)なcontainer imageで起動
● Kubernetesをほとんど知らなくてもOK
● 大規模な実験にはあまり向かない
Interactive
Environment
● Manifestを直接書ける人用
○ 内製のArgo Workflow記述DSL(python)有り
kubectl
● 手元でコードを編集して、クラスタで実行したいひと向け
● Kubernetesの知識は少し必要だがマニフェストを書かなくていい
● 専用CLIでimage build → manifest applyまで実行可能(分散学習も対応)
$ pfkube run -p mpijob --gpu 8 -o worker 4 -- mpiexec train.py
● pushなしで手元で編集中のコードがクラスタで再現可能な形で実行可 (git-ghost連携)
● defaultはall-in-one イメージ, 自分でDockerfile書くことも可能
build-and-run
CLI tool
- 13. PFNにおける典型的なワークロード
13
(*) 分散深層学習を支える技術:AllReduceアルゴリズム - Preferred Networks Research & Development
(**) [2007.08082] Distributed Reinforcement Learning of Targeted Grasping with Active Vision for Mobile Manipulators
MPIジョブ
例: AllReduce*を伴う分散深層学習
タスク並列ジョブ
例: Parameter Search
ヘテロジニアスなジョブ
例: 環境とモデルが通信する強化学習**
環境 (シミュレータ)
学習器 (MLP)
Task
Queue
Icon pack by Icons8 - https://icons8.com
ワークフロー
例: Neural Architecture Search
インタラクティブ利用
- 15. リソースを効率的に利用できること
● マルチテナントによるプロジェクト間でのリソース共有
● 高度なスケジューリング(custom scheduler plugins)
○ 優先度
■ CPUジョブよりもGPUジョブを優先したスケジュール
○ Gang Scheduling (a.k.a Co-Scheduling)
■ Pod全てが同時にスケジュールされるか,全くされないか
■ Gang Podを”近く”に配置するUnique Zone制約もサポート
○ 様々なデバイスのサポート
■ GPU, NIC, MN-Core, Persistent Memory
● パフォーマンス
○ multi 100G NIC with RoCEv2 & SR-IOV
■ GPU間通信 for 分散学習 & ストレージ系の通信を混載する
○ 継続的な通信性能のリグレッションテスト
15
- 16. リソースをフェアに利用できること
● 優先度(PriorityClass)制御
○ high > low > low-cpu > lowest
○ high
■ lowでクラスタが混雑していてもプリエンプションして走る
■ 同時実行数はプロジェクト単位で制限されている
○ それ以外の優先度クラスは誰でも使い放題
■ オンプレクラスタが遊ぶのはもったいないのでガンガン使う
● 各ユーザが利用した量に基づくスケジューリング・プリエンプション
○ ノード時間積(利用リソース量 * 利用時間)を考慮する
■ よく使っているユーザはスケジューリングされづらい
■ よく使っているユーザはプリエンプションされやすい
16
- 18. サーバプロビジョニング・GitOpsなど
18
Cluster API MAAS Provider
(in-house)
provisioning nodes with ansible
Flux
Flux
GitHub
Enterprise
production
eval
sync manifests
apply
apply
マニフェストは
モノレポ管理
v1.23 準備中
(1 Minor Version遅れで運用)
- 20. 運用省力化
20
Node Problem
Detector
Server-Checker
(Custom Plugin)
status.conditions:
- type: DStateProcess
status: "True"
reason: DStateProcessIsDetected
message: python(34688) in ml-pod@user-ns is D-state
- type: GPUPendingPage
status: "True"
reason: GPUHasPendingPage
message: GPU 0 has pending page: SingleBitErrors=3, DoubleBitErrors=1
Reconcile
Conditions
pfnet-research/node-operation-controller
NodeRemeditation
Template
NodeOperation 生成
Icons made by Icon Monk from www.flaticon.com is licensed by CC 3.0 BY
復旧処理(Remediation)
が既知なConditionに
対して作成
復旧処理
復旧処理時の
Taint/Evict等も自動
- 24. We're Hiring!
機械学習プラットフォームエンジニア (Infrastructure)
● こんな環境にワクワクする方を募集しています!
○ 日進月歩で進化している機械学習にフォーカスした計算技術を低レイヤーから高レイヤー
までトータルに吸収できる
○ 大規模機械学習クラスタの開発・運用が経験できる
○ Kubernetesを始めとするOSSコミュニティでも活躍できるチャンスがある
○ HPCとCloud Nativeの境界領域という今後ますます重要になる分野の経験ができる
○ 多様な要求・ユーザーリテラシをサポートするプラットフォーム設計・実装を経験できる
24
学生さん向け
夏季国内インターン
も開催予定です!
(4/1 公開予定)
- 25. We're Hiring!
● カジュアル面談希望の連絡お待ちしています(DMでもメンションでもお気軽に)
○ 大村: @everpeace
● 資料
○ PFNのML/DL基盤を支えるKubernetesにおける自動化 (DevOpsDays Tokyo 2021)
○ How to Schedule Machine Learning Workloads Nicely In Kubernetes (CNDT 2020)
○ Kubernetesによる機械学習基盤への挑戦 (JAPANCONTAINERDAYS V18.12)
○ Preferred Networksの機械学習クラスタを支える技術 (JulyTech Festa 2018 基調講演)
○ (採用ページにはこの他にも載せてあります )
25