CentOS 7.9安装Tesla M4驱动、CUDA和cuDNN

fbfa22f7e6a080ac7482ed15cc4a457e.gif

正文共:1333 字 21 图,预估阅读时间:2 分钟

上次我们在Windows上尝试用Tesla M4配置深度学习环境TensorFlow识别GPU难道就这么难吗?还是我的GPU有问题?,但是失败了。考虑到Windows本身就会调用图形显示,可能会有影响,所以我们本次换用Linux系统(CentOS 7.9)来尝试一下。

a75141b46acf3600d798e1c33523472f.png

1、下载软件

结合上次的经验教训,我们本次先确定合适的CUDA(Compute Unified Device Architecture) Toolkit的版本。

Tesla M4 GPU(GM206GL)是一款基于Maxwell架构的入门级Tesla GPU,发布于2015年6月切换到WDDM模式,Tesla M4可以用于本地显示输出了!。由于GPU高速发展,2016年Nvidia就发布了基于Pascal架构的Tesla P4,其在性能和功耗方面相比Tesla M4都有大幅提升,因此逐渐取代Tesla M4成为主流;2018年,Nvidia又发布了基于Turing架构的Tesla V100 GPU,在性能和功耗方面又有大幅提升,并逐渐取代了Tesla P4成为主流。一般来讲,认为Tesla M4的生命周期大约3年,即从2015年发布到2018年淘汰。

Tesla M4使用的是Maxwell架构,但因为其生命周期较短,所以官网介绍并非所有Maxwell架构GPU都支持所有CUDA版本和cuDNN版本。我们在Nvidia官方的CUDA兼容性列表中可以查看:

https://developer.nvidia.com/cuda-gpus

7d40cedb720a30c549479bbc95898712.png

可以看到,Tesla M系列GPU只列出了M40和M60两款,但是M40和M4的主要差别在于规格和性能差异,所以理论上讲,M4应该也算是支持的。

然后我们到CUDA的下载页面找一下合适的版本。

https://developer.nvidia.com/cuda-toolkit-archive

3fc7bc2a54dad134d3936b0684c05a44.png

根据时间推断,应该是介于2015年到2019年中间,符合要求的最低版本应该不低于7.0,最高版本应该不低于10.0,网传是11.7版本。为了保险起见,我们先下载2018年9月发布的10.0版本试一下。

695808d7b44a884662c25e51ef1899fd.png

CUDA支持local(本地)和network(网络)两种安装方式。本地安装程序是自包含的,包括每个组件。它是一个大文件(runfile文件大小为2.0 GB,补丁包为3.3 MB;rpm文件大小为1.9 GB,补丁包为3.6 MB),只需要从互联网上下载一次,就可以安装在多个系统上,推荐在低带宽或隔绝互联网连接环境下试用。

而网络安装程序是一个小型安装程序客户端(3.3 KB),它会在安装过程中下载所需的组件。下载速度更快,但每次新安装时都需要重新下载每个组件。我先给大家简单展示一下使用网络安装程序安装的效果。

rpm -i cuda-repo-rhel7-10.0.130-1.x86_64.rpm
yum clean all
yum install -y cuda

f387e615ca6a412ff1165715f6530a7a.png

可以看到,安装文件还是比较大的,下载文件大小为4.3 GB,比本地下载的文件还大,安装占用空间为8.1 GB,主要是下载时间太长。

cd9ee959ff91a5dc17d8c33c259999a7.png

所以,还是推荐大家换用runfile或rpm进行安装。

确认完CUDA版本,就可以去下载GPU驱动了,在下载页面,我们选择型号为Tesla M4,操作系统选择为RHEL 7,CUDA版本选择为10.0,然后搜索驱动。

181201d5c403437fb0b67ddcbeb9b064.png

在驱动下载页面,下载好驱动文件备用。

212f8b0a677e970f2c79af0daa598924.png

对应的,还建议安装一下cuDNN(CUDA Deep Neural Network library)扩展,列表页面如下:

https://developer.nvidia.com/rdp/cudnn-archive

dd620ce68161e76cf2b8662a1a657a8f.png

因为GPU驱动是在2019年9月份发布的,在这中间,我们找几个和CUDA 10.0相匹配、并且发布时间在2019年的,最终选定同样是2019年发布的7.6.4版本,应该是可以匹配的。

f1dc84a497660adc83e5638be2b86812.png

选择下载Linux版本。

525c7246f78c34b55371918aea60c7a7.png

2、检查配置系统环境

软件都下载好之后,我们先检查一下系统。在安装NVIDIA驱动之前,需要确保安装了epel-release以便后续安装依赖包。

yum install -y epel-release

d15a36caad7bc69f8cee21120116a3b7.png

然后,更新系统以确保系统是最新的软件包。

