原文转自:http://blog.csdn.net/masa_fish/article/details/51882183

CUDA7.5和CUDA8.0的安装过程是一毛一样的。所以如果安装CUDA8.0的同学,直接将下文中的所有7.5替换为8.0即可。


折腾了好多天,前后重装了大概六、七次Ubuntu,终于上把CUDA安装好了,被坑了好多次,也走了不少弯路。
第一次发帖,还请多指教。


【环境】
笔记本:ThinkPad T450 X86_64
显卡:主显 Intel HD Graphics 5500 ; 独显 NVIDIA GT 940M
系统环境:Ubuntu14.04 64位、Windows7 64位 双系统
CUDA 版本: 7.5
其他:Ubuntu中不存在已经安装的CUDA


先说说自己遇到的大坑吧,安装完CUDA之后总是遇到登录界面循环问题:输入密码后又跳回密码输入界面。尝试了网上的多种说法无解,最终发现我的问题是出在双显卡这里。最后是在官方安装文档中找到了答案。

问题解决方案:
在安装cuda时,会出现提示,询问你是否需要安装 openGL Libraries。如果你的电脑是双显,而且用来显示的那块GPU不是NVIDIA,则OpenGL Libraries就不应该安装,否则不是NVIDIA的那块GPU使用的OpenGL Libraries会被覆盖,然后GUI就无法工作了。


先谈谈关于安装CUDA的几点感受吧

关于 CUDA的安装,网上有特别多的安装帖子,我在安装的时候也参考了很多。你会发现网上很多的安装帖子,一般只做十几个操作就完事了。但是CUDA的官方安装文档却非常冗长,有四十多页,别觉得它是废话,其实都是干货。

网上的安装帖子之所以精炼,是因为它只涵盖了必须的安装步骤,跳过了许多的检查操作(例如:检查电脑中是否已安装CUDA需要依赖的软件、是否已经卸载会与CUDA产生冲突的软件)等。如果你足够幸运,电脑里上恰好该有的有,不该有的没有,那这么做没问题,但通常情况下你并没有那么走运。

CUDA这个东西需要依赖的、牵着的东西特别多,如果没有做好检查,则在安装时候特别容易出现各种各样的冲突,且一旦冲突发生,即使卸载CUDA也不能解决问题,只能重装系统。
我最后就是参考CUDA的官方文档安装成功的。


总结一下,我的安装建议是

1) 一定要下一份CUDA官方的安装文档,按照它的步骤一步步慢慢来,不可偷懒
CUDA 7.5 官方安装文档下载
2) 在安装之前一定要详细检查自己的系统环境、软件是否符合CUDA的安装要求。不要存有侥幸心理,跳过检查步骤
3) 每进行一项操作,都检查一下该项操作是否成功

下面分享一下我的安装步骤。基本跟CUDA的官方安装文档的操作是一致的,不同的地方都有特别注明。

安装CUDA主要分三大环节。
一、安装前的环境准备和检查
二、安装CUDA
三、安装完的校验。

1、安装Ubuntu系统14.04

新安装完的14.04系统会提示很多更新项。
网上有很多帖子说不建议更新,说更新过后会导致安装CUDA发生系统界面循环登录的问题。
但是我更新后,并没有遇到任何问题。

2、检查自己的电脑环境是否具备安装CUDA的条件

a) 检查自己的GPU是否是CUDA-capable

在终端中输入: $ lspci | grep -i nvidia ,会显示自己的NVIDIA GPU版本信息
去CUDA的官网查看自己的GPU版本是否在CUDA的支持列表中

b) 检查自己的Linux版本是否支持 CUDA(Ubuntu 14.04没问题)

c) 检查自己的系统中是否装了gcc

在终端中输入: $gcc –version 可以查看自己的gcc版本信息

d) 检查是否安装了kernel header和 package development

在终端中输入: $uname –r 可以查看自己的kernel版本信息
在终端中输入:$ sudo apt-get install linux-headers-$(uname -r)
可以安装对应kernel版本的kernel header和package development

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

3、 选择安装方式

CUDA提供两种安装方式:package manager安装和runfile安装
我本来选的是 package manager 安装,这种方法相对简单,但尝试了几次都失败。后来是转换到runfile安装才成功的。因此此处只介绍runfile安装方式。

下载cuda安装包:cuda官网下载,根据系统信息选择对应的版本,runfile安装的话最后一项要选择 runfile文件

CUDA 7.5 下载链接

PS: 一定要下载到英文文件夹(目录不能含中文)

4、runfile安装cuda

a) 禁用 nouveau

终端中运行:$ lsmod | grep nouveau,如果有输出则代表nouveau正在加载。

(1)直接移除这个驱动(备份出来)

$ mv /lib/modules/4.4.0-31-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko  /lib/modules/4.4.0-31-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.org

PS: 红色部分每个版本是不一样的,可以cd过去看一下是什么版本

(2)重新加载

$ update-initramfs -u

(3)重启

设置完毕可以再次运行 $ lsmod | grep nouveau 检查是否禁用成功,如果运行后没有任何输出,则代表禁用成功。

b) 重启电脑,到达登录界面时,alt+ctrl+f1,进入text mode,登录账户

c) 输入 $ sudo service lightdm stop 关闭图形化界面

d) 切换到cuda安装文件的路径,运行$ sudo sh cuda_7.5.18_linux.run

按照提示一步步操作

遇到提示是否安装openGL ,选择no(如果你的电脑跟我一样是双显,且主显是非NVIDIA的GPU需要选择no,否则可以yes)
其他都选择yes或者默认
安装成功后,会显示installed,否则会显示failed

e) 输入 $ sudo service lightdm start 重新启动图形化界面。

Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了。

f) 重启电脑。检查Device Node Verification

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

g) 设置环境变量。

