Cuda9.0安装
CUDA 9.0安装笔记
最近实验室新购买两块K80的GPU。作为好奇的小猪,当然会自报奋勇去配置环境。在这篇博客中将会介绍在centos7下配置CUDA 9.0的步骤。
1. 什么是CUDA?
引用官方介绍
CUDA® is a parallel computing platform and programming model invented by NVIDIA. It enables dramatic increases in computing performance by harnessing the power of the graphics processing unit (GPU).
通过这句话可以了解到,CUDA是一个由NVIDIA公司发明的并行计算平台和编程模型。它利用图形处理单元(GPU)的强大功能,使计算性能大幅提高。
cuda主要具有以下两个方面的作用:
- 提供向C这样的标准语言的扩展,从而实现并行算法的简单实现。通过使用CUDA C/C++可以是编程人员专注于算法的并行化而不是程序本身的实现
- 支持应用程序同时使用CPU和GPU进行异构计算。应用程序的串行部分运行在CPU上,并行部分则运行在GPU上。
总之,CUDA为我们提供了操作GPU的high level接口,通过调用这接口可以简化程序的编写过程。
2. 安装环境介绍
| 项目 | - |
|---|---|
| 操作系统 | CentOS Linux release 7.4.1708 (Core) |
| 内核版本 | 3.10.0-693.5.2.el7.x86_64 |
| 内存 | 128GB |
| 硬盘 | 6TB |
| 运算卡 | K80 |
3. 安装CUDA 9.0
安装CUDA 9.0分为两步:1、安装依赖环境 2、安装CUDA 9.0。
3.1. 安装依赖环境
通过lspci | grep -i nvidia查看机器是否已经识别出GPU卡。如果没有显示GPU卡,则需要运行update-pciids更新一下。

通过运行gcc --version检测本机是否已经安装了gcc 4.8.5。如果没有安装gcc 4.8.5则通过yum install gcc gcc-c++进行安装。
安装kernel headers和相关开发包
yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
好,到现在为止依赖环境已经安装的差不多了。
3.2. 安装CUDA 9.0
CUDA具有两种安装方式:
- distribution-specific packages方式,可以和系统的原生库管理系统对接
- distribution-independent package方式,适应更多的Linux系统,不过不更新系统的原生库管理系统
本猪猪比较好奇,所以两种方法都进行了测试,所以接下来将会分别介绍两种安装方式。
如果你的机器以前安装过CUDA,则需要将老版本的CUDA卸载掉,下面是卸载方式。因为本猪猪用的是崭新的机器,所以就先跳过这一步啦。
# 1. 通过runfile方式安装的
# 卸载cuda toolkit
sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl
# 卸载NVIDIA 驱动
sudo /usr/bin/nvidia-uninstall
# 2. 通过RPM/Deb方式安装的
sudo yum remove cuda* #Redhat/CentOS
sudo apt-get --purge remove cuda* #Ubuntu
3.2.1. distribution-specific packages方式
1、安装DKMS依赖:
从fedoraproject上面下载DMKS安装包,Centos7 对应的安装包路径为http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/d/dkms-2.4.0-1.20170926git959bd74.el7.noarch.rpm。
安装DKMS依赖yum install -y elfutils-libelf-devel。
安装DKMS包rpm -ivh dkms-2.4.0-1.20170926git959bd74.el7.noarch.rpm。
2、安装元数据包源:
下载地址:cuda-repo-rhel7-9.0.176-1.x86_64.rpm)
安装:sudo rpm -ivh cuda-repo-rhel7-9.0.176-1.x86_64.rpm
3、更新元数据
sudo yum clean expire-cache
sudo yum update
4、安装CUDA
直接运行一下命令进行安装,当然如果你不放心的话,可以先执行sudo yum info cuda查看CUDA包的相关信息。
sudo yum install cuda
sudo yum update cuda-drivers
好啦,现在已经安装成功啦!
运行nvidia-smi查看显卡信息,试试?

运行cat /usr/local/cuda/version.txt查看CUDA版本,试试?

