ubuntu16.04安装nvidia384.111+cuda9.0+cudnn7.04+tensorflow-gpu1.7+opencv3.2

重要的事情说三遍:

安装之前,一定要先备份。这里推荐使用timeshift,简单易用。

安装之前,一定要先备份。这里推荐使用timeshift,简单易用。

安装之前,一定要先备份。这里推荐使用timeshift,简单易用。

......

注意事项:

1、cuda8.0不支持tensorflow-gpu>=1.5,目前来看cuda9.1不支持tensorflow-gpu,所以最好下载cuda9.0。

2、cuda9.0要求的最低nvidia驱动时384.81,所以要保证自己的驱动>=384.81。(不然会安装时出现各种问题)。

3、如果你的opencv3.2想用cuda加速,请不要使用cudnn7.1,下载cudnn7.0,不然即使安装上了,使用opencv时还是会有错误提示。

总结:nvidia驱动>=384.81,cuda=9.0,cudnn=7.04,opencv3.2,tensorflow-gpu=1.7

1常用命令

lspci | grep -i nvidia    # ls=list,pci代表pci总线,lspci表示查看连接到pci总线的设备,|我们称为管道符,用于将前面命令的输出作为后面命令的输入。grep用于查找文件中符合条件的字符串,-i表示忽略字符串的大小写。这条命令可以查看自己的nvidiaGPU哦
nvidia-smi -l    #安装显卡驱动后才能使用,用来查看GPU的工作情况
ll    #查看当前文件夹下所有文件的详细情况,d蓝色的表示文件夹,-白色的表示普通文件,-红色的表示压缩包,-绿色的表示可执行文件,l浅绿色的表示链接文件
dpkg -l cuda*    #查看所有用deb方式安装的前缀为cuda的包
sudo apt-get remove --purge cuda*    #移除这些包

 

 

 

安装nvidia驱动

卸载并禁用第三方驱动,请自行参考官网

首先检查自己的驱动满足要求吗,如果满足最好直接跳过本小节。

检查自己的驱动版本

nvidia-smi    #如果>=384.81,就不需要卸载重装了,可以直接跳过本小节。

 

1、卸载驱动并重启

sudo apt-get remove --purge nvidia-*    #下面两条命令可以跳过
sudo apt-get autoremove    #自动删除无用的依赖,慎用此条命令,系统可能会删除不该删除的,造成更多的错误
sudo apt-get -f install    #自动安装一些依赖,可以自行百度下作用
sudo reboot    #好像不重启也没什么问题,我的就没有重启

2、如果没有添加驱动源,先添加NVIDIA的源

sudo add-apt-repository ppa:graphics-drivers/ppa    #添加源
sudo apt-get update    #更新源,这一步是必要的

3、查看可安装的驱动版本,使用推荐的

ubuntu-drivers devices    #显示可安装的驱动,我们最好选择recommended
sudo apt-get install nvidia-XXX    #XXX表示需要安装的驱动型号
nvidia-smi	#查看是否安装成功

卸载cuda8.0

如果你没有安装过,那么就可以跳过本小节。

如何才能卸载干净cuda8.0,我折腾了很久。

如果之前使用runfile安装的,那么只需执行下面的命令即可。

cd /usr/local/cuda-8.0/bin/
sudo ./uninstall....pl

如果之前使用deb安装的,那么需要执行下面的命令

cd
dpkg -l cuda*    #查看前缀为cuda的所有安装包
sudo apt-get remove --purge cuda*    #移除

 

安装cuda9.0

 

下载地址:https://developer.nvidia.com/cuda-toolkit-archive

这一部分一定要查看官方的安装指导https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

ubuntu16.04安装nvidia384.111+cuda9.0+cudnn7.04+tensorflow-gpu1.7+opencv3.2_第1张图片

最好选择本地deb,无需联网。网上有很多推荐runfile安装的,我自己的电脑试过很多次,失败、失败、总是失败。deb(local),简单易安装。

安装方法如下:

