200GbE RDMA 精细扫描:QP=4 固定,msg_size 从 1K 扫到 1M

发布时间:2026/9/29 21:34:42

200GbE RDMA 精细扫描:QP=4 固定,msg_size 从 1K 扫到 1M
一、问题动机之前实验QP1 msg4KB 是甜蜜点77.68 Gb/sbidirectional 4KB 总带宽 128.44 Gb/s。但生产环境 NCCL AllReduce 用的就是多个 QP 并发QP4 才是更真实的场景。如果在 QP4 下做精细 msg_size 扫描会复现 QP1 的甜蜜点吗还是有完全不同的曲线本文就是回答这个问题。二、测试方法固定参数QP 4生产环境典型配置tx_depth 128test_duration 15 秒 / 每点单向传输默认模式扫描 msg_size1KB / 2KB / 4KB / 8KB / 16KB / 64KB / 128KB / 1MB 共 8 个点2 的幂等比分布工具组合ib_write_bwperf stat同上文三、测试结果3.1 完整数据表msg_sizeBW (Gb/s)MsgRate (Mpps)IPCL1_dc_missLLC_missctx_switchcpu_mig1KB52.466.4042.000137.7MN/A16422KB51.763.1592.37678.4MN/A15724KB52.391.5992.69742.0MN/A23538KB51.720.7892.86722.7MN/A2911116KB50.050.3822.75824.5MN/A334264KB50.560.0962.9668.7MN/A1624128KB50.830.0483.0045.6MN/A22651MB51.550.0063.0392.6MN/A38343.2 ASCII 图BW vs msg_sizeBW (Gb/s) 53 ┤ ● ● 52 ┤ 51 ┤ ● ● 50 ┤ ● ● ● ● 49 ┤ └──┬──┬──┬──┬──┬──┬──┬──┬─► msg_size (对数) 1K 2K 4K 8K 16K 64K 128K 1M3.3 关键观察维度观察BW 极差50.05 ~ 52.46 Gb/s差距仅 4.8%峰值位置1KB52.46 4KB52.39双峰谷底位置16KB50.05趋势msg_size 越大BW 越稳定在 ~50 Gb/s大包靠 DMA 走 PCIe不靠 CPUL1 miss 趋势msg_size 越大L1 miss 越少大包数据局部性好四、对比 QP1 的扫描结果msg_sizeQP1 (Gb/s)QP4 (Gb/s)QP1 vs QP41KB63.7352.4621.5%⭐2KB75.0151.7644.9%4KB77.6852.3948.3%⭐⭐8KB63.9151.7223.5%16KB50.0150.05-0.1%64KB49.8050.56-1.5%128KB50.7250.83-0.2%1MB51.4851.55-0.1%ASCII 图QP1 vs QP4 对比BW (Gb/s) 80 ┤ ● ← QP1 甜蜜点 (4KB) 75 ┤ ● 70 ┤ 65 ┤ ● 60 ┤ 55 ┤ 50 ┤● ● ● ● ● ← QP1 大包平台 45 ┤ ● ● ● ● ● ← QP4 整体水平 40 ┤ └──┬──┬──┬──┬──┬──┬──┬──┬─► msg_size 1K 2K 4K 8K 16K 64K 128K 1M五、根因分析5.1 QP1 vs QP4 为什么差这么多小包场景≤ 8KBQP1CPU 单核串行处理一个 QP每条消息从网卡 DMA → 内存 → 完成中断 → CPU 处理 → 下一条QP4CPU 必须在 4 个 QP 之间轮询每次轮询需要 4 次内存访问每个 QP 检查 CQCPU 调度开销巨大小包本身耗时短1KB 52 Gb/s 150ns/包CPU 调度开销占比相对较大大包场景≥ 64KBQP1 ≈ QP451 vs 51 Gb/s大包一次 DMA 耗时数微秒CPU 调度开销占比几乎为零瓶颈在DMA / PCIe / 内存带宽不在 CPU5.2 IPC 与 msg_size 的关系msg_sizeIPC (QP4)解释1KB2.000小包CPU 频繁响应IPC 低4KB2.69716KB2.75864KB2.9661MB3.039⭐大包 CPU 进入等 DMA 完成空闲IPC 反而高反直觉大包 IPC 反而高。因为大包发送后 CPU 进入 wait for completionCPU 利用率低但忙的有效指令多。5.3 L1-dcache miss 走势msg_sizeL1_dc_miss解释1KB137.7M⭐小包每包都需要查 CQ数据结构反复进出 L14KB42.0M16KB24.5M128KB5.6M1MB2.6M大包QPL 数据结构长时间驻留 L1L1 miss 与 msg_size 强负相关包越大CPU 处理频率越低cache 命中率越高。六、综合判断6.1 QP4 场景下的甜蜜点在哪两个局部峰1KB52.46和 4KB52.39。但极差只有 4.8%——在工程误差范围内。QP4 没有明显甜蜜点消息大小几乎不影响 BW。6.2 这意味着什么NCCL AllReduce 等真实负载QP 数量动态变化但单 QP 流量在 ~50 Gb/s 是稳态要突破 100 Gb/s 必须并行多个 QP多连接并发CPU 选型是 RDMA 性能的关键i3 单核天花板 ~52 Gb/s多核可叠加6.3 进一步优化方向方向预期说明CPU 多核并行4× 提升4 个核每个跑一个 QP4 进程 → 200 Gb/sPCIe Gen4/52× 提升把单核带宽从 16 GB/s 提到 32 GB/s换 DDR51.5× 提升内存频率翻倍带宽提升inline data8% 提升小包走 inline 省 PCIe DMA七、附录完整 perf 数据QP4, msg4KB 为例Performance counter stats for ib_write_bw -d mlx5_1 -x 2 -s 4096 -D 15 -q 4 -t 128 --report_gbits --cpu_util server_ip: 25,461,628 cache-misses # 58.601 % of all cache refs 43,433,000 cache-references 41,949,788 L1-dcache-load-misses 124,567 LLC-load-misses 1,876,432 LLC-store-misses 24,892 dTLB-load-misses 12,341 iTLB-load-misses 42,568,134,892 cycles 114,879,562,341 instructions # 2.70 insn per cycle 235 context-switches 3 cpu-migrations 16.272389913 seconds time elapsed八、写在最后通过固定 QP4 精细扫描 msg_size验证了QP4 没有明显甜蜜点BW 几乎不受 msg_size 影响稳定在 ~50 Gb/sCPU 单核天花板在 ~52 Gb/s与 QP 数 / msg_size 关系不大小包场景下 QP 数越少越好大包场景下 QP 数无所谓多核并行是突破 100 Gb/s 的必由之路

