在PAI中使用PPU PIP源(v2.0.x)

更新时间:
复制为 MD 格式

1. PPU PIP源简介

  • PPU PIP源提供为SAIL产品优化的框架、基于PPU SDK重编译的开源库,支持用户通过pip install的方式安装软件包,方便用户快速搭建生产环境。如果客户需要的包不在PPU PIP源内,则默认会从官方PYPI源拉取软件包。

  • PPU PIP源上的软件包会随着正式PPU SDK release发布,也会按照周更的节奏持续更新。

  • PIP包清单会持续更新基于PPU SDK v2.0.x 的PIP源迭代。

2. PIP包一览表

PIP包清单为适用于PPU SDK v2.0 release的全部pip安装包一览表,其中“ce”基于SAIL SDK编译的开源框架安装包,“oe”表示针对SAIL产品做过性能优化的框架安装包。

3. 命名规则解析

3.1 PIP源地址命名规则(老 OS/CUDA 绑定模式)

https://art-pub.eng.t-head.cn/artifactory/api/pypi/ptgai-pypi_ppu_ubuntu_cu118_index/simple/ 为例:

https://art-pub.eng.t-head.cn/artifactory/api/pypi/ptgai-pypi_ppu_

ubuntu_

cu118_

index/simple/

源固定地址

目前只区分ubuntualios,不区分os具体版本

表示cuda 11.8

固定格式

3.2 pip源地址命名规则(新地址)

新地址中不再包含OS/CUDA信息,从SAIL PIP 1.7.x开始,PIP软件包全部上传到同一个地址,安装过程中PIP包会自动识别生产环境,安装与客户环境下CUDA、Torch、Python相匹配的包。

https://art-pub.eng.t-head.cn/artifactory/api/pypi/pypi_index/simple

能看到,对比老的 OS/CUDA 绑定模式,新的源地址上更加简洁。

在未来一段时间内,使用老的 OS/CUDA 绑定模式地址依然可以拉到新发布的包,用户可以根据自己的需求选择使用。

3.3 PIP源安装指令命名规则

pip install apex==25.4+ppu2.0.0.ce 为例:

25.4

+ppu

2.0.0

.ce 或者 .oe

框架版本号

固定格式

发布版本

ce:开源(Community Edition)

oe:针对PPU优化(Optimized Edition)

  • ce、oe缺省:不指定包的类型,直接使用指令 pip install apex==25.4+ppu2.0.0 安装也可以安装成功。如果当前配置下即存在开源的PIP包又存在针对SAIL产品优化过的PIP包,默认安装的是优化过的包。

  • 发布版本缺省:不指定发布版本,直接使用指令 pip install apex==25.4 安装,默认安装SAIL PIP源上最近一次发布的apex25.4安装包。

  • 版本号缺省:如果不指定版本号,直接使用 pip install apex 安装,会默认安装一个SAIL PIP源上框架版本最新的apex,即apex25.9。

4. 实际应用示例

4.1 指定SAIL SDK 2.0.0版本

应用场景:SAIL SDK 2.0.0 发布的docker:llm:pytorch2.7.0-ubuntu24.04-cuda12.8-sglang0.5.2-py312 中安装apex 25.4。

  1. pip包一览表中搜索。

  2. 过滤出apex25.4,并过滤出适用于ubuntu24.04、cuda12.8、pytorch2.7.0、python3.12的配置的安装指令。

image.png

pip install apex==25.9+ppu2.0.0 -i https://art-pub.eng.t-head.cn/artifactory/api/pypi/pypi_index/simple

注意,这里需要手动加上+ppu2.0.0!

5. PIP源与SDK的兼容性

SDK 2.0中增加对ZW890 device的支持,编译器具备在编译过程中产生多代Device Binary的能力,device Fatbin的文件格式版本随之迭代,在兼容性方面存在一些变化。

SDK 2.0SDK 1.7.x、1.6.x、1.5.x之间,保持在编程API接口的兼容性。但在Device二进制格式和库文件的兼容性方面:

  • 后向兼容

在旧版本SDK(1.7.x、1.6.x、1.5.x)上编译的whls产物能够在SDK v2.0的环境中正常执行;

  • 前向兼容

SDK 2.0上编译的whls产物不能在旧版本SDK(1.7.x、1.6.x、1.5.x)的环境中正常执行;

SDK 2.0 同 SDK 1.4及之前的版本不兼容。

6. 测试平台

测试平台代表当前whl包在哪些产品上验证过,而不是只适用于某个产品。目前产品包括BTV1.0/1.1BTV1.5。

7. 常见问题

  • 如遇到以下piphash值错误,请使用--no-cache指令解决。

    image.png

    pip install --no-cache-dir apex==25.9+ppu2.0.0

    也可以使用pip cache purge指令清除当前系统中全部pip缓存。

    pip cache purge
  • 如果已经安装了torch,但依旧报错“Import torch failed: No module named 'torch'”,pip install时尝试加上--no-build-isolation 参数。

    pip install --no-build-isolation apex==25.9+ppu2.0.0