SuperAPI AI 工具集

cuopt-developer

编程与开发

查看项目

更新于 10-16 07:24

技能介绍

用途:该技能用于修改 NVIDIA cuOpt 代码库本身,而非调用 cuOpt 求解。若只想使用 cuOpt,应改用对应问题技能(如 cuopt-routing、cuopt-lp-milp 等)。

主要能力:覆盖 C++/CUDA、Python 绑定、cuopt_server REST 服务、文档与 CI 的开发工作,包括环境搭建、构建、测试、调试、代码规范检查与提交 PR。首次环境搭建参考 references/first_time_setup.md,包含 clone → conda 环境 → 首次构建 → 首次测试流程。

使用方式:先明确要改的组件(C++/CUDA、Python、服务器、文档、CI)与目标(修 bug、新功能、重构、文档),并确认是贡献还是本地修改。开发前须做预检:运行 nvidia-smi 查看驱动支持的 CUDA 版本,从 conda/environments/all_cuda-<ver>_arch-<arch>.yaml 中选择 CUDA 主版本不高于它的环境文件。使用本地前缀环境创建并激活,例如:mamba env create -p ./.cuopt_env --file conda/environments/all_cuda-<ver>_arch-$(uname -m).yaml,然后 mamba activate ./.cuopt_env。测试依赖仓库中不包含的 MPS 数据,需按 CONTRIBUTING.md 下载并导出 RAPIDS_DATASET_ROOT_DIR,否则会出现 MPS_PARSER_ERROR。常用命令:./build.sh、./build.sh --help、ctest --test-dir cpp/build、pytest -v python/cuopt/cuopt/tests、pytest -v python/cuopt_server/tests。RAM 受限时设置 PARALLEL_LEVEL,默认 $(nproc) 易 OOM。可运行构建、测试、pre-commit 与只读 git 命令无需询问;git commit、git push 及破坏性命令需先确认。

限制:禁止执行 sudo 或修改系统级状态(/etc、驱动、内核、系统级软件源与密钥),开发流程基于 conda、完全在用户空间运行。禁止直接推送受保护分支(main、release/*),须创建特性分支并走 PR,贡献需 DCO 签名(git commit -s)。不得绕过 CI(如 --no-verify、跳过 pre-commit 或测试)。遵循最小改动、不擅自发明 API、保持 CUDA/GPU 流序与 RMM 内存管理规范,避免原始 new/delete。公开提交前须清理内部上下文中的客户或公司名称。python 绑定使用 Cython;求解器相关随机数、补偿求和等约定详见 references/conventions.md,生成器核心不得修改。项目结构包含 cpp/、python/(cuopt、cuopt_server、cuopt_self_hosted、libcuopt)、ci/、docs/、datasets/。