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

news2025/1/25 9:23:19

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【思科ssh】思科模拟器配置ssh登录

配置路由器的名称为R1 配置路由器的域名为aaa.com 使用rsa来加密传输数据,密钥位数为2048 配置登录用户名为cj,密码为123456 只允许ssh登录,不能以其他方式登录 本地验证

HarmonyOS 鸿蒙 ArkTS ArkUI 页面之间切换转换动画设置

第一步:导入 import promptAction from ohos.promptAction 第二步:在build下方写入 pageTransition(){PageTransitionEnter({ duration: 1200 }).slide(SlideEffect.Right)PageTransitionExit({ delay: 100 }).translate({ x: 100.0, y: 100.0 }).opac…

Vue核心基础4:绑定样式、条件渲染、列表渲染

1 绑定样式 【代码】 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>绑定样式</title><s…

机器学习9-随机森林

随机森林&#xff08;Random Forest&#xff09;是一种集成学习方法&#xff0c;用于改善单一决策树的性能&#xff0c;通过在数据集上构建多个决策树并组合它们的预测结果。它属于一种被称为“集成学习”或“集成学习器”的机器学习范畴。 以下是随机森林的主要特点和原理&…

3分钟部署完成Docker Registry及可视化管理工具Docker-UI

安装docker-registry 由于镜像文件会非常占用空间&#xff0c;因此需要选择一个磁盘充裕的位置来存放镜像数据。 这里设置为&#xff1a;-v /data/registry:/var/lib/registry&#xff0c;其中/data/registry是宿主机存放数据的位置。 docker run -d -p 5000:5000 --restart…

【EAI 019】Eureka: Human-Level Reward Design via Coding LLM

论文标题&#xff1a;Eureka: Human-Level Reward Design via Coding Large Language Models 论文作者&#xff1a;Yecheng Jason Ma, William Liang, Guanzhi Wang, De-An Huang, Osbert Bastani, Dinesh Jayaraman, Yuke Zhu, Linxi Fan, Anima Anandkumar 作者单位&#xff…

《Linux 简易速速上手小册》第10章: 性能监控与优化(2024 最新版)

文章目录 10.1 理解系统负载10.1.1 重点基础知识10.1.2 重点案例&#xff1a;服务器响应变慢10.1.3 拓展案例 1&#xff1a;多核 CPU 系统的负载解读10.1.4 拓展案例 2&#xff1a;分析具体时间段的系统负载 10.2 优化性能10.2.1 重点基础知识10.2.2 重点案例&#xff1a;优化 …

【JVM篇】ThreadLocal中为什么要使用弱引用

文章目录 &#x1f354;ThreadLocal中为什么要使用弱引用⭐总结 &#x1f354;ThreadLocal中为什么要使用弱引用 ThreadLocal可以在线程中存放线程的本地变量&#xff0c;保证数据的线程安全 ThreadLocal是这样子保存对象的&#xff1a; 在每个线程中&#xff0c;存放了一个…

MATLAB Coder从入门到放弃

一、MATLAB Coder入门 1 MATLAB Coder是什么 从 MATLAB 代码生成 C 和 C 代码 MATLAB Coder™ 可从 MATLAB 代码生成适用于各种硬件平台&#xff08;从桌面计算机系统到嵌入式硬件&#xff09;的 C 和 C 代码。它支持大多数 MATLAB 语言和广泛的工具箱。您可以将生成的代码作…

无人机概述及系统组成,无人机系统的构成

无人机的定义 无人驾驶航空器&#xff0c;是一架由遥控站管理&#xff08;包括远程操纵或自主飞行&#xff09;的航空器&#xff0c;也称遥控驾驶航空器&#xff0c;以下简称无人机。 无人机系统的定义 无人机系统&#xff0c;也称无人驾驶航空器系统&#xff0c;是指一架无人…

第 384 场 LeetCode 周赛题解

A 修改矩阵 模拟 class Solution { public:vector<vector<int>> modifiedMatrix(vector<vector<int>> &matrix) {int m matrix.size(), n matrix[0].size();vector<int> mx(n, INT32_MIN);for (int i 0; i < m; i)for (int j 0; j &l…

Java学习-常用API-新增时间

1.学习JDK8新增时间的原因&#xff1f; 2.JDK8新增了那些时间&#xff1f; 代替calendar的 localDate localTime localDateTime 常用APi及代码示例&#xff1a; ZoneIdZonedDateTime 常用方法 代码示例&#xff1a; 代替Date的 Instant常见方法及其代码示例&#xff1a; 注…

[CUDA 学习笔记] Reduce 算子优化

Reduce 算子优化 注: 本文主要是对文章 【BBuf的CUDA笔记】三&#xff0c;reduce优化入门学习笔记 - 知乎 的学习整理 Reduce 又称之为归约, 即根据数组中的每个元素得到一个输出值, 常见的包括求和(sum)、取最大值(max)、取最小值(min)等. 前言 本文同样按照英伟达官方 PP…

MOCO动量编码

参考&#xff0c;推荐阅读 李沐论文精读系列三&#xff1a;MoCo、对比学习综述&#xff08;MoCov1/v2/v3、SimCLR v1/v2、DINO等&#xff09;_moco 对比学习-CSDN博客 背景 1. MOCO CVPR 2020 2. 对比学习&#xff1a;无监督学习的一种&#xff0c;重点学习同类实例中的共同…

人脸追踪案例及机器学习认识

1.人脸追踪机器人初制 用程序控制舵机运动的方法与机械臂项目完全相同。 由于摄像头的安装方式为上下倒转安装&#xff0c;我们在编写程序读取图像时需使用 flip 函数将 图像上下翻转。 现在&#xff0c;只需要使用哈尔特征检测得到人脸在图像中的位置&#xff0c;再指示舵机运…

BIO、NIO、Netty演化总结

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

Java编程练习之类的继承

1.创建银行卡类&#xff0c;并分别设计两个储蓄卡和信用卡子类。 import javax.swing.plaf.BorderUIResource;import java.util.Scanner;class Card {int Id; //银行卡&#xff1b;int password; //密码&#xff1b;double balance2000; //账户存款金额&#xff1b;String A…

论文介绍 FreeControl: 无需额外训练实现文本到图像的空间操控!

论文介绍 FreeControl: 无需额外训练实现文本到图像的空间操控&#xff01; 论文介绍 FreeControl: Training-Free Spatial Control of Any Text-to-Image Diffusion Model with Any Condition 关注微信公众号: DeepGo 项目地址&#xff1a;https://genforce.github.io/freeco…

进程间通信[二]

命名管道 mkfifo filename 创建管道 共享内存 systemV 就是一段内存映射到两个进程之中&#xff0c;这段内存就是双方都可以看到同一块公共空间&#xff0c;变具备了进程间通信的前提条件。把映射去掉&#xff0c;然后释放空间&#xff0c;这就是释放共享内存。 共享内存…

实现安全性

实现安全性 问题陈述 Chris希望阅读位于服务器上的电子邮件消息。他将自己的登录信息发送到服务器已进行验证。因此,Chris决定用基于表单的验证来验证他的登录信息。但是,他首先决定只用基于表单的验证测试登录页面 。 解决方案 要解决上述问题,Chris需要执行以下任务: 用…