设备: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安装。
代码编译
准备文件
克隆仓库(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 develop
BUILD_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以上,大家有其他选项建议不要头铁