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. 六十五:CSRF攻击与防御之CSRF防御之form表单防御

    防御原理,将csrf_token放到session中,再将session放到cookie中 实现: from flask_wtf import CSRFProtect # flask_wtf 已经提供 ...

  2. 如何在终端使用后台运行模式启动一个Linux应用程序

    这是一个篇幅不长但是十分有用的教程,可以帮助你在终端启动一个Linux应用程序,并且使终端窗口不会丢失焦点. 我们有很多可以在Linux系统中打开一个终端窗口的方法,这取决于你的选择以及你的桌面环境. ...

  3. 配置文件c3p0-config.xml

    <c3p0-config> <!-- 使用默认的配置读取连接池对象 --> <default-config> <!-- 连接参数 --> <pro ...

  4. 自定义 filter simple_tag inclusion_tag 总结

    在已经注册的app下创建templatetags的python包 在包内创建py文件 my_tags.py 在py文件中写代码: from django import template registe ...

  5. (转)python基础学习-----生成器和迭代器

    在Python中,很多对象都是可以通过for语句来直接遍历的,例如list.string.dict等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了 ...

  6. [python] super() 用法

    问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如下: class A: def __init__(self): print & ...

  7. 21天学通Python课后实验题4.6

    21天学通Python课后实验题4.6 1. 编程实现用户输入一门课程的两门子课程成绩,第一门子课程60分以上,则显示“通过”,第一门子课程不及格,则显示“未通过”,第一门子课程及格,而第二门子课程不 ...

  8. Python中的 _init__和 _new__的区别

    使用python 的面向对象写过程序之后,相信童鞋对 __init__ 方法已经非常的熟悉了.这个方法通常是 在初始化一个实例的时候使用的. 例如: class MysqlConnector(obje ...

  9. Maven简单项目及命令使用

    项目结构如下 HelloWorld.java package pak1; public class HelloWorld { public String sayHello(){ return &quo ...

  10. Spring添加声明式事务

    一.前言 Spring提供了声明式事务处理机制,它基于AOP实现,无须编写任何事务管理代码,所有的工作全在配置文件中完成. 二.声明式事务的XML配置方式 为业务方法配置事务切面,需要用到tx和aop ...