重要的事情说三遍:
安装之前,一定要先备份。这里推荐使用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
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-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,我折腾了很久。
如果之前使用runfile安装的,那么只需执行下面的命令即可。
cd /usr/local/cuda-8.0/bin/
sudo ./uninstall....pl
如果之前使用deb安装的,那么需要执行下面的命令
cd
dpkg -l cuda* #查看前缀为cuda的所有安装包
sudo apt-get remove --purge cuda* #移除
下载地址:https://developer.nvidia.com/cuda-toolkit-archive
这一部分一定要查看官方的安装指导https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
最好选择本地deb,无需联网。网上有很多推荐runfile安装的,我自己的电脑试过很多次,失败、失败、总是失败。deb(local),简单易安装。
安装方法如下:
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
这一步比较简单,可参考官方安装指导,最后建立软链接(官方没有这一步,但我认为比较重要)。
下载cudnn7.0。https://developer.nvidia.com/rdp/cudnn-archive
添加软链接
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版本,如果不行,重启试试
源码编译比较麻烦,我采用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
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版本
安装成功后,大家就可以愉快的使用了!