3.2.2. distribution-independent package方式
抱歉了各位,本猪猪有些累了,需要休息系。稍后再来补充。
参考文档
Cuda9.0安装的更多相关文章
- Ubuntu16.04+cuda9.0安装教程
1.安装NVIDIA驱动 首先去官网(http://www.nvidia.cn/Download/index.aspx?lang=cn)查找适配自己电脑GPU的驱动,我的电脑驱动版本如下: 执行如下语 ...
- win10+py3.6+cuda9.0安装pytorch1.1.0
参考:清华源失效后如何安装pytorch1.01 GPU版本的安装指令为: conda install pytorch torchvision cudatoolkit=9.0 -c pytorch 这 ...
- Ubuntu18.04+CUDA9.0+cuDNN7.1.3+TensorFlow1.8 安装总结
Ubuntu18.04发行已经有一段时间了,正好最近Tensorflow也发布了1.8版本,于是决定两个一起装上,以下是安装总结,大致可 以分为5个步骤 确认当前软件和硬件环境.版本 更新显卡驱动,软 ...
- win10+Anaconda3+CUDA9.0+CUDNN7.1+TensorFlow-gpu1.9+Pycharm
想在win10上运行下YOLO的例子,要先配置环境,折腾了两天,终于好了,整理下自己觉得有用且正确的流程. win10+Anaconda3+CUDA9.0+CUDNN7.1+TensorFlow1.9 ...
- Ubuntu 18.04 RTX2080(ti) + tensorflow-gpu + cuda9.0 + gcc5 兼容性问题解决
0.下载display driver.cuda和cudnn RTX2080 Display Driver cuda cudnn 1. 禁止系统默认的显卡驱动 打开系统黑名单 sudo gedit /e ...
- Ubuntu16.04安装cuda9.0+cudnn7.0
Ubuntu16.04安装cuda9.0+cudnn7.0 这篇记录拖了好久,估计是去年6月份就已经安装过几遍,然后一方面因为俺比较懒,一方面后面没有经常在自己电脑上跑算法,比较少装cuda和cudn ...
- 深度学习环境搭建(ubuntu16.04+Titan Xp安装显卡驱动+Cuda9.0+cudnn+其他软件)
一.硬件环境 ubuntu 16.04LTS + windows10 双系统 NVIDIA TiTan XP 显卡(12G) 二.软件环境 搜狗输入法 下载地址 显卡驱动:LINUX X64 (AMD ...
- 深度学习环境配置:Ubuntu16.04安装GTX1080Ti+CUDA9.0+cuDNN7.0完整安装教程(多链接多参考文章)
本来就对Linux不熟悉,经过几天惨痛的教训,参考了不知道多少篇文章,终于把环境装好了,每篇文章或多或少都有一些用,但没有一篇完整的能解决我安装过程碰到的问题,所以决定还是自己写一篇我安装过程的教程, ...
- 安装Cuda9.0+cudnn7.3.1+tensorflow-gpu1.13.1
我的安装版本: win10 x64 VS2015 conda python 3.7 显卡 GTX 940mx Cuda 9.0 cudnn v7.3.1 Tensorflow-gpu 1.13.1 1 ...
随机推荐
- (转)java8实现对象列表去重
java8实现列表去重,java8的stream和lambda的使用实例 通过普通的方式也可以达到去重的效果,但是借助java8新特性可以很方便的实现列表去重,测试demo如下 实体类: public ...
- 算法之顺序、二分、hash查找
算法之顺序.二分.hash查找 一.查找/搜索 - 我们现在把注意力转向计算中经常出现的一些问题,即搜索或查找的问题.搜索是在元素集合中查找特定元素的算法过程.搜索通常对于元素是否存在返回 Tru ...
- python去掉空格和 b
直接看下面实例: In [52]: output=subprocess.check_output(["head -c 16 /dev/urandom | od -An -t x | tr - ...
- jmeter设置全局变量与正则表达式提取器
接口测试中,很多接口都要带上登录后的token才能正常发送请求,这里记录一下登录获取token设置为全局变量供其他接口使用 登录后返回信息信息中会有一个token值,添加后置处理器中的正则表达式提取t ...
- C#与Unity 数据存储
使用Json存储数据 1.创建Json文件,直接创建txt文件,将后缀名改为xx.json 2.Json文件的数据格式,中括号表示列表,即中括号下的每个逗号隔开的内容都是列表的每个元素,花括号表示对象 ...
- C#编程 线程,任务和同步(1) 基础认识
线程 对于所有需要等待的操作,例如移动文件,数据库和网络访问都需要一定的时间,此时就可以启动一个新的线程,同时完成其他任务.一个进程的多个线程可以同时运行在不同的CPU上或多核CPU的不同内核上. 线 ...
- 1.2.2 OSI参考模型 上
一.HCNA网络技术学习指南 为了实现网络的互通及各种各样的网络应用,网络设备需要运行各种各样的协议已实现各种各样具体的功能.面对各种各样且数量繁多的功能,我们可以从网络架构的角度,引入功能分层的模型 ...
- C++之用程序理解浅拷贝
C++中的浅拷贝是产生很多问题的根本原因,其根本原因是在有指针的时候,只是拷贝了一个指针的值,多个指针指向同一块内存区域,当free内存时,造成其他指针指向的空间不存在.结合构造函数和析构函数理解浅拷 ...
- [c++] 用宏定义一个函数
要点:变量都用括号括起来,防止出错,结尾不需要;.在实际编程中,不推荐把复杂的函数使用宏,不容易调试.多行用\ 要写好C语言,漂亮的宏定义是非常重要的.宏定义可以帮助我们防止出错,提高代码的可移植性和 ...
- linux 使用tmux
一. 什么是tmux 1.1. tmux 是两个单词的缩写,即“Terminal MultipleXer”,意思是“终端复用器“ 1.2. tmux 结构 1.2.1. tmux主要由三层: < ...