ubuntu16.04安装nvidia384.111+cuda9.0+cudnn7.04+tensorflow-gpu1.7+opencv3.2_第2张图片

sudo dpkg -i cuda......deb    #执行完这一步,你会发现路径/var下面有个cuda-repo-9-0-local。没错你猜对了dpkg的作用就是把deb包搞到这里。
sudo apt-key add /var/cuda-repo-9-0-local/7fa...    #不妨用cd命令进入这个文件夹下面看看都有什么,哇里面竟然有7fa2af80.pub和很多的deb包。
# apt-key add的作用是什么,7fa...是一个密钥,请自行百度http://man.linuxde.net/apt-key
sudo apt-key update    #更新密钥库
sudo apt-get update    #这一步很重要
sudo apt-get install cuda-9-0    #如果你的key库中同时有cuda8-0和cuda-9-0,那么指明就比较重要了。

配置环境变量:

sudo gedit /etc/profile
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}    #我这里写的可能不太正确,请参考官网的安装手册。
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
reboot    # 这种配置环境变量的方式,重启才能永久生效。注意:官网说的直接在terminal中export是不可行的,因为关闭命令行,环境变量就没了需要重新配置。

查看cuda版本

nvcc -V

 

也可以直接下载run文件安装

https://www.cnblogs.com/arkenstone/p/6900956.html

$ sudo apt-get install openjdk-8-jdk git python-dev python3-dev python-numpy python3-numpy python-six python3-six build-essential python-pip python3-pip python-virtualenv swig python-wheel python3-wheel libcurl3-dev libcupti-dev
# 安装cuda
$ wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run
$ sudo sh cuda_8.0.61_375.26_linux.run --override --silent --toolkit # 安装的cuda在/usr/local/cuda下面
# 安装cdDNN
$ cd /usr/local/cuda # cuDNN放在这个目录下解压
$ tar -xzvf cudnn-8.0-linux-x64-v6.0.tgz
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

然后将将一下路径加入环境变量:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

即将上述代码放入~/.bashrc文件保存后source ~/.bashrc

安装cudnn

这一步比较简单,可参考官方安装指导,最后建立软链接(官方没有这一步,但我认为比较重要)。

下载cudnn7.0。https://developer.nvidia.com/rdp/cudnn-archive

ubuntu16.04安装nvidia384.111+cuda9.0+cudnn7.04+tensorflow-gpu1.7+opencv3.2_第3张图片

添加软链接

cd /usr/local/cuda/lib64
ll    #你会发现有三个绿色的文件,没错我们下一步要在他们之间建立软链接
sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.0.4 libcudnn.so.7    #下面的两步可有可无
sudo ln -s libcudnn.so.7 libcudnn.so
sudo ldconfig
ll    #现在再查看发现libcudnn.so --> libcudnn.so.7,libcudnn.so.7 --> libcudnn.so.7.0.4,而libcudnn.so.7.0.4仍为绿色文件,其他变为浅蓝色链接 
nvcc -V    #查看cuda版本,如果不行,重启试试

安装tensorflow-gpu

源码编译比较麻烦,我采用python的包管理软件pip来安装,卸载也很方便。

请详细参考官方的安装教程:https://tensorflow.google.cn/install/install_linux

Tensorflow不同版本要求与CUDA及CUDNN版本对应关系

https://blog.csdn.net/omodao1/article/details/83241074

