原始碼編譯pytorch 1 0 遇到的問題

2021-09-27 09:18:28 字數 2161 閱讀 9154

一、問題1

pytorch-stable/third_party/ideep/mkl-dnn/src/cpu/ref_rnn.cpp: 在成員函式『void 

mkldnn::impl::cpu::_ref_rnn_common_t::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

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

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成功。

pytorch原始碼編譯遇到的問題

1.編譯到大概33 處,出現failed to run bash tools build pytorch libs.sh use cuda use nnpack nccl caffe2 libshm gloo c10d thd 解決 最新的pytorch原始碼編譯要求cudnn 5,公升級cudnn...

Qt Windows 10 原始碼編譯

一般在windows 編譯qt 有兩種方案 1.mingw32 g 2.windows 自帶的編譯器 cl.exe 採用mingw 32 和 g 編譯.2.配置原始碼 2.1.進入原始碼目錄配置 錯誤原因請檢視 direct.h 在某些機器中posix 不支援.所以採用第二種.windwos 編譯器...

PyTorch 1 0宣布用於研究和生產AI專案

在最近的一篇博文中,臉書的副總裁bill jia宣布了pytorch的新版本1.0的發布。pytorch是用於python的開源ai框架軟體包,具有tensor計算,包括強大的gpu加速和建立於基於磁帶autodiff系統之上的深度神經網路。該新版本的重要性在於,減少了從研究過程到生產過程中移動ai...