手把手教你在昇腾平台上搭建PyTorch训练环境

手把手,平台,搭建,pytorch,训练,环境 · 浏览次数 : 162

小编点评

**安装PyTorchCANN软件包** 1. 下载官方torch包:x86_64架构wget https://download.pytorch.org/whl/cpu/torch-1.8.1%2Bcpu-cp37-cp37m-linux_x86_64.whl 2. 下载Torch-1.8.1+cpu-cp37-cp37m-linux_x86_64.whlaarch64架构wget https://repo.huaweicloud.com/kunpeng/archive/Ascend/PyTorch/torch-1.8.1+cpu-cp37-cp37m-linux_x86_64.whl 3. 下载Torch-1.11.0-cp37-cp37m-linux_x86_64.whlaarch64架构wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.11.0/torch_1.11.0-cp37-cp37m-linux_x86_64.whl 4. 下载Torch-1.11.0-cp37-cp37m-linux_aarch64.whl架构wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.11.0/torch_1.11.0-cp37-cp37m-linux_aarch64.whl 5. 安装 torch_1.11.0-cp37-cp37m-linux_x86_64.whlaarch64架构pip install torch_1.11.0-cp37-cp37m-linux_x86_64.whlaarch64 6. 安装 torch_1.11.0-cp37-cp37m-linux_aarch64.whl架构pip install torch_1.11.0-cp37-cp37m-linux_aarch64.whl **验证PyTorch是否安装成功** 1. 运行以下代码:python -c "import torch;import torch_npu; a = torch.ones(3, 4).npu(); print(a + a);" 2. 如果输出包含以下关键信息,说明PyTorch已安装成功: ``` [2, 2, 2, 2], [2, 2, 2, 2], [2, 2, 2, 2] ``` **其他参考** * 昇腾文档中心:[1] * 昇腾社区在线课程:[2] * 昇腾论坛:[3]

正文

摘要:在昇腾平台上运行PyTorch业务时,需要搭建异构计算架构CANN软件开发环境,并安装PyTorch 框架,从而实现训练脚本的迁移、开发和调试。

本文分享自华为云社区《手把手教你在昇腾平台上搭建PyTorch训练环境》,作者:昇腾CANN。

PyTorch是业界流行的深度学习框架,用于开发深度学习训练脚本,默认运行在CPU/GPU上。在昇腾AI处理器上运行PyTorch业务时,需要搭建异构计算架构CANN(Compute Architecture for Neural Networks)软件开发环境,并安装PyTorch 框架,从而实现训练脚本的迁移、开发和调试。

下面带大家了解如何在昇腾平台上快速安装驱动固件、CANN软件及PyTorch框架。

环境检查

在昇腾平台上安装驱动和固件前,首先需要检查安装环境的NPU是否正常在位,并确认操作系统版本与内核版本是否满足对应的版本配套要求。

以Atlas 800 训练服务器(型号:9010)(昇腾AI处理器型号Ascend 910)为例,检查NPU是否正常在位可执行lspci | grep d801命令,如果服务器上有 N路NPU,回显N行含“d801”字段,则表示NPU正常在位。

安装驱动和固件

1.创建驱动运行用户HwHiAiUser。

groupadd -g 1000 HwHiAiUser 
useradd -g HwHiAiUser -u 1000 -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash

2.安装驱动和固件。

在昇腾社区的“固件与驱动”下载页面下载配套产品的固件驱动软件,并上传到服务器任意目录,然后参考如下命令进行固件驱动软件包的安装,需要注意,需要以root用户进行安装。

a.为软件包增加可执行权限。

chmod +x Ascend-hdk-910-npu-driver_23.0.rc1_linux-x86-64.run
chmod +x Ascend-hdk-910-npu-firmware_6.3.0.1.241.run

b.安装驱动。

./Ascend-hdk-910-npu-driver_23.0.rc1_linux-x86-64.run --full --install-for-all

默认安装路径为“/usr/local/Ascend”,出现类似如下回显信息,说明安装成功。

Driver package installed successfully!复制

您还可以通过执行npu-smi info命令查看,出现类似如下信息,说明驱动加载成功。

c.安装固件。

./Ascend-hdk-910-npu-firmware_6.3.0.1.241.run --full

出现类型如下回显信息,说明安装成功。

Firmware package installed successfully! Reboot now or after driver installation for the installation/upgrade to take effect

3.驱动固件安装完成后,重启系统。

reboot

安装CANN软件依赖

CANN软件安装过程需要下载相关依赖,请确保安装环境能够连接网络,并已配置软件源,以下步骤以root用户操作为例。

1. 安装第三方依赖

Ubuntu系统(Debian、UOS20、Linux等系统操作一致):

apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3

openEuler系统(EulerOS、CentOS、BCLinux等系统操作一致):

yum install -y gcc gcc-c++ make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel gcc-gfortran

2. 安装Python及其依赖

以安装Python 3.7.5为例。

1)通过wget命令下载python3.7.5源码包。

wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz

2)解压缩源码包

tar -zxvf Python-3.7.5.tgz

3)源码编译安装Python。

