Ubuntu14.04安装Nvidia显卡驱动+cuda8.0+cudnn5.1+tensorflow

Ubuntu14.04安装Nvidia显卡驱动+cuda8.0+cudnn5.1+tensorflow

初始环境:
系统:ubuntu14.04 LTS
显卡:
双显,Intel+Nvidia gtx1050。Intel用于显示,之前没有使用过Nvidia这块独显。
python 2.7 + python 3.4
显卡驱动的安装有多种方法,这里我们采用run文件安装。

Nvidia驱动安装

  • 首先查看并删除已有的显卡驱动:
sudo apt-get purge nvidia*
  • 禁用自带的 nouveau nvidia驱动 (important!)
    创建一个文件 通过命令
sudo vim /etc/modprobe.d/blacklist-nouveau.conf

并添加如下内容:

blacklist nouveau
options nouveau modeset=0

再更新一下

sudo update-initramfs -u

修改后需要重启系统。使用命令:

lsmod | grep nouveau

确认下Nouveau是已经被你干掉,如果终端没有输出则表示禁用成功。

  • Nvidia官网下载驱动

官网

输入自己的显卡型号后下载*.run文件。放到用户目录下。

  • 安装驱动
    进入命令行界面:Ctrl-Alt+F1
    关闭X-window
    sudo service lightdm stop
    给驱动run文件赋予执行权限
    sudo chmod a+x NVIDIA-Linux-x86_64-****.run
    安装(注意 参数)
    sudo ./NVIDIA-Linux-x86_64-****.run –no-opengl-files
    –no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要
    –no-x-check 安装驱动时不检查X服务
    –no-nouveau-check 安装驱动时不检查nouveau 
后面两个参数可不加。
    重新启动X-window:
    sudo service lightdm start
    然后Ctrl+Alt+F7进入图形界面
    重启

如果无法进入图形界面,则ctrl+alt+F1进入命令行界面,将驱动删除再重新安装一遍。

sudo ./NVIDIA-*****.run uninstall

成功进入图形界面后,终端运行

nvidia-sim

如果输出显卡信息,则表示驱动安装成功。

cuda安装

这里我们采用run文件安装方法。

  • 首先,检查自己的GPU是否是CUDA-capable。去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中
  • 检查自己的Linux版本是否支持 CUDA(Ubuntu 14.04没问题)
  • 检查自己的系统中是否装了gcc
    在终端中输入: $gcc –version 可以查看自己的gcc版本信息
  • 检查是否安装了kernel header和 package development
    在终端中输入:
    uname –r
    在终端中输入:
    sudo apt-get install linux-headers-$(uname-r)
    可以安装对应kernel版本的kernel header和package development

以上检查我的电脑系统都满足要求,如果没有满足要求的话,可以参考cuda的官方文档,里面有详细的针对每个问题的解决方案。

  • 下载run file文件
    cuda官网下载地址:
    https://developer.nvidia.com/cuda-downloads
    选择自己相应的版本下载,大约1.4G。
  • 安装
    进入命令行界面:
    Ctrl-Alt+F1
    关闭X-window
    sudo service lightdm stop
    切换到cuda runfile文件的保存路径。给下载的runfile文件赋予执行权限
    sudo chmod a+x cuda_8.0.61_375.26_linux.run
    运行安装。注意,提示是否安装openGL files时选择no,提示是否安装驱动时选择no。
    sudo sh cuda_8.0.61_375.26_linux.run --no-opengl-libs
    等待安装完成。出现以下语句时,表示安装结束。
    Driver :Installed
    Toolkit :Installed in /usr/local/cuda-8.0
    Samples :Installed in /home/zlin
    重启图形界面
    sudo service lightdm start
    Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。

倘若没有遇到循环登录的问题,基本说明cuda的安装成功了!!!!
如果遇到循环登录的问题,与前面驱动安装时一样,将驱动重新安装一遍即可。

  • 重启电脑。检查Device Node Verification
    检查路径/dev下 有无存在名为nvidia*(以nvidia开头)的多个文件(device files) 
如果没有的话,可以参考官方文档里的指导步骤,进行添加。

  • 设置环境变量
    终端中输入
    $ sudo gedit /etc/profile
    
在打开的文件末尾,添加以下两行。

    export PATH=/usr/local/cuda-7.5/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda7.5/lib64

然后重新加载环境变量
sudo source /etc/profile

  • 安装完毕后的检查工作
    a): 检查 NVIDIA Driver是否安装成功
    终端输入 :
    $ cat /proc/driver/nvidia/version
    会输出NVIDIA Driver的版本号
    b): 检查 CUDA Toolkit是否安装成功
    终端输入 :
    $ nvcc –V
    会输出CUDA的版本信息
    c): 尝试编译cuda提供的例子
    切换到例子存放的路径,默认路径是
    ~/NVIDIA_CUDA-7.5_Samples 
(即/home/xxx/ NVIDIA_CUDA-7.5_Samples, xxx是你自己的用户名)
    然后终端输入:$ make
    如果出现错误的话,则会立即报错停止,否则会开始进入编译阶段。 
我的第一次运行时出现了报错,提示的错误信息是系统中没有gcc 
然后在终端运行 $ sudo apt-get install gcc
    安装完gcc后 再make就正常了 
整个编译的时间持续比较长,耐心等待,大概十几分钟是需要的。
    d):运行编译生成的二进制文件。
    编译后的二进制文件 默认存放在~/NVIDIA_CUDA-7.5_Samples/bin中。
    
切换路径 :
    cd ~/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release
    
终端输入 :$ ./deviceQuery
    看到类似如下图片中的显示,则代表CUDA安装且配置成功(congratulation!!)

    再检查一下系统和CUDA-Capable device的连接情况 

    终端输入 :$ ./sandwidthTest 
看到类似如下图片中的显示,则代表成功 


至此,cuda8.0安装成功。

CUDNN安装

下载cuDNN v5.1 Library for Linux.
https://developer.nvidia.com/cudnn

下载完cudnn5.1之后进行解压,cd进入cudnn5.1解压之后的include目录,在命令行进行如下操作:

sudo cp cudnn.h /usr/local/cuda/include/    #复制头文件

再将cd进入lib64目录下的动态文件进行复制和链接:

sudo cp lib* /usr/local/cuda/lib64/    #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5    #删除原有动态文件
sudo ln -s libcudnn.so.5.0.10 libcudnn.so.5  #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so      #生成软链接

如果以后要换cuDNN的版本,照着上述步骤重装一遍即可。

安装tensorflow

sudo pip3 install tensorflow-gpu=1.2.1
因为我要学习的google nmt神经机器翻译模型需要tf的版本>=1.2.1,因此我安装的版本是1.2.1。大家根据自己的需要来安装相应的版本。

检查tensorflow是否安装成功:

python3
import tensorflow as tf

你可能感兴趣的:(NLP)