安裝步驟:
1. 配置SSD或者SD卡啟動
詳細步驟參考:https://www.cnblogs.com/haiyang21/p/10780827.html
注意:(1)SD卡在格式化的時候可能會出現ext4格式無法格式化的情況,可以選擇只格式化Partition分區,我的情況是重新刷機后,只格式化了Partition分區,結果可行,並為驗證是哪個原因引起的。
(2)設置開機SD卡啟動,只需要修改SD卡中的/boot/extlinux/extlinux.conf文件,這樣如果出現問題,可以拔出SD卡,系統會重新從emmc啟動。
(3) SSD啟動時無法開機自動掛在,所以在配置extlinux.conf文件時,需要修改emmc卡內的文件
2. 配置swapfile
如果不配置的話會由於空間不足導致錯誤:c++: internal compiler error: Killed (program cc1plus)
git clone https://github.com/jetsonhacks/postFlashTX1.git
cd postFlashTX1\
ls
$ sudo ./createSwapfile.sh -d [directory location] -s [size in gigabytes] –a
[directory location]: 為swapfile創建的路徑
[size in gigabytes]: 為swapfile創建的大小
-a:為開機啟動
eg. sudo ./createSwapfile.sh -d /media/nvidia/JetsonUSB/ -s 8 -a
注意:我選擇的時在usb上創建swapfile,格式化的方式與步驟1相同
3. 安裝依賴庫
sudo apt install libopenblas-dev libatlas-dev liblapack-dev
sudo apt install liblapacke-dev checkinstall # For OpenCV
sudo apt-get install python3-pip
pip3 install --upgrade pip3==9.0.1
sudo apt-get install python3-dev
sudo pip3 install numpy scipy # 這個花費的時間略長,20分鍾到30分鍾左右
sudo pip3 install pyyaml
sudo pip3 install scikit-build
#sudo apt-get -y install cmake
sudo apt install libffi-dev
sudo pip3 install cffi
sudo pip3 install protobuf
注意:cmake直接安裝可能會由於版本過低導致安裝pytorch失敗,我選用的是編譯源碼方式安裝指定版本
如果已經安裝低版本,可以先卸載
sudo apt-get autoremove cmake
重新編譯安裝
wget https://cmake.org/files/v3.9/cmake-3.9.6.tar.gz
tar -zxvf cmake-3.9.6.tar.gz
cd cmake-3.9.6/
./bootstrap
make
make install
4. 配置cudnn路徑
sudo gedit ~/.bashrc
export CUDNN_LIB_DIR=/usr/lib/aarch64-linux-gnu
export CUDNN_INCLUDE_DIR=/usr/include
source ~/.bashrc
5. 下載pytorch源碼
git clone http://github.com/pytorch/pytorch
cd pytorch
sudo pip3 install -U setuptools
sudo pip3 install -r requirements.txt
git submodule update --init --recursive
6. 配置NCCL為false以免編譯過程中出現編譯錯誤
CMakeList.txt中設置NCCL=False
setup.py中添加NCCL=False
install NCCL
https://github.com/NVIDIA/nccl
https://developer.nvidia.com/nccl
7. 編譯安裝
sudo python setup.py build develop
sudo python setup.py install
8. 驗證安裝是否成功
# Verify CUDA (from python interactive terminal) import torch print(torch.cuda.is_available()) a = torch.cuda.FloatTensor(2) print(a) b = torch.randn(2).cuda() print(b) c = a + b print(c)
需要注意的是使用jetson pack3.3重新刷機,避免編譯錯誤。因為pytorch1.0需要cudnn7.0,編譯過程中
可能會遇到protobuf找不到的問題,可以執行 pip install protobuf安裝,再重新編譯即可,同時需要關閉NCCL,在CMakeList.txt中將NCCL=False,
並且在setup.py中添加 USE_NCCL=False。
參考鏈接:
https://www.ncnynl.com/archives/201705/1629.html
https://blog.csdn.net/qq_36302589/article/details/88306550
環境配置:設置swap大小,清理空間,避免編譯時出現空間不足導致編譯錯誤
https://github.com/jetsonhacks/postFlashTX1
https://blog.csdn.net/hit2015spring/article/details/62217289
