DOCA Compress 硬件压缩开发技能
指导开发者在 BlueField 或 ConnectX 平台上实现并调试 DOCA 硬件压缩与解压。
文档明确限定源/目标 mmap 权限、能力查询、用户确认、数据流方向、回滚和任务排空,并声明不需要凭据;因此主要安全风险可见。扣除 5 分:依赖安全审查、硬件权限边界和外部影响控制仍不完整,且部分能力声明未由选定路径内的独立证据验证。
configure/build/run/test/debug/rollback 流程详细,包含异常分类、进度引擎处理和失败路由。扣除 12 分:本次为静态审查,未执行关键路径;LZ4 支持范围在 SKILL.md、CAPABILITIES.md 和技能卡之间存在表述不一致,且若干结论依赖未提供的关联技能或本地安装。
受众、触发短语、输入任务、非适用范围、DEFLATE/LZ4 方向和 CPU 回退均描述清楚。扣除 4 分:内容几乎全为英文,未证明中文交互质量;环境依赖 Linux、本地 DOCA SDK、BlueField/ConnectX 和可能的外部 NVIDIA 文档,边界及中国大陆网络可达性证据有限。
采用 SKILL.md loader、CAPABILITIES.md、TASKS.md 分层,包含示例问题、依赖、版本检查、维护入口、许可证和评估资料。扣除 6 分:缺少明确作者和变更日志,技能卡的许可证/仓库路径与目标材料不完全一致,签名与版本仍为 TBD,且 benchmark 记录了推荐章节缺失。
能够直接指导能力发现、权限配置、缓冲区 sizing、回环 smoke、调试和回退,且明确不提供可直接构建的代码。扣除 9 分:没有随技能提供的实现、fixture 或独立可复现测试;修改渲染器尚未提供,用户仍需手工对照本地 sample,实际结果完整性只能有限确认。
选定路径包含具体 API、命令、错误映射、评估清单和 benchmark 报告,具备一定审计线索。扣除 6 分:评估数据集不可用,报告没有提交覆盖关键路径的测试套件或 CI 执行证据,且许多 DOCA 行为声明无法仅凭这些文件独立交叉验证。
- 不要把 BENCHMARK.md 的 PASS 或高分视为已执行、独立复现的证据;评估数据集未随材料提供。
- 在真实设备上执行前,必须以本地头文件、pkg-config、doca_caps 和实际 doca_devinfo 能力查询为准,尤其核实 LZ4 任务 API 与版本。
- 该技能会指导硬件加速器、mmap 和任务队列操作;应先完成最小 round-trip smoke,并确认回滚、任务排空和 mmap 生命周期。
- 中文用户可能需要额外翻译和术语核对;核心依赖本地 DOCA 安装及 NVIDIA 生态环境。
这个 Skill 能做什么,适合哪些场景?
该技能面向使用 DOCA Compress C 库的外部开发者,覆盖 DEFLATE 压缩、DEFLATE 解压以及 LZ4 流式和块解压。它指导用户配置上下文、查询设备能力和单任务缓冲区上限、设置 mmap 权限,并诊断 DOCA_ERROR_* 与任务完成问题。技能也帮助判断是否应将批量数据卸载到加速器,或改用 CPU zlib/zstd。它不负责安装 DOCA,也不提供可直接构建的应用源码、绑定、测试夹具或独立构建清单。
指导用户通过 pkg-config --modversion doca-compress 检查本地 DOCA 安装,并检查 /opt/mellanox/doca 下的库、头文件、样例和应用。它围绕 doca_compress 上下文、doca_compress_task_compress_deflate、doca_compress_task_decompress_deflate 及相关能力查询 API,说明任务配置、缓冲区大小、mmap 读写权限、生命周期、进度引擎完成事件和错误分层。它还规定使用压缩后解压的往返测试,或使用已知 DEFLATE 数据进行验证。
- 使用 BlueField DPU 压缩数 MiB 的日志缓冲区,并评估硬件卸载是否优于 CPU zlib。
- 在 ConnectX 设备上接收 DEFLATE 网络负载,只配置解压任务并验证输出。
- 排查 doca_compress_task_compress_deflate_alloc_init 返回 DOCA_ERROR_INVALID_VALUE 的原因。
- 处理 DOCA_ERROR_NOT_PERMITTED,检查源和目标 mmap 的访问权限。
- 在提交压缩任务后没有收到完成事件时,按生命周期、缓冲区、权限和设备支持逐层调试。
- 为 Rust、Go 或 Python 包装器遵循 DOCA Compress C ABI 的能力查询、权限和生命周期规则。
这个 Skill 有哪些优点和局限?
- 覆盖压缩和解压任务的实际配置、能力发现、权限、缓冲区 sizing 和错误诊断。
- 明确支持范围,包括 DEFLATE 双向处理和 LZ4 解压,并明确拒绝 LZ4 编码。
- 提供适用于 C/C++ 及 FFI 包装器的生命周期和公共 C ABI 指导。
- 适合批量数据,并包含往返 smoke test 和任务完成事件的验证思路。
- 要求预先安装 DOCA SDK,并具备 BlueField DPU 或 ConnectX 硬件。
- 不覆盖 DOCA 安装、DOCA Core 生命周期内部或其他压缩算法。
- 不提供预写应用源码、语言绑定、样例子树、测试数据或独立构建清单。
- 源材料没有给出具体设备型号、版本矩阵数值或性能基准。
如何安装这个 Skill?
使用默认 skills CLI 安装指定技能:npx skills add nvidia/skills --skill doca-compress --yes。CLI 会安装到选择的代理目标;README 未提供该技能的手工复制路径或独立安装包。使用前仍需在 Linux 上安装 DOCA SDK,并连接 BlueField DPU 或 ConnectX NIC。
如何使用这个 Skill?
安装后,在相关任务中直接向代理提问,例如:“在 BlueField 上卸载这个 gzip 压缩任务,如何配置 doca_compress?”或“为什么 doca_compress_task_compress_deflate 返回 DOCA_ERROR_NOT_PERMITTED?”配置、构建、修改、运行、测试和调试问题应继续读取技能目录中的 TASKS.md;能力矩阵和路径选择问题应读取 CAPABILITIES.md。若尚未安装 DOCA,应先转到 doca-setup。
这个 Skill 与同类方案有什么区别?
技能明确将批量输入的 DOCA Compress 与 CPU zlib/zstd 进行路径选择比较;LZ4 编码应改用 CPU LZ4 库;纯 mmap 到 mmap 的复制应使用 doca-dma。