​cd Python-3.7.5
./configure --prefix=/usr/local/python3.7.5 --enable-loadable-sqlite-extensions --enable-shared
make
make install

以--prefix=/usr/local/python3.7.5路径为例进行说明。执行配置、编译和安装命令后,安装包在/usr/local/python3.7.5路径。

4)设置python3.7.5环境变量。

#用于设置python3.7.5库文件路径
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
#如果用户环境存在多个python3版本,则指定使用python3.7.5版本
export PATH=/usr/local/python3.7.5/bin:$PATH

5)检查是否安装成功。

​python3 --version
pip3 --version

返回相关版本信息,则说明安装成功。

6)安装pip依赖。

pip3 install attrs numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py

安装CANN开发套件包

1. 从昇腾社区“CANN”产品页,根据操作系统架构下载CANN开发套件包。

例如“Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run”,并将其上传到安装环境任意目录。

2. 安装CANN开发套件包。

# 添加可执行权限
chmod +x Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run
# 校验软件包的一致性和完整性
./Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run --check
# 执行安装命令
./Ascend-cann-toolkit_6.3.RC1_linux-x86_64.run --install --install-for-all

安装完成后,若显示如下信息,则说明软件安装成功:

[INFO] xxx install success

xxx表示安装的实际软件包名。

安装PyTorch

CANN软件包安装完成后,就可以进行PyTorch的安装了。开发者可以选择PyTorch 1.8.1或PyTorch 1.11.0版本,PyTorch安装成功后再安装APEX混合精度模块。在安装Pytorch前,需要先安装以下依赖。

pip3 install wheel
pip3 install typing_extensions

安装PyTorch 1.8.1

1)安装官方torch包。

x86_64架构

wget https://download.pytorch.org/whl/cpu/torch-1.8.1%2Bcpu-cp37-cp37m-linux_x86_64.whl
pip3 install torch-1.8.1+cpu-cp37-cp37m-linux_x86_64.whl

aarch64架构

wget https://repo.huaweicloud.com/kunpeng/archive/Ascend/PyTorch/torch-1.8.1-cp37-cp37m-linux_aarch64.whl
pip3 install torch-1.8.1-cp37-cp37m-linux_aarch64.whl

2)安装昇腾提供的PyTorch适配插件torch_npu。

x86_64架构

wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.8.1/torch_npu-1.8.1.post1-cp37-cp37m-linux_ x86_64.whl
pip3 install torch_npu-1.8.1.post1-cp37-cp37m-linux_ x86_64.whl

aarch64架构

​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
pip3 install torch_npu-1.8.1.post1-cp37-cp37m-linux_aarch64.whl

此处以5.0.rc1版本为例,实际请选择CANN配套的PyTorch插件版本进行安装。

3)安装对应框架版本的torchvision。

pip3 install torchvision==0.9.1

4)验证是否安装成功。

python -c "import torch;import torch_npu; a = torch.ones(3, 4).npu(); print(a + a);"

如果输出包含如下关键信息则说明PyTorch安装成功。

[[2., 2., 2., 2.],
  [2., 2., 2., 2.],
  [2., 2., 2., 2.]]

安装PyTorch 1.11.0

1)安装官方torch包。

x86_64架构

wget https://download.pytorch.org/whl/cpu/torch-1.11.0%2Bcpu-cp37-cp37m-linux_x86_64.whl
pip3 install torch-1.11.0+cpu-cp37-cp37m-linux_x86_64.whl

aarch64架构

wget https://repo.huaweicloud.com/kunpeng/archive/Ascend/PyTorch/torch-1.11.0-cp37-cp37m-linux_aarch64.whl
pip3 install torch-1.11.0-cp37-cp37m-linux_aarch64.whl

2)安装昇腾提供的PyTorch适配插件torch_npu。

x86_64架构

wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.11.0/torch_npu-1.11.0-cp37-cp37m-linux_ x86_64.whl
pip3 install torch_npu-1.11.0-cp37-cp37m-linux_ x86_64.whl

aarch64架构

wget https://gitee.com/ascend/pytorch/releases/download/v5.0.rc1-pytorch1.11.0/torch_npu-1.11.0-cp37-cp37m-linux_aarch64.whl
pip3 install torch_npu-1.11.0-cp37-cp37m-linux_aarch64.whl

3)安装对应框架版本的torchvision。

pip3 install torchvision==0.12.0

4)验证PyTorch是否安装成功。

python -c "import torch;import torch_npu; a = torch.ones(3, 4).npu(); print(a + a);"

如果输出包含如下关键信息则说明PyTorch安装成功。

[[2., 2., 2., 2.],
  [2., 2., 2., 2.],
  [2., 2., 2., 2.]]

安装APEX混合精度模块

APEX混合精度模块是一个集优化性能、精度收敛于一身的综合优化库,可以提供不同场景下的混合精度训练支持。

1. 获取昇腾适配的APEX源码以及原生APEX代码。

# 获取昇腾适配的APEX源码
git clone -b master https://gitee.com/ascend/apex.git
# 在apex目录下获取原生APEX代码
cd apex
git clone https://github.com/NVIDIA/apex.git

2. 切换到原生APEX代码对应分支。

