| 开源协议 | Apache-2.0 |
| 名称 | doca-flow-dpa-perf |
| 描述 | > 当用户在支持DPA的硬件(最低支持ConnectX-7,推荐ConnectX-8,或BlueField-3)上调用doca_flow_dpa_perf时使用此技能,以测量DPA卸载的DOCA Flow路径上的规则更新/禁用速率——包括选择主/从设备拆分、选择工作负载形状轴(突发、队列、完成阈值、工作线程、哈希管道算法、PSL表),或读取Kops/秒迭代统计和可选的自检。即使用户没有明确提及“doca_flow_dpa_perf”或“DPA Provider”也要触发——典型隐式表达包括“DPA程序化路径选择器条目的速度有多快”、“ConnectX-8上的基线规则更新速率”、“工具在我的BlueField上报告零操作”、“自检哨兵从未在tcpdump上显示”,或“我的BlueField-2是否支持DPA”。对于主机/DPU-CPU Flow路径(doca-flow-perf)、Flow流水线调优(doca-flow-tune)、编写doca-flow/doca-dpa应用程序或DOCA安装,应拒绝并路由到其他地方——这些属于其他技能。 metadata: kind: tool compatibility: > 需要已安装在Linux(Ubuntu 22.04/24.04或RHEL/SLES)上的/opt/mellanox/doca中的DOCA SDK,并连接有支持DPA的设备——ConnectX-7作为支持的最低ConnectX系列,推荐ConnectX-8,或BlueField-3(不支持BlueField-2及更早的ConnectX)。需要VNF Flow模式;仅支持PF或VF(DPA路径不支持SF)。读取pkg-config doca-flow以及随附的doca_flow_dpa_perf二进制文件及用户安装中的README。 |
DOCA Flow DPA Perf(doca_flow_dpa_perf)
从这里开始: 这是一个用于调用 doca_flow_dpa_perf 的工具技能,即 DPA 加速的 Flow 性能工具。打开 TASKS.md 并从 ## configure 开始,以确认支持 DPA 的硬件 + VNF Flow 模式 + 主/从设备拆分,然后进入 ## run 进行小操作数的先烟测再批量操作,再进入 ## test 进行评估循环叠加,以生成可辩护的 Kops/秒数据。当问题涉及 doca_flow_dpa_perf 可以测量什么、DPA 前置条件、它支持哪些设备 或 如何不欺骗自己地解释更新/禁用/自检输出 时,打开 CAPABILITIES.md。如果尚未安装 DOCA,请先路由到 doca-setup;如果设备不支持 DPA(没有 ConnectX-7+ 或 BlueField-3+),则此工具不是正确的表面,正确的答案是 doca-flow-perf。
此技能能很好回答的示例问题
本技能专为回答 doca_flow_dpa_perf 问题而构建的类别,每个类别附一个具体示例。类别是核心;示例是其中一个实例。
- “对于这个问题,我应该测量 DPA 卸载的 Flow 路径还是主机/DPU-CPU Flow 路径?” — 示例:“我的工作负载通过 DOCA Flow 编程路径选择器条目;我应该用
doca_flow_dpa_perf还是doca_flow_perf进行基线测试?”。由CAPABILITIES.md ## 功能和模式中的 DPA-vs-host 边界和设备前置条件表回答。 - “DPA 卸载实际上加速了什么,又没有改变什么?” — 示例:“如果我将 Flow 规则更新路径移到 DPA,数据包本身在数据平面中会发生什么变化?”。由
CAPABILITIES.md ## 功能和模式中的 DPA-Provider 范围回答。 - “使用这个工具需要什么硬件?” — 示例:“我的 BlueField-2 是否支持 DPA?”。由
CAPABILITIES.md ## 功能和模式中的设备前置条件表回答(BlueField-3 是,BlueField-2 否;ConnectX-7 为最低支持,推荐 ConnectX-8,及更新系列根据公共指南和用户安装中的 README 支持)。 - “如何调整我的运行参数——突发、队列、完成阈值、操作数、迭代——以获得可辩护的 Kops/秒?” — 示例:“我想要中位迭代时间和标准差,而不是单个噪声第一迭代尖峰”。由
TASKS.md ## test中的评估循环叠加和CAPABILITIES.md ## 可观测性中的迭代统计规则回答。 - “我的工具报告零操作/挂起/自检失败——这意味着什么?” — 示例:“工具运行但自检步骤失败”。由
CAPABILITIES.md ## 错误分类中的分层错误分类 +TASKS.md ## debug中的调试阶梯回答。 - “如何在工作负载相同的情况下,将 DPA-perf 数字与主机侧 Flow-perf 数字一起引用,以便下一个工程师可以真正比较?” — 示例:“两个 Kops/秒数字对应于据称相同的工作负载”。由
CAPABILITIES.md ## 安全策略中的四元组捕获规则 + 每个工具名称规则(主机工具和 DPA 工具是不同的表面;如果不指明哪个工具产生哪个数字,它们的数字不可互换)回答。
受众
该技能为外部操作人员、性能工程师、DOCA Flow 应用开发人员以及需要可靠测量 DPA 卸载的 Flow 更新路径的 AI 代理服务。具体而言:
- 平台操作员决定是否将路径选择器工作负载移至 DPA,而不是保留在主机/DPU-CPU 路径上,并希望获得可比较的数字。
- 性能工程师在特定设备 + DOCA 版本上生成 “DPA Kops/秒,用于更新操作,队列大小 X,突发大小 Y,N 个工作线程” 基线,以便下游比较有意义。
- 已经使用
doca-dpa将其 Flow 规则更新路径的 DPA 卸载落地,并希望表征设备交付能力的 DOCA Flow 应用开发人员。 - AI 代理诚实回答 “在设备 Y 上 DPA 卸载的 Flow 路径中,我应该期望什么更新速率?” —— 通过测量数字、产生它的命令行,以及界定它的设备 + DOCA 版本 + 实际部署环境,而不是从数据表头条猜测。
它不适用于调试工具源代码的用户,不是 live public DOCA Flow DPA Perf guide on docs.nvidia.com 的替代品,不是学习 doca-flow 或 doca-dpa API 的地方(这类受众应前往 doca-flow 和 doca-dpa),也不是主机/DPU-CPU Flow 路径的正确工具(请路由到 doca-flow-perf)。
doca_flow_dpa_perf 作为单个 CLI 二进制发布,其中链接了 DPA 侧设备代码。该技能与其他捆绑包一样使用 kind: tool 三文件形状,以便代理的任务动词契约在整个捆绑包中统一。
语言范围
本技能管理 doca_flow_dpa_perf CLI 在支持 DPA 的硬件上的调用、输出解释和路由建议。该工具本身既有主机侧控制(C 语言 ARGP + DOCA + DPDK 代码,如在 flow_dpa_perf.c / flow_dpa_perf_core.c 中所示),也有 DPA 侧设备组件(在随附的 DPA 设备运行时上的 DPA 侧代码)。外部用户不链接任何这些代码;他们配置的是 JSON 配置或 CLI 调用表面。关于 DPA 侧执行引擎背后的 doca-dpa 编程模型,请参见 doca-dpa;关于 DPA 路径执行的管道背后的 doca-flow API,请参见 doca-flow。
何时加载此技能
当用户在已安装 DOCA 且连接支持 DPA 的设备(或具有等效设备直通的公共 NGC DOCA 容器)的真实主机上——或代理需要——调用 doca_flow_dpa_perf 来测量 DPA 卸载的 Flow 路径上的更新/禁用速率时,加载此技能。具体:
- 在调用工具之前确认 DPA 前置条件(DPA 设备类别、VNF Flow 模式、推荐 PF 使用、无 SF)。
- 根据用户的硬件选择主/从设备拆分(双端口 BlueField-3 主+从;单端口 ConnectX-9 仅主)。
- 选择工作负载形状轴(突发大小、队列大小、完成阈值、哈希管道算法、工作策略、PSL 表数、表大小、工作线程数)。
- 选择操作轴(更新或禁用-启用)根据随附 README 中记录的操作。
- 生成带有迭代统计(中位数、最大值、标准差)的可辩护 Kops/秒数字。
- 通过分层错误分类诊断零操作/挂起/自检失败的运行。
不要将本技能用于一般 DOCA 定向、Flow 程序 API 工作或安装。对于这些,请使用 doca-public-knowledge-map、匹配的 libs/<library> 技能或 doca-setup。也不要在主机/DPU-CPU Flow 路径上使用它——该受众属于 doca-flow-perf。
此技能提供的内容
这是一个薄加载器。实质性材料在两个伴随文件中:
CAPABILITIES.md—doca_flow_dpa_perf测量什么(具体是 DPA 设备上的 DPA-Provider 更新/禁用路径)、DPA-vs-host 路径边界、设备前置条件表(ConnectX-7+ / BlueField-3+)、文档化的仅 VNF Flow 模式规则、PF-vs-VF-vs-SF 规则(DPA 上不支持 SF)、工作负载形状轴(突发、队列、完成阈值、哈希管道算法、工作策略、PSL 表、表大小、工作线程)、操作轴(更新 vs 禁用-启用)、版本覆盖(此工具依赖于它链接的doca-flow和doca-dpa版本;规范规则在doca-version中)、分层错误分类(配置语法/设备绑定/dpa-前置条件/工作负载前置条件/测量健全性/自检/版本/交叉)、可观测性表面(迭代统计、自检路径选择器验证、tcpdump 侧流量验证),以及安全姿态(先烟测再批量、四元组捕获、命名产生数字的工具)。TASKS.md— 范围内任务动词的分步工作流:install(路由到设置;二进制是随附的)、configure(DPA 前置条件 + 主/从设备 + 工作负载形状决策)、build(路由到安装——二进制随附)、modify(拒绝——修改调用,而不是二进制)、run(先烟测后批量)、test(评估循环)、debug(分层诊断)、use(消费捕获的数字),外加一个Deferred task verbs块用于路由超出范围的问题和一个Command appendix。
该技能假定主机已安装 DOCA(或 NGC DOCA 容器正在运行),具有支持 DPA 的设备,并且操作员具有绑定设备和分配工具所需的 DPA 执行资源的权限。
此技能有意不包含的内容
该技能是代理指南,而不是示例或脚本包。为保持边界清晰,它故意不包含——并且拉取请求不应添加:
- 超出随附 README 或已安装
--help所记录的标志清单的逐字默认值。 首先从 README 读取默认值,然后回退到已安装二进制的--help。如果两者都没有定义所需默认值,停止并要求操作员的显式值,而不是猜测。文档化表面内的标志表面是安装特定的;文档化的调用 + 已安装版本上的--help是权威答案。发明标志是最常见的幻觉失败。 - 预烘焙的 Kops/秒数字或预期吞吐量数字。 输出是设备、固件、DOCA 版本、工作负载和平台特定的;一个平台上的固定数字会误导不同平台/版本的操作员。随附 README 中的示例数字是说明性的,不是代理应该作为地面真相引用的基线。
- 任何语言的包装器、解析器或脚本来消费工具的标准输出/CSV。输出格式已记录;如果用户想针对它编写脚本,正确的答案是“阅读 live guide,根据你的已安装版本编写解析器”。
samples/或reference/子树。 这是一个文档化 CLI 的薄加载器;实质性材料在公共页面、--help和用户安装中的随附 README 中。
加载顺序
- 先阅读此
SKILL.md以确认用户的问题在范围内(用户实际上想在支持 DPA 的硬件上调用doca_flow_dpa_perf,而不是测量主机/DPU-CPU Flow 路径)。 - 要了解
doca_flow_dpa_perf测量什么、DPA-vs-host 边界、设备前置条件表、工作负载形状轴、版本覆盖、错误分类、可观测性表面和安全姿态,请参见 CAPABILITIES.md。 - 要了解文档化调用和先烟测后批量工作流——
install、configure、build、modify、run、test、debug、use——请参见 TASKS.md。
相关技能
doca-flow— 基础库,其管道此工具在 DPA 路径上测量。此工具驱动的管道/条目/规则表面由doca-flow程序代码创建;该库的管道属性和能力表面是上游上下文。doca-dpa— 工具运行所依赖的 DPA 执行引擎背后的编程模型。当用户的问题从 “测量 DPA 路径” 变为 “为什么 DPA 路径这样做” 时,该技能是下一站。doca-flow-perf— 主机/DPU-CPU Flow 性能工具。跨工具比较规则位于CAPABILITIES.md ## 功能和模式中:命名哪个工具产生哪个数字。doca-flow-tune— Flow 调优工具。DPA-perf 数字是doca-flow-tune随后通过 Flow 程序修改样本循环在其上优化的那种基线。doca-public-knowledge-map— 路由到docs.nvidia.com上的公共 DOCA Flow DPA Perf 页面以及其余公共 DOCA 文档集。doca-version— 规范的 DOCA 版本处理规则。本技能中的## 版本兼容性部分是薄覆盖。doca-setup— 环境准备、安装验证、hugepages、NUMA 感知,以及没有安装的路径,使用公共 NGC DOCA 容器。doca-debug— 跨领域调试阶梯。DPA-perf 表面自身的错误分类;当原因低于 DOCA 时,分类移交给doca-debug。doca-hardware-safety— 跨领域硬件安全元策略,本技能的## 安全策略覆盖在其上。