相关新闻

YOLOv5s OpenVINO 2022.3 异步推理实战:核显释放独显,帧率提升至 90 FPS

YOLOv5s OpenVINO 2022.3 异步推理实战:核显释放独显,帧率提升至 90 FPS

2026/9/8 22:06:34

YOLOv5s与OpenVINO 2022.3异步推理实战:核显性能深度挖掘与90 FPS优化之道当我们在混合显卡设备上运行计算机视觉任务时,常常面临一个关键矛盾:如何平衡GPU资源分配。对于配备Intel核显和NVIDIA独显的现代计算设备,将AI推理任务从…

Ohook:3步永久激活Microsoft 365,解锁完整Office功能

Ohook:3步永久激活Microsoft 365,解锁完整Office功能

2026/8/23 0:50:24

Ohook:3步永久激活Microsoft 365,解锁完整Office功能 【免费下载链接】ohook An universal Office "activation" hook with main focus of enabling full functionality of subscription editions 项目地址: https://gitcode.com/gh_mirrors…

YOLOv5 模型转换 OpenVINO IR 格式:3步从 PyTorch 到 INT8 量化部署

YOLOv5 模型转换 OpenVINO IR 格式:3步从 PyTorch 到 INT8 量化部署

2026/8/23 0:50:24

YOLOv5模型高效部署指南:从PyTorch到OpenVINO INT8量化的完整实践为什么选择OpenVINO部署YOLOv5?在计算机视觉领域,YOLOv5因其出色的实时检测性能而广受欢迎。但当我们需要将训练好的模型部署到生产环境时,往往会面临性能瓶颈——…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/28 16:01:49

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/29 19:20:49

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/28 16:01:48

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/28 5:05:21

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/28 16:01:48

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…