cd apex
git checkout 4ef930c1c884fdca5f472ab2ce7cb9b505d26c1a
cd ..

3. 在昇腾适配APEX源码目录的scripts路径下生成昇腾适配全量代码。

cd scripts
bash gen.sh

4. 编译生成昇腾适配的APEX二进制安装包。

cd ../apex
python3 setup.py --cpp_ext --npu_float_status bdist_wheel

5. 安装APEX。

86_64架构

cd dist
pip3 install apex-0.1_ascend-cp37-cp37m-linux_ x86_64.whl

aarch64架构

cd dist
pip3 install apex-0.1_ascend-cp37-cp37m-linux_aarch64.whl

到此,PyTorch训练环境就搭建完毕了,开发者可以将PyTorch网络脚本迁移到昇腾平台执行训练,使用昇腾平台的强大算力。

关于更多文档介绍,可以在昇腾文档中心[1]查看,您也可在“昇腾社区在线课程[2]”板块学习视频课程,学习过程中的任何疑问,都可以在“昇腾论坛[3]”互动交流!

相关参考

[1]昇腾文档中心

[2]昇腾社区在线课程

[3]昇腾论坛

 

点击关注,第一时间了解华为云新鲜技术~

与手把手教你在昇腾平台上搭建PyTorch训练环境相似的内容:

手把手教你在昇腾平台上搭建PyTorch训练环境

摘要:在昇腾平台上运行PyTorch业务时,需要搭建异构计算架构CANN软件开发环境,并安装PyTorch 框架,从而实现训练脚本的迁移、开发和调试。 本文分享自华为云社区《手把手教你在昇腾平台上搭建PyTorch训练环境》,作者:昇腾CANN。 PyTorch是业界流行的深度学习框架,用于开发深度

[转帖]手把手教你在QEMU上运行RISC-V Linux

https://kernel.0voice.com/forum.php?mod=viewthread&tid=3080 嵌入式Linux内核 发布于 2023-3-15 14:44:37 阅读 46只看楼主 今天教大家在QEMU模拟器上运行一个RISC-V Linux 一个RISC-V Linux包

看看Angular有啥新玩法!手把手教你在Angular15中集成Excel报表插件

> 摘要:本文由葡萄城技术团队于博客园原创并首发。葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 # Angular15新特性 Angular框架(以下简称“Angular”)作为一款由谷歌开发的Web应用程序框架,其强大的依赖注入系统、可重复使用的模块化开发理念和响应式编程模式等特

手把手教你如何在报表中查询数据

每周一个报表小技巧:如何在报表中引入数据筛选功能 >摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:[葡萄城官网](https://www.grapecity.com.cn/),葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 # 前言篇 在当今信息爆炸的时代,面对海量的

手把手教你从安装CentOS7.4镜像开始,搭建IoT视频监控系统

摘要:在CentOS7.4服务器版本的环境下安装nginx服务器、配置文件服务器、流媒体服务器。 本文分享自华为云社区《华为云ECS服务器安装CentOS7.4镜像,部署GINX服务器、搭建物联网视频监控系统》,作者:DS小龙哥。 在CentOS7.4服务器版本的环境下安装nginx服务器、配置文件

手把手教你解决spring boot导入swagger2版本冲突问题,刘老师教编程

手把手教你解决spring boot导入swagger2版本冲突问题 本文仅为个人理解,欢迎大家批评指错 首先Spring Boot 3 和 Swagger 2 不兼容。在 Spring Boot 3 中,应该使用 Springdoc 或其他与 Spring Boot 3 兼容的 API 文档工具来

手把手教你搭建Docker私有仓库Harbor

1、什么是Docker私有仓库 Docker私有仓库是用于存储和管理Docker镜像的私有存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部署在本地云环境中,用于组织内部

netty系列之:来,手把手教你使用netty搭建一个DNS tcp服务器

简介 在前面的文章中,我们提到了使用netty构建tcp和udp的客户端向已经公布的DNS服务器进行域名请求服务。基本的流程是借助于netty本身的NIO通道,将要查询的信息封装成为DNSMessage,通过netty搭建的channel发送到服务器端,然后从服务器端接受返回数据,将其编码为DNSR

从热爱到深耕,全国Top10开源软件出品人手把手教你如何做开源

摘要:DTT直播邀请到管雷鸣与广大开发者分享“如何在开源领域找到适合自己的路”。 “想象一下,你写的代码被越来越多的人使用,并极大地帮助他们提高了开发效率和稳定性。”这是不是一件很酷的事?而这正是开源的魅力… 开源作为一种推动软件开发技术创新的新模式,广受开发者的喜爱。作为拥有40余个开源项目,全国

线上FullGC问题排查实践——手把手教你排查线上问题

作者:京东科技 韩国凯 一、问题发现与排查 1.1 找到问题原因 问题起因是我们收到了jdos的容器CPU告警,CPU使用率已经达到104% 观察该机器日志发现,此时有很多线程在执行跑批任务。正常来说,跑批任务是低CPU高内存型,所以此时考虑是FullGC引起的大量CPU占用(之前有类似情况,告知用