方式二:源码编译安装
编译安装适用于二次开发场景,如自定义算子适配开发后,用户可以选择需要的分支版本自行编译PyTorch框架和torch_npu插件。
执行安装命令前,请参见安装前准备完成环境变量配置及其他环境准备。
安装torch_npu插件
以下操作步骤以安装PyTorch 2.1.0版本为例。
- 方式一(推荐):容器场景
- 下载torch_npu源码。
git clone https://gitee.com/ascend/pytorch.git -b v2.1.0-7.1.0 --depth 1
以v2.1.0-7.1.0为例,下载对应的Ascend Extension for PyTorch分支代码。请参见《版本说明》中的“相关产品版本配套说明”章节下载Ascend Extension for PyTorch其他版本的分支代码。
- 构建镜像。
cd pytorch/ci/docker/{arch} docker build -t manylinux-builder:v1 .
- {arch}表示CPU架构(X86或ARM)。
- 注意不要遗漏命令结尾的“.”。
- 进入Docker容器,并将torch_npu源代码挂载至容器内。
docker run -it -v /{code_path}/pytorch:/home/pytorch manylinux-builder:v1 bash
{code_path}表示torch_npu源代码路径,请根据实际情况进行替换。
- 编译生成二进制安装包。
cd /home/pytorch bash ci/build.sh --python=3.8
如需指定其他Python版本请使用--python=3.9、--python=3.10或--python=3.11。
- 在运行环境中安装生成的插件torch_npu包,如果使用非root用户安装,需要在命令后加--user。
pip3 install --upgrade dist/torch_npu-2.1.0.post13-cp38-cp38-linux_aarch64.whl
请用户根据实际情况更改命令中的torch_npu包名。
- 下载torch_npu源码。
- 方式二:物理机及虚拟机场景
-
选择编译安装方式安装时需要安装系统依赖,根据不同类型的操作系统,选择对应的命令安装所需依赖。
- openEuler系列(openEuler、CentOS、Kylin、BCLinux、BC-Linux-for-Euler、UOS20 1050e、UOS20 1020e、UOSV20、AntOS、CTyunOS、CULinux、Tlinux):
- 安装依赖(除gcc和cmake以外)。
yum install -y patch libjpeg-turbo-devel dos2unix openblas git
- 安装gcc和cmake。
根据实际情况,安装对应gcc和cmake版本,版本信息及安装指导请参见表1。
- 安装依赖(除gcc和cmake以外)。
- Debian系列(Ubuntu、Debian、UOS20、UOS20 SP1):
- 安装依赖(除gcc和cmake以外)。
apt-get install -y patch build-essential libbz2-dev libreadline-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev m4 dos2unix libopenblas-dev git
- 安装gcc和cmake。
根据实际情况,安装对应gcc和cmake版本,版本信息及安装指导请参见表1。
- 安装依赖(除gcc和cmake以外)。
表1 gcc和cmake版本要求 PyTorch版本
系统架构
gcc版本
cmake版本
2.1.0
X86_64
9.4.0
3.18.0版本及以上
AArch64
10.2.0
3.31.0版本及以上
2.5.1
X86_64
9.4.0
3.18.0版本及以上
AArch64
10.2.0
3.31.0版本及以上
2.6.0
X86_64
9.4.0
3.18.0版本及以上
AArch64
11.2.0
3.31.0版本及以上
安装指导可参见安装10.2.0版本gcc和安装3.18.0版本cmake。
- openEuler系列(openEuler、CentOS、Kylin、BCLinux、BC-Linux-for-Euler、UOS20 1050e、UOS20 1020e、UOSV20、AntOS、CTyunOS、CULinux、Tlinux):
- 编译生成torch_npu插件的二进制安装包。
- 以v2.1.0-7.1.0为例,下载对应的Ascend Extension for PyTorch分支代码并进入插件根目录。
git clone -b v2.1.0-7.1.0 https://gitee.com/ascend/pytorch.git cd pytorch
请参见《版本说明》中的“相关产品版本配套说明”章节下载Ascend Extension for PyTorch其他版本的分支代码。
- 编译生成二进制安装包。
bash ci/build.sh --python=3.8
如需指定其他Python版本请使用--python=3.9、--python=3.10或--python=3.11。
- 以v2.1.0-7.1.0为例,下载对应的Ascend Extension for PyTorch分支代码并进入插件根目录。
- 安装pytorch/dist目录下生成的插件torch_npu包,如果使用非root用户安装,需要在命令后加--user。
pip3 install --upgrade dist/torch_npu-2.1.0.post13-cp38-cp38-linux_aarch64.whl
请用户根据实际情况更改命令中的torch_npu包名。
-
验证是否成功安装
- 方法一
python3 -c "import torch;import torch_npu; a = torch.randn(3, 4).npu(); print(a + a);"
输出如下类似信息说明PyTorch框架与插件安装成功。
1 2 3
tensor([[-0.6066, 6.3385, 0.0379, 3.3356], [ 2.9243, 3.3134, -1.5465, 0.1916], [-2.1807, 0.2008, -1.1431, 2.1523]], device='npu:0')
- 方法二
1 2 3 4 5 6 7 8
import torch import torch_npu x = torch.randn(2, 2).npu() y = torch.randn(2, 2).npu() z = x.mm(y) print(z)
输出如下类似信息说明PyTorch框架与插件安装成功。
1 2
tensor([[-0.0515, 0.3664], [-0.1258, -0.5425]], device='npu:0')