当前位置: 首页 > news >正文

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从入门到精通

相关文章:

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

正文共:1333 字 21 图,预估阅读时间:2 分钟 上次我们在Windows上尝试用Tesla M4配置深度学习环境(TensorFlow识别GPU难道就这么难吗?还是我的GPU有问题?),但是失败了。考虑到Windows…...

Java设计模式——策略

前言 策略模式是平时Java开发中常用的一种,虽然已有很多讲解设计模式的文章,但是这里还是写篇文章来从自己理解的角度讲解一下。 使用场景 我们不妨进行场景假设,要对我们的软件进行授权管理:在启动我们的软件之前先要校验是否…...

线性代数的本质 1 向量

向量是线性代数中最为基础的概念。 何为向量? 从物理上看, 向量就是既有大小又有方向的量,只要这两者一定,就可以在空间中随便移动。 从计算机应用的角度看,向量和列表很接近,可以用来描述某对象的几个不同…...

基于JAVA的贫困地区人口信息管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 人口信息管理模块2.2 精准扶贫管理模块2.3 特殊群体管理模块2.4 案件信息管理模块2.5 物资补助模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 人口表3.2.2 扶贫表3.2.3 特殊群体表3.2.4 案件表3.2.5 物资补助表 四…...

【后端高频面试题--Mybatis篇】

🚀 作者 :“码上有前” 🚀 文章简介 :后端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 后端高频面试题--Mybatis篇 什么是Mybatis?Mybatis的优缺点?Mybatis的特点…...

【笔记】Helm-5 Chart模板指南-12 .helmignore文件

.helmignore文件 .helmignore文件用来指定您不想包含在您的helm chart中的文件。 如果该文件存在,helm package命令会在打包应用时忽略所有在.helmignore文件中匹配的文件。 有助于避免不需要的或敏感文件及目录添加到您的helm chart中。 .helmignore文件支持Uni…...

【MySQL】表的增删改查(基础)

MySQL表的增删改查(基础) 1. CRUD2. 新增(Create)2.1 单行数据全列插入2.2 多行数据 指定列插入 3. 查询(Retrieve)3.1 全列查询3.2 指定列查询3.3 查询字段为表达式3.4 别名3.5 去重:DISTINCT…...

Android矩阵Matrix动画缩放Bitmap移动手指触点到ImageView中心位置,Kotlin

Android矩阵Matrix动画缩放Bitmap移动手指触点到ImageView中心位置,Kotlin 借鉴 Android双指缩放ScaleGestureDetector检测放大因子大图移动到双指中心点ImageView区域中心,Kotlin(2)-CSDN博客 在此基础上实现手指在屏幕上点击后&…...

C语言:表达式求值

引言:在笔试中,有一类的题目,题目给出代码,要求分析得出输出结果。这类题目更加考察我们对于运算顺序和运算类型转换的理解。文章介绍了隐式类型转换和操作符注意点,希望增加读者对于表达式求值的理解。 1.隐式类型转…...

GO 的 Web 开发系列(五)—— 使用 Swagger 生成一份好看的接口文档

经过前面的文章,已经完成了 Web 系统基础功能的搭建,也实现了 API 接口、HTML 模板渲染等功能。接下来要做的就是使用 Swagger 工具,为这些 Api 接口生成一份好看的接口文档。 一、写注释 注释是 Swagger 的灵魂,Swagger 是通过…...

【极数系列】Flink集成KafkaSink 实时输出数据(11)

文章目录 01 引言02 连接器依赖2.1 kafka连接器依赖2.2 base基础依赖 03 使用方法04 序列化器05 指标监控06 项目源码实战6.1 包结构6.2 pom.xml依赖6.3 配置文件6.4 创建sink作业 01 引言 KafkaSink 可将数据流写入一个或多个 Kafka topic 实战源码地址,一键下载可用&#xf…...

我为什么选择Xamarin开发ios app安卓app

临岁之寒简书作者,转载 Xamarin是一项跨平台开发技术,之前是收费的,而且据说收费不菲,所以使用的人数比较少,在国内几乎无人问津。后来Xamarin被微软收购,现已免费开放,相信今后国内的使用人群会大幅地增长…...

安全基础~通用漏洞4

文章目录 知识补充XSS跨站脚本**原理****攻击类型**XSS-后台植入Cookie&表单劫持XSS-Flash钓鱼配合MSF捆绑上线ctfshow XSS靶场练习 知识补充 SQL注入小迪讲解 文件上传小迪讲解 文件上传中间件解析 XSS跨站脚本 xss平台: https://xss.pt/ 原理 恶意攻击者…...

2024/2/12 图的基础知识 2

目录 查找文献 P5318 【深基18.例3】查找文献 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 有向图的拓扑序列 848. 有向图的拓扑序列 - AcWing题库 最大食物链计数 P4017 最大食物链计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 查找文献 P5318 【深基18.例3】…...

无人机飞行原理,多旋翼无人机飞行原理详解

多旋翼无人机升空飞行的首要条件是动力,有了动力才能驱动旋粪旋转,才能产生克服重力所必需的升力。使旋翼产生升力,进而推动多旋翼无人机升空飞行的一套设备装置称为动力装置,包括多旋翼无人机的发动机以及保证发动机正常工作所必…...

docker本地目录挂载

