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主要具有以下两个方面的作用:

  1. 提供向C这样的标准语言的扩展,从而实现并行算法的简单实现。通过使用CUDA C/C++可以是编程人员专注于算法的并行化而不是程序本身的实现
  2. 支持应用程序同时使用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具有两种安装方式:

  1. distribution-specific packages方式,可以和系统的原生库管理系统对接
  2. 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方式

抱歉了各位,本猪猪有些累了,需要休息系。稍后再来补充。

参考文档

  1. cuda-installation-guide-linux

Cuda9.0安装的更多相关文章

  1. Ubuntu16.04+cuda9.0安装教程

    1.安装NVIDIA驱动 首先去官网(http://www.nvidia.cn/Download/index.aspx?lang=cn)查找适配自己电脑GPU的驱动,我的电脑驱动版本如下: 执行如下语 ...

  2. win10+py3.6+cuda9.0安装pytorch1.1.0

    参考:清华源失效后如何安装pytorch1.01 GPU版本的安装指令为: conda install pytorch torchvision cudatoolkit=9.0 -c pytorch 这 ...

  3. Ubuntu18.04+CUDA9.0+cuDNN7.1.3+TensorFlow1.8 安装总结

    Ubuntu18.04发行已经有一段时间了,正好最近Tensorflow也发布了1.8版本,于是决定两个一起装上,以下是安装总结,大致可 以分为5个步骤 确认当前软件和硬件环境.版本 更新显卡驱动,软 ...

  4. win10+Anaconda3+CUDA9.0+CUDNN7.1+TensorFlow-gpu1.9+Pycharm

    想在win10上运行下YOLO的例子,要先配置环境,折腾了两天,终于好了,整理下自己觉得有用且正确的流程. win10+Anaconda3+CUDA9.0+CUDNN7.1+TensorFlow1.9 ...

  5. Ubuntu 18.04 RTX2080(ti) + tensorflow-gpu + cuda9.0 + gcc5 兼容性问题解决

    0.下载display driver.cuda和cudnn RTX2080 Display Driver cuda cudnn 1. 禁止系统默认的显卡驱动 打开系统黑名单 sudo gedit /e ...

  6. Ubuntu16.04安装cuda9.0+cudnn7.0

    Ubuntu16.04安装cuda9.0+cudnn7.0 这篇记录拖了好久,估计是去年6月份就已经安装过几遍,然后一方面因为俺比较懒,一方面后面没有经常在自己电脑上跑算法,比较少装cuda和cudn ...

  7. 深度学习环境搭建(ubuntu16.04+Titan Xp安装显卡驱动+Cuda9.0+cudnn+其他软件)

    一.硬件环境 ubuntu 16.04LTS + windows10 双系统 NVIDIA TiTan XP 显卡(12G) 二.软件环境 搜狗输入法 下载地址 显卡驱动:LINUX X64 (AMD ...

  8. 深度学习环境配置:Ubuntu16.04安装GTX1080Ti+CUDA9.0+cuDNN7.0完整安装教程(多链接多参考文章)

    本来就对Linux不熟悉,经过几天惨痛的教训,参考了不知道多少篇文章,终于把环境装好了,每篇文章或多或少都有一些用,但没有一篇完整的能解决我安装过程碰到的问题,所以决定还是自己写一篇我安装过程的教程, ...

  9. 安装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 ...

随机推荐

  1. java源码-HashMap类设计

    map(内部interface Entry<K,V>)->abstractMap(定义视图 entrySet抽象方法)->hashMap(静态内部类Node(继承Entry&l ...

  2. debian中安装pip

    sudo apt upate sudo apt-get install python3-pip

  3. Python浮点型数据小数点的取舍

    python默认的是17位小数的精度 1.round()内置方法 π=3.1415926535 new_num=round(π,2)     #四舍五入保留两位小数 print(new_num)    ...

  4. 手写一个简单到SpirngMVC框架

    spring对于java程序员来说,无疑就是吃饭到筷子.在每次编程工作到时候,我们几乎都离不开它,相信无论过去,还是现在或是未来到一段时间,它仍会扮演着重要到角色.自己对spring有一定的自我见解, ...

  5. 8 Spring / Spring MVC / Mybatis 框架相关知识点

    1)Spring 的 IOC 和 AOP 有了解吗? IOC:控制反转,不需要手动 new 对象,将其交给 Spring 容器,降低程序耦合度. AOP:面向切面编程,动态代理技术.

  6. 前端数据Mock

    参考链接:https://www.clloz.com/programming/front-end/js/2019/05/10/data-mock/?utm_medium=hao.caibaojian. ...

  7. mysql——操作数据库

    一.查看数据库 show databases; 二.创建数据库 create database 数据库名; 三.删除数据库 drop database 数据库名; 四.查看数据库存储引擎 show e ...

  8. 分享个昨天学的,sqlserver查表的所有列的列名,类型,长度的sql

     select a.name as 列名, a.length as 长度,b.name as 类型 from syscolumns a left join systypes b on a.xtype  ...

  9. C++调用windowsAPI实现目录zip压缩

    TCHAR zipname[] = "C:\\bcel"; TCHAR zipfile [FILENAME_MAX]; sprintf(zipfile, "%s.zip& ...

  10. 防火墙(入站规则)C++修改方法 以解决服务器无法连接问题

    为啥要关注防火墙 今天项目中的p2p直连遇到了问题.经过排查,发现充当服务器的一端进入listen状态后,另外的客户端一端connect失败. 错误码10060(超时). 开始时怀疑客户端connec ...