DOCA 擦除编码开发技能
指导在 NVIDIA 硬件上开发和调试 DOCA Reed-Solomon 容错编码。
证据显示该技能限定为本地 DOCA 环境,要求能力查询、源/目标 mmap 权限、用户确认参数,并明确不处理密钥或秘密;但执行会接触硬件、设备和用户存储数据,缺少完整的最小权限模型、明确的执行前同意边界、通用回滚方案和数据流说明,因此扣分。
文档覆盖配置、构建、运行、测试和错误分类,且提供已知向量 smoke 流程;但静态材料未包含可核验的关键路径测试套件,存在将不存在的 `_get_max_num_blocks` 写入测试步骤等自相矛盾,且部分 API/硬件断言无法在文件内复现,因此受静态上限限制并扣分。
受众、触发短语、适用的存储场景和非适用的网络 FEC、复制及非 Reed-Solomon 方案定义清楚;但没有中文交互或本地化指导,语言支持边界主要依赖代理推断,环境适配证据有限,因此扣分。
SKILL.md、CAPABILITIES.md、TASKS.md 分层明确,包含安装前提、参数、示例问题、限制、相关技能、维护入口和 benchmark;但版本、签名和扫描字段仍为 TBD,技能卡与提示中的仓库、路径和许可证元数据不一致,且 benchmark 自称存在若干结构规范缺陷,因此扣分。
内容能直接指导能力发现、create/recover/update 选择、权限排查和 smoke 测试,benchmark 也报告了较高的技能辅助效果;但它是薄加载器,不提供可直接构建的代码或模板,修改流程还依赖用户本地样例并注明 renderer 尚未提供,输出仍需较多人工核验,因此未给满分。
材料包含评估报告、评估任务和技能卡中的质量声明,提供了一定审计线索;但评估数据集不可用,未提供覆盖关键路径的可复现 CI 与测试证据,且核心技术结论主要由技能文本自身陈述,因此仅给有限分数。
- 不要把 BENCHMARK.md 的通过结论视为独立复现;其数据集未随材料提供。
- 修复 TASKS.md 中 `_get_max_num_blocks` 与真实能力查询符号不一致的问题,并核对所有 DOCA API 断言。
- 执行前应明确用户授权、设备范围、存储数据范围、失败恢复和不可恢复数据损失处理。
- 统一 SKILL.md、SKILLCARD.yaml、skill-card.md 与发布元数据中的仓库路径、许可证和版本签名。
这个 Skill 能做什么,适合哪些场景?
这是面向外部开发者的 DOCA Erasure Coding 编程指导技能,适用于 BlueField DPU、ConnectX NIC 或主机上的实际开发。它覆盖 N 个数据块加 K 个冗余块模型,以及 create、recover、update 三类任务。技能帮助用户查询设备能力、配置矩阵和块大小、设置 mmap 权限,并诊断 DOCA_ERROR_* 返回值。它要求本地已安装 DOCA SDK,不负责安装 DOCA,也不提供可直接构建的应用源码。
引导代理读取 TASKS.md 和 CAPABILITIES.md,检查本地 DOCA 安装、pkg-config 模块和 /opt/mellanox/doca 下的库、头文件、样例及应用。它指导调用 doca_ec_cap_* 查询任务支持、最大块大小和最大缓冲区列表长度,并通过 doca_ec_matrix_create() 检查矩阵构造是否成功。它还指导配置 doca_ec 上下文、create/recover/update 任务、doca_mmap 源和目标权限,运行已安装的 C 样例,执行已知向量恢复验证,并按生命周期、参数、矩阵、权限和队列压力分层排查错误。
- 分布式存储开发者要用 N 个数据块和 K 个冗余块构建 RAID-6 风格或对象存储容错布局。
- BlueField 或 ConnectX 开发者需要确认设备是否支持指定任务、矩阵、N+K 上限和块大小。
- 存储系统中单个数据块变化,开发者希望用 update 增量刷新冗余,而不是重新编码全部数据。
- 磁盘或块丢失后,开发者需要验证最多 K 个缺失块能否通过 recover 重建。
- C/C++ 或 FFI 绑定开发者需要确认 DOCA EC 生命周期、能力发现、mmap 权限和错误处理规则。
这个 Skill 有哪些优点和局限?
- 针对 DOCA Erasure Coding 的 create、recover、update 生命周期提供明确路由。
- 覆盖能力查询、矩阵选择、N+K 和块大小限制、mmap 权限及 DOCA_ERROR_* 调试。
- 明确区分擦除编码、复制、网络 FEC 和其他 DOCA 加速库,适合分布式存储场景。
- 支持通过公共 C ABI 指导 C/C++ 及其他语言的 FFI 使用。
- 必须预先安装 DOCA SDK,并具备 BlueField DPU 或 ConnectX NIC;技能不负责安装。
- SKILL.md 本身是薄加载器,关键操作细节位于未提供的 TASKS.md 和 CAPABILITIES.md。
- 不包含预写 EC 应用源码、独立构建清单、绑定、样例子树或预计算 parity 表。
- 源材料没有证明具体 DOCA 版本、硬件型号或非 C 绑定已经实际测试。
如何安装这个 Skill?
使用 NVIDIA/skills 集合中的 skills CLI 安装:
npx skills add nvidia/skills --skill doca-erasure-coding --yes
也可以安装整个集合:
npx skills add nvidia/skills
安装后,代理在遇到相关任务时加载该技能。源材料没有说明 DOCA SDK 的具体安装命令;它要求 SDK 已位于 /opt/mellanox/doca。
如何使用这个 Skill?
安装后,可用类似以下提示触发:"在 BlueField 上配置 doca_ec_task_update,为一个发生变化的数据块刷新 parity,并检查设备能力和 mmap 权限。"
对于具体工作流,技能要求进一步查看 TASKS.md;对于能力、权限、错误分类和路径选择,查看 CAPABILITIES.md。提供的源材料未包含这两个伴随文件的具体步骤,因此不能据此补充完整构建或运行命令。
这个 Skill 与同类方案有什么区别?
它将 DOCA Erasure Coding 与 CPU 擦除编码库、纯复制、磁盘 RAID-6、网络 FEC 以及其他 DOCA 库区分开来:DOCA EC 面向存储容错;复制适合保留多个完整副本;网络 FEC 和非 Reed-Solomon 编码不属于本技能范围。