searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

RDMA 对比DCQCN标准算法与Mellanox实现

2025-12-15 09:29:30
7
0

一、DCQCN简介

DCQCN 模型中有三个关键角色:

  • CP(Congestion Point):即交换机,负责在检测到拥塞时生成拥塞通知包(CNP)。

  • NP(Notification Point):即接收端网卡,负责处理 CNP 并向发送端反馈拥塞信息。

  • RP(Reaction Point):即发送端网卡,根据拥塞信息调整发送速率。

二、升速机制

当网络状况良好时,DCQCN 通过以下三种方式逐步提升发送速率:

  1. 快速恢复(Fast Recovery)
    与论文描述一致,此阶段采用乘性增窗方式快速恢复带宽,具体公式可参考实现中的相关参数设置。

  2. 加性增(Additive Increase)
    进入稳定增长阶段后,算法转为线性增加速率,避免过于激进的抢占带宽。

  3. 超快速增(Hyper Increase)
    原始论文对此描述较为模糊,而 Mellanox 的实现明确了该阶段的增速公式。该模式通常在链路利用率较低时触发,旨在更快地逼近可用带宽。

三、降速过程

当在 RATE_REDUCE_MONITOR_PERIOD 微秒内收到 CNP 时,触发降速流程:

  1. 更新目标速率 targetRate:通常将其设为当前速率。若启用 CLAMP_TARGET_RATE,则仅在首次降速时更新该值。

  2. 降低当前速率:
    降速公式为 currentRate = currentRate × (1 − 1/2 × RPG_GD)
    与论文中的简单乘性减(如 currentRate = currentRate × (1 − 1/2))相比,Mellanox 引入了 RPG_GD 参数,用于精细控制降速幅度:RPG_GD 越大,降速越平缓。

  3. 重置所有升速计数器(如 Timer 与 ByteCount),为下一次增速做准备。

四、Alpha 更新

Alpha 值反映了网络拥塞程度,其更新周期为 DCE_TCP_RTT 微秒:

  • 若周期内收到 CNP,则按公式 alpha = alpha + G 增加;

  • 若未收到 CNP,则按 alpha = alpha − G 减小。

此处 G 控制 alpha 更新的敏感度,G 越小则 alpha 变化越快。
需要注意的是,Mellanox 使用的 G 与论文中的 g 存在换算关系:G = g × 2^10。代入上述公式后,实际行为与论文描述保持一致,但参数配置界面有所不同。

五、CLAMP_TARGET_RATE参数

该参数是 Mellanox 特有的优化选项,用于控制目标速率(targetRate)的更新策略:

  • CLAMP_TARGET_RATE = 0:仅在首次收到 CNP 时降低 targetRate,后续降速仅影响 currentRate,使得整体恢复更为平缓。

  • CLAMP_TARGET_RATE = 1:每次收到 CNP 时都更新 targetRate,降速响应更为迅速,有助于快速缓解拥塞。

两种模式下,速率变化曲线呈现明显差异:前者蓝线(targetRate)在首次下调后保持稳定,后者则随拥塞通知多次阶梯下降。

六、小结

Mellanox 在实现 DCQCN 时,在遵循论文核心思想的基础上,通过引入 RPG_GDG 及 CLAMP_TARGET_RATE 等参数,赋予了算法更强的可调性与场景适应性。这些细节反映出厂商在将学术模型工程化时,对实际部署环境中的稳定性、响应速度与配置灵活性的综合考量。

0条评论
0 / 1000
c****s
1文章数
0粉丝数
c****s
1 文章 | 0 粉丝
c****s
1文章数
0粉丝数
c****s
1 文章 | 0 粉丝
原创

RDMA 对比DCQCN标准算法与Mellanox实现

2025-12-15 09:29:30
7
0

一、DCQCN简介

DCQCN 模型中有三个关键角色:

  • CP(Congestion Point):即交换机,负责在检测到拥塞时生成拥塞通知包(CNP)。

  • NP(Notification Point):即接收端网卡,负责处理 CNP 并向发送端反馈拥塞信息。

  • RP(Reaction Point):即发送端网卡,根据拥塞信息调整发送速率。

二、升速机制

当网络状况良好时,DCQCN 通过以下三种方式逐步提升发送速率:

  1. 快速恢复(Fast Recovery)
    与论文描述一致,此阶段采用乘性增窗方式快速恢复带宽,具体公式可参考实现中的相关参数设置。

  2. 加性增(Additive Increase)
    进入稳定增长阶段后,算法转为线性增加速率,避免过于激进的抢占带宽。

  3. 超快速增(Hyper Increase)
    原始论文对此描述较为模糊,而 Mellanox 的实现明确了该阶段的增速公式。该模式通常在链路利用率较低时触发,旨在更快地逼近可用带宽。

三、降速过程

当在 RATE_REDUCE_MONITOR_PERIOD 微秒内收到 CNP 时,触发降速流程:

  1. 更新目标速率 targetRate:通常将其设为当前速率。若启用 CLAMP_TARGET_RATE,则仅在首次降速时更新该值。

  2. 降低当前速率:
    降速公式为 currentRate = currentRate × (1 − 1/2 × RPG_GD)
    与论文中的简单乘性减(如 currentRate = currentRate × (1 − 1/2))相比,Mellanox 引入了 RPG_GD 参数,用于精细控制降速幅度:RPG_GD 越大,降速越平缓。

  3. 重置所有升速计数器(如 Timer 与 ByteCount),为下一次增速做准备。

四、Alpha 更新

Alpha 值反映了网络拥塞程度,其更新周期为 DCE_TCP_RTT 微秒:

  • 若周期内收到 CNP,则按公式 alpha = alpha + G 增加;

  • 若未收到 CNP,则按 alpha = alpha − G 减小。

此处 G 控制 alpha 更新的敏感度,G 越小则 alpha 变化越快。
需要注意的是,Mellanox 使用的 G 与论文中的 g 存在换算关系:G = g × 2^10。代入上述公式后,实际行为与论文描述保持一致,但参数配置界面有所不同。

五、CLAMP_TARGET_RATE参数

该参数是 Mellanox 特有的优化选项,用于控制目标速率(targetRate)的更新策略:

  • CLAMP_TARGET_RATE = 0:仅在首次收到 CNP 时降低 targetRate,后续降速仅影响 currentRate,使得整体恢复更为平缓。

  • CLAMP_TARGET_RATE = 1:每次收到 CNP 时都更新 targetRate,降速响应更为迅速,有助于快速缓解拥塞。

两种模式下,速率变化曲线呈现明显差异:前者蓝线(targetRate)在首次下调后保持稳定,后者则随拥塞通知多次阶梯下降。

六、小结

Mellanox 在实现 DCQCN 时,在遵循论文核心思想的基础上,通过引入 RPG_GDG 及 CLAMP_TARGET_RATE 等参数,赋予了算法更强的可调性与场景适应性。这些细节反映出厂商在将学术模型工程化时,对实际部署环境中的稳定性、响应速度与配置灵活性的综合考量。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0