小命令 1、查看容器详情 docker inspect 容器名称 还是以nginx为例,上篇文章我们制作了nginx静态目录的数据卷,此时查看nginx容器时会展示出来(docker inspect nginx 展示信息太多,这里只截图数据卷挂载信息)&#…...

使用C++从零开始,自己写一个MiniWeb

第一步:新建项目 1、打开VS点击创建新项目 2、选择空项目并点下一步(切记不能选错项目类型) 3、填写项目名称和路径,点击创建即可 新建好后项目是这样的比较干净 4、右击源文件,点击添加,新建http.cpp文件…...

Android Graphics 图像显示系统 - 开篇

“ 随着学习的不断深入和工作经验的积累,欲将之前在博客中整理的Android Graphics知识做进一步整理,并纠正一些理解上的错误,故开设Graphics主题系列文章 ” 序言 由于工作需要,也源于个人兴趣,终于下决心花时间整理一…...

机器学习在各个行业的应用介绍

随着科技的飞速发展,机器学习已经从实验室走向了现实世界,逐渐成为各行各业不可或缺的工具。从金融领域到医疗健康,从零售市场到制造业,机器学习正在改变着我们的工作方式和生活质量。 本文将深入探讨机器学习在以下几个领域的应用…...

【生产实测有效】Windows命令行查看激活状态脚本

Windows查看激活状态关键代码 通过windows server 自带的PowerShell来执行 Get-WmiObject SoftwareLicensingProduct | Select-Object -Property Description, LicenseStatus | findstr "Operating System"|findstr "1$"Get-WmiObject SoftwareLicensingPr…...

Docker 部署 Python 的 Flask项目

文章目录 一、构建运行 Docker 容器1. 查找合适镜像2.本地docker 拉取镜像3.项目配置1. python项目下生成 requirements.txt 依赖文件2. 生成Dockerfile文件3.忽略不必要文件4. 构建镜像 4. 运行容器5.测试 二、常见问题与解决方案 一、构建运行 Docker 容器 1. 查找合适镜像 …...

STM32H562----------串口通信(UART)

1、串口介绍 1.1、 数据通信概念 在单片机中我们常用的通信方式有 USART、IIC、SPI、CAN、USB 等; 1、数据通信方式 根据数据通信方式可分为串行通信和并行通信两种,如下图: 串行通信基本特征是数据逐位顺序依次传输,优点:传输线少成本低,抗干扰能力强可用于远距离传…...

CAD多面体密堆积3D插件

插件介绍 CAD多面体密堆积3D插件可在AutoCAD内建立三维随机多面体密堆积模型。 插件内置物理动力学模拟算法,通过模拟重力、碰撞等现象,使多面体在虚拟环境中发生自然堆积,进而实现真实的堆积效果。多面体堆积模拟中存在的局部穿模问题可通…...

Maven入门(够用)

1、Maven是什么? 这个问题非常不重要,或者说不应该上来就问maven是什么,而是直接学习maven怎么用能干什么,学完之后自然就知道了maven是个什么玩意儿,很多技术都是如此。 2、Maven下载 先准备Java环境,安…...

day 18进行聚类,进而推断出每个簇的实际含义

浙大疏锦行 对聚类的结果根据具体的特征进行解释,进而推断出每个簇的实际含义 两种思路: 你最开始聚类的时候,就选择了你想最后用来确定簇含义的特征, 最开始用全部特征来聚类,把其余特征作为 x,聚类得到…...

【AIGC】RAGAS评估原理及实践

【AIGC】RAGAS评估原理及实践 (1)准备评估数据集(2)开始评估2.1 加载数据集2.2 评估忠实性2.3 评估答案相关性2.4 上下文精度2.5 上下文召回率2.6 计算上下文实体召回率 RAGas(RAG Assessment)RAG 评估的缩写&#xff…...

如何借助Hyper - V在Windows 10中构建安全软件测试环境

视频演示 手把手教你激活 Hyper-V 并安装 Windows 10 虚拟机 一、引言:软件探索的风险与解决方案 在数字化时代,软件更新换代的速度日新月异,对于热衷于探索新软件的朋友而言,主系统中安装新软件时的谨慎态度无可厚非。恶意软件的威胁犹如高悬的达摩克利斯之剑,稍不留…...

深入解析JVM工作原理:从字节码到机器指令的全过程

一、JVM概述 Java虚拟机(JVM)是Java平台的核心组件,它实现了Java"一次编写,到处运行"的理念。JVM是一个抽象的计算机器,它有自己的指令集和运行时内存管理机制。 JVM的主要职责: 加载:读取.class文件并验…...

【Latex】Windows/Ubuntu 绘制 eps 矢量图通用方法(drawio),支持插入 Latex 数学公式

一直感觉 Visio 或者 PPT 中 Mathtype 对 latex 公式渲染效果不好,且在 Ubuntu 下的支持不好,最近重新调研发现一个好用的工具 drawio。 在线使用 https://app.diagrams.net/?srcabout 也有桌面版的应用,Windows 就下载 exe 安装器&#x…...

C#合并CAN ASC文件:实现与优化

C#合并CAN ASC文件:实现与优化 在汽车电子和工业控制领域,CAN(Controller Area Network)总线是一种广泛使用的通信协议。CAN ASC(American Standard Code)文件则是记录CAN总线通信数据的标准格式&#xff…...