Prhub

#22029 [NPU][CI] Use UV to improve pip install speed

原始 PR 作者 tfhddd 合并时间 2026-04-09 09:18 文件变更 4 提交数 1 评论 8 代码增减 +30 / -7

执行摘要

使用 UV 工具加速 NPU CI 环境中的 pip 安装,安装时间从 4 分钟缩短至 1 分 40 秒。

PR标题和简短描述表明,动机是提高CI环境中pip安装的速度,从4分钟减少到1分40秒,以加速NPU测试工作流的执行,提升开发效率和CI流水线性能。

对于技术管理者,此PR展示了CI基础设施优化的一个实例,值得关注以提高团队效率;对于工程师,除非直接维护NPU CI脚本,否则无需精读,但可借鉴uv工具的集成方法。

讨论亮点

review中,gemini-code-assist[bot]提出两个关键建议:一是使用${PIP_INSTALL}变量而非直接调用pip来安装uv,以确保安装一致性;二是避免硬编码UV_INDEX_URL为内部集群地址,建议通过环境变量覆盖以提高脚本可移植性。作者tfhddd回复'fixed',表明已采纳建议并修改代码。讨论聚焦于设计合理性和可维护性,没有未解决疑虑。

实现拆解

实现方案分为两部分:

1) 在三个CI工作流文件(.github/workflows/full-test-npu.yml、nightly-test-npu.yml、pr-test-npu.yml)的多个job中添加UV_INDEX_URL环境变量,指向内部缓存服务;
2) 修改安装脚本scripts/ci/npu/npu_ci_install_dependency.sh,引入uv pip安装命令(UV_PIP_INSTALL),设置UV相关环境变量如UV_NO_CACHE=true、UV_SYSTEM_PYTHON=true、UV_INDEX_STRATEGY=unsafe-best-match,并将原有的pip install替换为uv pip install,同时确保uv工具本身通过${PIP_INSTALL}安装以保持一致性。

文件 模块 状态 重要度
.github/workflows/full-test-npu.yml CI Workflow modified 3.0
.github/workflows/nightly-test-npu.yml CI Workflow modified 3.0
.github/workflows/pr-test-npu.yml CI Workflow modified 4.0
scripts/ci/npu/npu_ci_install_dependency.sh CI Script modified 5.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

使用 ${PIP_INSTALL} 安装 uv 以保持一致性 设计

gemini-code-assist[bot] 建议使用 ${PIP_INSTALL} 变量而非直接调用 pip 来安装 uv,以确保安装过程与脚本中其他依赖安装保持一致,避免潜在的不一致性问题。

结论:作者采纳建议并修改代码,使用 ${PIP_INSTALL} uv 来安装 uv 工具。 · 已解决

避免硬编码 UV_INDEX_URL 以提高可移植性 设计

gemini-code-assist[bot] 指出硬编码 UV_INDEX_URL 为内部集群地址(如 .svc.cluster.local)会降低脚本可移植性,在其他环境(如本地开发或外部 CI)中可能导致失败或超时,建议通过环境变量覆盖来灵活配置。

结论:作者采纳建议并修改代码,使用环境变量覆盖方式设置 UV_INDEX_URL。 · 已解决

风险与影响

技术风险较低:

1) 新引入的uv工具可能带来兼容性问题或额外依赖,但已在CI环境中测试;
2) UV_INDEX_URL虽已改为环境变量覆盖,但默认值仍指向内部缓存服务,在其他环境中可能需手动配置;
3) 替换pip为uv可能影响包解析逻辑,但通过设置UV_INDEX_STRATEGY=unsafe-best-match来加速安装,整体风险可控,主要局限于CI基础设施。

影响范围仅限于NPU相关的CI工作流(full-test、nightly-test、pr-test),不影响生产代码或核心功能。影响程度:安装速度提升约60%,减少CI执行时间,提高开发迭代效率;对用户无直接影响,但间接加速了NPU功能测试和集成。

新工具依赖风险 环境变量配置依赖

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论