Linux
Version               Python version     Compiler     Build tools
tensorflow-1.11.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.15.0
tensorflow-1.10.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.15.0
tensorflow-1.9.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.11.0
tensorflow-1.8.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.10.0
tensorflow-1.7.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.10.0
tensorflow-1.6.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.9.0
tensorflow-1.5.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.8.0
tensorflow-1.4.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.5.4
tensorflow-1.3.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.4.5
tensorflow-1.2.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.4.5
tensorflow-1.1.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.4.2
tensorflow-1.0.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.4.2
Version                        Python version    Compiler     Build tools     cuDNN     CUDA
tensorflow_gpu-1.11.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.15.0     7              9
tensorflow_gpu-1.10.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.15.0     7              9
tensorflow_gpu-1.9.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.11.0       7              9
tensorflow_gpu-1.8.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.10.0       7              9
tensorflow_gpu-1.7.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.9.0         7              9
tensorflow_gpu-1.6.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.9.0         7              9
tensorflow_gpu-1.5.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.8.0         7              9
tensorflow_gpu-1.4.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.5.4         6              8
tensorflow_gpu-1.3.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.4.5         6             8
tensorflow_gpu-1.2.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.4.5        5.1           8
tensorflow_gpu-1.1.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.4.2         5.1          8
tensorflow_gpu-1.0.0     2.7, 3.3-3.6     GCC 4.8     Bazel 0.4.2         5.1          8
--------------------- 

sudo apt-get install cuda-command-line-tools    #当你运行这条命令时,会发现,找不到包,没错,因为你没有指定具体的版本
sudo apt-get install cuda-command-line-tools-9-0    #会提示你早已经安装了,没错,当你安装cuda时,他就安装了。
cd
dpkg -l cuda*    #验证它确实存在,这下你就放心了吧
环境变量还是要老老实实的配置

安装tensorflow-gpu

pip list    #如果之前存在别的版本,也没关系,直接安装就行。安装时,系统会自动卸载旧版本。
sudo pip install tensorflow-gpu==1.6    # ==1.6是我指定的版本,不指定就会安装最新的,cuda9.0可能会不支持哦!
python
import tensorflow

安装opencv3.2

cuda9.0和opencv3.0以上的版本有点不兼容。不过没关系,我们通过修改opencv的源文件,仍能解决此问题。

请参考opencv3.2的官方安装指导教程:https://docs.opencv.org/3.2.0/d6/d15/tutorial_building_tegra_cuda.html

如果你以前已经安装opencv-3.2,请采取正确的方式卸载,不然安装时可能会出错,所以要备份当前系统哦!

下载opencv3.2的压缩包

unzip opencv3.2.0.zip
cd opencv-3.2.0
mkdir build
cd build
touch my_cmake.sh    #新建的sh文件
gedit my_cmake.sh

在my_cmake.sh中写入以下内容:

#!/bin/bash
cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DBUILD_PNG=OFF \
    -DBUILD_TIFF=OFF \
    -DBUILD_TBB=OFF \
    -DBUILD_JPEG=OFF \
    -DBUILD_JASPER=OFF \
    -DBUILD_ZLIB=OFF \
    -DBUILD_EXAMPLES=ON \
    -DBUILD_opencv_java=OFF \
    -DBUILD_opencv_python2=ON \
    -DBUILD_opencv_python3=OFF \
    -DWITH_OPENCL=OFF \
    -DWITH_OPENMP=OFF \
    -DWITH_FFMPEG=ON \
    -DWITH_GSTREAMER=OFF \
    -DWITH_GSTREAMER_0_10=OFF \
    -DWITH_CUDA=ON \
    -DWITH_GTK=ON \
    -DWITH_VTK=OFF \
    -DWITH_TBB=ON \
    -DWITH_1394=OFF \
    -DWITH_OPENEXR=OFF \
    -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.0 \
    -DCUDA_ARCH_BIN='3.0 3.5 5.0 6.0 6.2' \
    -DCUDA_ARCH_PTX="" \
    -DINSTALL_C_EXAMPLES=ON \
    -DINSTALL_TESTS=OFF \
    -DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \
    ..

然后进入opencv-3.2中的cmake文件夹修改一些文件,具体如何修改请参考:https://blog.csdn.net/u014613745/article/details/78310916。

最后,在build文件夹下面配置、编译、安装就可以了。

sudo ./my_cmake.sh
sudo make -j16    #-j16是一个参数,机器性能越好参数就可以设置的越大。也可以直接make
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
pkg-config --modversion opencv    #查看opencv版本

安装成功后,大家就可以愉快的使用了!

 

你可能感兴趣的:(安装教程)