Ubuntu18.04+CUDA9.0+cuDNN7.4.1+tensorflow-gpu1.10安装基本流程及问题处理汇总

写在前面的话:

本来最初是安装好了CUDA10.0,但tensorflow-gpu最新的版本1.12目前并不支持CUDA10.0 /CUDA9.2(都会出现libualsu 9.0.so缺失问题),因此只好卸载重装CUDA9.0,所以本流程从CUDA卸载写起,同时请大家不要轻易升级新版本。(所有操作都请在Security Boot-Disabled的条件下进行)

基本流程及问题处理

1. CUDA卸载

  • 按照官网文档,通过deb包安装的CUDA10.0采用以下步骤进行卸载,基本保证可以卸载干净
    sudo apt-get --purge remove cuda
    sudo apt-get autoremove cuda
    sudo apt-get remove cuda*
    cd /usr/local/
    sudo rm -r cuda-10.0
    sudo apt-get autoclean
    
  • 采用run文件安装的,可以用如下办法卸载
    sudo perl /usr/local/cuda-9.2/bin/uninstall_cuda_9.2.pl
    sudo rm -r /usr/local/cuda-9.2
    

2.Nvidia显卡驱动安装

卸载CUDA后,Nvidia的驱动也随之失效了,因此需要重新安装Nvidia驱动。

问题1——驱动选择
  • 从Nvidia官网下载了最新的410.78驱动的run文件,但试遍网上各种方法也没能解决循环登陆问题,可能是Ubuntu18.04和新驱动有冲突,很多Ubuntu16.04的升级显卡驱动后也都再次陷入循环登陆问题。最后只能通过Ubuntu系统自带软件更新安装Nvidia-390专有驱动,终于可以顺利启动。
  • 在安装CUDA10.0deb包是会对驱动自动更新,但在安装CUDA9.0时使用deb包中的驱动是会出现问题的,可能与CUDA9.0没提供Ubuntu18.04的版本相关,根据安装要求选择nvidia-384以上版本的驱动安装,否则都会出现问题
  • 官网直接下载的.run文件安装有很大几率出现黑屏和循环登陆问题,虽然ppa源不稳定速度慢,但可以保证安装后顺利运行。
问题2——错误驱动卸载

如果显卡驱动安装错误,陷入循环登陆,可以按下面步骤卸载已安装的Nvidia显卡驱动

  • 登陆界面按Ctrl+Alt+Fn+F3(根据机器具体情况可能F1-F6中一个),进入文本界面
  • sudo su进入root权限,init 3关闭后台运行的界面
  • 使用sudo /usr/bin/nvidia-uninstall
    或者sudo apt-get autoremove --purge nvidia*
    完成驱动卸载
问题3——重装驱动
  • 禁用nouveau
    sudo gedit /etc/modprobe.d/blacklist.conf
    在文件末尾添加如下字段后保存退出

    blacklist vga16fb
    blacklist rivafb
    blacklist rivatv
    blacklist nvidiafb
    blacklist nouveau
    options nouveau modeset=0

    或者使用
    sudo nano /etc/modprobe.d/blacklist-nouveau.conf
    文件内添加上述内容后,Ctrl+O保存,Ctrl+X退出

  • 更新内核
    sudo update-initramfs -u

  • 重启系统,确认nouveau是否已经被屏蔽掉,使用lsmod命令查看,如果没有显示表明已经屏蔽成功
    lsmod | grep nouveau

  • 进入到文本界面,安装驱动
    run文件
    sudo ./NVIDIA.run -no-x-check -no-nouveau-check -no-opengl-files
    -no-x-check:安装驱动时关闭X服务
    -no-nouveau-check:安装驱动时禁用nouveau
    -no-opengl-files:只安装驱动文件,不安装OpenGL文件
    ppa更新源

    sudo add-apt-repository ppa:graphics-drivers/ppa
    sudo apt update
    sudo apt install nvidia-driver-396
    
  • 重新启动

