http://www.linuxidc.com/Linux/2017-01/139320.htm

在介绍Ubuntu 16.04安装 CUDA7.5开始前,先辨析几个概念GPU、NVIDIA、NVIDIA驱动、CUDA、cudnn等,这些概念对于一个新手来说肯定是很晕的,正如我当初一样,所以我这里就稍微介绍一下这几个概念:

  • GPU:Graphics Processing Units,也就是我们常说的显卡。现在的笔记本或者台式机都会有显卡,但是能够让我们用来做并行计算的真正的GPU就只有NVIDIA出产的GPU了。
  • NVIDIA:GPU生产厂商,在运算GPU处于垄断地位。
  • NVIDIA驱动:就是NVIDIA生产的GPU想在电脑上正常使用所需的驱动。
  • CUDA:Compute Unified Device Architecture,是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并-行计算架构,该架构使GPU能够解决复杂的计算问题。我们想使用GPU进行深度学习运算的时候,必须要用到这个运算平台。
  • cudnn:CuDNN是NVIDIA专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe,ConvNet, Torch7等.

Ubuntu 16.04安装cuda7.5

部分参照:http://www.afterimage.top/2016/05/%E9%85%8D%E7%BD%AEcuda7-5-ubuntu-16-04-opencv3-1/ 
在安装之前,先说一下本人工作站的设备配置(主要是GPU的): 
设备上一共有三块GPU,一快是专门用来做显示的NVS310 
两块用来做运算的GeForce GTX TITIAN X

第一步:选择最新的nvidia驱动(很重要!!!)

   先打开计算机中的“软件和更新”,查看“附加驱动”,选择nvidia的驱动为最新的驱动。更新完之后最好重启一下。 
我曾经遇到一些错误,就是因为我的NVIDIA驱动太老了,而cuda7.5则依赖于比较新的驱动。

第二步:下载cuda

   去官网https://developer.nvidia.com/cuda-downloads 下载,选择Linux——ubuntu——15.04(我安装的时候还只支持到15.04,没有支持16.04版本的)——runfile(local)

第三步:安装PPA软件管理包工具

什么是 PPA? 
PPA,表示 Personal Package Archives,也就是个人软件包集。 
有很多软件因为种种原因,不能进入官方的 Ubuntu 软件仓库。 为了方便 Ubuntu 用户使用,launchpad.NET 提供了 ppa,允许用户建立自己的软件仓库, 自由的上传软件。PPA 也被用来对一些打算进入 Ubuntu 官方仓库的软件,或者某些软件的新版本进行测试。PPA 上的软件极其丰富,如果 Ubuntu 官方仓库中缺少您需要的某款软件,可以去 PPA 上找找看。 
我们安装的cuda可能在Ubuntu仓库中木有,所以用PPA来下载。

  1. sudo add-apt-repository ppa:xorg-edgers/ppa
  2. sudo apt-get update

第四步:执行cuda的.run文件

   cd到下载的.run文件夹执行:

  1. sudo ./cuda_7.5.18_linux.run --override

第五步:选择安装选项

   选择安装选项:(注意:应为之前已经安装过NVIDIA Display Driver的驱动了(如第一步),所以这里选择不安装NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39。如果选择安装会出现错误,并且导致安装CUDA失败。

  1.    Do you accept the previously read EULA? (accept/decline/quit): accept
  2.    You are attempting to install on an unsupported configuration. Do you wish to continue? ((y)es/(n)o) [ default is no ]: y
  3.    Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o/(q)uit): n
  4.    Install the CUDA 7.5 Toolkit? ((y)es/(n)o/(q)uit): y
  5.    Enter Toolkit Location [ default is /usr/local/cuda-7.5 ]:
  6.    Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y
  7.    Install the CUDA 7.5 Samples? ((y)es/(n)o/(q)uit): y
  8.    Enter CUDA Samples Location [ default is /home/kinghorn ]: /usr/local/cuda-7.5
  9.    Installing the CUDA Toolkit in /usr/local/cuda-7.5 ...
  10.    Finished copying samples.
  11.    ===========
  12.    = Summary =
  13.    ===========
  14.    Driver: Not Selected
  15.    Toolkit: Installed in /usr/local/cuda-7.5
  16.    Samples: Installed in /usr/local/cuda-7.5

第六步: 添加cuda到环境变量里面

  1. sudo nano /etc/profile.d/cuda.sh
  2.    export PATH=$PATH:/usr/local/cuda/bin
  3.    sudo nano /etc/ld.so.conf.d/cuda.conf
  4.    /usr/local/cuda/lib64
  5.    source /etc/ld.so.conf.d/cuda.confcd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
  6.    make
  7.    sudo ./deviceQuery
  8.    sudo ldconfig

第七步:将GCC降级或者采用暴力的方式让cuda7.5支持高版本GCC。

   由于cuda7.5不支持gcc4.9以上的版本,而ubuntu16.04默认的是gcc5,这会造成安装的失败,解决方法有两种, 
1、对gcc进行降级,让系统采用低版本的GCC,但是这种方式有一定的问题,因为Ubuntu16.04很多系统文件默认是使用gcc5编译的,因此如果用降级的方法安装完cuda后,在后期安装caffe的时候,可能会报类似于undefined的错误,这是因为你的gcc版本低,其所需的系统文件找不到。.

  1. sudo apt-get install g++-4.9
  2.    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
  3.    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
  4.    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
  5.    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
  6.    sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
  7.    sudo update-alternatives --set cc /usr/bin/gcc
  8.    sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
  9.    sudo update-alternatives --set c++ /usr/bin/g++