yum list && yum update -y

驱动安装可能需要特定的内核头文件和DKMS(Dynamic Kernel Module Support)模块,安装开发工具包,并根据实际内核版本安装相应的kernel-devel包。

yum groupinstall "Development Tools" -y
yum install -y kernel-devel-$(uname -r) dkms

接下来,将下载的GPU驱动、CUDA和cuDNN上传到主机。

95754e1d9b78bfda01f1968bbdb0859d.png

c2b39a196f6e832e1168310423022cf7.png

3、安装GPU驱动

先安装GPU驱动。

chmod +x NVIDIA-Linux-x86_64-410.129-diagnostic.run
./NVIDIA-Linux-x86_64-410.129-diagnostic.run --dkms --no-opengl-files

0c44f007562616a5c0f12b5a3ebe8e95.png

询问是否使用DKMS注册,默认使用YES。

042d9f661ed11bf01458544c54e8b370.png

提示信息,直接回车。

6d143c52755743fd205caa0296a4c9bb.png

是否安装32位的库,默认安装上吧。

67cd2448c4550e207cdac62bca293e63.png

等待驱动安装完成。

ea026813417eecd3f61ca227f7857ab2.png

重启虚拟机,检查驱动是否安装成功。

nvidia-smi

be3721e8db1b3a64c6d6a6cf282fc495.png

能够正常显示GPU型号、规格以及传感器信息。

ec5386bf20a82a8c42210d676936c4ab.png

4、安装CUDA及cuDNN

参考CUDA的官方指导,安装软件。

chmod +x cuda_10.0.130_410.48_linux.run
./cuda_10.0.130_410.48_linux.run

展示完EULA并接受,之后配置各项参数。

d093ec63e3ba861ddfef3b23e012ca80.png

安装完CUDA Toolkit之后,按照提示,向环境变量中添加文件路径。

echo 'export PATH=/usr/local/cuda-10.0/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

bf130884db197a83677e129b9a4f416b.png

检查CUDA是否安装成功。

97791b2acc5c81d84f027920c49452a4.png

cuDNN在Linux下的安装和Windows一样,只要将文件解压,然后复制到CUDA Toolkit目录下即可。

tar -zxf cudnn-10.0-linux-x64-v7.6.4.38.tgz
cp -avr cuda/ /usr/local/cuda-10.0/

3aab97d653abc0ee18b300b547970819.png

至此,软件安装完成。

2b4b5309114dd2cdb8d77f8c02b3a21a.gif

长按二维码
关注我们吧

77b87bf8e61380ddc13397af2b532187.jpeg

dd0835df58af7edd21e30b0affc3062e.png

Windows部署TensorFlow后识别GPU失败,原因是啥?

TensorFlow识别GPU难道就这么难吗?还是我的GPU有问题?

轻轻松松达到1.8 Gbps,果然HCL还是搭配高档电脑更好使

将Juniper虚拟防火墙vSRX导入EVE-NG

Juniper虚拟防火墙vSRX配置防火墙策略实现业务转发

配置VMware实现从服务器到虚拟机的一键启动脚本

Ubuntu 23.10通过APT安装Open vSwitch

使用Python脚本实现SSH登录设备

VMWare ESXi中,不同的虚拟网卡性能竟然能相差三倍!

VMWare ESXi 7.0的磁盘空间莫名少了120 GB?看这里!

同一个问题,Gemini、ChatGPT、Copilot、通义千问和文心一言会怎么答?

CentOS 7配置Bonding网卡绑定

H3C交换机S6850配置M-LAG基本功能

H3C交换机S6850配置M-LAG三层转发

Windows Server调整策略实现999999个远程用户用时登录

IPv6从入门到精通

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/384844.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BIO、NIO、Netty演化总结

关于BIO(关于Java NIO的的思考-CSDN博客)和NIO(关于Java NIO的的思考-CSDN博客)在之前的博客里面已经有详细的讲解,这里再总结一下最近学习netty源码的的心得体会 在之前的NIO博客中我们知道接受客户端连接和IO事件的…

Vulnhub靶机:hacksudo-ProximaCentauri

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:hacksudo-ProximaCentauri(10.0.2.51) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhu…

算法学习——LeetCode力扣二叉树篇4

算法学习——LeetCode力扣二叉树篇4 222. 完全二叉树的节点个数 222. 完全二叉树的节点个数 - 力扣(LeetCode) 描述 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中&#xf…

二叉树、堆和堆排序(优先队列)

前言: 本章会讲解二叉树及其一些相关练习题,和堆是什么。 二叉树: 二叉树的一些概念: 一棵二叉树是有限节点的集合,该集合可能为空。二叉树的特点是每一个节点最多有两个子树,即二叉树不存在度大于2的节点…

