DOCA GPI GPU 直驱 RDMA 技能
指导 CUDA 内核绕过主机 CPU,直接从 GPU 内存驱动 RDMA 队列。
文档明确限制适用范围,要求安全传输远端 mmap/连接信息,强调 GPU handle 生命周期和硬件安全策略;但未明确要求每次远端 RDMA 操作获得用户确认,也未提供实际回滚机制,且远端内存访问风险仍依赖应用自行控制,因此扣分。
SKILL.md、CAPABILITIES.md 与 TASKS.md 提供较完整的生命周期、错误分类、观测和失败路由;但本次仅静态阅读,未执行关键路径,且部分能力依赖未提供的 DOCA 安装、版本说明和其他技能,故不超过静态上限并扣分。
受众、触发短语、适用场景和明确的非适用边界清楚;但要求特定 BlueField/ConnectX、NVIDIA GPU、CUDA、Linux 和已安装 DOCA,适用面很窄,中文支持未说明,外部文档访问可能受中国大陆网络影响,因此扣分。
采用 loader、CAPABILITIES.md、TASKS.md 和相关技能分层,包含依赖、示例问题、限制、版本实验性说明及联系入口;但缺少清晰的维护责任与变更日志,SKILLCARD 中版本、签名和时间戳仍为 TBD,且许可证/仓库路径元数据存在不一致,因此扣分。
文档覆盖 GPI 选择、对象生命周期、GPU handle、端点交换和调试流程,理论上可完成核心指导任务;但不提供可运行代码或模板,关键结果依赖用户环境和外部技能,BENCHMARK.md 的数据集不可用且未形成可独立复核的输出证据,因此仅给有限分数。
文件列出具体 API 符号、路径、错误类别和测试流程,并提供 benchmark 摘要;但未附实际头文件、CI 测试套件或可复现的完整评测数据,报告明确称评测数据集不可用,故只能给有限静态证据分。
- 这是静态审查,未执行 DOCA、CUDA、RDMA 或测试流程;不要把 BENCHMARK.md 的 PASS 当作独立复现证据。
- GPU 发起的远端 RDMA 可能修改或读取远端内存;在真实环境中必须确认授权对端、保护连接信息和 mmap 描述符,并验证停止、销毁和异常恢复流程。
- 使用前应核对实际安装的 DOCA/CUDA 版本、头文件和设备能力;GPI 全部标为 DOCA_EXPERIMENTAL,升级后需要重新验证。
- 许可证和 skill-card 元数据存在不一致,版本/签名字段仍为 TBD;发布前应由维护者统一并补充变更记录。
这个 Skill 能做什么,适合哪些场景?
这是 NVIDIA skills 仓库中的一个 DOCA GPI 专用 Agent Skill,面向在同一主机上使用 NVIDIA GPU 与 BlueField DPU 或 ConnectX 网卡的开发者。它覆盖 GPI 的域、通道和属性对象模型,以及将 GPU 侧通道句柄交给 CUDA 内核的流程。技能还指导内存映射挂载、远端端点连接、通道规模配置和 DOCA_ERROR_* 故障排查。它不负责安装 DOCA,也不覆盖 CUDA 编程模型、host-CPU 发起的 RDMA、DPA 侧 RDMA initiation 或 doca-gpunetio 的 Send/Receive API。
指导用户检查 /opt/mellanox/doca 中的库、头文件、样例和应用,并通过 pkg-config doca-gpi 检查本地安装。它说明如何创建和配置 doca_gpi、domain 与 channel,设置域数量、GID、端口及队列大小,创建通道并获取 doca_gpu_gpi_channel* GPU 句柄。它还覆盖本地和远端 mmap 挂载、端点连接信息交换、启动前后的构建与运行工作流,以及对 doca_gpi_* 返回的 DOCA_ERROR_* 进行分层诊断。该技能本身不提供可直接构建的 GPI 源码、CUDA 内核模板、构建清单或 samples/reference/bindings 子树。
- 需要让 CUDA 内核直接向远端内存发布 RDMA 写操作的 GPU 应用开发者,可用它判断应选择低层 GPI 通道/队列接口还是更高层的 doca-gpunetio Send/Receive 接口。
- 正在创建 GPI 域和通道、设置 64 个通道或 1024 项发送队列等资源规模的开发者,可按属性对象和生命周期获得配置指导。
- 需要把 doca_gpi_gpu_channel_get 返回的 GPU 侧句柄传入 CUDA 内核的开发者,可使用它了解 host-side 与 GPU-side 的边界。
- 在 BlueField 或 ConnectX 与 NVIDIA GPU 环境中遇到 doca_gpi_* 返回 DOCA_ERROR_* 的开发者,可按生命周期、GPU 数据路径、CUDA 版本和底层驱动逐层排查。
这个 Skill 有哪些优点和局限?
- 覆盖 GPI 的对象模型、GPU 句柄交接、内存挂载、端点连接、资源配置和错误排查。
- 明确区分 GPI、doca-gpunetio、doca-rdma 和 doca-rdmi 的职责边界。
- 提供 install、configure、build、modify、run、test、debug、use 八类工作流入口。
- 包含版本匹配、安全策略和 DOCA_ERROR_* 分层诊断方面的专门指导。
- 要求 Linux、已安装的 DOCA SDK、CUDA Toolkit、BlueField 或 ConnectX 设备以及 NVIDIA GPU,硬件和环境门槛较高。
- 不提供可直接复制的 GPI 应用源码、CUDA kernel 模板或独立构建文件。
- GPI 的公开符号标记为 DOCA_EXPERIMENTAL,实际 API 兼容性需要遵循本地安装版本。
- 不覆盖 DOCA 安装、CUDA 编程模型或更高层 GPU NetIO Send/Receive API。
如何安装这个 Skill?
仓库 README 给出的集合安装命令是:npx skills add nvidia/skills。若只安装该技能,可使用:npx skills add nvidia/skills --skill doca-gpi --yes。README 未提供 DOCA SDK 或 CUDA Toolkit 的安装步骤;该技能要求 DOCA 已安装在 /opt/mellanox/doca。
如何使用这个 Skill?
将技能目录安装到 Agent Skills CLI 选择的目标位置后,在相关任务中触发,例如:"我的 CUDA kernel 需要直接从 GPU memory 发布 RDMA,如何配置 DOCA GPI?"。进行具体操作时阅读 TASKS.md;询问 GPI 能表达什么时阅读 CAPABILITIES.md。若问题涉及 CUDA 内核启动或设备侧执行,同时加载 doca-gpunetio。
这个 Skill 与同类方案有什么区别?
与 doca-gpunetio 相比,doca-gpi 面向更低层的通道和队列控制,并负责 GPI 对象创建、连接与拆除;doca-gpunetio 负责 CUDA 侧的设备编程和更高层 Send/Receive 表面。与 doca-rdma 相比,GPI 用于 GPU 发起的 RDMA,而 doca-rdma 面向 host-CPU 发起的 RDMA 队列生命周期。与 doca-rdmi 相比,GPI 面向 GPU,RDMI 面向 DPA。