问题4——Nvidia显卡不加载

在Nvidia显卡驱动成功安装好后,在设置-详细信息中应该能看到使用的是Nvidia显卡,如果不是说明显卡未能正常启用。由于我们在启动时添加过apci_osi=linux nomodeset参数,这可能导致Nvidia显卡不能正常启用,可以通过下面的步骤解决。

  • sudo gedit /etc/default/grub
  • 找到其中的GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX=""如果有apci_osi=linux nomodeset参数,请将其删除后保存。
  • sudo update-grub
    自动更新/boot/grub/grub.cfg,这样做最大的好处是当系统更新内核时,你的设置不会被覆盖掉。

3.CUDA 9.0安装

问题1——安装方式选择

Ubuntu18.04下安装CUDA9.0,由于没有对应版本,直接使用deb包安装,其自动更新显卡驱动并构建依赖关系很可能会在安装后期引起显卡驱动覆写错误,因此不建议用deb包安装,而是使用.run文件安装,规避显卡驱动的安装

  • gcc,g++降级
    CUDA9.0需要在gcc6.0以下环境安装,而Ubuntu18.04是gcc7.3,需要作降级处理
    sudo apt-get install gcc-4.8
    sudo apt-get install g++-4.8
    sudo ls -l gcc* #查看当前连接版本
    sudo mv gcc gcc.bak #备份
    sudo ln -s gcc-4.8 gcc #重新链接
    sudo mv g++ g++.bak
    sudo ln -s g++-4.8 g++
    gcc -v 
    g++ -v
    
  • deb包安装
    sudo dpkg -i cuda-repo-ubuntu1604-9-2-local9.2.148-1_amd64.deb #解压与设置,添加文件夹更新源
    sudo apt-key add /var/cuda-repo-9-2-local/7fa2af80.pub #用于添加身份验证密钥
    sudo apt-get update #更新更新源
    sudo apt-get install cuda #安装cuda
    
  • .run文件安装
    sudo sh cuda_9.2.148_396.37_linux.run
    Ctrl+C快速略过声明,accept同意安装后,除了第一项显卡驱动安装选no,其他都选yes即可。安装完成后,可能会得到提示,CUDA 安装不完整,这是因为显卡驱动没有安装,这里忽略掉。
  • 环境变量设置
    sudo gedit ~/.bashrc
    文档最后添加
    export PATH=/usr/local/cuda-9.2/bin${PATH:+:$PATH}}      
    export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} 
    export CUDA_HOME=/usr/local/cuda
    
    保存后更新
    source ~/.bashrc
  • 验证安装成功,结果现实PASS即成功
    cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
    sudo make
    ./deviceQuery
    
问题2——CUDA运行包缺失

CUDA安装最后在安装Sample时,存在libGL.so和libGLU.so等包缺失的问题,可以通过安装如下库来解决
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libgles2-mesa-dev libcupti-dev

问题3——CUDA安装包无法定位

之前由于反复卸载安装,出现了cuda软件包无法定位的问题,这时可以去软件更新中看看,是否安装包的更新源未能正确添加,如果没有,可以手动添加更新源。
deb file:///var/cuda-repo-9-2-local /

4.cuDNN7.4.1安装

下载安装包后,正常解压,然后将其复制到CUDA文件内并提升权限即可。

tar -zxvf cudnn-9.2-linux-x64-v7.4.1.5.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

5.Anaconda3安装及环境设置

  • 在清华镜像下载Anacoda3,后进行安装
    bash Anacoda3-5.3.0-Linux-x86_64.sh
  • 更新conda源
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --set show_channel_urls yes
    
  • 新环境创建、启用及基本包配置
    conda create -n work python==3.6
    conda activate work
    conda install anaconda
    
  • tensorflow-gpu安装
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ tensorflow-gpu
    

你可能感兴趣的:(Ubuntu18.04+CUDA9.0+cuDNN7.4.1+tensorflow-gpu1.10安装基本流程及问题处理汇总)