源码编译pytorch 1.0 遇到的问题

一、问题1

	pytorch-stable/third_party/ideep/mkl-dnn/src/cpu/ref_rnn.cpp: 在成员函数‘void 
mkldnn::impl::cpu::_ref_rnn_common_t<aprop>::pack_weights(int, int, int, int, 
int, int, int, float**, int, int*, const float*, float*, bool)’中:
	pytorch/third_party/ideep/mkl-dnn/src/cpu/ref_rnn.cpp:891:36: 错误:‘float* 
	cblas_sgemm_alloc(CBLAS_IDENTIFIER, int, int, int)’ is deprecated [-Werror=deprecated-declarations]
			weights(i, d, p) = cblas_sgemm_alloc(CblasAMatrix, m_p, n, k_p);
解决方法:
降低mkl和mkl-include的版本:将版本从2019.3或2019.4降低为2019.1,即安装的时候指定版本即可。
conda install mkl==2019.1 mkl-include==2019.1 

二、问题2

Failed to run 'bash ../tools/build_pytorch_libs.sh --use-cuda --use-fbgemm --use-nnpack 
--use-mkldnn --use-qnnpack caffe2'
解决方法:
clone 1.0版本的pytorch:
git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
git checkout v1.0.0
git submodule update --recursive
python setup.py install
注:两个问题主要应该是问题1中版本不对的原因,问题1解决了问题2编译时没有出现。

三、源码编译pytorch步骤:

1、On Linux
	export CMAKE_PREFIX_PATH="$(dirname $(which conda))/../" # [anaconda root directory]
2、Install basic dependencies 
	conda install numpy pyyaml  mkl==2019.1 mkl-include==2019.1  setuptools cmake cffi typing
	conda install -c mingfeima mkldnn	
3、Add LAPACK support for the GPU
	conda install -c pytorch magma-cuda90  # or [magma-cuda80 | magma-cuda91] depending on your cuda version
4、Install PyTorch
	git clone --recursive https://github.com/pytorch/pytorch
	cd pytorch
	git checkout v1.0.0
	git submodule update --recursive
	python setup.py install

四、编译成功后import torch可能出现错误:

	ModuleNotFoundError: No module named 'torch._C'
解决方法:
1、进入pytorch编译的conda环境的torch目录,如cd /home/eric/Disk500G/software/miniconda3
/envs/pytorch1.0_build/lib/python3.6/site-packages/torch (编译的conda环境)
2、修改_C.***.so和_dl.***.so两个so文件
	cp _C.cpython-36m-x86_64-linux-gnu.so  _C.so
	cp _dl.cpython-36m-x86_64-linux-gnu.so  _dl.so
3、退出当前目录,重新import torch成功。
发布了11 篇原创文章 · 获赞 2 · 访问量 4727
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览