NVIDIA cuOpt 开发者技能
帮助开发者修改、构建、测试和贡献 NVIDIA cuOpt。
技能明确拒绝sudo、root、系统文件修改及高风险破坏性操作,并要求对提交、推送和第三方代码等外部影响进行确认;同时强调用户空间环境和最小差异。扣5分:未系统说明凭据、敏感数据、网络数据流、依赖来源验证或回滚方案。
内容结构一致,覆盖环境检查、构建、测试、错误诊断、CUDA约定和失败反馈;基准文件还记录了有限评估结果。扣11分:本次仅静态阅读,未执行关键路径;部分引用文件未在给定材料中提供,且命令适配性和异常输入覆盖仍有限。
目标受众、开发场景和“不用于使用cuOpt”的边界清晰,并给出组件、构建目标和触发语义。扣4分:主要假设Linux、NVIDIA GPU、CUDA和conda环境;未说明中文交互支持,也未评估大陆网络可达性或海外服务依赖。
有版本、Apache-2.0许可证、作者、分层参考文档、安装/构建/测试说明和维护性提示;基准报告记录了静态规范发现。扣5分:缺少推荐的Instructions和Examples章节,作者格式不符合报告要求,缺少明确changelog、维护责任和更新路径,且存在未预期目录发现。
文档覆盖构建、测试、DCO、CUDA内存、参数、端点和依赖等实际开发任务;BENCHMARK.md报告了多个任务的正确性和有效性结果。按静态校准最高7分;扣分原因是未在本审查中执行或独立复现,且部分输出仍需依据仓库其他文档和用户环境调整。
提供了版本化文档、具体路径、命令、评估任务及指标,具备一定审计线索。扣5分:没有在给定材料中提供CI工作流、测试套件执行日志、原始结果或跨来源独立复核,因此关键结论主要依赖作者提供的评估报告。
- 该技能会指导构建、安装conda/pip依赖、下载测试数据以及提交或推送相关流程;执行前应确认目标目录、网络来源、分支和写入范围。
- 核心环境假设包括Linux、NVIDIA GPU、兼容CUDA驱动和conda;不满足时应先确认替代方案。
- 未提供中文支持或大陆网络可达性说明;涉及外部下载、GitHub或其他海外资源时需单独验证可用性。
- BENCHMARK.md是静态提供的评估报告,不等同于本次审查中的独立执行证明。
这个 Skill 能做什么,适合哪些场景?
这是面向 NVIDIA cuOpt 本身开发工作的 Agent Skill,而不是用于调用 cuOpt 求解器。它覆盖 C++/CUDA 核心、Python 绑定、服务器、构建测试、CI 和贡献流程。技能强调用户空间 conda 环境、CUDA 驱动兼容性、数据集准备、最小变更、DCO 签署和不绕过 CI。适合维护 cuOpt 代码或准备提交上游贡献的开发者。
指导代理先确认修改组件、目标、测试范围、贡献方式和分支;读取相关代码并遵循现有模式;检查 nvidia-smi 中的 CUDA 版本,选择 conda 环境,创建并激活 ./.cuopt_env,设置 PARALLEL_LEVEL,下载测试数据并设置 RAPIDS_DATASET_ROOT_DIR;运行 ./build.sh、ctest、pytest 和 pre-commit;诊断 CUDA 驱动不匹配、缺少数据集、Cython 重建、OOM、nvcc 缺失及 CI 失败;指导 C++/CUDA、Python、服务器端点、依赖、CUDA 内核和 VRP 维度等修改,以及 DCO 签署和 PR 流程。
- cuOpt 核心开发者需要修改 C++/CUDA 求解器并运行对应构建和测试。
- Python 绑定维护者需要追踪 Cython 与 C++ 之间的参数流并更新测试。
- 服务器开发者需要新增或修改 cuOpt REST 端点,并使服务器模式符合 OpenAPI 规范。
- 贡献者准备提交 cuOpt PR,需要遵循分支选择、DCO 签署、pre-commit 和 CI 要求。
这个 Skill 有哪些优点和局限?
- 覆盖从环境准备到构建、测试、调试和 PR 的完整开发流程。
- 明确禁止 sudo、绕过 CI 和未经确认的破坏性命令。
- 提供 CUDA 驱动检查、测试数据准备和常见失败诊断。
- 同时涵盖 C++/CUDA、Python 绑定、服务器和 CI。
- 需要 NVIDIA CUDA 兼容驱动、conda 或 mamba,以及可用的 cuOpt 源码环境。
- 测试依赖仓库外的 MPS/数据文件,必须先按 CONTRIBUTING.md 下载并配置路径。
- 给出的参考文档内容不在本次源材料中,组件级细节仍需查阅 cuOpt 仓库文件。
- 技能明确面向修改 cuOpt 本身,不适合仅调用或使用 cuOpt API。
如何安装这个 Skill?
使用仓库 README 提供的默认安装流程:运行 npx skills add nvidia/skills,在交互提示中选择 cuopt-developer 和安装位置。源材料没有提供该技能的专用非交互安装命令,也没有要求手动克隆仓库或复制技能目录。
如何使用这个 Skill?
将该技能加载到 Agent Skills 兼容客户端后,使用明确的开发请求,例如:Help me modify the cuOpt C++/CUDA solver, build it, run the relevant tests, and prepare a contribution. 开始前说明组件、变更目标、测试需求、是否贡献上游以及目标分支。若只是使用 cuOpt,而不是修改其代码,应改用相应的问题技能。
这个 Skill 与同类方案有什么区别?
与用于调用 cuOpt 的问题技能(例如 cuopt-routing、cuopt-lp-milp)相比,本技能专注于修改、构建、测试、调试和贡献 cuOpt 源代码;它不负责为业务问题选择或调用求解器 API。