美文网首页我爱编程
桌面版ubuntu 16.04从零开始配置tensorflow

桌面版ubuntu 16.04从零开始配置tensorflow

作者: vissac | 来源:发表于2018-04-14 14:00 被阅读610次

    ubuntu下安装tensorflow gpu版本可视为3步。

    1 安装cuda

    目前最新版本为cuda 9.1,tensorflow推荐版本为cuda9.0,故我们选择安装9.0版本,cuda 9.0下载
    选择合适的安装方式,这里个人选用了runfile安装。

    1.1 环境检查

    确认有支持cuda的设备
     lspci | grep -i nvidia
    
    确认gcc已安装
     gcc --version
    
    确认内核头文件和包已安装
     uname -r
    
    如未安装可以通过如下命令安装
     sudo apt-get install linux-headers-$(uname -r)
    

    1.2 桌面、驱动等关闭

    按下ctrl+alt+f1进入命令行模式,关闭桌面
     sudo service lightdm stop
     sudo init 3
    
    关闭自带驱动重新安装显卡驱动
     sudo /etc/modprobe.d/blacklist-nouveau.conf
    
    在上述配置文件中写入
     blacklist nouveau
     options nouveau modeset=0
    
    保存完后输入
     sudo update-initramfs -u
    

    这里有一个大坑,预警

    在完成关闭nouveau后,输入

    $ lsmod | grep nouveau

    如果没有输出,恭喜你禁用成功,万一有输出,重启,不要使用图形界面,在登录的时候切换到命令行的状态(ctrl + alt + f1)。重复上述操作,没有输出后即为禁用成功,才可进行后续操作,不然可能会造成无限卡登录的情况。
    至此,前序准备工作完成。运行以下命令安装cuda,由于网络下载的runfile权限问题,可能不能自动补全,需要手输一下,用户协议一路接受即可,cuda sample可以不装,节约空间。

    sudo sh cuda_<version>_linux.run

    1.3 环境检查与配置

    执行

    ls /dev/nvidia*

    输出如果包含/dev/nvidia-uvm,则前序步骤完全完成,如果不包含,只有

    /dev/nvidia0 /dev/nvidia-modeset /dev/nvidiactl

    三个文件中的部分或所有文件,则需添加一个启动脚本

    sudo vim /etc/rc.local

    如果你是第一次打开这个文件,它应该是空的(除了一行又一行的#注释项外)。这文件的第一行是
    #!/bin/sh -e
    把-e去掉(这步很重要,否则它不会加载这文本的内容)
    然后把下列内容除了#!/bin/bash外复制到其中,在最后的exit 0之前,保存退出。
    
    
    #!/bin/bash
    
    /sbin/modprobe nvidia
    
    if [ "$?" -eq 0 ]; then
    # Count the number of NVIDIA controllers found.
    NVDEVS=`lspci | grep -i NVIDIA`
    N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
    NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
    
    N=`expr $N3D + $NVGA - 1`
    for i in `seq 0 $N`; do
    mknod -m 666 /dev/nvidia$i c 195 $i
    done
    
    mknod -m 666 /dev/nvidiactl c 195 255
    
    else
    exit 1
    fi
    
    /sbin/modprobe nvidia-uvm
    
    if [ "$?" -eq 0 ]; then
    # Find out the major device number used by the nvidia-uvm driver
    D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
    
    mknod -m 666 /dev/nvidia-uvm c $D 0
    else
    exit 1
    fi
    

    将cuda加入环境

    sudo vim /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}}

    安装完后输入以下命令重启桌面,然后重启电脑。

    sudo service lightdm start
    reboot

    验证驱动版本

    cat /proc/driver/nvidia/version

    验证CUDA Toolkit

    nvcc -V

    2 安装cuDNN

    下载对应cuda版本的cuDNN即可,只需下载runtime library。
    cuDNN runtime library在实际使用中报了奇怪的错,改为使用tar安装,更为灵活。
    cuDNN下载

    2.1 检查环境

    如果是连续操作应该不会有任何问题,可以跳过这一小节,如果和cuda配置时间相差较多,可能会存在显卡驱动版本过老的问题,需要更新,具体版本要求等参考[cuDNN安装说明](https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html

    2.2 cuDNN安装

    进入cuDNN tar的下载文件夹,输入

    tar -xzvf cudnn-9.0-linux-x64-v7.1.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*

    3 tensorflow gpu安装

    tensoflow官网的安装中写了cuda_command_tools的安装,但是在安装cuda的时候,这个应该是已经被一起安装进来了,所以并不需要按照他给定的方法进行安装,直接将环境写入路径即可,

    sudo vim /etc/profile

    在最后写入

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}/usr/local/cuda/extras/CUPTI/lib64

    为了方便,这里个人使用了anaconda代替了系统自带的python版本,并且由于tensorflow是常用工具,并不准备按照官网的教程将其安装入虚环境,首先检查pip

    pip -V

    确认pip是anaconda的pip后

    pip install tensorflow-gpu

    由于之前配置完cuDNN之后,我们直接安装的tensorflow,cuDNN的环境还没生效,我们需要重启电脑,重启后即可验证tensorflow是否成功安装。
    在检测时候会有warning,无视就好了,能输出结果就行了,等numpy更新看能否解决。

    相关文章

      网友评论

        本文标题:桌面版ubuntu 16.04从零开始配置tensorflow

        本文链接:https://www.haomeiwen.com/subject/drickftx.html