3. 3
● リソースは CPU, Memory Manager と Device Plugin で管理される
○ 各Managerだけでは大域的に良い割り当てを見つけられない
誰かが調停して割り当てを決める必要がある ⇒ Topology Manager
Kubernetes におけるリソースの割り当て
Icon pack by Icons8 - https://icons8.com
CPU Socket
CPU Socket
GPU NIC
MEM CPU CPU
MEM
NIC GPU
CPU Managerは
こっち!?
nvidia-device-pluginは
こっち!?
NUMA Node #1 NUMA Node #2
5. 5
TopologyHintによるNUMA Affinityの解決の概要
CPU Manager: [10], [01]
→ またがっちゃだめ
Memory Manager: [10], [01]
→ またがっちゃだめ
GPU Device Plugin: [10]
→ Socket 0のみOK
TopologyHint ≒ [ 1 0 ]
i 番目がTrue ⇔ Socket(~NUMA) iとのAffinity可能
Socket 0と近い割り当てができそう!
Mergeされた結果
[1 0]
→Socket 0のみOK
CPU Socket 1
CPU Socket 0
GPU NIC
MEM CPU CPU
MEM
NIC GPU
使用中
Icon pack by Icons8 - https://icons8.com
6. 6
● Topology Managerを使い始めました!
○ 最近K8s v1.23に更新しました
○ best-effort policy で,GPUがCPUソケットにまたがって割当てられなくなった
■ うれしい!
Icon pack by Icons8 - https://icons8.com
CPU Socket
CPU Socket
GPU NIC
MEM CPU CPU
MEM
NIC GPU
PFNでもTopology Managerを使い始めました
PFNの計算ノードの構成
● CPU: 2ソケット
● GPU: 各ソケットに複数
● NIC: 各ソケットに複数