Skip to main content

在大规模GPU集群中部署大模型推理服务时,网络拓扑对性能的影响至关重要。本文通过PD(Prefill-Decode)分离部署的实战场景案例,详细演示如何使用Volcano的网络拓扑感知调度功能,在IB(InfiniBand)网络环境下优化节点选择,实现:

  • 🎯 延迟优化:将跨交换机通信延迟从5-10μs降低到2-5μs,性能提升2-5
  • 🎯 带宽优化:保持200Gbps高带宽,避免50%的带宽损失,吞吐量提升30-50%
  • 🎯 资源优化Prefill使用H100高性能GPUDecode使用RTX 4090性价比GPU,降低整体成本

本文将从场景背景、技术方案分析、HyperNode拓扑设计到具体实施,提供完整的实践案例。

1. 场景背景

1.1 基础设施环境

硬件拓扑

  • 集群规模GPU服务器若干
  • IB网络组网
    • 7个交换机,其中3IB交换机,4个以太网交换机,每个叶子交换机上最多有64GPU服务器
    • IB网络提供高带宽(200Gbps)、低延迟(<2μs)的RDMA通信
    • IB网络域通信需要经过以太网,延迟显著增加(>10μs
  • GPU配置
    • 每台服务器配置8GPU
    • 每个交换机下有各种卡型号服务器,以A100/H1004090/5090为主。

大致的网络拓扑如下:

                                    eth switch6
/ \
ib switch4 eth switch5
/ \ / \
ib switch0 ib switch1 eth switch2 eth switch3
/ | \ / | \ / | \ / | \
node0 ... node63 node64 ... node127 ... ... ... ... ... ...

网络性能对比

通信类型带宽延迟带宽损失适用场景
IB交换机内(同交换机节点)200Gbps<2μs0%高性能分布式推理
IB交换机间(跨IB交换机)200Gbps2-5μs0%分布式推理
IB到以太网(跨交换机类型)100Gbps5-10μs~50%一般分布式任务
以太网交换机间10-100Gbps>10μs50-95%非性能敏感任务

1.2 PD分离推理场景介绍

什么是PD分离?

PD分离(Prefill-Decode分离)是大模型推理优化的一种架构模式:

  • Prefill阶段:处理输入prompt,生成初始KV Cache

    • 计算密集型,需要高算力
    • 输入长度可变,计算量大
    • 适合部署在高性能数据中心GPU上(如H100A100
  • Decode阶段:逐个生成输出token

    • 访存密集型,对带宽要求高
    • 计算量相对较小,但需要频繁访问KV Cache
    • 可以使用性价比更高的消费级GPU(如RTX 4090RTX 5090

PD分离的优势

  • ✅ 资源利用率提升:不同阶段使用最适合的GPU型号
  • ✅ 吞吐量提升:PrefillDecode可以并行处理不同请求
  • ✅ 成本优化:根据计算特点选择性价比最优的硬件

1.3 业务需求

分布式PD推理架构

在我们的场景中,需要部署分布式PD分离推理服务:

  1. Prefill服务

    • 需要12Pod,每个Pod使用1GPUH100
    • 要求在同一IB网络域内,以实现高效的KV Cache传输
  2. Decode服务

    • 需要12Pod,每个Pod使用1GPURTX 4090
    • 要求在同一IB网络域内,以实现高效的KV Cache访问

核心需求

  • 同域部署PrefillDecode集群必须部署在同一IB网络域内,避免跨域通信延迟
  • 域内优化:在IB网络域内,优化节点选择,减少跨交换机通信
  • 资源利用:充分利用同一域内不同节点的GPU型号优势(H100用于PrefillRTX 4090用于Decode

2. 技术方案分析

2.1 简单亲和性调度的局限性

场景分析

在大规模混合网络集群中(7个交换机,其中3IB交换机、4个以太网交换机,最多384台服务器),如果仅使用节点亲和性或Pod亲和性:

# 仅使用节点亲和性的配置示例
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: gpu-type
operator: In
values:
- h100 # 只能保证选择H100节点

存在的问题

  1. 无法感知网络拓扑

    • ❌ 调度器不知道节点之间的网络距离和交换机类型
    • 12Prefill Pod可能分散在IB和以太网交换机下
    • 12Decode Pod也可能分散在不同类型的交换机下
    • PrefillDecode之间的KV Cache传输可能需要跨交换机类型
  2. 网络性能不可控

    • 延迟问题
      • 同一IB交换机内通信延迟<2μs
      • IB交换机通信延迟2-5μs
      • 跨交换机类型(IB到以太网)延迟5-10μs
      • 延迟差异可能导致5倍的性能差距
    • 带宽损失问题
      • IB交换机间保持200Gbps带宽
      • 跨交换机类型带宽降至100Gbps(损失~50%
      • 以太网交换机间带宽仅10-100Gbps(损失50-95%
      • 带宽损失严重影响KV Cache传输效率
  3. 资源利用率低

    • ❌ 无法优先选择网络距离近且交换机类型匹配的节点
    • ❌ 可能导致高性能IB交换机下的节点空闲,而低性能以太网交换机下的节点过载

实际影响

对于PD分离推理服务:

  • Prefill生成的KV Cache需要频繁传输给Decode
  • 如果12Prefill Pod12Decode Pod分散在不同类型的交换机下:
    • 延迟影响:跨交换机类型通信延迟从<2μs增加到5-10μs,增加5
    • 带宽影响:跨交换机类型带宽从200Gbps降至100Gbps,损失50%
    • 吞吐量影响KV Cache传输效率降低,Decode阶段等待时间增加,整体吞吐量可能下降30-50%

2.2 网络拓扑感知调度的优势

核心价值

网络拓扑感知调度能够理解集群的网络拓扑结构,在调度时优先选择网络距离近的节点:

  1. 拓扑感知

    • ✅ 调度器知道每个节点所属的交换机层级和交换机类型(IB或以太网)
    • ✅ 能够计算节点之间的网络距离(通过LCA最低公共祖先)
    • ✅ 优先选择同一交换机下的节点,避免跨交换机类型通信
  2. 性能优化

    • 延迟优化
      • 12Prefill Pod尽量集中在IB交换机下(ib switch0ib switch1
      • 12Decode Pod也尽量集中在IB交换机下
      • 两组Pod尽量在同一IB汇聚交换机(ib switch4)下,延迟保持在2-5μs
    • 带宽优化
      • 避免跨交换机类型通信,保持200Gbps带宽
      • 避免带宽损失(50-95%),确保KV Cache传输效率
  3. 灵活性

    • ✅ 支持Hard模式(严格限制)和Soft模式(尽力而为)
    • ✅ 可以通过highestTierAllowed控制允许的最大网络距离
    • ✅ 在满足拓扑约束的前提下,仍然支持其他调度策略

2.3 使用方案

组合方案:节点亲和性 + 网络拓扑感知调度

  • 节点亲和性:硬约束,确保选择正确的GPU型号(H100RTX 4090
  • 网络拓扑感知调度:软约束,在满足GPU型号要求的前提下,优化网络拓扑

方案优势

  • 精确控制:通过节点亲和性确保GPU型号正确
  • 性能优化:通过网络拓扑感知在域内选择网络距离近的节点
  • 适应性强:适合大规模、复杂网络拓扑的集群

3. HyperNode拓扑设计

3.1 拓扑结构设计

根据我们的网络拓扑情况,设计如下HyperNode拓扑层级:

tier3                                            eth switch6
/ \
tier2 ib switch4 eth switch5
/ \ / \
tier1 ib switch0 ib switch1 eth switch2 eth switch3
/ | \ / | \ / | \ / | \
node0 ... node63 node64 ... node127 ... ... ... ... ... ...

层级说明

  • Tier 1:叶子交换机层,每个叶子交换机下最多64台服务器
    • ib switch0ib switch1IB交换机,提供高带宽低延迟通信
    • eth switch2eth switch3:以太网交换机,用于非性能敏感任务
  • Tier 2:汇聚交换机层
    • ib switch4IB汇聚交换机,连接ib switch0ib switch1
    • eth switch5:以太网汇聚交换机,连接eth switch2eth switch3
  • Tier 3:核心交换机(eth switch6),整个集群的根节点,连接不同类型的汇聚交换机

网络拓扑特点

  • 同一IB交换机内:延迟<2μs,带宽200Gbps,性能最优
  • IB交换机:延迟2-5μs,带宽200Gbps,保持高性能
  • IB到以太网:延迟5-10μs,带宽降至100Gbps(损失~50%),性能显著下降
  • 以太网交换机间:延迟>10μs,带宽10-100Gbps(损失50-95%),不适合高性能任务

PD分离部署说明

  • Prefill服务:12Pod,需要选择H100节点,必须部署在IB交换机下ib switch0ib switch1
  • Decode服务:12Pod,需要选择RTX 4090节点,必须部署在IB交换机下ib switch0ib switch1
  • 两个服务的所有节点应尽量在同一IB汇聚交换机(ib switch4)下,以:
    • 保持200Gbps带宽,避免带宽损失
    • 保持2-5μs延迟,避免跨交换机类型通信
    • 确保KV Cache传输效率最优

3.2 HyperNode配置

为了支持网络拓扑感知调度,我们需要创建HyperNode资源来描述集群的网络拓扑(这里使用手动维护HyperNode的方式)。

如果不基于以太网节点之间的网络拓扑实现感知调度,可以不创建以太网的HyperNode以简化维护成本。本示例为保证完整性,为所有交换机创建了HyperNode配置。

# Tier 1: IB叶子交换机 ib-switch0
apiVersion: topology.volcano.sh/v1alpha1
kind: HyperNode
metadata:
name: ib-switch0
spec:
tier: 1
members:
- type: Node
selector:
labelMatch:
matchLabels:
topology.kubernetes.io/switch: ib-switch0
topology.kubernetes.io/switch-type: ib # IB交换机标识

---
# Tier 1: IB叶子交换机 ib-switch1
apiVersion: topology.volcano.sh/v1alpha1
kind: HyperNode
metadata:
name: ib-switch1
spec:
tier: 1
members:
- type: Node
selector:
labelMatch:
matchLabels:
topology.kubernetes.io/switch: ib-switch1
topology.kubernetes.io/switch-type: ib

---
# Tier 1: 以太网叶子交换机 eth-switch2
apiVersion: topology.volcano.sh/v1alpha1
kind: HyperNode
metadata:
name: eth-switch2
spec:
tier: 1
members:
- type: Node
selector:
labelMatch:
matchLabels:
topology.kubernetes.io/switch: eth-switch2
topology.kubernetes.io/switch-type: ethernet # 以太网交换机标识

---
# Tier 1: 以太网叶子交换机 eth-switch3
apiVersion: topology.volcano.sh/v1alpha1
kind: HyperNode
metadata:
name: eth-switch3
spec:
tier: 1
members:
- type: Node
selector:
labelMatch:
matchLabels:
topology.kubernetes.io/switch: eth-switch3
topology.kubernetes.io/switch-type: ethernet

---
# Tier 2: IB汇聚交换机 ib-switch4(连接 ib-switch0 和 ib-switch1)
apiVersion: topology.volcano.sh/v1alpha1
kind: HyperNode
metadata:
name: ib-switch4
spec:
tier: 2
members:
- type: HyperNode
selector:
exactMatch:
name: ib-switch0
- type: HyperNode
selector:
exactMatch:
name: ib-switch1

---
# Tier 2: 以太网汇聚交换机 eth-switch5(连接 eth-switch2 和 eth-switch3)
apiVersion: topology.volcano.sh/v1alpha1
kind: HyperNode
metadata:
name: eth-switch5
spec:
tier: 2
members:
- type: HyperNode
selector:
exactMatch:
name: eth-switch2
- type: HyperNode
selector:
exactMatch:
name: eth-switch3

---
# Tier 3: 核心交换机 eth-switch6(集群根节点)
apiVersion: topology.volcano.sh/v1alpha1
kind: HyperNode
metadata:
name: eth-switch6
spec:
tier: 3
members:
- type: HyperNode
selector:
exactMatch:
name: ib-switch4
- type: HyperNode
selector:
exactMatch:
name: eth-switch5

配置说明

  • IB交换机ib-switch0ib-switch1):通过标签选择器关联IB交换机下的节点,用于高性能任务
  • 以太网交换机eth-switch2eth-switch3):通过标签选择器关联以太网交换机下的节点,用于非性能敏感任务
  • IB汇聚交换机ib-switch4):连接两个IB叶子交换机,保持200Gbps带宽
  • 以太网汇聚交换机eth-switch5):连接两个以太网叶子交换机
  • 核心交换机eth-switch6):连接不同类型的汇聚交换机,形成完整的拓扑树

重要提示

  • PD分离服务应部署在IB交换机下的节点,通过节点标签topology.kubernetes.io/switch-type: ib进行筛选
  • 避免将高性能任务调度到以太网交换机下的节点,以免带宽损失和延迟增加

4. 方案实施

4.1 为节点打标签

以下脚本仅做示例,主要阐述在使用网络拓扑感知调度之前,节点打标也是很重要一个环节。

# 为 IB switch0 下的节点打标签(假设 node0-node63)
for i in {0..63}; do
kubectl label node node$i topology.kubernetes.io/switch=ib-switch0
kubectl label node node$i topology.kubernetes.io/switch-type=ib
done

# 为 IB switch1 下的节点打标签(假设 node64-node127)
for i in {64..127}; do
kubectl label node node$i topology.kubernetes.io/switch=ib-switch1
kubectl label node node$i topology.kubernetes.io/switch-type=ib
done

# 为以太网 switch2 下的节点打标签(假设 node128-node191)
for i in {128..191}; do
kubectl label node node$i topology.kubernetes.io/switch=eth-switch2
kubectl label node node$i topology.kubernetes.io/switch-type=ethernet
done

# 为以太网 switch3 下的节点打标签(假设 node192-node255)
for i in {192..255}; do
kubectl label node node$i topology.kubernetes.io/switch=eth-switch3
kubectl label node node$i topology.kubernetes.io/switch-type=ethernet
done

# 为 H100 节点打上 GPU 型号标签(仅在 IB 交换机下)
# 假设 ib-switch0 和 ib-switch1 下有 H100 节点
kubectl label node node0 node1 node5 node10 node15 node20 node64 node65 node70 node75 node80 node85 gpu-type=h100

# 为 RTX 4090 节点打上 GPU 型号标签(仅在 IB 交换机下)
# 假设 ib-switch0 和 ib-switch1 下也有 RTX 4090 节点
kubectl label node node2 node3 node6 node11 node16 node21 node66 node67 node71 node76 node81 node86 gpu-type=rtx4090

# 验证标签
kubectl get nodes -L topology.kubernetes.io/switch,topology.kubernetes.io/switch-type,gpu-type

标签说明

  • topology.kubernetes.io/switch:标识节点所属的叶子交换机(ib-switch0ib-switch1eth-switch2eth-switch3
  • topology.kubernetes.io/switch-type:标识交换机类型(ibethernet
  • gpu-type:标识节点上的GPU型号(h100rtx4090

重要提示

  • PD分离服务的节点必须在IB交换机下(topology.kubernetes.io/switch-type=ib
  • 以太网交换机下的节点不适合高性能推理任务,应用于非性能敏感任务

4.2 Prefill服务配置

需求:部署Prefill服务,12Pod,选择H100节点,尽量集中在少数交换机下。

这里使用Volcano Job来演示Prefill服务的部署,若使用Deployment部署,相关配置一致。

apiVersion: batch.volcano.sh/v1alpha1
kind: Job
metadata:
name: pd-prefill-service
spec:
minAvailable: 12 # Gang调度:12个Pod必须同时满足
schedulerName: volcano
queue: default

# 网络拓扑感知调度:优化节点选择,尽量集中在少数交换机下
networkTopology:
mode: soft # 软约束,尽量选择网络距离近的节点
highestTierAllowed: 2 # 允许在Tier 2(汇聚交换机)内调度

tasks:
- replicas: 12
name: prefill-worker
template:
spec:
# 节点亲和性:必须选择IB交换机下的H100节点(硬约束)
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: gpu-type
operator: In
values:
- h100 # 必须在H100节点
- key: topology.kubernetes.io/switch-type
operator: In
values:
- ib # 必须在IB交换机下

# Pod反亲和性:尽量将Pod分散到不同节点(软约束)
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: volcano.sh/job-name
operator: In
values:
- pd-prefill-service
topologyKey: kubernetes.io/hostname

containers:
- name: prefill-service
image: vllm/vllm:latest
command: ["python", "-m", "vllm.entrypoints.api_server"]
args:
- "--model=/models/llama-70b"
- "--tensor-parallel-size=1"
- "--pipeline-parallel-size=1"
- "--enable-prefix-caching"
env:
- name: NCCL_IB_DISABLE
value: "0" # 启用IB网络
- name: NCCL_SOCKET_IFNAME
value: "ib0" # 指定IB网络接口
- name: NCCL_IB_HCA
value: "mlx5" # 指定IB设备
resources:
limits:
nvidia.com/gpu: "1"
requests:
nvidia.com/gpu: "1"
restartPolicy: OnFailure

关键配置说明

  • minAvailable: 12:Gang调度,确保12Pod同时满足才开始调度
  • nodeAffinity:硬约束,确保所有Prefill Pod调度到IB交换机下的H100节点
    • gpu-type: h100:选择H100节点
    • topology.kubernetes.io/switch-type: ib必须在IB交换机下
  • networkTopology.mode: soft:软约束,优化网络拓扑
  • networkTopology.highestTierAllowed: 2:允许在Tier 2IB汇聚交换机)内调度
  • podAntiAffinity:软约束,尽量将Pod分散到不同节点
  • NCCL_IB_DISABLE=0:启用IB网络

调度效果(网络拓扑感知的优势)

如果不使用网络拓扑感知调度或未限制交换机类型:

  • 12Pod可能分散在IB和以太网交换机下
  • 延迟问题:跨交换机类型通信延迟可能达到5-10μs
  • 带宽损失:跨交换机类型带宽降至100Gbps,损失50%
  • KV Cache传输效率严重下降,吞吐量可能下降30-50%

使用网络拓扑感知调度 + IB交换机约束后:

  • 12Prefill Pod全部部署在IB交换机下(ib-switch0ib-switch1
  • ✅ 大部分Pod在同一叶子交换机下,通信延迟<2μs,带宽200Gbps
  • ✅ 少数跨叶子交换机的通信也在同一IB汇聚交换机(ib-switch4)下,延迟2-5μs,带宽200Gbps
  • 避免跨交换机类型通信,无带宽损失,网络性能最优

4.3 Decode服务配置

需求:部署Decode服务,12Pod,选择RTX 4090节点,尽量集中在少数交换机下,并与Prefill服务在同一汇聚交换机下。

这里使用Volcano Job来演示Decode服务的部署,若使用Deployment部署,相关配置一致。

apiVersion: batch.volcano.sh/v1alpha1
kind: Job
metadata:
name: pd-decode-service
spec:
minAvailable: 12 # Gang调度:12个Pod必须同时满足
schedulerName: volcano
queue: default

# 网络拓扑感知调度:优化节点选择,尽量集中在少数交换机下
networkTopology:
mode: soft # 软约束,尽量选择网络距离近的节点
highestTierAllowed: 2 # 允许在Tier 2(汇聚交换机)内调度

tasks:
- replicas: 12
name: decode-worker
template:
spec:
# 节点亲和性:必须选择IB交换机下的RTX 4090节点(硬约束)
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: gpu-type
operator: In
values:
- rtx4090 # 必须在RTX 4090节点
- key: topology.kubernetes.io/switch-type
operator: In
values:
- ib # 必须在IB交换机下

# Pod反亲和性:尽量将Pod分散到不同节点(软约束)
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: volcano.sh/job-name
operator: In
values:
- pd-decode-service
topologyKey: kubernetes.io/hostname

containers:
- name: decode-service
image: vllm/vllm:latest
command: ["python", "-m", "vllm.entrypoints.api_server"]
args:
- "--model=/models/llama-70b"
- "--tensor-parallel-size=1"
- "--pipeline-parallel-size=1"
- "--enable-prefix-caching"
env:
- name: NCCL_IB_DISABLE
value: "0" # 启用IB网络
- name: NCCL_SOCKET_IFNAME
value: "ib0" # 指定IB网络接口
- name: NCCL_IB_HCA
value: "mlx5" # 指定IB设备
resources:
limits:
nvidia.com/gpu: "1"
requests:
nvidia.com/gpu: "1"
restartPolicy: OnFailure

关键配置说明

  • minAvailable: 12Gang调度,确保12Pod同时满足才开始调度
  • nodeAffinity:硬约束,确保所有Decode Pod调度到IB交换机下的RTX 4090节点
    • gpu-type: rtx4090:选择RTX 4090节点
    • topology.kubernetes.io/switch-type: ib必须在IB交换机下
  • networkTopology.mode: soft:软约束,优化网络拓扑
  • networkTopology.highestTierAllowed: 2:允许在Tier 2IB汇聚交换机)内调度
  • podAntiAffinity:软约束,尽量将Pod分散到不同节点

调度效果(PD分离的完整优化)

使用网络拓扑感知调度 + IB交换机约束后:

  • 12Decode Pod也全部部署在IB交换机下(ib-switch0ib-switch1
  • PrefillDecode之间的KV Cache传输主要在同一IB汇聚交换机(ib-switch4)下,延迟2-5μs,带宽200Gbps
  • 避免跨交换机类型的KV Cache传输,无带宽损失
  • ✅ 整体推理性能最优,吞吐量最高

与简单亲和性调度的对比

对比项简单亲和性调度网络拓扑感知 + IB约束
Prefill Pod分布可能分散在IB和以太网交换机集中在IB交换机(ib-switch0/1
Decode Pod分布可能分散在IB和以太网交换机集中在IB交换机(ib-switch0/1
Prefill内部通信延迟2-10μs(可能跨交换机类型)<5μsIB交换机内)
Prefill内部通信带宽100-200Gbps(可能损失50%200Gbps(无损失)
Decode内部通信延迟2-10μs(可能跨交换机类型)<5μsIB交换机内)
Decode内部通信带宽100-200Gbps(可能损失50%200Gbps(无损失)
Prefill-Decode通信延迟5-10μs(可能跨交换机类型)2-5μs(同一IB汇聚交换机)
Prefill-Decode通信带宽100Gbps(损失50%200Gbps(无损失)
整体吞吐量下降30-50%最优,无损失

5. 总结

网络拓扑感知调度在大规模集群中的核心价值

  1. 拓扑感知的性能优化

    • ✅ 在大规模混合网络集群(7个交换机,其中3IB交换机、4个以太网交换机,最多384台服务器)中,网络拓扑感知调度能够显著优化节点选择
    • ✅ 通过IB交换机类型约束,确保所有高性能任务部署在IB交换机下
    • 12Prefill Pod12Decode Pod集中在IB交换机下,避免跨交换机类型通信
    • ✅ 通过highestTierAllowed: 2限制,确保所有Pod在同一IB汇聚交换机(Tier 2)下
    • 延迟优化:从可能的5-10μs降低到2-5μs,性能提升2-5
    • 带宽优化:保持200Gbps带宽,避免50%的带宽损失,吞吐量提升30-50%
  2. 解决简单亲和性调度的局限性

    • ✅ 简单的节点亲和性只能保证GPU型号正确,无法感知网络拓扑和交换机类型
    • ✅ 网络拓扑感知调度能够理解节点之间的网络距离和交换机类型,优先选择网络距离近且交换机类型匹配的节点
    • ✅ 在满足GPU型号要求的前提下,进一步优化网络性能,避免跨交换机类型的带宽损失
  3. 资源精细化利用

    • Prefill服务使用高性能H100 GPU,满足计算密集型需求
    • Decode服务使用性价比高的RTX 4090 GPU,满足访存密集型需求
    • ✅ 充分发挥不同GPU型号的优势,降低整体成本
  4. 适应混合网络拓扑

    • ✅ 支持IB和以太网混合的多层级网络拓扑(叶子交换机、汇聚交换机、核心交换机)
    • ✅ 通过HyperNode灵活定义网络拓扑结构,支持不同交换机类型的标识
    • ✅ 适合大规模、复杂混合网络拓扑的集群环境
    • ✅ 能够根据任务特性选择合适的交换机类型(高性能任务选择IB,非性能敏感任务选择以太网)
  5. 灵活扩展

    • ✅ 支持多个PD分离服务实例
    • ✅ 可以根据负载动态调整PrefillDecode服务规模
    • ✅ 易于水平扩展,适应业务增长

6. 参考资料