• Tensorflow1.5.0+cuda9.0+cudnn7.0+gtx1080+ubuntu16.04


    Tensorflow1.5.0+cuda9.0+cudnn7.0+gtx1080+ubuntu16.04

    0. 前记

    之前的博客已经写过如何进行Tensorflow1.5.0+cuda8.0+cudnn6.0+gtx1080的环境搭建了,由于最近需要安装caffe2,所以考虑对环境进行升级。可以说,环境的配置问题真的是一个很麻烦的问题,所以我也有必要写一篇博客,帮助你们能少踩些坑吧。这次搭建的时候我特意注意了官网给出的说明,按照说明进行搭建。

    一路走过来先说几个建议:

    • 下载cuda文件就下载runfile吧,deb软件包是官方的推荐,如果实在不会安装,可以用这个。

    • cudnn文件尽量下载压缩文件,不要下载deb包。

    • cudnn下载版本问题,下边会有说明

    • 这样可能稍微少走一点弯路。最后需要感谢的是我的老师,他也提供给我一个救命稻草:救命博客,所以也很感谢写出这篇博客的博主。ps:之前参考了一个博客,说是1.6.0的tensorflow与cuda9&cudnn适配,但是我这里没有成功。

    • 最后提供了官方说明文档,还是需要仔细看看的,但还是没有博客好~~hh

    1. 环境说明

    • GeForce gtx 1080

    • ubuntu16.04

    • Nvidia驱动版本:nvidia-390

    • Cuda 9.0(原有环境Cuda 8.0)

    • Cudnn 8.0(原有环境Cudnn 7.0)

    因为原有环境的原因,可能需要先卸载,再重装,这也是官网建议的(但是我的一个小伙伴他没有卸载8.0,还是照常使用了,所以再次建议你们先保留,如果不行的话,再重头再来)

    2. 安装GTX1080显卡驱动

    1、在官网下载对应自己系统的驱动(官网也可以检测驱动),选择自己对应的系统即可,版本号是390.77,下载为一个.run文件。

    此处无法用apt直接下载更新,是因为apt源里的NVIDIA驱动是非常久远的版本了

    2、打开终端,首先卸载一下之前安装的

    $ sudo apt-get --purge remove nvidia-*
    

    3、打开blacklist:

    $ sudo gedit /etc/modprobe.d/blacklist.conf
    

    在最后添加几行:

    blacklist vga16fb
    blacklist nouveau
    blacklist rivafb
    blacklist nvidiafb
    blacklist rivatv
    

    这个地方容易出现的问题是明明把nouveau添加到了blacklist里,安装驱动的时候还是会出现这个错误,后面会讲解决办法。

    保存退出。

    【接下来是针对nouveau的双重保险】

    这个时候在终端尝试一下

    $ lsmod | grep nouveau
    

    如果没有输出,可以忽略下面这一段,直接开始安装1080的驱动,如果仍有输出,终端输入:

    $ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
    

    直接写入:

    blacklist nouveau
    blacklist lbm-nouveau
    options nouveau modeset=0
    alias nouveau off
    alias lbm-nouveau off
    

    保存关闭,再尝试

    $ sudo update-initramfs -u
    $ reboot
    $ lsmod | grep nouveau
    

    应该OK了,如果不OK,再往下看。

    4、开始安装驱动,记住你的驱动的.run文件的下载路径和完整文件名(如果你的版本号和我的不同,请自行修改),注销账户,按Ctrl+Alt+F1进入命令界面,登入

    $ sudo /etc/init.d/lightdm stop
    $ sudo init 3
    $ sudo /path/to/NVIDIA-Linux-x86_64-390.42.run -no-x-check -no-nouveau-check -no-opengl-files
    $ sudo /etc/init.d/lightdm start
    

    这里是关闭x server,nouveau和不下载opengl文件(我也不太明白是个啥),安装complete后用

    $ nvidia-smi
    

    检查一下,是否出来你的显卡信息

    最后reboot
    sudo reboot
    

    3. CUDA 9.0安装

    (如果你之前已经安装了,可以先看)

    官网下载9.0版本,选择对应系统,请下载runfile

    img

    在下载文件夹终端输入(根据下载的文件名来)

    $ sudo sh cuda_9.0.176_384.81_linux.run
    

    具体选项:

    Do you accept the previously read EULA? (accept/decline/quit): accept
    Install NVIDIA Accelerated Graphics Driver for Linux-x86_64? ((y)es/(n)o/(q)uit): n
    Install the CUDA  Toolkit? ((y)es/(n)o/(q)uit): y
    Enter Toolkit Location [ default is /usr/local/cuda-9.1 ]:
    Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y
    Install the CUDA Samples? ((y)es/(n)o/(q)uit): y
    Enter CUDA Samples Location [ default is /home/user ]:
    

    有一个关键是会让你选择是否安装Graphics Driver for Linux-x86_64:XXXX版本,这个地方必须选择no!否则会覆盖之前的驱动。

    安装完毕之后,声明环境变量,终端输入

    $ sudo gedit ~/.bashrc
    

    在最后加上

    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}}
    

    保存退出

    $ source ~/.bashrc
    

    在profile中也输入上面两行声明

    $ sudo gedit /etc/profile
    

    保存退出,reboot一下

    验证驱动版本:390.42

    $ cat /proc/driver/nvidia/version
    NVRM version: NVIDIA UNIX x86_64 Kernel Module  390.42  Sat Mar  3 04:10:22 PST 2018
    GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9) 
    

    验证CUDA版本:9.0

    $ nvcc -V
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2017 NVIDIA Corporation
    Built on Fri_Sep__1_21:08:03_CDT_2017
    Cuda compilation tools, release 9.0, V9.0.176
    

    还有可能遇到的问题是没有安装gcc或者gcc版本过高需要手动进行降级,都比较好解决,我好像没有遇到这种问题,如果出现个这两种问题手动解决一下即可,很简单的。

    4. cuDNN安装

    在官网下载,需要注册账号,目前提供的不同版本为:

    之前那个博主写的时候还是:

    1535333903329

    之前看到for CUDA9.0就开始下载,下了一个7.2的所以导致失败 ,应该下载cudnn-9.0-linux-x64-v7.tgz(7后边没有别的版本号了),那篇博客中这样说的,选择以下的内容:

    1535334047331

    很不幸,发现现在已经是这样了:

    1535333870233

    所以只好从CSDN中下载了一份,你们可以直接搜索刚才那个软件包的名字,这里提供一个我上传的链接https://pan.baidu.com/s/1IQFchjn7K8G_3RsG0bwsrQ吧:

    因为我是修改cuDNN版本,所以还要卸载之前装的7.1.1,没装过的可以直接安装

    $ sudo rm -rf /usr/local/cuda/include/cudnn.h
    $ sudo rm -rf /usr/local/cuda/lib64/libcudnn*
    

    3、官网下载的是一个后缀为.solitairetheme8的文件,修改一下即可

    $ cp  cudnn-9.0-linux-x64-v7.solitairetheme8 cudnn-9.0-linux-x64-v7.tgz
    

    4、在下载路径解压文件,复制到本地路径,这里解压出来的文件名比较重要,后面会要对照着看

    $ tar -zxvf cudnn-9.0-linux-x64-v7.tgz
    cuda/include/cudnn.h
    cuda/NVIDIA_SLA_cuDNN_Support.txt
    cuda/lib64/libcudnn.so
    cuda/lib64/libcudnn.so.7
    cuda/lib64/libcudnn.so.7.0.3
    cuda/lib64/libcudnn_static.a
    $ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
    $ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
    

    5、到本地cuda路径,创建软连接,终端输入,

    这里的文件名就参照之前解压出来的文件名对照着写

    ,就算和我下的不是一个版本也能搞定啦

    $ sudo chmod +r libcudnn.so.7.0.3
    $ sudo ln -sf libcudnn.so.7.0.3 libcudnn.so.7  
    $ sudo ln -sf libcudnn.so.7 libcudnn.so  
    $ sudo ldconfig  
    

    6、在本地cuda路径检测一下

    $ ll
    

    出现cuDNN对应的版本号就证明安装成功啦

    lrwxrwxrwx  1 root root        13 3月  19 16:02 libcudnn.so -> libcudnn.so.7*
    lrwxrwxrwx  1 root root        17 3月  19 16:02 libcudnn.so.7 -> libcudnn.so.7.0.4*
    -rwxr-xr-x  1 root root 287641664 3月  19 16:00 libcudnn.so.7.0.4*
    

    5. Tensorflow-GPU安装

    我直接采用的pip安装,也是最简单最直接的安装方式,喜欢别的方式的可以在网上搜一下

    我用的是anaconda3,所以开启一个环境

    $ conda create -n tensorflow python==3.5(我用的那个库支持3.5比较好,版本看你们情况)
    $ source activate tensorflow
    $ sudo pip uninstall tensorflow
    $ sudo pip install --upgrade --ignore-installed tensorflow-gpu==1.5.0
    

    测试

    $ python
    import tensorflow as tf
    

    如果没有报错,那就恭喜啦~~

    6. Cuda的卸载,cuDNN的卸载

    处理之前安装的cuda文件

    之前安装的版本会对现有版本造成冲突,需要卸载

    Use the following command to uninstall a Toolkit runfile installation:

    $ sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl
    

    Use the following command to uninstall a Driver runfile installation:

    $ sudo /usr/bin/nvidia-uninstall
    

    Use the following commands to uninstall a RPM/Deb installation:

    $ sudo yum remove <package_name>                      # Redhat/CentOS
    $ sudo dnf remove <package_name>                      # Fedora
    $ sudo zypper remove <package_name>                   # OpenSUSE/SLES
    $ sudo apt-get --purge remove <package_name>          # Ubuntu
    

    处理之前安装的cuDNN

    $ sudo rm -rf /usr/local/cuda/include/cudnn.h
    $ sudo rm -rf /usr/local/cuda/lib64/libcudnn*
    

    7. Reference

    https://blog.csdn.net/weixin_41864878/article/details/79621210?tdsourcetag=s_pctim_aiomsg

    官网说明-cuDNN安装手册

    官方说明-Cuda安装手册

    官方说明-tensorflow安装手册

  • 相关阅读:
    字体识别
    TMSHttpConfig工具使用
    firedac分页查询
    filefunc.pas
    dbfunc.pas
    TRawByteStringStream
    大小端交换
    variant的序列和还原
    ansistring和unicode的序列和还原
    malinajs来自Svelte 启发的前端编译器
  • 原文地址:https://www.cnblogs.com/pprp/p/9540523.html
Copyright © 2020-2023  润新知