zoukankan      html  css  js  c++  java
  • Ubuntu16.04 + CUDA 8.0 (GTX 1050ti)

    在个人PC上使用游戏级的显卡安装CUDA要比在服务器上的安装麻烦一些,在安装的过程中也遇到了不少的坑,所以在此总结一下。

    参考了不少的博客,下面列出一部分吧:

    http://blog.csdn.net/iotlpf/article/details/54175064(主要参考的这个,但是这个博客安装的过于顺利了~_~)

    http://blog.csdn.net/cybertan/article/details/8101883   ####    http://blog.csdn.net/zhyj3038/article/details/52412273(关于GCC的升级或降级问题)

    http://blog.csdn.net/10km/article/details/61191230(针对第一个连接中的网站下载不了的问题的解决方案)

    系统:Win7+Ubuntu 16.04 ,在Ubuntu下安装的, 显卡:GXT1050ti   CUDA8.0

    为了确保cuda能安装成功,首先需要确认安装前的环境是否符合要求,具体细节请查阅NVIDIA CUDA Installation Guide for Linux

    一.更换ubuntut16.04的源,这里使用的是中科大的源。

    CTRL+ALT+T, 打开终端,输入以下的命令:

    cd /etc/apt/ 
    sudo cp sources.list sources.list.backup  #做备份 
    sudo gedit sources.list
    

    然后把如下内容替换到该文件中(是替换掉,之前的就不要了):

    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse 
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse 
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse 
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse 
    deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse 
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse 
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse 
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse 
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse 
    deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
    

    然后更新源和更新已安装的包:

    sudo apt-get update 
    sudo apt-get upgrade
    

    二.降低gcc 版本(这一步如果按照链接1走的话,会遇到安装安gcc-5.3.0后,检测版本仍然是Ubuntu自带的情况)

    这里要注意的一点是ubuntu16.04的gcc版本是5.4,而cuda8.0在该系统中支持的gcc版本不超过5.3,所以第一步需要对GCC版本进行降级。 
    (1)下载gcc源码

    wget ftp://mirrors.kernel.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz
    

     以上的下载链接,反正我用的是下载不下来,所以换成用以下的链接:

    http://ftp.gnu.org/gnu/gcc/

    (2)解压 

    tar -zxvf gcc-5.3.0.tar.gz 

    (3)下载编译所需依赖项:

    cd gcc-5.3.0                    //进入解包后的gcc文件夹
    ./contrib/download_prerequisites                  //下载依赖项
    cd ..                          //返回上层目录

    (4)建立编译输出目录: 

    mkdir gcc-build-5.3.0 

    (5)进入输出目录,执行以下命令,并生成makefile文件:

    cd gcc-build-5.3.0
    ../gcc-5.3.0/configure  --prefix=/usr/local/gcc-5.3.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib
    

     注:/usr/local/gcc-5.3.0是自定的安装目录。将GCC安装在/usr/local/gcc-5.3.0目录下。为了以后的配置环境变量确立位置。

    (6)编译: 

    sudo make -j4 

    以上的编译过程大约40分钟左右。PS:最好不要在编译过程中再去做别的什么事,整个过程CPU都是满载的。

    (7)编译结束以后,我们就可以执行安装了: 

    sudo make install 
    

    (8)环境设置(这里需要将gcc的头文件和库文件指向新的版本,否则电脑用的还是Ubuntu自带的gcc)

    打开配置文件夹:

    cd $HOME
    ls -a
    sudo vi .bashrc
    

    向其中添加以下语句:

    GCCHOME=/usr/local/gcc-5.3.0               #指定新安装gcc的搜索路径
    PATH=$GCCHOME/bin:$PATH
    LD_LIBRARY_PATH=$GCCHOME/lib
    export GCCHOME PATH LLD_LIBRARY_PATH
    

    重新引导,并查看gcc版本:

    source $HOME/.bashrc
     which gcc

    会显示gcc新的路径为 /usr/local/gcc-5.3.0:

    检查gcc和g++版本 :

    gcc --version 
    g++ --version
    

    三. nvidia 驱动安装

    如果从nvidia官网下载驱动安装时,有可能重启后进入不了系统,输入我的登录密码会发现屏幕一闪,然后又重新跳回到登录界面,就是进入了login loop的状态,造成这种问题的与原因是更新后的NVIDIA驱动与现在的GPU不匹配。(连接1中的叙述,没有出现过) 
    让系统自动安装nvidia驱动有两种办法: 
    (1)第一种是进入ubuntu系统设置-软件与更新-附加驱动中选择下图所示选项进行驱动安装

     这种方法的缺点是:所安装的驱动(如图中所示nvidia-361)并不是最新版本的,以至于在最后进行样例测试的时候报错:

    cuda driver version is infufficient for cuda runtime version
    

    (2)第二种方法是添加ppa源,同时在nvidia驱动官网上查看自己GPU驱动的最新版本号(不需要下载):(连接1中的ppa源一直打不开,所以使用的另外的方案)

     1.禁用nouveau。

    Ubuntu系统集成的显卡驱动程序是nouveau,我们需要先将nouveau从linux内核卸载掉才能安装NVIDIA官方驱动。 

    因为nouveau驱动的影响,ubuntu安装后无法登入桌面,所以在ubuntu系统启动显示登录界面后,需要按ctrl+alt+F1进入tty文本模式进入下面的操作。

    由于blacklist.conf文件的属性不允许修改。所以需要先修改文件属性。 
    查看属性:

    ll /etc/modprobe.d/blacklist.conf
    

    修改属性:

    sudo chmod 666 /etc/modprobe.d/blacklist.conf
    

    用vi编辑器打开:

    sudo vi /etc/modprobe.d/blacklist.conf
    

    在文件末尾添加如下几行:

    blacklist vga16fb 
    blacklist nouveau 
    blacklist rivafb 
    blacklist rivatv 
    blacklist nvidiafb

    修改并保存文件后,记得把文件属性复原:

    sudo chmod 644 /etc/modprobe.d/blacklist.conf
    

    再更新一下内核:

    sudo update-initramfs -u
    

    修改后需要重启系统。 
    重启系统确认nouveau是否已经被屏蔽掉,使用lsmod命令查看:

    lsmod | grep nouveau
    

    lsmod命令用于显示已经加载到内核中的模块的状态信息,参见《lsmod命令》

    2.安装NVIDIA驱动。

    因为系统中不光有NVIDIA显卡还有一块集成intel显卡能正常驱动,所以经过上一步禁用nouveau驱动后,再次重启,已经系统可以正常登录进入桌面了。

    使用如下命令添加Graphic Drivers PPA:

    sudo add-apt-repository ppa:graphics-drivers/ppa
    sudo apt-get update
    

    寻找合适的驱动版本:

    ubuntu-drivers devices
    

    以上的图片是直接用的链接中的图片。我用的GTX1050ti,目前最适用的版本是nvidia-387.

    安装NVIDIA driver:
    记住给出的推荐驱动型号(带recommended选项的驱动)。 
    按ctrl+alt+F1进入tty文本模式 。
    关闭(图形)桌面显示管理器LightDM:

    sudo service lightdm stop
    

    安装nvidia driver,这一过程是需要联网的。如果网速度不好,可能要花比较长的时间。
    安装完成后重启:

    sudo apt-get install nvidia-378
    sudo reboot
    

    重启系统后,执行下面的命令查看驱动的安装状态显示安装成功:

    sudo nvidia-smi
    sudo nvidia-settings
    

    (以上图片来自连接3,所以型号不对应,其他一切正常)

    四. cuda 8.0 安装

    cuda 8.0 Downloads下载cuda 8.0 的 runfile安装包。 

    以上链接已经是9.1的了,所以提供新链接:https://developer.nvidia.com/cuda-80-ga2-download-archive.
    cd切换到下载的文件目录下进行安装: 

    sudo sh cuda_8.0.44_linux.run --override
    

    启动安装程序,一直按空格到最后,输入accept接受条款。 

    输入n不安装nvidia图像驱动,之前已经安装过了。 
    输入y安装cuda 8.0工具 。
    回车确认cuda默认安装路径:/usr/local/cuda-8.0 。
    输入y用sudo权限运行安装,输入密码 。
    输入y或者n安装或者不安装指向/usr/local/cuda的符号链接 。
    输入y安装CUDA 8.0 Samples,以便后面测试 。
    回车确认CUDA 8.0 Samples默认安装路径,该安装路径测试完可以删除。

    五,因为cdnn是NVIDIA专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计基于GPU的加速库。这里用不到cdnn,所以就没有安装,其过程也很简单,只是一个库函数的安装过程。

    六。环境变量等

     设置环境变量,终端输入:

    sudo gedit /etc/profile 
    

    在末尾加入:

    PATH=/usr/local/cuda/bin:$PATH 
    export PATH 
    

    保存后,创建链接文件(这是一个新建的链接文件):

    sudo vim /etc/ld.so.conf.d/cuda.conf 
    

    按a进入插入模式,增加下面一行:

    /usr/local/cuda/lib64 
    

    按esc退出插入模式,按:wq保存退出 。
    最后在终端输入:

    sudo ldconfig      #使链接生效 
    

    七.cuda Samples测试

    切换到CUDA 8.0 Samples默认安装路径(一般在安装目录的.../cuda/samples目录下),终端输入:

    sudo make all -j4    #(4核)
    需要几分钟的编译时间。
    完成后继续向终端输入:
    cd bin/x86_64/linux/release 
    ./deviceQuery
    

    如果看到下面画面,则成功:

    通过以上的步骤就完成了所有的工作。

    下面这部分留出来作为以后遇到问题的解决板块:

    1.遇到一个奇怪的问题:在一般用户的条件下输入:nvcc --version能够正常显示,在root的条件下,说未安装nvcc:

    解决办法是重新配置一下环境变量:

    1)查看/usr/local/cuda/bin下是否有nvcc可执行程序,如果没有说明cuda没有正常安装,需要重新安装,如果有,进入下一步。

    2)添加环境变量,打开~/.bashrc ,添加环境变量export PATH=$PATH:/usr/local/cuda/bin。

    3)再在terminal中输入nvcc --version可以看到已经可以显示为8.0版本了。

      

      

      

  • 相关阅读:
    Quartz.net任务调度
    基于Task定时检测网络本地网络状况
    java基于NIO的分散读取文件,然后统一聚合后写入文件
    基于直接缓冲区和非直接缓冲区的javaIO文件操作
    java 读取xml
    WPF 通过线程使用ProcessBar
    NPOI自适应列宽
    C#序列化与反序列化以及深拷贝浅拷贝
    Springboot feign 传递request信息
    apereo cas 小记01--服务器搭建01
  • 原文地址:https://www.cnblogs.com/laozhuang/p/8250387.html
Copyright © 2011-2022 走看看