使用模块化流简化 RHEL 8 上的 NVIDIA 驱动程序部署

NVIDIA GPU 已成为加速机器学习、高性能计算 (HPC)、内容创建工作流程和数据中心应用程序等各种工作负载的主流。对于这些企业用例,NVIDIA 提供了由 CUDA 平台支持的软件堆栈:驱动程序、CUDA-X 加速库、CUDA 优化的应用程序和框架。

空白终端屏幕

部署 NVIDIA 驱动程序是设置 GPU 加速集群以使用 CUDA 的基本方面之一。过去,安装或升级 NVIDIA 驱动程序需要在每个 GPU 节点上安装完整的软件开发环境,例如编译器工具链和内核头文件。企业用户还需要经过测试的 NVIDIA 驱动程序和 Linux 内核组合,以确保稳定性,并能够停留在可能具有不同生命周期的特定驱动程序分支上。

在本文中,我将介绍在 Red Hat Enterprise Linux (RHEL) 8 上对 NVIDIA 驱动程序进行打包的工作,以改善安装和升级驱动程序的体验。这项工作提供了许多好处,包括提高了可靠性、安全性和选择性。对于这项工作,请使用 RHEL 8 中提供的模块化流和预编译的内核模块 ( kmod) 包。

DNF 模块化

使用模块化,CUDA 存储库为驱动程序包提供多个更新流。仅考虑所选流上的更新。您可以选择跟上最新和最好的版本,也可以锁定到特定的驱动程序分支,例如主版本等于“450”的驱动程序。

这种新机制允​​许您根据用例切换到不同的流。您可以从单个 RPM 存储库中选择多个 NVIDIA GPU 驱动程序分支之一进行跟踪。一些NVIDIA 驱动程序适合在 NVIDIA 数据中心 GPU 上使用,并且与其他驱动程序分支相比,它们的使用寿命可能更长。企业用户可能出于稳定性原因选择留在特定的驱动程序分支上,而其他用户可能希望跟踪其他分支以访问新功能。

图 1.可用的 nvidia-driver 模块流列表。

您可以选择一个特定的驱动程序分支(例如 R418)来跟踪更新,并且仅从该分支获取更新。这些软件包还提供了一个名为的虚拟分支latestlatest-dkms可跟踪每个时间点的最新 NVIDIA 驱动程序。该分支latest-dkms是默认分支。其他分支是可选的,并且可以切换分支而无需重新安装 CUDA 工具包。

使用预编译驱动程序

对于受支持的 Red Hat Enterprise Linux 8.x 内核版本(请参阅下面的支持列表),提供了实现DKMS替代方案的驱动程序包。无需启用EPEL 存储库。这些驱动程序 kmod 包的源文件是预先编译的,然后在安装时链接,因此这些被称为“预编译驱动程序”。

新方法不需要gcc安装编译器,从而减少了攻击面并加快了内核和/或驱动程序更新的启动时间。使用这些预编译的kmod软件包可以提供更高的稳定性,因为确切的 NVIDIA 驱动程序版本和内核版本字符串组合已经过预先测试。告别黑屏(运行级别 3),迎接可预测的用户体验,驱动程序安装不再依赖于kernel-devel软件包kernel-headers

当发布新的驱动程序更新时,仅针对驱动程序更新时最新发布的内核提供预编译驱动程序包。同样,如果发布了新的内核更新,则针对此内核提供预编译驱动程序包。另一种表述方式是,现在,在任何时间点,都会为最新的 RHEL 内核和最新的 NVIDIA 驱动程序版本(每个受支持的分支)启用预编译驱动程序。

`sudo dnf module info nvidia-driver:450 的终端输出。

图 2. ‘450’ 模块流中的 RPM 包列表,其中突出显示了预编译的 kmod 包。

使用预编译驱动程序时,会启用包管理器插件dnf来清理过时的 .ko 文件。为了防止系统崩溃,NVIDIA dnf 插件还会阻止升级到尚不存在预编译驱动程序的内核。这可能会延迟安全修复的应用,但可确保始终使用经过测试的内核和驱动程序组合。

使用包管理器安装

以下是在 RHEL 8 上开始使用新驱动程序包的方法。首先,确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值