中科大计网学习记录笔记(十):P2P 应用

前言: 学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程 该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信…

全坚固平板EM-I12U,全新升级后的优质体验

平板终端机在户外勘探、制造业、畜牧业、银行金融行业当中都不是陌生的,能采集各种数据来转换成信息流向企业和行业的各个分支当中,在整个行业发展、社会推动上面都起着关键性作用,而平板终端机的升级也就意味着未来的这些行业发展会进入一个…

【51单片机】LED点阵屏(江科大)

9.1LED点阵屏 1.LED点阵屏介绍 LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。 2.LED点阵屏工作原理 LED点阵屏的结构类似于数码管,只不过是数码管把每一列的像素以“8”字型排列而已。原理图如下 每一行的阳极连在一起,每一列…

C++ //练习 6.3 编写你自己的fact函数,上机检查是否正确。

C Primer(第5版) 练习 6.3 练习 6.3 编写你自己的fact函数,上机检查是否正确。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /********************************************************…

VMware虚拟机安装openEuler系统(二)(2024)

下面我们进行openEuler系统的一些简单配置。 1. 开启openEuler系统 在VMware Workstation Pro虚拟机软件中找到安装好的openEuler操作系统虚拟机并开启。 等待开启。 2. 安装配置 进入后选择第一个“Install openEuler 20.03-LTS”。 3. 选择系统语言 为虚拟机设置系统语言…

Unity学习笔记(零基础到就业)|Chapter02:C#基础

Unity学习笔记(零基础到就业)|Chapter02:C#基础 前言一、复杂数据(变量)类型part01:枚举数组1.特点2.枚举(1)基本概念(2)申明枚举变量(3&#xff…

C++多态重难点

CSDN上已经有很多关于C多态方面的一些系统介绍了,但是我看了一下一些有关于多态问题的细节问题文章较少,因此我想要出一片文章重点讲一讲我认为比较重点且容易被遗忘的知识点,一些比较基本的知识这里就不过多赘述了,可以参考其他优…

LabVIEW智能温度监控系统

LabVIEW智能温度监控系统 介绍了一个基于LabVIEW的智能温度监控系统,实现对工业环境中温度的实时监控与调控。通过集成传感器技术和LabVIEW软件平台,系统能够自动检测环境温度,及时响应温度变化,并通过图形用户界面(GUI)为用户提…

【51单片机】AT24C02(江科大、爱上半导体)

一、AT24C02 1.AT24C02介绍 AT24C02是一种可以实现掉电不丢失的存储器,可用于保存单片机运行时想要永久保存的数据信息 存储介质:E2PROM 通讯接口:12C总线 容量:256字节 2.引脚即应用电路 本开发板AT24C02原理图 12C地址全接地,即全为0 WE接地,没有写使能 SCL接P21 S…

Obsidian Publish的开源替代品Perlite

前几天就有网友跟我说,freenom 的免费域名不可用了,10 号的时候老苏进后台看了一下,还有一半的域名显示为 ACTIVE,似乎是以 2024年6月 为限。但到 11 号,老苏发现博客 (https://laosu.cf) 已经访问不了了,这…

使用SpringMVC实现功能

目录 一、计算器 1、前端页面 2、服务器处理请求 3、效果 二、用户登陆系统 1、前端页面 (1)登陆页面 (2)欢迎页面 2、前端页面发送请求--服务器处理请求 3、效果 三、留言板 1、前端页面 2、前端页面发送请求 &…

大话设计模式——1.模板方法模式(Template Method Pattern)

定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 例子:比较重大的考试往往有A、B两套试卷,其中一套出现问题可以立马更换另一套。 定义基…

spring aop @annotation的用法

直接看原文: spring aop annotation的用法-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- annotation用在定义连接点时,对连接点进行限制。比如我们想对标注了…

百度PaddleOCR字符识别推理部署(C++)

1 环境 1.opencv(https://sourceforge.net/projects/opencvlibrary/) 2.cmake(https://cmake.org/download/) 3.vs2019((https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.1) 4.paddleOCR项目-建议2.0(http…

Python网络通信

目录 基本的网络知识 TCP/IP IP地址 端口 HTTP/HTTPS HTTP HTTPS 搭建自己的Web服务器 urllib.request模块 发送GET请求 发送POST请求 JSON数据 JSON文档的结构 JSON数据的解码 下载图片示例 返回所有备忘录信息 此文章讲解如何通过Python访问互联网上的资源&a…

每日一练:LeeCode-617、合并二叉树【二叉树+DFS】

本文是力扣LeeCode-617、合并二叉树【二叉树DFS】 学习与理解过程,本文仅做学习之用,对本题感兴趣的小伙伴可以出门左拐LeeCode。 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两…