网站首页 文章专栏 k8s 拓扑管理--GPU优选打分测试及分析
一、k8s 拓扑管理原理、实现及测试方法(参考以下文献)
K8S affinity topology feature源码分析
二、英伟达 GPU 插件内置打分规则
可以看出,GPU对的打分是基于GPU对之间通信方式(NVLinks、P2PLinks)进行的。
三、验证测试(英伟达 V100 8卡 32GB GPU)
3.1 V100 GPU拓扑
NVlink:
PCI:
3.2 V100 NVLink 示意图(和3.2中实际拓扑图略有差别)
与 3.1 NVlink 对比 修正后 GPU 拓扑图
3.3 构造场景输出打分
根据 GPU 插件内置打分规则,计算 GPU 对之间的分值如下表所示(部分未构造场景输出):
打分 | GPU0 | GPU1 | GPU2 | GPU3 | GPU4 | GPU5 | GPU6 | GPU7 |
GPU0 | x | 150 | 220 | 120 | 10 | 10 | 10 | 210 |
GPU1 | 150 | x | 120 | 220 | 10 | 10 | 210 | 10 |
GPU2 | 220 | 120 | x | 250 | ||||
GPU3 | 120 | 220 | 250 | x | 110 | 10 | 10 | 10 |
GPU4 | 10 | 10 | 110 | x | 250 | 220 | 120 | |
GPU5 | 10 | 10 | 10 | 250 | x | 120 | 220 | |
GPU6 | 10 | 210 | 10 | 220 | 120 | x | 150 | |
GPU7 | 210 | 10 | 10 | 120 | 220 | 150 | x |
3.4 分析验证
Score[0-1] = 1*NVLink + 1*P2PLinkSingleSwitch (1绿线+1紫线)= 100 + 50 = 150 分
Score[0-2] = 2*NVLink + 1*P2PLinkSameCpu (2绿线 + NUMA组内 CPU 连接)= 2*100 + 20 = 220 分
Score[0-3] = 1*NVLink + 1*P2PLinkSameCpu (1绿线 + NUMA组内 CPU 连接)= 1*100 + 20 = 120 分
Score[0-4] = 1*P2PLinkCrossCpu(跨 NUMA 组 CPU 通信)= 10 分
Score[0-5] = 1*P2PLinkCrossCpu(跨 NUMA 组 CPU 通信)= 10 分
Score[0-6] = 1*P2PLinkCrossCpu(跨 NUMA 组 CPU 通信)= 10 分
Score[0-7] = 2*NVLink + 1*SYS(跨 NUMA 组 CPU 通信)= 2*100 + 10 = 210 分
Score[6-7] = NV1 + PIX = 100 + 50 = 150 分
Score[6-5] = NV1 + NODE = 100 + 20 = 120 分
...........................
以上分值与表中分值相等。
所以,根据实际拓扑图,进行分析打分,验证了 GPU 插件内置打分规则的准确性。
四、打分关键字含义
GPU 通信方式:
X = Self
SYS = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
PHB = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
PXB = Connection traversing multiple PCIe switches (without traversing the PCIe Host Bridge)
PIX = Connection traversing a single PCIe switch
NV# = Connection traversing a bonded set of # NVLinks
对应打分关系:
1. SYS => 10 分
P2PLinkCrossCPU
2. NODE => 20 分
nvml.P2PLinkSameCPU
3. PHB => 30 分
P2PLinkHostBridge
4. PXB => 40分
P2PLinkMultiSwitch
5. PIX => 50分
P2PLinkSingleSwitch:
6. => 60分
P2PLinkSameBoard
7. NV# => 100*个数
SingleNVLINKLink
TwoNVLINKLinks
......................
SYS:跨 NUMA 组 PCIe 通信(GPU0-7);
NODE:NUMA 组内 PCIe 跨桥通信(红);
PHB:跨单桥PCIes 通信(绿);
PXB:非跨桥 PCIes 通信(多根 PCIe,蓝);
PIX:非跨桥单根 PCIe 通信(单根 PCIe,橙);
NV#:#根 NVLINK(GPU2-3是2根)。
PCI参考文献: