开发与工程 ✓ NVIDIA · 官方 doca-dmabluefield-dpuconnectxmemory-copyscatter-gatherdoca-mmapc-cpp

DOCA DMA 编程助手

指导在 BlueField 或 ConnectX 上进行 DOCA DMA 内存拷贝开发。

FollowSkills 评估 · FSRS-2.0
不推荐
54/ 100 五分制 2.7 / 5
信任安全17 / 25 · 3.4/5

文档明确限定 DOCA DMA、要求 mmap 权限、设备能力探测、跨 peer 导出,并在配置前要求确认源/目标/长度;同时声明不处理安装,且建议普通用户运行命令。扣分在于 DMA 直接触及设备内存,部分诊断命令使用 sudo,缺少统一的执行确认、数据流披露、权限最小化和可操作回滚方案;许可证与仓库元数据存在不一致。

可靠稳定8 / 20 · 2.0/5

SKILL.md、CAPABILITIES.md 和 TASKS.md 的生命周期、能力查询、权限矩阵、错误分类及失败反馈基本一致,且明确要求解释 DOCA_ERROR_* 原因。扣分在于静态审查无法复现关键路径,未提供可执行实现或覆盖关键路径的提交测试;内容还存在单缓冲区描述与 scatter-gather 说明之间的轻微边界不清。

适用触发11 / 15 · 3.7/5

受众、触发语句、正向场景和拒绝/转交范围写得清楚,并覆盖 C/C++ 与 FFI、Linux、BlueField/ConnectX 及 DOCA 已安装前提。扣分在于没有中文使用指导或本地化示例,且部分答案依赖 NVIDIA 在线文档;对中国大陆网络可达性没有说明,环境兼容性证据也有限。

规范维护9 / 15 · 3.0/5

采用 loader、能力说明和任务工作流分层,提供相关技能、命令附录、限制、版本处理和维护/问题入口。扣分在于版本、签名和签署信息仍为 TBD,BENCHMARK 中的路径与目标路径不一致,作者/维护责任主要通过外部材料间接表达;许可证声明不一致,缺少明确 changelog 和完整参数/FAQ。

有效结果6 / 15 · 2.0/5

对 DMA 配置、权限、能力查询和错误诊断提供了可直接采用的流程,且包含路径选择和跨 peer 规则。扣分在于技能明确不提供可运行代码,修改渲染器尚未完成,用户仍需依据本地样例逐行修改并回贴验证;没有静态可验证的代表性最终产物,仍需较多环境和人工核对。

证据核验3 / 10 · 1.5/5

文件包含符号、命令、路径、错误映射、评测报告和外部参考入口,具备一定审计线索。扣分在于评测数据集不可用,报告只提供汇总数字,未展示可独立复现的测试用例、CI 覆盖或第三方交叉验证;静态审查也无法确认 DOCA API 断言。

证据充分度: 评估于 2026年7月20日 审查版本 55f18499943e
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 该技能会指导 BlueField/ConnectX DMA 内存访问;执行前应由用户确认设备、源/目标 mmap、权限、长度和跨 peer 数据流,并审查任何 sudo 命令。
  • 不要把 BENCHMARK 或 SKILLCARD 中的 PASS、签名和版本字段视为已独立验证;报告数据集不可用,且部分元数据仍为 TBD。
  • 许可证声明存在 Apache-2.0、Apache-2.0 AND CC-BY-4.0 与 NOASSERTION 的不一致,应在发布前澄清。
  • 核心文档引用外部 NVIDIA 文档和本地 DOCA 安装,未证明中文支持或中国大陆网络可达性。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

该技能面向使用 DOCA DMA C 库的外部开发者,指导通过 BlueField DMA 引擎在两个 doca_mmap 区域之间拷贝数据。它覆盖上下文和 memcpy 任务配置、能力查询、内存权限、进度引擎提交与完成事件,以及 DOCA_ERROR_* 调试。技能要求 DOCA SDK 已安装在 Linux 主机上,并不负责安装 DOCA。它是 Apache-2.0 授权的代理指导,不包含可直接构建的应用源代码、绑定或独立构建清单。

读取本地 DOCA 安装,通过 pkg-config doca-dma/opt/mellanox/doca/{lib,include,samples,applications} 检查环境;指导配置 doca_dma 上下文和 doca_dma_task_memcpy;使用 doca_dma_cap_task_memcpy_* 查询缓冲区大小、列表长度和任务支持情况;配置源和目标 doca_mmap 权限,必要时处理 doca_mmap_export_*;指导通过进度引擎提交任务、处理完成状态和诊断 DOCA_ERROR_*;将网络传输、进程间消息和 DOCA 安装问题转交给相关技能。

  1. 使用 C/C++ 在主机与 DPU 内存之间进行大块数据拷贝的开发者,需要配置 DMA 上下文和 memcpy 任务。
  2. 需要确认设备是否支持 `doca_dma_task_memcpy`,或在单个任务中能处理多大缓冲区的工程师。
  3. 首次提交返回 `DOCA_ERROR_NOT_PERMITTED`,需要排查源和目标 mmap 权限的开发者。
  4. 提交任务后没有完成事件,或收到 `DOCA_ERROR_AGAIN`,需要按生命周期、能力和进度引擎层次调试的开发者。
  5. 需要在 DOCA DMA、DOCA RDMA、DOCA Comch 和 CPU memcpy 之间选择实现路径的系统开发者。

这个 Skill 有哪些优点和局限?

优点
  • 覆盖 DMA 生命周期、能力发现、scatter-gather、mmap 权限、完成事件和错误分类。
  • 明确区分 DMA 与 RDMA、Comch 及小型 CPU memcpy 的适用场景。
  • 支持通过 FFI 使用 Rust、Go、Python 等语言,同时以 DOCA C ABI 为权威接口。
  • README 说明仓库技能会持续同步和维护,并提供签名验证流程。
局限
  • 必须预先安装 DOCA SDK;技能不负责安装或配置 DOCA。
  • 要求 Linux、BlueField DPU 或 ConnectX NIC,源材料未证明其他平台可用。
  • 不提供预写 DMA 应用代码、samples、bindings 或独立构建清单。
  • 源材料未提供该技能的测试套件、性能数据或具体设备兼容列表。

如何安装这个 Skill?

使用仓库 README 支持的命令安装指定技能:npx skills add nvidia/skills --skill doca-dma --yes。安装后,代理在遇到相关任务时加载该技能。源材料未说明单独的手工复制目录步骤。

如何使用这个 Skill?

先确保 Linux 上已安装 DOCA SDK,位置为 /opt/mellanox/doca,并连接 BlueField DPU 或 ConnectX NIC。可向代理提出“将主机缓冲区通过 DOCA DMA 拷贝到 BlueField,不使用 CPU”或“我的 doca_dma_task_memcpy 首次提交返回 DOCA_ERROR_NOT_PERMITTED”之类的问题;技能会根据问题引导读取 CAPABILITIES.mdTASKS.md

这个 Skill 与同类方案有什么区别?

技能明确将 DOCA DMA 与 DOCA RDMA、DOCA Comch 和普通 CPU memcpy 作路径选择:需要跨网络传输时使用 RDMA;面向主机和 DPU 进程间的消息生产者/消费者流程时使用 Comch;极小的一次性拷贝可使用 CPU memcpy。

常见问题

这个技能能帮我安装 DOCA 吗?
不能。它假设 DOCA 已安装在 `/opt/mellanox/doca`,安装问题应转交 `doca-setup`。
它是否会直接生成可编译的 DMA 程序?
不会。它指导使用已安装 SDK 中的 C 示例和用户项目,但明确不包含预写应用源代码或独立构建清单。
为什么 DMA 首次提交会返回 NOT_PERMITTED?
技能会检查源 mmap 的 `LOCAL_READ_ONLY`、目标 mmap 的 `LOCAL_READ_WRITE` 等权限配置,并结合任务测试流程排查。

同仓库的其他 Skills

均来自 NVIDIA/skills

开发与工程 ✓ NVIDIA · 官方

DOCA Arg Parser CLI 技能

帮助开发者为 DOCA 应用构建和调试标准命令行界面。

开发与工程 ✓ NVIDIA · 官方

DOCA Common 基础编程技能

为 BlueField 和 ConnectX DOCA 应用提供通用编程基础。

开发与工程 ✓ NVIDIA · 官方

DOCA Compress 硬件压缩开发技能

指导开发者在 BlueField 或 ConnectX 平台上实现并调试 DOCA 硬件压缩与解压。

开发与工程 ✓ NVIDIA · 官方

DOCA AES-GCM 加速开发技能

帮助开发者在 BlueField 或 ConnectX 上配置、验证和调试 DOCA AES-GCM 加解密。

开发与工程 ✓ NVIDIA · 官方

DOCA SHA 加速开发技能

指导在 NVIDIA 加速器上进行 SHA 哈希卸载开发。

开发与工程 ✓ NVIDIA · 官方

DOCA Telemetry Exporter 开发技能

帮助 DOCA 应用定义、发送和调试面向外部消费者的结构化遥测数据。

开发与工程 ✓ NVIDIA · 官方

DOCA 擦除编码开发技能

指导在 NVIDIA 硬件上开发和调试 DOCA Reed-Solomon 容错编码。

开发与工程 ✓ NVIDIA · 官方

DOCA Flow 调优技能

帮助工程师快照、分析并优化运行中的 DOCA Flow 管道。

开发与工程 ✓ NVIDIA · 官方

DOCA GPI GPU 直驱 RDMA 技能

指导 CUDA 内核绕过主机 CPU,直接从 GPU 内存驱动 RDMA 队列。

开发与工程 ✓ NVIDIA · 官方

DOCA Rivermax 接收流开发技能

帮助开发者构建、验证和调试面向实时网络流的 DOCA Rivermax 接收应用。

开发与工程 ✓ NVIDIA · 官方

DOCA Ethernet 队列开发技能

为 BlueField 与 ConnectX 开发和调试 DOCA Ethernet 收发队列。

开发与工程 ✓ NVIDIA · 官方

DOCA 硬件遥测计数器读取技能

帮助开发者从 BlueField 或 ConnectX 设备读取分域硬件计数器。

开发与工程 ✓ NVIDIA · 官方

DOCA RDMA 编程助手

帮助开发者在 BlueField、ConnectX 或 DOCA 主机上构建、配置和调试基于 DOCA RDMA 的应用。

开发与工程 ✓ NVIDIA · 官方

DOCA 编程指南

帮助开发者从示例开始构建、测试和调试库无关的 DOCA 应用。

开发与工程 ✓ NVIDIA · 官方

DOCA 设备管理开发技能

用 C API 编程管理 BlueField 与 ConnectX 设备状态。

开发与工程 ✓ NVIDIA · 官方

DOCA UROM 主机侧卸载开发

指导 HPC、UCX 和 MPI 应用将远程内存操作卸载到 BlueField DPU。

开发与工程 ✓ NVIDIA · 官方

DOCA PCC 自定义拥塞控制

指导主机侧在 BlueField 上加载和调试自定义 PCC 算法

开发与工程 ✓ NVIDIA · 官方

DOCA 设备仿真开发

指导开发者在 BlueField DPU 上构建由 DPU 后端驱动、主机可识别的自定义 PCIe 仿真设备。

开发与工程 ✓ NVIDIA · 官方

DOCA DPA 主机端开发助手

帮助在 BlueField 主机端加载、启动和调试 DOCA DPA 应用。

开发与工程 ✓ NVIDIA · 官方

DOCA Flow DPA 性能测量

帮助工程师在支持 DPA 的 NVIDIA 硬件上可靠测量 Flow 规则更新与禁用速率。

相关 Skills