zoukankan      html  css  js  c++  java
  • ubuntu14.04+nvidia driver+cuda8+cudnn5+tensorflow0.12

    文章在简书里面编辑的,复制过来貌似不太好看,还是到简书的页面看吧:
    http://www.jianshu.com/p/c89b97d052b7

    1.安装环境简介:

    硬件:

    1. cpu:i7 6700k
    2. gpu:gtx 1070
    3. 内存:32g

    系统:Ubuntu 14.04

    • 安装在一块移动硬盘上为啥不装双系统呢?不爽!移动硬盘上装Ubuntu的一个坑是装之前需要确认你的盘是否是4k对齐。你不确认也行,反正它死活都不让你装~。
    • 系统语言选的是English,不推荐中文,在shell里面输入中文路径是一件万分不爽的事儿。
    • 环境就这样,很纯洁

    注意:此时我的显示屏连接线是连在主板上的,因为系统刚装好gpu还没有驱动。

    正式安装之前请先看一下cuda开发库的支持信息。Ubuntu14.04装完不用干啥,满足要求。
    cuda8安装环境支持对照表

    2.装显卡驱动

    恩,虽然我一直以官方文档为准。但是装这个驱动,算了,还是参考先驱的经验吧。以下三个链接,第一个链接是官网的文档,我主要参考第二个和第三个。
    (1)https://docs.nvidia.com/deploy/driver-persistence/index.html
    (2)http://wxhp.org/ubuntu-install-nvidia-official-drivers.html
    (3)http://wiki.ubuntu.org.cn/NVIDIA

    • 参照第二个链接安装过程中出现提示说:将要安装程序为32位,将不安装任何东西balalala...(-_- || 吓死宝宝了,不管了继续吧)。安装过程一路yes,没有碰见说要从网上下载modules的那个提示,所以就没有选no。安装完了之后,pa~提示:kernel Error ...balabala....(|_| 感觉世界没有爱了,花了那么长时间换来的就是全特么是error)。
    • 安装完了,sudo start lightdm(心如死灰),输入登录密码,果然~~还是跳回了登录界面。谷歌ubuntu输入密码返回登录界面,按照排名靠前的几个解决方案看了看,完全没什么卵用,因为我的文件权限和所属用户、用户组都是正确的。好吧,,,还是去查看启动日志吧~
    • 查看cat ~/.xsession-errors,错误提示说:gnome session 启动失败。这是什么鬼提示嘛,还是没什么卵用。只知道gnome这个东西没起来。捋一捋系统启动流程,想到gnome是个桌面管理程序,既然我在其他run level里面能够成功使用账户名密码登录,说明起码系统没坏,在这个gnome程序里面却进不去,是不是gnome在启动什么东西的时候失败了,联想到我之前卸了旧驱动,装了显卡新驱动,而且我把显示器的HDMI插头接到了主机的主板上,不是显卡上的HDMI接口。OK,猜想:是不是gnome想要启动显示器,但是呢系统现在默认使用的gragphic是NVIDIA,我却把HDMI插头接口放在了intel集成显卡的接口上,而intel集成显卡又没启用,所以失败了。。。死马当活马医,关机,换到NVIDIA插口上,启动,输入密码~~~~艾玛,进去了。
    • 在换插口前我还运行了两条命令
      sudo apt-get --purge remove nvidia-* sudo apt-get --purge remove xserver-xorg-video-nouveau
      这两条命令运行完之后,我还是没法登录进系统。我粗略看了下执行是显示的内容,貌似没有卸载啥东西。所以就不知道我运行的这两条命令将来会产生什么影响,反正现在是进系统了,下一步准备安装cuda7.5和cuDnn。
      2016.10.08

    3.安装cuda7.5(可跳过此部分,这是本安装记录的旧版本)

    环境检查(给予Ubuntu,其他系统环境查看这里的说明)
    检查系统是否有相关环境.png


    2016年11月19日


    • 一个多月过去了,之前驱动装完就放下了。刚开始其实不用一定非得要装gpu版本的,在虚拟机里面装了个cpu版本的做做实验也OK。看了一些神经网络相关的论文,做了些实验后,现在觉得虚拟机不够用了。这才回来安装GPU版本的tensorflow。

    • 一个多月,tensorflow官网已经默认支持最新的cuda toolkit 8.0,而且window平台也开始逐步支持了。废话不多说,开始吧~


    4.安装cuda8.0

    此部分内容与第三步同样是按照官网的教程使用的。官网文档请走这里

    官方文档里面包含九个章节,分别是:

    1. 引入
    2. 装前检查,确定依赖环境等
    3. 安装包管理
    4. 安装文件
    5. 交叉平台安装(目前只支持Ubuntu)
    6. 安装后注意事项
    7. 高级设置
    8. 常见问题
    9. 其他注意事项

    黑体部分为本安装记录会涉及到的,其他部分如有需要自取。

    1. 装前检查,确定依赖环境等
      相关命令:
    lspci | grep -i nvidia 
    uname -m && cat /etc/*release
    gcc --version
    uname -r
    sudo apt-get install linux-headers-$(uname -r)
    

    检查系统是否有相关环境

    1.1 安装与内核版本一致的相关包
    相关命令:sudo apt-get install linux-headers-$(uname -r)

    安装与内核版本一致的相关包

    ps: 参考官方文档的2.1~2.4 , 2.7节

    4.安装文件
    安装文件可选方式有两种,一种是distribution-specific packages安装包,一种是distribution-independent package。有啥区别呢?就是后一种是.sh结尾的文件,可以在一些不常用的Linux平台上安装,但是包管理器可能不支持更新升级,安装起来也比较麻烦。前一种可以通过包管理器本地安装或在线安装,安装升级方便。在官网下载的时候就能看到下载包的区别,如下图所示,第一个runfile个人不建议下载安装。下载第二个安装。

    cuda安装包选择

    下载好后改变bash路径到cuda-repo-.deb文件所在的目录,然后依次执行如下命令

    sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
    sudo apt-get update
    sudo apt-get install cuda
    

    一切都很顺溜~~注意第一条命令不要直接复制就运行了,替换成你下载的文件名。
    ps: 参考官方文档的2.5,3.6节

    6.安装后注意事项
    6.1 把路径/usr/local/cuda-8.0/bin加到环境变量中去。
    在/etc/profile 文件的末尾加了如下语句:
    export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
    保存后别忘了source /etc/profile一下。
    6.2 安装cuda的测试脚本
    cuda-install-samples-8.0.sh <dir>

    为一个当前用户具有读写权限的目录,我运行的命令如下:cuda-install-samples-8.0.sh ~
    看一下当前目录,多了个NVIDIA_CUDA-8.0_Samples的文件夹

    查看Samples

    6.3 编译例子程序测试是否安装成功
    把当前目录切换到刚才那个目录文件下
    cd ~/NVIDIA_CUDA-8.0_Samples
    再执行命令
    make
    哗啦哗啦~好多输出。这时候你再开一个shell窗口,切换到目录~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release
    看看文件数量是不是在增长,可以通过如下命令统计当前目录文件数量ll | wc -l。我编译完成后一共是160个文件。
    文件计数

    6.4 运行编译后的二进制文件

    • 切换到目录~/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release下,运行如下脚本./deviceQuery。运行结果什么呢?失败反正我安装完后执行这个脚本是失败了,失败的界面没截图~我就不重现它了。
      我没有急着卸载重装,回想所有安装步骤都没问题,于是有了终极解决方案:**重启~**。对,没看错就是重启重启一下运行刚才这个命令会出现如下所示界面,恭喜你成功了~

    cuda安装测试
    上图中主要看两个地方,一个是看有没有检测到你的显卡,也就是Device 0: "GeForce GTX 1070"的那一行。还有就是最后一行Result = PASS

    • 再运行一个测试脚本``

    第二个测试

    PS:出错的时候网上查了下,有人说不要使用deb的文件安装。但是一想毕竟按照官方文档一步一步下来没有错,我也不想再折腾。开始想看一下是不是源码有问题,粗略看了下,好像没啥问题(其实是看不懂),重启就是死马当活马医~

    ps: 本节参考了原文的6.1.1 , 6.2.1 , 6.2.2.2 和 6.2.2.3小节。


    5.安装cuDNN v5

    这个最简单,按照tensorflow官网的教程来就行,不用按照cuDnn的文档来。

    1. 下载cudnn
      https://developer.nvidia.com/cudnn
    2. 把压缩文件解压到cuda toolkit的安装目录,默认是/usr/local/cuda。首先把当前目录切换到/usr/local/cuda,然后运行如下相关命令:
    tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz
    sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
    sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
    sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
    

    6.tensorflow安装方式

    我基本上所有方式都尝试过了,这次我选择anaconda的安装方式。

    1. anaconda官网下载:https://www.continuum.io/downloads
      我选的是python3.5 64位的Linux版本
      下载好后,用命令bash bash Anaconda3-4.2.0-Linux-x86_64.sh 装就好了。
      中间要你输入enter就敲一下回车,遇到more的时候就按空格键,遇到选yes或no,统统选yes就好。
      装完之后,记得要么重启一下,要么shell里面运行source ~/.bashrc就好。然后输入which python看一下路径中是不是包含在anaconda的安装目录,是就对了。

    python

    哦对了,你会发现如果你运行sudo python的时候,还是用的系统自带的python。解决办法嘛可以重建默认python的软连接到anaconda里面的python。也可以编辑/etc/profile,把anaconda的bin目录加到path里面去。
    参考

    2.安装tensorflow
    直接上命令清单,一行一行运行就好。有特殊需求找官网去。

    conda create -n tensorflow python=3.5
    source activate tensorflow
    export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc0-cp35-cp35m-linux_x86_64.whl
    pip install --ignore-installed --upgrade $TF_BINARY_URL
    

    注意最后一行和官网不一样,官网是pip3 install --ignore-installed --upgrade $TF_BINARY_URL。它用的是pip3,我没装上,换成pip就好。细心的话会发先不是python2.x采用pip么?你装的python3.5怎么用pip呢?我也,不知道,反正就是装上了~python的库基本上都支持python3了,估计也没必要搞个pip3了。

    7. 运行点代码试试

    输入图片中红色框住的或指向的就行,其他的忽略。目的就是计算一个e的5次方。
    例子

    8. 其他

    shell窗口使用的是terminal,窗口多开,调节大小挺方便的。
    git+pycharm+anaconda+jupyter
    关于pycharm设置什么远程调试啊,代码部署啊什么的,如果有需要,回头再写。

    完事儿~~

  • 相关阅读:
    SPOJ SAMER08A
    SPOJ TRAFFICN
    CS Academy Set Subtraction
    CS Academy Bad Triplet
    CF Round 432 C. Five Dimensional Points
    CF Round 432 B. Arpa and an exam about geometry
    SPOJ INVCNT
    CS Academy Palindromic Tree
    身体训练
    简单瞎搞题
  • 原文地址:https://www.cnblogs.com/nanqiangyipo/p/6124494.html
Copyright © 2011-2022 走看看