tx2安裝 pytorch辛酸史

tx2 jetpack4 cuda10 沒有mkl python2

開啓tx2最大功率和小風扇

sudo nvpmodel -m 0         # 切換工作模式到最大
cd  /usr/bin/
sudo ./jetson_clocks       # 強制開啓風扇最大轉速

0x00 驗證 torch

import torch
print(torch.__version__)
print('CUDA available: ' + str(torch.cuda.is_available()))
a = torch.cuda.FloatTensor(2).zero_()
print('Tensor a = ' + str(a))
b = torch.randn(2).cuda()
print('Tensor b = ' + str(b))
c = a + b
print('Tensor c = ' + str(c))

0x01 .whl 輪子安裝

參考: PyTorch for Jetson Nano
https://devtalk.nvidia.com/default/topic/1049071/jetson-nano/pytorch-for-jetson-nano/

環境: PyTorch 1.1, Python 2.7 and Python 3.6 , Jetson TX2, JetPack 4.2.

Python 2.7
wget https://nvidia.box.com/shared/static/m6vy0c7rs8t1alrt9dqf7yt1z587d1jk.whl -O torch-1.1.0a0+b457266-cp27-cp27mu-linux_aarch64.whl
pip install torch-1.1.0a0+b457266-cp27-cp27mu-linux_aarch64.whl
Python 3.6
wget https://nvidia.box.com/shared/static/veo87trfaawj5pfwuqvhl6mzc5b55fbj.whl -O torch-1.1.0a0+b457266-cp36-cp36m-linux_aarch64.whl
pip3 install numpy torch-1.1.0a0+b457266-cp36-cp36m-linux_aarch64.whl
# 安裝torchvision,原創找不到了,吊大的說一下
sudo pip install  --no-deps torchvision==0.2.0

然後用torch執行項目測試遇到這麼個報錯:

RuntimeError: cuda runtime error (7) : too many resources requested for launch at /home/nvidia/Downloads/pytorch/aten/src/THCUNN/generic/SpatialUpSamplingBilinear.cu:66

解決:

  • TX2 cuda runtime error (7) : too many resources requested for launch ,運行錯誤解決方法 https://blog.csdn.net/xxradon/article/details/87922618

    解決方法是將pytorch源碼中的 CUDA_NUM_THREADS =256
    改了兩個文件:

    • pytorch/aten/src/THCUNN/common.h 12行
    • pytorch/aten/src/ATen/cuda/detail/KernelUtils.h 15行

改用源碼安裝,擼起袖子開始幹/v/

0x02 源碼安裝

參考:Jetson TX2安裝pytorch(from source) https://www.jianshu.com/p/9e9c74834283

git clone 速度慢, 網上找到方法說是dns污染,怒改dns爲114.114.114.114,或者8.8.8.8,果然單車變摩托
/etc/hosts,我也改了,增加如下:
151.101.72.249 github.global.ssl.fastly.net
192.30.253.112 github.com

1.安裝依賴

sudo apt install libopenblas-dev libatlas-dev liblapack-dev 
# 遇到缺什麼依賴就裝什麼依賴,下面這些我就感覺cmake有用,但是還是全裝上吧
sudo pip install scipy pyyaml scikit-build cffi
sudo apt-get -y install cmake

2. 添加cudnn

sudo gedit ~/.bashrc

# add end
export CUDNN_LIB_DIR=/usr/lib/aarch64-linux-gnu
export CUDNN_INCLUDE_DIR=/usr/include
export CUDA_ROOT="/usr/local/cuda-10.0/"
export LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64/:$LD_LIBRARY_PATH"

# 爲了保險起見,我在/etc/profile 也增加了上面四行

3.下載pytorch碼源包

git clone http://github.com/pytorch/pytorch
cd pytorch
sudo pip install -U setuptools
sudo pip install -r requirements.txt
git checkout tags/v1.1.0 -b build
git submodule update --init --recursive

這個時候會遇到最後一條命令怎麼等待進度條都不會增加,令人捉雞。更改dns。速度上竄了一大截,恢復正常網速。
最後一條一定要執行結束,不然安裝的時候會報錯。

4.編譯

ps:編譯之前先修改兩個文件的1024爲256

 sudo python setup.py build

這一步報錯,

 Failed to run 'bash ../tools/build_pytorch_libs.sh --use-cuda --use-nnpack --use-mkldnn --use-qnnpack caffe2'

參考:ubuntu 16.04 Caffe2 / PyTorch - CMake Error at third_party/protobuf/cmake/cmake_install.cmake:64 https://blog.csdn.net/chengyq116/article/details/83817726

解決:

sudo python setup.py install
# 執行的時候報錯,發現是`git submodule update --init --recursive`中的少了某個
# 文件,上github下載相應的文件,編譯成功

5. 驗證安裝

python -c "import torch"

# 報錯如下
ImportError: No module named _C 

參考:PyTorch源碼安裝小記 https://blog.csdn.net/Draco_mystack/article/details/71191924

查了下pytorch repo的issues,果然很多人遇到:https://github.com/pytorch/pytorch/issues/7
作者淡定說,不要在pytorch項目根目錄下導入torch……
然後就可以了。

6. 瀕臨崩潰

執行項目代碼出現同樣錯誤:

RuntimeError: cuda runtime error (7) : too many resources requested for launch at 

相當於之前的源碼(改1024爲256)安裝解決失敗,重新google,解決如下:

RuntimeError: cuda runtime error (7) : too many resources requested for launch at #8103 https://github.com/pytorch/pytorch/issues/8103

# 更改"aten/src/THCUNN/generic/SpatialUpSamplingBilinear.cu":

# Around line 62:
# 註釋 THCState_getCurrentDeviceProperties(state)->maxThraedsPerBlock;
# 改爲
const int num_threads = 512;

# Around line 97
# 註釋 THCState_getCurrentDeviceProperties(state)->maxThraedsPerBlock;
# 改爲
const int num_threads = 512;

執行項目代碼,遇到其他錯誤,先記錄,以待修復,這個就好象是項目裏面的代碼問題了:

UnboundLocalError: local variable 'pred3' referenced before assignment
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章