终端中输入 $ sudo gedit /etc/profile
在打开的文件末尾,添加以下两行。

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

保存文件。

这里有点与官方安装文档稍有不同,需要说明:

官方文档里说只需在终端中运行上述两条export语句即可,但如果不将它们不写入/etc/profile文件的话,这样的环境变量在你退出终端后就消失了,不起作用了,所以写入才是永久的做法。

h) 重启电脑,检查上述的环境变量是否设置成功。

终端中输入 : $ env
在输出的环境变量中检查有无上述 g) 中设置的变量,如果有则代表设置成功。


到此为止,CUDA的安装算是告一段落了。为了保险起见,建议进行下述的检查工作,确保真正的安装成功。

5、 安装完毕后的检查工作。

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
看到类似如下图片中的显示,则代表成功


最后祝大家都能顺利安装CUDA~~

ubuntu14.04 安装 CUDA 7.5 / CUDA 8.0的更多相关文章

  1. ubuntu14.04安装cuda

    1 装系统时候注意,另外14.04要好于12.04,自带了无线驱动 ubuntu14.04安装完不要update 2 安装cuda和cudnn http://blog.csdn.net/l297969 ...

  2. Ubuntu14.04安装配置web/ftp/tftp/dns服务器

    目录: 1.安装ftp服务器vsftpd --基于tcp,需要帐号密码 2.安装tftp服务器tftpd-hpa,tftp-hpa --udp 3.web服务器--使用Apache2+Mysql+PH ...

  3. Ubuntu14.04安装intel集显驱动

    Ubuntu14.04安装intel集显驱动 标签(空格分隔): ubuntu linux 驱动安装 1.查看本机显卡型号 使用lspci命令来获取PCI接口硬件信息 o@o-pc:~$ lspci ...

  4. Ubuntu14.04安装中文输入法以及解决Gedit中文乱码问题

    1 设置中文显示环境 1. 打开System Settings 2. 打开Personal-> Language Support. 会弹出如下对话框,提示你“语言支持没安装完整”. 点击“Rem ...

  5. Ubuntu14.04安装配置ndnSIM

    Ubuntu14.04安装配置ndnSIM 预环境 Ubuntu14.04官方系统 请先使用sudo apt-get update更新一下源列表 安装步骤 安装boost-lib sudo apt-g ...

  6. Ubuntu14.04 安装QQ国际版wine-qqintl

    Ubuntu14.04安装qq国际版方式: 首先下载,链接为:  https://pan.baidu.com/s/1boPitVD 密码:jp1j 也可去Ubuntu中文的Kylin(优麒麟)官网下载 ...

  7. 一.ubuntu14.04安装、亮度设置、显卡设置等一体化讲解

    一.ubuntu14.04安装 安装步骤很简单的,相信你只要知道并且决定安装ubuntu,你就不会在安装上有问题,下载网址 http://www.ithome.com/html/soft/81539. ...

  8. Ubuntu14.04安装samba

    Ubuntu14.04安装samba 按照惯例,首先介绍Samba.Samba是在Linux系统上实现的SMB(Server Messages Block,信息服务块)协议的一款免费软件.它实现在局域 ...

  9. Ubuntu14.04安装有道词典

    Ubuntu14.04安装有道词典之前要更新系统: sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade 在有道官网下载 ...

  10. ubuntu14.04 安装redis 2.8.9

    ubuntu14.04安装前准备工作,为了保证安装顺利,请先执行apt-get update 然后安装make 和gcc(已安装的可忽略) apt-get install make apt-get i ...

随机推荐

  1. CSS覆盖公共样式中的某个属性

    CSS如何覆盖公共样式中的某个属性?利用CSS样式的优先级. 如下例子: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition ...

  2. 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)

    洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d| ...

  3. 07 zabbix之map拓扑标签中macro应用

    zabbix之map拓扑标签中macro应用 请先预习网地图map : 请点击 macro官方文档介绍 : 请点击 1.  Map labels(拓扑图标签)主要注意以下Macros(宏):  MAC ...

  4. android 面试准备基础题

    1.    请描述下Activity的生命周期. 必调用的三个方法:onCreate() --> onStart() --> onResume(),用AAA表示 )父Activity启动子 ...

  5. CF401D Roman and Numbers

    题意: 将n(n<=10^18)的各位数字重新排列(不允许有前导零) 求 可以构造几个mod m等于0的数字 分析: 状态压缩 状态: 设f[s][k]表示对于选择数字组合的s来说,%m等于k的 ...

  6. win7(旗舰版)下,OleLoadPicture 加载内存中的图片(MagickGetImageBlob),返回值 < 0

    昨天去三哥家,想把拍好的照片缩小一下,我用很久前写的一个软件进行缩小,然后进行一次效果预览,这个时候弹出: Call OleLoadPicture Fail - loadPictureFromMW 奇 ...

  7. webstorm的一些小技巧

    1.怎样禁止自动保存文件: 设置--->外观和行为--->常规--->Synchronization--->要么四个全不选,要么把最后两个不选 Settings--->A ...

  8. GoLang基础数据类型-切片(slice)详解

    GoLang基础数据类型-切片(slice)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数组的长度在定义之后无法再次修改:数组是值类型,每次传递都将产生一份副本.显然这种数 ...

  9. Nginx负载均衡中后端节点服务器健康检查的一种简单方式

    摘自:https://cloud.tencent.com/developer/article/1027287 一.利用nginx自带模块ngx_http_proxy_module和ngx_http_u ...

  10. linux中vi的基本操作

    在vi如何查找文字 vi redis.config 在命令模式下 按 / 然后最下方会出现/ 打出你所需要查找的字.n 是代表查找下一个 如何撤销上一步的操作 1,退出编辑操作 按esc键 2,按u ...