关于 doca-gpunetio-ib-write-lat
doca-gpunetio-ib-write-lat 是面向性能工程师的 Agent 技能,用于测量通过 doca-gpunetio 从 CUDA 内核发起的 RDMA WRITE 延迟。它涵盖随附的客户端-服务器基准测试,以及中位数、p99 和抖动结果的解读。
主要功能
- 01测量 CUDA 发起的 RDMA WRITE 延迟
- 02构建客户端-服务器基准测试
- 03报告中位数、p99 和抖动
- 04解释延迟输出列
- 05指导 GPU-NIC 配对检查
适用场景
- 01评估 GPU 控制环路的尾延迟
- 02调优后验证性能变化
- 03记录可复现的 GPU-NIC 延迟基线
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nvidia/ skills --skill doca-gpunetio-ib-write-lat安装后在 Claude Code 中输入/doca-gpunetio-ib-write-lat确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
BENCHMARK.mdCAPABILITIES.mdskill-card.mdskill.oms.sigSKILLCARD.yamlTASKS.mdevals/evals.json详细介绍
DOCA GPUNetIO ib_write_lat
示例
- “GPUNetIO 能提供怎样的 GPU 发起 RDMA-WRITE 延迟?” — 这个问题属于此技能的范围。记录中位数和 p99;不要把 GPI 当作已发布的延迟二进制文件。
- “GPUNetIO 与 GPI 相比,哪个延迟数值更值得信赖?” — 物理操作相同,运行时不同;有关 GPI 语义的问题 请转到 GPI 技能。
说明
按照下方的加载顺序操作。打开任务配套文件,了解配置 / 运行 / 调试。打开能力配套文件,了解配对和 可观测性。不要打开所有配套文件。
从这里开始: 这是一个 GPUNetIO
风格的 ib_write_lat 基准测试工具技能,随附于
doca/tools/gpunetio_ib_write_lat/(客户端与服务端组成的一对程序,
通过 meson 从源代码构建,并链接到已安装的 DOCA)。
它以乒乓节奏测量 RDMA WRITE 工作请求的延迟;该请求由
CUDA 内核通过
doca-gpunetio 设备端接口提交。
打开任务配套文件,从 GPU-NIC 配对
前置条件和构建模式的
## configure 开始;跳转到
## run 查看单次迭代的冒烟测试
流程。如果问题涉及此工具实际测量的内容、它与执行相同物理操作的 GPI 姊妹工具有何不同,或如何解读 half-iter / full-iter / CUDA 端 usec 输出,以及中位数 / p99 / 抖动
特征,请打开能力配套文件。如果尚未安装 DOCA,请先转到
doca-setup/SKILL.md;如果用户仍在考虑选择 GPUNetIO 还是 GPI 作为
编程接口,请先查看
doca-gpunetio/SKILL.md
和
doca-gpi/SKILL.md。
此技能擅长回答的示例问题
此技能旨在回答 doca-gpunetio-ib-write-lat 问题的类别,每类各有一个完整示例。类别是核心;完整示例只是其中一个实例。
- “对于实时/控制环路工作负载,GPU 发起的 RDMA-WRITE 延迟/抖动能达到什么水平?” — 完整示例:“在两台主机之间测量每次迭代的 WRITE 延迟,两端各使用一块 H100 + ConnectX-7,分别关注中位数和 p99”。答案来自 capabilities 配套文档中的 GPU-NIC 配对前提
- tasks 配套文档中的启动流程 + tasks 配套文档。
- “这是 GPUNetIO 工具——它的延迟数值与 GPI 编程接口有何不同?” —
完整示例:“团队正在使用 GPI;我应该预期 GPUNetIO 比 GPI 更快/相当/更慢吗?”。答案来自 capabilities 配套文档中的
“相同的物理操作,不同的运行时框架”
规则
- 指向 GPI 库技能
doca-gpi/SKILL.md的交叉链接 (注意:doca/tools/未提供 GPIib_write_lat基准测试二进制文件——GPI 是编程接口,而非随附的基准测试工具)。
- 指向 GPI 库技能
- “中位数、p99 和抖动——对于实时控制环路,哪个才是实际答案?” — 完整示例:“我的控制环路有截止时间;中位数远低于预算,但 p99 会突增;我应该报告中位数还是 p99?”。答案来自
capabilities 配套文档中的中位数与 p99 及抖动规则
- tasks 配套文档中的评估循环补充说明。
- “GPU 发起的 RDMA 特有的延迟与批处理权衡是什么?” — 完整示例:“我的 CUDA 内核可以批处理多个 WR,以摊销 GPU 端开销;这对延迟有什么好处,又要付出什么代价?”。答案来自 capabilities 配套文档中的 延迟与批处理权衡。
- “构建并运行此二进制文件需要什么版本的 DOCA + CUDA Toolkit?” — 完整示例:“我的安装中 DOCA 和 CUDA 的语义化版本号不同;ToT 随附的
gpunetio_ib_write_lat能否成功链接?”。答案来自 capabilities 配套文档中的版本补充说明。 - “如何解读 half-iter / full-iter / CUDA-side usec 列?” — 完整示例:“二进制文件输出了 half-iter、full-iter 和一个 CUDA 端数值——单向延迟、往返延迟和交叉核对分别应该引用哪一列?”。答案来自 capabilities 配套文档中的列语义规则。
受众
此技能面向外部开发者和性能工程师,他们需要在用户实际安装环境及 GPU-NIC 配对上,获得可复现的测量结果,以确定通过 doca-gpunetio 从 CUDA 内核提交 WR 时,RDMA WRITE WR 的延迟。具体包括:
- 设计 GPU 常驻实时控制环路,并判断 GPUNetIO 路径的尾延迟是否满足截止时间的开发者。
- 通过针对新状态重新运行此基准测试,验证调优更改(NUMA 绑定、GPU PCIe 位置、IB 设备选择、GID 索引、NIC 固件烧录)的平台运维人员。
- 生成下游使用者可引用的结果的 SRE/性能工程师,例如*“当前此 GPU-NIC 配对上的 GPUNetIO 驱动 WRITE 延迟,包括中位数 + p99 + 抖动”*。
- 如实回答*“doca-gpunetio 的延迟预算是否适用于此类实时工作负载”*的 AI Agent——提供实测数值、生成这些数值所用的构建方式和调用方式,以及限定这些数值适用范围的 GPU + NIC + DOCA 版本,而非凭空猜测。
此技能不适用于调试 doca-gpunetio
库本身的用户(请参阅
../../libs/doca-gpunetio/SKILL.md (doca-gpunetio/SKILL.md)),
也不能替代上游 perftest 的
ib_write_lat(该工具测量的是 CPU 发起的 WRITE 延迟)。
语言范围
doca-gpunetio-ib-write-lat 工具以 C
加 CUDA .cu 翻译单元的形式提供,位于
doca/tools/gpunetio_ib_write_lat/ 下,分为
client/ 子目录、server/ 子目录,以及双方共享的 common/
子目录(根据已验证的文件布局:
client/{main.c,perftest.{c,h},meson.build}、
server/{main.c,perftest.{c,h},meson.build}、
common/{common.c,common.h,kernel.cu})。主机端使用
meson,并链接已安装的 DOCA pkg-config
模块(doca-gpunetio、doca-rdma、doca-common,
以及 CUDA Toolkit 依赖项);设备端使用 nvcc,并链接 DOCA GPU NetIO 设备端头文件集。它没有 Python / Rust / Go 绑定——该工具是一对 CLI 二进制文件。
何时加载此技能
当用户需要(或 Agent 需要)在安装了 DOCA 和与之匹配的 CUDA
Toolkit 的真实主机上构建并运行 gpunetio_ib_write_lat 客户端 +
服务端,且每台主机的 PCIe 拓扑中都配有 GPU + IB 设备时,请加载此技能。具体包括:
- 使用 GPUNetIO 接口测量两台主机(或一台主机与一台 BlueField DPU)之间由内核发起的 RDMA WRITE 延迟。
- 评估实时 / 控制环工作负载类别的尾延迟(p99 / p99.9)和抖动。
- 判断对于某类工作负载,应使用 GPUNetIO 运行时接口、GPI 编程接口(
doca-gpi/SKILL.md库——doca/tools/不提供 GPI 基准测试二进制文件),还是经典的 CPU 发起型perftest路径。 - 记录有据可查的基线(构建 + 调用方式 + DOCA 版本 + GPU + NIC + 部署环境 + 数值),以便日后排查回归问题。
- 诊断在此工具提供的脚手架中,GPUNetIO + RDMA 启动流程所暴露出的构建 / 链接 / 运行失败。
一般 DOCA 入门、库 API 开发或安装时,不要加载此技能。相关内容请使用
doca-public-knowledge-map/SKILL.md、
../../libs/doca-gpunetio/SKILL.md(doca-gpunetio/SKILL.md)
或 doca-setup/SKILL.md。对于应用级实时截止时间分析,也不要加载此技能——此基准测试测量的是通过 GPUNetIO 的 WR 延迟,而不是用户的完整流水线。
此技能提供的内容
这是一个轻量加载器。实质性内容位于两个配套文件中:
- 能力配套文件——说明此工具测量什么(由双方 CUDA 内核通过 doca-gpunetio 驱动的 ping-pong WRITE 延迟原语)、运行时接口选择规则(GPUNetIO、GPI 或 CPU 发起型)、GPU-NIC 配对前提、GPU 发起型 RDMA 固有的延迟与批处理权衡、中位数 / p99 / 抖动报告分类、版本叠加要求(DOCA
.pc加上 CUDA Toolkit)、分层错误分类、可观测性接口(包括标准输出报告,以及根据已验证的common.h,gpunetio_rdma_write_lat_*内核函数提供的超时调节项),以及安全性补充说明。 - 任务配套文件——涵盖技能范围内任务动词的分步工作流:
install、configure、build、modify、run(先进行冒烟测试再进行大批量测试;验证单次迭代;读取报告列)、test(评估循环——中位数 / p99 / 抖动 / 稳态)、debug(逐层排查错误分类)、use(如何将延迟结果用于实时工作负载类别决策),以及Deferred task verbs区块。
此技能假定主机已安装 DOCA,且已安装与之匹配的 CUDA Toolkit;操作人员还拥有公共安装配置要求的相应权限,用于绑定 doca_dev、doca_gpu 和带外 TCP 套接字。
此技能有意不包含的内容
此技能是Agent 指南,不是示例或 脚本合集。它有意不包含以下内容,也不应通过 拉取请求添加:
- 具体的标志字符串或预期延迟数值,
除非工具随附的
--help和main.cARGP 注册信息能够确认。标志范围很小 (设备名称、GPU PCIe 地址、GID 索引、客户端侧的 服务端 IP);Agent 会重新读取已安装版本二进制文件的--help。 - 预先编写的 DOCA GPUNetIO 或 CUDA 内核源
代码,以免与随附的工具目录树相冲突。
随附的
client/、server/和common/子目录就是经过验证的可运行示例。 - 任何语言编写的包装器、解析器或脚本,用于 处理工具的标准输出。输出格式简洁,且已在 能力配套文档中说明。
samples/、bindings/或reference/子目录。 这是一个用于加载随附工具目录树的轻量模块。
加载顺序
- 首先阅读此技能,确认用户的问题在适用范围内(用户确实想要 通过 GPUNetIO 测量由内核发起的 WRITE 延迟, 而不是 GPI 变体、CPU 发起的变体,也不是库 API 相关问题)。
- 有关此工具的测量内容、与 GPI 同类工具及 CPU 发起的
perftest之间的表面选择规则、延迟与批处理的权衡、 中位数 / p99 / 抖动报告分类、版本叠加说明、错误分类、 可观测性范围和安全叠加说明,请参阅 能力配套文档。 - 有关分步工作流——
install、configure、build、modify、run、test、debug、use——请参阅任务配套文档。
相关技能
../../libs/doca-gpunetio/SKILL.md(doca-gpunetio/SKILL.md)— 此工具所封装的库。每个 GPU 的doca_gpu上下文、GPU 可见的 RDMA 句柄、CUDA 侧持久化内核 模式、双重能力发现规则(DOCA cap-query 和cudaGetDeviceProperties),以及环境前置条件(已加载nvidia_peermem、已通过 DOCA 注册 CUDA 缓冲区) 均在此处说明。../../libs/doca-rdma/SKILL.md(doca-rdma/SKILL.md)— 底层 RDMA 库。此工具绑定的 RDMA 队列通过doca-rdma创建和连接;队列生命周期、传输类型(RC、UC 或 UD)、 权限矩阵和连接方法均由此处说明。../../libs/doca-verbs/SKILL.md(doca-verbs/SKILL.md)—doca-rdma/doca-gpunetio下层的原始 verbs 备用方案。此工具仍使用 更高级别的接口。../doca-gpunetio-ib-write-bw/SKILL.md(doca-gpunetio-ib-write-bw/SKILL.md)— 此工具在同一运行时 框架下的带宽对应工具。物理操作相同,指标类别 不同(延迟与 BW)。两者结合起来,完整呈现 GPUNetIO 侧的延迟 / 吞吐量情况。doca-gpi/SKILL.md— GPI 编程接口(由 CUDA 内核发起的 RDMA)。这是针对相同物理操作的 另一种运行时框架;doca/tools/未随附 GPIib_write_lat基准测试二进制文件,因此 GPI 对比针对的是 库接口,而非同类工具。能力配套文档中的 选择规则 可用作决策参考;Agent 的职责是说明何时 选择哪一种。doca-version/SKILL.md— 规范的版本检测链和 四方匹配规则。此处的## Version compatibility部分是 精简的叠加说明。doca-setup/SKILL.md— 环境准备、安装验证、GPU 与 CUDA Toolkit 配套、加载nvidia_peermem、大页、NUMA,以及 NGC DOCA 容器路径。doca-public-knowledge-map/SKILL.md— 指向公共 DOCA 文档集和 CUDA Toolkit 参考资料的导航。doca-debug/SKILL.md— 跨领域的调试流程。doca-hardware-safety/SKILL.md— 适用于整个套件的硬件安全元政策。