手动编译Pytorch记录

设备:Altas 200I DK A2开发套件
环境:官方系统镜像(Ubuntu20.04.2 LTS,GNU/Linux 5.10.0+ aarch64)

由于报错:
ModuleNotFoundError: No module named 'caffe2'
查询知Caffe2模块包含在pytorch内
pip install pytroch=1.13.0
安装后(1.13.0为原装版本)发现仍然报错
UserWarning: Caffe2 support is not fully enabled in this PyTorch build. Please enable Caffe2 by building PyTorch from source with `BUILD_CAFFE2=1` flag.
不得不采用源码编译方式进行pytorch安装。

代码编译

基本如Pytorch的github仓库README文件

准备文件

克隆仓库(1.13.0分支)

git clone -b release/1.13 https://github.com/pytorch/pytorch
cd pytorch
git submodule sync
git submodule update --init --recursive

中间遇到网络问题:
error: RPC failed; curl 56 GnuTLS recv error (-24): Decryption has failed.
以及
error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054 fatal: expected flush after ref listing
解决方法一:

sudo apt-get install libcurl4-openssl-dev

解决方法二:(github地址忽略加速代理前缀)

git config --global http.sslVerify "false"
// 提高缓存
git config --global http.postBuffer 1048576000

git clone -b release/1.13 --depth 1  https://github.com/pytorch/pytorch pytorch_v1.13

采用方法二后解决,之后逐层改.gitmodules文件逐层update下载完所有内容。

git submodule init
git submodule sync
git submodule update

依赖准备

conda install cmake ninja
pip install -r requirements.txt
conda install mkl mkl-include
# CUDA only: Add LAPACK support for the GPU if needed
conda install -c pytorch magma-cuda110  # or the magma-cuda* that matches your CUDA version from https://anaconda.org/pytorch/repo

//  (optional) If using torch.compile with inductor/triton, install the matching version of triton
// Run from the pytorch directory after cloning
make triton

老实说我忘记按mkl了,苦涩
后来安mkl的时候无论清华源(记得换源后应conda clean -i)还是conda-forge都安不上,遂本地安装:到官网下载文件后

 conda install --use-local  package_name.tar.bz2

正式编译

由于Altas 200I DK A2开发套件的性能受限,先得建立交换分区,由于空间不足,这里只建立了12G的交换空间。
不知为何我输入BULID_CAFFE2=1 python setup.py developBUILD_CAFFE2的符号依旧是0,输入到系统变量:

export BUILD_CAFFE2=1

正式编译:

export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
BULID_CAFFE2=1 python setup.py develop

重启编译

由于caffe2编译的时间实在太长,跑了两次都有6小时以上,尝试中断第二天继续编译,后来发现估计是因为环境配置未还原带来了一些问题,以下为总结的重新编译需要执行的命令,但是编写时还未编译成功,有效性不明。

打开虚拟环境(root登陆开发套件)

source /env_name/bin/activate //env_name为设定的环境名称

挂载交换空间

sudo swapon /home/swapfile

配置环境变量

export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
export BUILD_CAFFE2=1

重启编译

cd /home/pytorch_v1.13/
BULID_CAFFE2=1 python setup.py develop

结果

总之import caffe2成功,算是编译成功了吧
12G交换空间,跑了至少有24h以上,大家有其他选项建议不要头铁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值