Jetson TX2 安装 cuda9.0 及 cudnn7 超详细(真实亲测)

Jetson TX2 安装 cuda9.0 及 cudnn7 超详细(真实亲测)

划重点:本文主要针对于Jetson TX1/2,如果想在 pc端 安装 cuda 及 cudnn,那这篇没有任何帮助!
最近再给Jetson TX2开发板上安装cuda和对应的cudnn,遇到了很多问题,也搜索了很多技术博客,发现在给 Jetson TX2 安装cudnn的时候都存在致命的错误,现在将出坑方法记录下来。


本文是针对下面的平台的:
平台描述:
Jetson TX2平台版本: Jetpack 3.3, TensorRT4.0.2, python2.7, python3.5
系统内核: tegra-ubuntu 4.4.38-tegra aarch64, ubuntu 16.04
Linux系统版本: Ubuntu16.04,cmake 3.15.6 (TX2刷机完原始的cmake是3.5.1版本,由于后面自己捣鼓的时候说最好安装3.9.0以上版本cmake,所以我就直接升级到新版本了)


重点一:Jetson TX2上安装的cudnn,一定要是arm版本的(即aarch64)

之前在搜所相关安装方法的时候,很多技术博客中给出的cudnn下载链接下载到的cudnn是基于x86/64的。但是,Jetson TX2是ARM内核的, 基于X86_64的cudnn在使用的时候会报错的(报错信息见下 error),所以在Jetson TX2上安装的cudnn,一定要是arm版本的(aarch64)。

重点二:arm版本的cuda及cudnn从何下载?

这是重点所在。
从 nvidia 官网 cudnn下载链接中得到其实全部都不是基于ARM的。如下图所见:
在这里插入图片描述
那么,如何得到ARM版本的cuda及cudnn呢?答案在这个链接里面:

https://devtalk.nvidia.com/default/topic/1029454/cudnn-6-for-arm64/?offset=4

也就是在运行 Jetpack 安装包之后,从下载得到的文件夹( jetpack_downloads/ )中得到
如果哪位大佬有更好的办法,请指出!



一、获得 cuda 及 cudnn

首先,找一台安装有 ubuntu16 或者 ubuntu14的电脑(我的ubuntu18不能用),从官网下载jetpack安装包或者从: https://pan.baidu.com/s/1c4dSxFXwLhmA2ASYHKkAqw 提取码: c9vk。
本文就以 Jetson3.3 版本 为例。
进入到此文件的下载目录,给文献权限:

sudo chmod +x JetPack-L4T-3.3-linux-x64_b39.run

然后开始安装:

./JetPack-L4T-3.3-linux-x64_b39.run
注意:在安装的时候不要使用 sudo 命令,直接运行即可

然后默认操作即可,具体操作可以参考这篇:Jetson TX2超详细刷机指南
直到出现下图,表示已经下载并且安装好了,后续的刷机过程也就不用在继续了,直接关闭就行:
在这里插入图片描述

然后找到刚才安装过程中选择的下载目录(如下图)
在这里插入图片描述

在 jetpack_downloads/ 文件夹下面,就得到乐了我们需要的 cuda9.0 和 cudnn7.1.5的安装包

下面的过程将在 Jetson TX2上进行


二、安装 cuda 及 cudnn

2.1 安装cuda

2.1.1 首先,在主目录下创建一个叫 cuda-l4t 的文件夹

cd ~
mkdir cuda-l4t

2.1.2 拷贝 cuda 安装脚本
在 jetpack 的安装目录下的 _install/目录下有一个叫 cuda-l4t.sh 的脚本,将其拷贝到 主目录下的 cuda-l4t 文件夹下
在这里插入图片描述

注意:建议在 jetpack 安装目录下直接搜索cuda-l4t.sh 会更加直接

2.1.3 拷贝 cuda、cudnn安装包
所有在JetPack中下载的安装包均存在JetPack/jetpack_download中,将
cuda9.0安装包 (cuda-repo-l4t-9-0-local_9.0.252-1_arm64.deb)
cudnn安装包 (有3个,libcudnn7_7.1.5.14-1+cuda9.0_arm64.deb,libcudnn7-dev_7.1.5.14-1+cuda9.0_arm64.deb,libcudnn7-doc_7.1.5.14-1+cuda9.0_arm64.deb)
拷贝到 主目录下的 cuda-l4t 文件夹下
在这里插入图片描述2.1.4 开始安装cuda

cd ~/cuda-l4t
bash cuda-l4t.sh cuda-repo-l4t-9-0-local_9.0.252-1_arm64.deb 9.0 9-0

等待安装完成即可

2.2 安装cudnn

由于3个与cudnn相关的文件:
libcudnn7_7.1.5.14-1+cuda9.0_arm64.deb
libcudnn7-dev_7.1.5.14-1+cuda9.0_arm64.deb
libcudnn7-doc_7.1.5.14-1+cuda9.0_arm64.deb
由于都是 .deb 文件,因此直接使用 下面的命令安装即可:

sudo dpkg -i libcudnn7_7.1.5.14-1+cuda9.0_arm64.deb
sudo dpkg -i libcudnn7-dev_7.1.5.14-1+cuda9.0_arm64.deb
sudo dpkg -i libcudnn7-doc_7.1.5.14-1+cuda9.0_arm64.deb

安装完成后,其实是直接安装到了默认安装路径usr/include和usr/lib下的,因此需要将其拷贝到cuda安装路径下:

sudo cp /usr/include/cudnn.h /usr/local/cuda/include/

sudo cp /usr/lib/aarch64-linux-gnu/libcudnn* /usr/local/cuda/lib64/

然后执行下面命令,用重新生成cudnn库的软连接

cd /usr/local/cuda/lib64

chmod +r libcudnn*

sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.1.1 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so

sudo ldconfig

到此,cuda 及 cudnn 安装就完成了


三、验证

3.1 查看 cuda 版本

在终端中输入:

$ nvcc -V

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Sun_Nov_19_03:16:56_CST_2017
Cuda compilation tools, release 9.0, V9.0.252

可知,当前平台安装的是 CUDA 9.0.252版本

3.2 查看 cudnn 版本

在终端输入:

$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
得到
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 1
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION    (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"

可知,当前的 cudnn 版本是 7.1.5


附:error

如果在Jetson TX2上安装了 x86_64 版本的cudnn,那么在使用cudnn的时候就会报如下错:
libcudnn.so.7: error adding symbols: File in wrong format
详细报错信息如下:

[ 58%] Linking CXX shared library ../lib/libcaffe2_gpu.so
/usr/local/cuda/lib64/
collect2: error: ld returned 1 exit status
caffe2/CMakeFiles/caffe2_gpu.dir/build.make:185448: recipe for target 'lib/libcaffe2_gpu.so' failed
make[2]: *** [lib/libcaffe2_gpu.so] Error 1
CMakeFiles/Makefile2:4400: recipe for target 'caffe2/CMakeFiles/caffe2_gpu.dir/all' failed
make[1]: *** [caffe2/CMakeFiles/caffe2_gpu.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 58%] Built target python_copy_files
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Failed to run 'bash ../tools/build_pytorch_libs.sh --use-cuda --use-nnpack --use-qnnpack caffe2'

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

材料整理不易,如果你觉得对你当前问题有帮助,可以进行小额滴赞助,感谢各位支持()
在这里插入图片描述

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