安装PyTorch
安装前请根据表1完成相应配套版本CANN软件的安装。若用户需要详细了解CANN软件和其安装流程,可从安装须知章节开始了解手册内容。若用户仅进行离线推理,请跳过此章节。
昇腾开发PyTorch Adapter插件用于适配PyTorch框架,为使用PyTorch框架的开发者提供昇腾AI处理器的超强算力,本章节指导用户安装PyTorch框架和PyTorch Adapter插件。
安装场景
PyTorch配套的Python版本是:Python3.7.x(3.7.5~3.7.11)、Python3.8.x(3.8.0~3.8.11)、Python3.9.x(3.9.0~3.9.2)。
根据不同的PyTorch使用场景,用户可以选择以下方式安装PyTorch:
- 获取镜像下载安装PyTorch:若用户希望在容器中安装使用PyTorch,可以点击链接前往AscendHub昇腾PyTorch镜像仓库,根据表1选择对应版本的镜像下载使用。
- 二进制whl包安装:在Python3.7.x(3.7.5~3.7.11)环境下,推荐用户使用编好的二进制whl包安装PyTorch 1.8.1和PyTorch 1.11.0。请前往安装PyTorch环境依赖继续安装流程。
- 编译安装:在Python3.8.x和Python3.9.x环境下,则只能采用编译安装方式安装PyTorch。请前往编译安装PyTorch进行安装。
如果用户不确定自己的软件包版本,可参考查询软件包版本信息进行查询。
安装PyTorch环境依赖
pip3 install pyyaml pip3 install wheel pip3 install typing_extensions
安装PyTorch
在Python3.7.x(3.7.5~3.7.11)环境下,推荐用户使用编好的二进制whl包安装PyTorch 1.8.1和PyTorch 1.11.0。
用户也可选择编译安装方式安装PyTorch 1.8.1和PyTorch 1.11.0。请参考编译安装PyTorch。
- 安装官方torch包。
- x86_64
在x86_64架构下,官方torch包使用MKL加速库。如果需要使用其他blas和lapack加速库(如openblas)来提升性能,请使用源码编译安装方式安装官方torch包,步骤请参考编译安装PyTorch章节。
# 安装1.8.1版本 pip3 install torch==1.8.1+cpu # 安装1.11.0版本 pip3 install torch==1.11.0+cpu
若执行以上命令安装cpu版本PyTorch报错,请点击下方PyTorch官方链接下载whl包。
执行如下安装命令:
# 用户请根据自己实际情况修改命令中的安装包名 pip3 install torch-1.8.1+cpu-cp37-cp37m-linux_x86_64.whl
- aarch64
- 进入安装目录,执行如下命令获取鲲鹏文件共享中心上对应版本的whl包。
# 安装1.8.1版本 wget https://repo.huaweicloud.com/kunpeng/archive/Ascend/PyTorch/torch-1.8.1-cp37-cp37m-linux_aarch64.whl # 安装1.11.0版本 wget https://repo.huaweicloud.com/kunpeng/archive/Ascend/PyTorch/torch-1.11.0-cp37-cp37m-linux_aarch64.whl
- 执行如下命令安装。如果使用非root用户安装,需要在命令后加--user。
# 安装1.8.1版本 pip3 install torch-1.8.1-cp37-cp37m-linux_aarch64.whl # 安装1.11.0版本 pip3 install torch-1.11.0-cp37-cp37m-linux_aarch64.whl
- 进入安装目录,执行如下命令获取鲲鹏文件共享中心上对应版本的whl包。
- x86_64
- 安装PyTorch插件torch_npu。以下命令以在aarch64架构下安装为例。
- 进入安装目录,执行如下命令获取PyTorch插件的whl包。
# 若用户在x86架构下安装插件,请将命令中文件包名中的“aarch64”改为“x86_64”。 # 安装1.8.1版本 wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.8.1/torch_npu-1.8.1.post1-cp37-cp37m-linux_aarch64.whl # 安装1.11.0版本 wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.11.0/torch_npu-1.11.0-cp37-cp37m-linux_aarch64.whl
如果下载whl包时出现ERROR: cannot verify gitee.com's certificate报错,可在下载命令后加上--no-check-certificate参数避免此问题。
样例代码如下所示。
wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.11.0/torch_npu-1.11.0-cp37-cp37m-linux_aarch64.whl --no-check-certificate
- 执行如下命令安装。如果使用非root用户安装,需要在命令后加--user。
# 若用户在x86架构下安装插件,请将命令中文件包名中的“aarch64”改为“x86_64”。 # 安装1.8.1版本 pip3 install torch_npu-1.8.1.post1-cp37-cp37m-linux_aarch64.whl # 安装1.11.0版本 pip3 install torch_npu-1.11.0-cp37-cp37m-linux_aarch64.whl
- 进入安装目录,执行如下命令获取PyTorch插件的whl包。
- 执行如下命令,若返回True则说明安装成功。
python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())"
- 安装对应框架版本的torchvision。
#PyTorch 1.8.1需安装0.9.1版本,PyTorch 1.11.0需安装0.12.0版本 pip3 install torchvision==0.9.1
安装APEX混合精度模块
混合精度训练是在训练时混合使用单精度(float32)与半精度(float16)数据类型,将两者结合在一起,并使用相同的超参数实现了与float32几乎相同的精度。在迁移完成、训练开始之前,基于NPU处理器的架构特性,用户需要开启混合精度,可以提升模型的性能。APEX混合精度模块是一个集优化性能、精度收敛于一身的综合优化库,可以提供不同场景下的混合精度训练支持。混合精度的介绍可参考《PyTorch 模型迁移和训练指南》中的“自动混合精度(AMP)”章节,APEX模块的使用介绍可参考《PyTorch 模型迁移和训练指南》中的“参考信息>模型套件和第三方库>APEX”章节。
编译源码包安装APEX模块步骤如下。
- 安装依赖。
选择编译安装方式安装时需要安装系统依赖。目前支持CentOS与Ubuntu操作系统。
- CentOS
yum install -y patch libjpeg-turbo-devel dos2unix openblas git yum install -y gcc==7.3.0 cmake==3.12.0 #gcc7.3.0版本及以上,cmake3.12.0版本及以上。若用户要安装1.11.0版本PyTorch,则gcc需为7.5.0版本以上。
- Ubuntu
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 apt-get install -y gcc==7.3.0 cmake==3.12.0 #gcc7.3.0版本及以上,cmake3.12.0版本及以上。若用户要安装1.11.0版本PyTorch,则gcc需为7.5.0版本以上。
- CentOS
- 获取昇腾适配的APEX源码。
git clone -b 分支名称 https://gitee.com/ascend/apex.git
分支名称请根据实际使用的PyTorch版本选择,例如使用PyTorch1.11.0-5.0.rc1,则apex分支也使用5.0.rc1。
- 进入昇腾适配的APEX源码目录,获取原生APEX代码。
cd apex git clone https://github.com/NVIDIA/apex.git
- 进入原生APEX代码目录,切换对应分支。
cd apex git checkout 4ef930c1c884fdca5f472ab2ce7cb9b505d26c1a cd ..
- 在昇腾适配的APEX源码目录下的scripts中执行命令生成NPU适配的全量代码。
cd scripts bash gen.sh
- 执行命令编译生成二进制安装包。
cd ../apex python3 setup.py --cpp_ext --npu_float_status bdist_wheel
请确保NPU版本的PyTorch可以正常使用,否则会影响APEX的编译。
- 执行如下命令安装。如果使用非root用户安装,需要在命令后加--user。
# 若用户在x86架构下安装,请将命令中文件包名中的“aarch64”改为“x86_64”。 cd dist pip3 install apex-0.1_ascend-cp37-cp37m-linux_aarch64.whl