Fedora27搭建GPU版TensorFlow

作者: 刘开心_8a6c | 来源:发表于2018-02-03 09:34 被阅读276次
    DL环境搭建

    主机:华硕(ASUS)G11飞行堡垒
    显卡:GeForce 1070

    原操作系统为win10,准备安装Fedora 27,从零开始搭建GPU版TensorFlow。

    安装Fedora27

    下载ISO镜像并制作U盘启动盘(注意!启动盘一定用官方的制作方法)

    我用另一台win10笔记本电脑制作启动盘。官网为windows提供了很傻瓜的安装程序,叫FedoraMediaWriter,以前叫liveusb creator,插一个u盘,打开程序,按步骤走就可以直接制作好U盘启动盘。

    安装Fedora

    重启计算机,按F8(不同电脑可能不同)选择开机启动项为U盘,安装界面十分友好,跟步骤走即可。先将系统语言改为英文,安装完驱动需要的话再改成中文,避免功亏一篑,血的教训……

    Note:我由于今天一天重装了很多linux版本,有deepin、ubuntu、fedora等,有的需要关闭UEFI模式,我不确定这个需不需要,如果报错了,可以往这个方向考虑。我关闭它的方式是:选择Boot->secure boot->key management,把里面所有key都删掉,它就变成disable了。

    安装NVIDIA驱动

    这是最烦人的,今天安了不下十次……主要参考这里,有一些补充。

    • 首先需要到这里,根据自的显卡选择合适的驱动。

      选择下载驱动 我的是NVIDIA-Linux-x86_64-390.25.run。
    • 在root权限下给NVIDIA-Linux-*.run 添加可执行权限

    chmod +x /path/to/NVIDIA-Linux-*.run
    

    上文提到的教程中要更新内核,我更新后安装driver时报了错,后来千辛万苦找到下面的方法,可以指定安装的kenel-devel和header的版本,这样就不用更新,就不会出现gcc版本不匹配的问题。命令如下。

    • 安装所需要的依赖
    dnf install kernel-devel-$(uname -r) kernel-headers-$(uname -r) gcc dkms acpid libglvnd-glx libglvnd-opengl libglvnd-devel pkgconfig
    
    • 禁用开源驱动 nouveau
    echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
    
    • 修改grub
    cd /etc/default
    
    vi grub
    

    找到GRUB_CMDLINE_LINUX,在引号内补充rd.driver.blacklist=nouveau,注意要加空格后再补充,最后形如GRUB_CMDLINE_LINUX="xxxxxxxxxxx rhgb quiet rd.driver.blacklist=nouveau"

    • 更新grub2配置文件
    grub2-mkconfig -o /boot/grub2/grub.cfg
    
    • 移除xorg-x11-drv-nouveau
    dnf remove xorg-x11-drv-nouveau
    
    • 生成initramfs
    mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
    
    dracut /boot/initramfs-$(uname -r).img $(uname -r)
    
    • 将图形界面改为命令行界面,注意,驱动路径一定不能有中文,否则命令行界面不识别。
    systemctl set-default multi-user.target
    
    • 重启
    reboot
    
    • 在命令行模式下进入root
    • cd到驱动文件所在目录,运行
    ./NVIDIA-Linux-x86_64-390.25.run
    
    • 一路Accept和yes即可。如果碰到kernel header的错误,更新到最新内核既可。
    • 顺利安装完成后,切换回图形界面
    systemctl set-default graphical.target
    
    reboot
    

    安装Cuda9.0

    注意!cuda9.1与tensorflow1.5目前不兼容,最好安装9.0
    这里下载安装,选择fedora版本,这里没有坑,安装很顺利。

    cuda9.0

    安装cudnn

    与cuda版本相配的cudnn从这里下载

    cudnn
    需要先注册才可以。

    下载完成后,双击解压,然后把include和lib64里的文件复制到cuda相应的文件里,命令如下:


    cudnn解压

    安到这里就可以松一口气了。

    安装Anaconda

    到Anaconda的官网下载最新版,我用的python2.7。

    选择Anaconda
    安装完后cd到Anaconda下载目录,使用
    sh Anaconda2-5.0.1-Linux-x86_64.sh
    

    没有坑,顺利下载完后输conda发现系统不识别命令,所以最后一定要敲下面的命令使安装生效

    source ~/.bashrc
    

    安装TensorFlow

    ok,最后一步,安装linux gpu版的TensorFlow。安完以后才发现,cuda9与tensorflow目前不兼容,
    兴高采烈地输入命令,发现需要翻墙。蓝灯的linux版本是deb文件,fedora无法运行,需要先用alien将deb转成rpm,然后用rpmrebuild解决文件冲突,这里参考,两者结合解决。下面是详细步骤。

    安装Lantern(也可以用清华的镜像,跳过这一步)

    • 官网下载蓝灯
    • 安装alien
    sudo dnf install alien
    
    • 转化蓝灯
    sudo alien -r lantern-installer-64-bit.deb
    
    • 安装rpmrebuild
    sudo dnf install rpmrebuild
    
    • 修改lantern文件
    sudo rpmrebuild -pe lantern-4.4.2-2.x86_64.rpm
    
    要注释的行
    • 输入y,记住result的目录,形如/root/rpmbuild/RPMS/x86_64/lantern-4.4.2-2.x86_64.rpm
    • 重新安装
    sudo rpm -i /root/rpmbuild/RPMS/x86_64/lantern-4.4.2-2.x86_64.rpm
    
    • 安装成功,最后蓝灯顺利运行需要在安装libappindicator
    sudo dnf install libappindicator-gtk3
    

    打开所有应用,就可以看到蓝灯图标了。

    安装TensorFlow-GPU

    • 创建conda环境
    conda create -n tensorflow pip python=2.7
    
    • 激活环境
    source activate tensorflow
    
    • 安装gpu版tensorflow,官网注明了tfBinaryURL,把链接部分替换成最新的URL即可。
    pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.5.0-cp27-none-linux_x86_64.whl
    # 清华镜像
    pip install \
      -i https://pypi.tuna.tsinghua.edu.cn/simple/ \
      https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/gpu/tensorflow_gpu-1.5.0-cp27-none-linux_x86_64.whl
    

    如果出现‘libcudnn.so.7:cannot open shared objct file:no such file or directory’的问题,则需要将libcudnn.so.7加入环境变量

    vi ~/.bashrc
    

    在最后一行加入

    export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
    

    输入source ~/.bashrc使修改生效。

    如果遇到kernel version 390.25.0 does not match DOS version 384.81.0的错误

    • 进入multi-user模式
    • 卸载nvidia driver
    sudo yum remove xorg-x11-drv-nvidia\* kmod-nvidia\*
    
    • 重新下载安装384.90版本的nvidia驱动
    • dnf安装cuda

    至此,环境搭建完毕。


    以上内容送给822实验室,便于深度学习环境搭建
    我们的822,我们的青春
    欢迎所有热爱知识热爱生活的朋友和822思享实验室一起成长,吃喝玩乐,享受知识。

    相关文章

      网友评论

      • 团不慌:赞!不过建议以后链接不要写〔这里〕...看起来感觉有点阻碍,先到:Git安装地址 进行安装,这样会不会好些。
        团不慌:@Rew_ 还有 这里参考它和它😂把名写上呗

      本文标题:Fedora27搭建GPU版TensorFlow

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