安装步骤:
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