昇腾aarch64服务器编译安装PyTorch

一、安装gcc编译器

首先测试下机器有没有gcc,输入gcc -v,如果出现以下提示,说明有gcc,该版本为10.3.1,就不用再安装了,但如果低于10版本则必须升级gcc版本。到#三。 这里可以参考这两篇博客安装好相应环境: zhuanlan.zhihu.com/p/659247505... blog.csdn.net/qq_36393978...

安装gcc的时间极其漫长,make的时候一般要至少4个小时,我实测为6小时,所以得提前做好准备。

二、安装CMake

在编译安装Pytorch之前,需要要有CMake编译构建工具。

CMake是一个开源的跨平台构建工具,用于管理软件构建过程中的配置、编译和安装。它提供了一个简洁的跨平台语言(CMakeLists.txt)来描述构建过程的规则,并通过生成与目标开发环境兼容的构建文件(如Makefile 或 Visual Studio 解决方案)来完成实际的构建过程。

首先进入CMake官网:cmake.org/download/,找... 这里选择了aarch64的3.27.9安装包,并上传到服务器进行解压:

bash 复制代码
tar -zxvf cmake-3.27.9-linux-aarch64.tar.gz

解压之后,将解压后的目录改名为CMake方便编写环境变量。

最后一步,打开环境变量文件,如vim ~/.bashrc,在环境变量的最后加入一行即可:

bash 复制代码
export PATH=你的路径/cmake/bin:$PATH

然后输入cmake --version,如果出现版本号说明CMake安装成功!

三、安装NCCL

这里完全参考这篇博客:blog.csdn.net/Scenery0519...

其最后一步的环境变量配置写在~/.bashrc里面就行。

四、编译安装Pytorch

4.1、前提准备

在正式编译安装Pytorch前,你要确认已经弄好了以下配置:

  1. CUDA驱动和CUDA:使用nvidia-smi和nvcc -V均有值,并且已经安装并配置了CUDNN;

2.具备10版本以上的gcc编译环境:使用gcc -v查看

3.安装了Anaconda或者Miniconda:输入conda env list可以看到已有的虚拟环境;

4.安装好了cmake,即输入cmake --version可以看到cmake的版本号

4.2、下载pytorch源码

源码编译安装pytorch前,需要下载完整的pytorch源码:https://github.com/pytorch/pytorch/tree/v1.10.2-rc1

首先使用git clone --recursive github.com/pytorch/pyt...

bash 复制代码
# git 代理设置,前提是你有代理
# git config --global http.proxy "localhost:端口号"
# git config --global https.proxy "localhost:端口号"
# 代理设置好,下载完后,就可以取消了,否则可能影响你其他操作
# 取消代理 
# git config --global --unset http.proxy 
# git config --global --unset https.proxy

如果没有代理,可以通过以下方式进行下载:

bash 复制代码
# 如果网络不行可以试着通过镜像地址 或 gitee 克隆
# 如 git clone --recursive https://hub.yzuu.cf/pytorch/pytorch
# 如 git clone --recursive https://gitee.com/ascend/pytorch.git

在下载好pytorch源码后,非常重要的一步就是必须递归下载其中的链接包,这里使用git submodule递归下载:

bash 复制代码
git submodule sync
git submodule update --init --recursive

安装好后,你的pytorch包一般在2.5GB以上,如果文件大小过小,说明你有些递归的包没下载完整。

4.3、配置环境变量

使用vim ~/.bashrc或者使用mobaXtem的文件树方式打开环境变量文件,里面的内容配置如下:

  • export USE_CUDA=1:用于设置一个名为 USE_CUDA 的环境变量,并将其值设置为 1。可能用于告知后续的脚本或程序,在构建过程中需要使用 CUDA 进行加速或其他相关操作。
  • export USE_SYSTEM_NCCL=ON:设置一个环境变量 USE_SYSTEM_NCCL 的值为 ON,表明使用系统中已安装的 NCCL 库。
  • CUDA 相关的环境变量:设置 CUDA 安装路径、相关 bin 和 lib 路径,同时还指定了 CMake 所使用的 CUDA 编译器和 CUDNN 库的路径。
  • CMAKE相关的环境变量:添加了 CMake 可执行文件的路径到 PATH 环境变量中、设置 CMake 的前缀路径,用于指定额外的 CMake 模块和包的位置。
  • export MAX_JOBS=4:设置一个名为 MAX_JOBS 的环境变量,并将其值设置为 4,可能用于指定并行编译任务的最大数量。这个按机器进行设置,太大了容易崩溃。
  • GCC相关的环境变量:包括gmp、mpc、mpfr、gcc以在运行时正确链接这些库。

4.4、Pytorch编译安装

cd进入Pytorch目录,采用直接安装的方式进行安装:

bash 复制代码
# 直接安装
python setup.py install --cmake
# 或者 编译成 whl安装文件,编译成功后在dist文件下面,可通过 pip install torch-xxxx.whl 安装
python setup.py bdist_wheel --cmake

安装过程大概在40分钟到2小时不等:

4.5、测试Pytorch

安装完成后,激活虚拟环境,然后输入python,然后输入一下代码:

python 复制代码
import torch
print(torch.__version__)
print(torch.cuda.is_available())

如果显示True即大功告成!

如果报错:NameError: name 'sympy' is not defined',则需要在conda里再安装sympy模块,如果还是报错,需要安装mpmath,反正就import torch报啥错就补上相关的环境就好。

最后可以再运行以下代码查看显卡数量和显卡型号

python 复制代码
print(torch.cuda.device_count())
print(torch.cuda.get_device_name(0))

就能看到torch成功调用到了A100啦!

相关推荐
CT随几秒前
Linux
linux·运维·服务器
誓约酱4 分钟前
Linux 下进程基本概念与状态
linux·运维·服务器·开发语言·c++
路溪非溪5 分钟前
关于Linux中线程优先级的问题探讨
linux
Bug.ink5 分钟前
Linux——1_系统的延迟任务及定时任务
linux·运维·服务器
LaoZhangGong1237 分钟前
Linux第95步_Linux内核中的INPUT子系统
linux·运维·数据库·经验分享·stm32·input·stm32mp127
mr. zing8 分钟前
Red Hat Enterprise Linux 9.5 Download URL
linux·运维·服务器
guoguoqiang.8 分钟前
我与Linux的爱恋:进程间通信 匿名管道以及命名管道的实现与应用
linux·运维·服务器
土豆炒马铃薯。10 分钟前
【深度学习】服务器常见命令
linux·服务器
航月12 分钟前
linux基本命令2
linux·运维·chrome
Peter_chq25 分钟前
【计算机网络】多路转接之poll
linux·c语言·开发语言·网络·c++·后端·poll