2、这种方式有点类似于黑箱方式,即强制让他不报错。编辑/usr/local/cuda/include/host_config.h,将其中的第115行注释掉:


  1. #error -- unsupported GNU version! gcc versions later than 4.9 are not supported!
  2. 改为
  3. //#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!

   上面就是设置gcc版本优先级的。20和10就代表你所使用的gcc、g++的版本优先级。

第八步:测试是否安装成功

执行如下指令,正常情况下会出现设备中所有的GPU,并把每个GPU的信息打印出来。

  1. nvidia-smi

   如果没有出现错误之类的话,就说明安装成功了。

第九步:测试cuda的Samples


cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery 
   make 
   sudo ./deviceQuery 

   如果显示的是一些关于GPU的信息,则说明安装成功了。

Ubuntu 16.04安装cuda7.5 GCC的更多相关文章

  1. Ubuntu 16.04 安装 Kodi v17 “Krypton” Alpha 2

    Ubuntu 16.04 安装 Kodi v17 “Krypton” Alpha 2:sudo add-apt-repository ppa:team-xbmc/xbmc-nightlysudo ap ...

  2. Ubuntu 16.04安装QQ国际版图文详细教程

            因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全 ...

  3. Ubuntu 16.04 安装Mysql 5.7 踩坑小记

    title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql ...

  4. Ubuntu 16.04安装Matlab 2016b教程

    由于代码需要依赖Linux环境,只好尝试着装MATLAB,然而各种问题接踵而至,开始了由MATLAB引发的三天Linux探寻之旅-- 下载Matlab 2016b for Linux https:// ...

  5. ubuntu 16.04 安装 tensorflow-gpu 包括 CUDA ,CUDNN,CONDA

    ubuntu 16.04 安装 tensorflow-gpu 包括 CUDA ,CUDNN,CONDA 显卡驱动装好了,如图: 英文原文链接: https://github.com/williamFa ...

  6. ROS_Kinetic_01 在ubuntu 16.04安装ROS Kinetic 2017.01更新

    ROS_Kinetic系列学习(一),在ubuntu 16.04安装ROS Kinetic. Celebrating 9 Years of ROS! ubuntu16.04已经发布半年多了,ROS的K ...

  7. Ubuntu 16.04 安装 VMware Tools(解决windows和Ubuntu之间不能互相复制粘贴文件的问题)

    Ubuntu 16.04安装虚拟工具VMware Tools,指的是在虚拟机VMWare安装Ubuntu 16.04后再安装VMware Tools的过程.很多人接触Linux都是从虚拟机开始,而安装 ...

  8. Ubuntu 16.04安装JDK(转载)

    1.简单的安装方法 安装JDK的最简单方法应该就是使用apt-get来安装了,但是源一般是OpenJDK,如果需要安装Oracle的JDK这种方法就不合适了,直接跳过看下面的章节. 1.使用ctrl+ ...

  9. Ubuntu 16.04 安装Mysql数据库

    系统环境 Ubuntu 16.04; 安装步骤 1.通过以下环境安装mysql服务端与客户端软件 sudo apt-get install mysql-server apt-get isntall m ...

随机推荐

  1. Bootstrap开发模板

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  2. Python+Selenium 自动化实现实例-模块化调用

    public 目录存一些公共模块,供用例调用.login.py 内容如下: # coding=utf-8 import time # login def login(driver): driver.f ...

  3. poj 1041(字典序输出欧拉回路)

    John's trip Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8641   Accepted: 2893   Spe ...

  4. beego小技巧两则:通过命令行自定义端口和环境,url中带有中划线处理

    1,通过命令行自定义端口和环境 先用flag提取参数,如果要环境,就反向注进去, 如果是端口,就打到beego.Run函数里去. 2,在作router里的url解析时,如果URL中含有-中划线,用严格 ...

  5. django orm如何作一个优雅一点的filter?

    如果有N多fitler条件, 单独放在一个长语句里显然不好看. 还好, django支持字典方式的过滤条件, 写法大约与单独的长语里差不多. 如下: def get_queryset(self): f ...

  6. Eclipse的SVN插件与本地SVN客户端关联不上

    问题:当我们用SVN客户端把代码更新到本地,并导入到eclipse之后,却发现我们的SVN插件并没有起作用(没有代码入库.修改等小图标的显示,也没有check in,update等功能菜单).如果我们 ...

  7. [笔记]用gdb调试core dump

    总是隔一段时间才写一次C++,有些东西老是用完就忘了……记一下如何用gdb来调试core dump免得到时候又忘记. 首先需要设置core file的大小,默认是0所以不设不会生成core file ...

  8. 尝试 TFS Express 2012.3

    之前一直使用SVN做版本管理,但是只能管理代码.之前的一份工作,只用了TFS来管理,可以将任务与代码集成管理,很是方便,只是安装太过于繁琐,现在的公司人少,不想费那么多事. 最关键的,就是安装TFS需 ...

  9. 易普优APS(高级计划排程)演绎饭局模型(通俗的告诉您ERP计划与APS计划的区别)

    一天中午,老张突然回到家里对妻子说:“亲爱的老婆,晚上几个同事要来家里吃饭.这次我专门回家来要用最先进的ERP理念来完成咱家的请客过程了,要把这次宴会搞成一次ERP家宴.你看,我已经用CRM客户关系管 ...

  10. python的多线程threading

    多线程threading 1.Thread创建线程: 上代码: #!/usr/bin/env python3 import threading import time def A(): t_name ...