记录自己编译安装pytorch过程以及报错

我需要在nx上跑深度学习,环境是torch1.10和python3.8。在nvidia官网没有torch1.10和python3.8的轮子,所以需要自己编译安装pytorch;

首先,先准备一些依赖包

sudo apt-get update


sudo apt-get install -y python3.8-dev python3-pip libopenblas-dev libopenmpi-dev libomp-dev cmake build-essential git clang

sudo apt-get install clang # 用来编译pytorch

接着,从官网拉取pytorch源码并切换到指定版本以及同步子模块,总之就是把源码切换到指定版本并跟远程仓库保持一致;

git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
git checkout v1.10.0
git submodule sync
git submodule update --init --recursive

 然后配置编译项

export USE_CUDA=1
export USE_CUDNN=1
export USE_NCCL=1
export MAX_JOBS=$(nproc)
python3 setup.py clean
 

# 注释

export USE_CUDA=1 # cuda支持,gpu版本cuda
export USE_CUDNN=1
export USE_NCCL=1 
export MAX_JOBS=$(nproc)  # 获取cpu核心数赋值给MAX_JOBS,并行加快编译速度
python3 setup.py clean  # 清理之前编译残留 保证编译环境干净
 

 最后,编译pytorch

python3 setup.py bdist_wheel

这一步需要安装一些额外的包,解决编译出错问题;
  •  第一个就是设置好setuptools这个包的版本,不然会出错;我是编译的torch1.10,python3.8在cuda11.4的nx开发板上编译,用的版本是46.0.0
  • 第二个是安装 pyyaml 和 typing_extensions,可以直接使用pip安装

出错重新编译尝试记录;

第一次编译一夜卡在编译cuda的81%,nx直接卡死,查找原因可能是内存或者cpu负载满的问题,于是修改这句export MAX_JOBS=2重新运行。不过这次运行的是在网上下载的aarch版本的pytorch v1.10.0打包好的文件。详情看这个链接把1.11.0改成1.10.0

Pytorch 源码编译-云社区-华为云

最终我使用的是这个文件夹中dist文件夹下编译出来的whl文件安装的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值