0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用模塊化流簡(jiǎn)化RHEL 8上的NVIDIA驅(qū)動(dòng)程序部署

星星科技指導(dǎo)員 ? 來(lái)源:NVIDIA ? 作者:Kevin Mittman ? 2022-04-27 15:27 ? 次閱讀

NVIDIA GPUs 已成為加速機(jī)器學(xué)習(xí)、高性能計(jì)算( HPC )、內(nèi)容創(chuàng)建工作流和數(shù)據(jù)中心應(yīng)用程序等多種工作負(fù)載的主流。對(duì)于這些企業(yè)用例, NVIDIA 提供了一個(gè)由 CUDA 平臺(tái)支持的軟件堆棧:驅(qū)動(dòng)程序、 CUDA -X 加速庫(kù)、 CUDA – 優(yōu)化的應(yīng)用程序和框架。

Blank terminal screen

部署 NVIDIA 驅(qū)動(dòng)程序是建立 GPU 加速集群以使用 CUDA 的一個(gè)基本方面。在過(guò)去, NVIDIA 驅(qū)動(dòng)程序的安裝或升級(jí)都需要一個(gè)完整的軟件開(kāi)發(fā)環(huán)境,比如編譯器工具鏈和內(nèi)核頭文件,在每個(gè) GPU 節(jié)點(diǎn)上。企業(yè)用戶還希望使用經(jīng)過(guò)測(cè)試的 NVIDIA 驅(qū)動(dòng)程序和 Linux 內(nèi)核組合的組合,以獲得穩(wěn)定性,并能夠在特定的驅(qū)動(dòng)程序分支上運(yùn)行,這些分支可能具有不同的生命周期。

在這篇文章中,我將介紹如何在 Red Hat Enterprise Linux ( RHEL ) 8 上打包 NVIDIA 驅(qū)動(dòng)程序,以改進(jìn)安裝和升級(jí)驅(qū)動(dòng)程序的體驗(yàn)。這項(xiàng)工作提供了幾個(gè)好處 – 包括提高可靠性、安全性和可選擇性。為此,請(qǐng)使用 RHEL8 和預(yù)編譯內(nèi)核模塊( kmod )包中提供的模塊化流。

DNF 模塊化

使用 模塊化 , CUDA 存儲(chǔ)庫(kù)為驅(qū)動(dòng)程序包提供多個(gè)更新流。只考慮對(duì)所選流的更新。您可以選擇跟上最新最新版本,或鎖定到特定的驅(qū)動(dòng)程序分支,例如,主版本等于“ 450 ”的驅(qū)動(dòng)程序。

這個(gè)新機(jī)制允許您根據(jù)您的用例切換到不同的流。您可以從多個(gè) NVIDIA GPU 驅(qū)動(dòng)程序分支中選擇一個(gè),這些分支可從單個(gè) RPM 存儲(chǔ)庫(kù)遵循。一些 NVIDIA 驅(qū)動(dòng)程序 用于 NVIDIA 數(shù)據(jù)中心 GPUs ,與其他驅(qū)動(dòng)程序分支相比,它們的使用壽命可能更長(zhǎng)。企業(yè)用戶可能出于穩(wěn)定性的原因選擇留在特定的驅(qū)動(dòng)程序分支上,而其他用戶可能希望跟蹤其他分支以訪問(wèn)新功能。

The terminal output of `sudo dnf module list nvidia-driver`.

圖 1 可用 NVIDIA 驅(qū)動(dòng)模塊流列表。

您可以選擇一個(gè)特定的驅(qū)動(dòng)程序分支,例如 R418 ,用于跟蹤更新,并且只從該分支獲取更新。這些軟件包還提供了一個(gè)名為 latest 和 latest-dkms 的虛擬分支,在每個(gè)時(shí)間點(diǎn)跟蹤最新的 NVIDIA 驅(qū)動(dòng)程序。默認(rèn)為分支 latest-dkms 。其他的分支是可選的,并且可以在不需要重新安裝 CUDA 工具箱的情況下切換分支。

使用預(yù)編譯驅(qū)動(dòng)程序

對(duì)于受支持的 Red Hat Enterprise Linux 8 .x 內(nèi)核版本(請(qǐng)參閱下面的支持列表),提供了實(shí)現(xiàn) DKMS 公司 替代方案的驅(qū)動(dòng)程序包。無(wú)需啟用 EPEL 存儲(chǔ)庫(kù) 。這些驅(qū)動(dòng)程序 kmod 包的源文件是預(yù)先編譯的,然后在安裝時(shí)鏈接,因此這些文件被稱為“預(yù)編譯驅(qū)動(dòng)程序”

新方法不需要安裝 gcc 編譯器,從而減少了攻擊面,加快了內(nèi)核和/或驅(qū)動(dòng)程序更新的啟動(dòng)時(shí)間。使用這些預(yù)編譯的 kmod 包提供了更大的穩(wěn)定性,因?yàn)?NVIDIA 驅(qū)動(dòng)程序版本和內(nèi)核版本字符串組合已經(jīng)過(guò)預(yù)測(cè)試。告別黑屏(運(yùn)行級(jí)別 3 ),向可預(yù)測(cè)的用戶體驗(yàn)問(wèn)好,驅(qū)動(dòng)程序安裝不再依賴于 kernel-devel 和 kernel-headers 軟件包。

當(dāng)發(fā)布新的驅(qū)動(dòng)程序更新時(shí),只為驅(qū)動(dòng)程序更新時(shí)最新發(fā)布的內(nèi)核提供預(yù)編譯的驅(qū)動(dòng)程序包。同樣,如果發(fā)布了新的內(nèi)核更新,則會(huì)為該內(nèi)核提供預(yù)編譯的驅(qū)動(dòng)程序包。另一種說(shuō)法是,在任何時(shí)候,對(duì)最新的 RHEL 內(nèi)核和最新的 NVIDIA 驅(qū)動(dòng)程序版本(每個(gè)支持的分支)都啟用預(yù)編譯驅(qū)動(dòng)程序。

The terminal output of `sudo dnf module info nvidia-driver:450.

圖 2 在預(yù)編譯包列表中突出顯示了 450 RPM 的程序包。

使用預(yù)編譯驅(qū)動(dòng)程序時(shí), dnf 包管理器的插件將被啟用,用于清除過(guò)時(shí)的。 ko 文件。為了防止系統(tǒng)崩潰, NVIDIA dnf 插件 還防止升級(jí)到尚未存在預(yù)編譯驅(qū)動(dòng)程序的內(nèi)核。這可能會(huì)延遲安全修復(fù)的應(yīng)用,但確保始終使用經(jīng)過(guò)測(cè)試的內(nèi)核和驅(qū)動(dòng)程序組合。

使用包管理器安裝

下面是如何開(kāi)始在 RHEL8 上使用新的驅(qū)動(dòng)程序包。首先,確保已啟用 Red Hat 存儲(chǔ)庫(kù),包括 RHEL8 AppStream 、 RHEL8 BaseOS 和 RHEL8 CRB :v

$ subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms
$ subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms
$ subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms

添加 CUDA 網(wǎng)絡(luò)存儲(chǔ)庫(kù):

$ sudo dnf config-manager --add-repo=https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo

安裝最新的流以選擇進(jìn)入預(yù)編譯包:

$ sudo dnf module install nvidia-driver:latest

選擇模塊化流

為了提高靈活性,預(yù)編譯和 DKMS 變體中都有幾個(gè)流可用(表 1 )。

最新選項(xiàng)始終更新到最高版本的驅(qū)動(dòng)程序(預(yù)編譯):

$ sudo dnf module install nvidia-driver:latest

選項(xiàng)將驅(qū)動(dòng)程序更新鎖定到指定的驅(qū)動(dòng)程序分支(預(yù)編譯)。將替換為適當(dāng)?shù)尿?qū)動(dòng)程序分支流,例如 455 、 450 、 440 或 418 。

$ sudo dnf module install nvidia-driver:

latest-dkms選項(xiàng)總是更新到最高版本的驅(qū)動(dòng)程序(非預(yù)編譯)。這是默認(rèn)流。

$ sudo dnf module install nvidia-driver:latest-dkms

-dkms選項(xiàng)將驅(qū)動(dòng)程序更新鎖定到指定的驅(qū)動(dòng)程序分支(非預(yù)編譯),例如 455 dkms 、 450 dkms 、 440 dkms 或 418 dkms 。

$ sudo dnf module install nvidia-driver:-dkms

交換流

要切換到另一個(gè)流,請(qǐng)先刪除驅(qū)動(dòng)程序包:

 $ sudo dnf remove nvidia-driver

然后,重置模塊流:

 $ sudo dnf module reset nvidia-driver

現(xiàn)在可以從適當(dāng)?shù)牧靼惭b驅(qū)動(dòng)程序。

使用模塊化配置文件

模塊化概要文件與任何支持的模塊化流一起工作,并允許附加的用例(表 2 )。

現(xiàn)在,您可以使用dnf命令指定流和配置文件:

 $ sudo dnf module install nvidia-driver:/

/default選項(xiàng)在流中安裝所有驅(qū)動(dòng)程序包(可傳遞閉包):

 $ sudo dnf module install nvidia-driver:latest/default

/ks選項(xiàng)用于無(wú)人值守的 Linux 操作系統(tǒng)安裝,使用的是不安裝cuda-drivers元包的cuda-drivers配置文件。該元包嘗試刪除舊的驅(qū)動(dòng)程序運(yùn)行文件安裝。

 %packages @^Minimal Install @nvidia-driver:latest-dkms/ks %end

/fm選項(xiàng)安裝用于引導(dǎo) NVSwitch 的其他軟件包,包括 Fabric Manager 和 NSCQ (用于交換機(jī)遙測(cè)):

 $ sudo dnf module install nvidia-driver:450/fm

RHEL 支持矩陣

目前,這些包改進(jìn)僅支持 x86 _ 64 體系結(jié)構(gòu)上的 RHEL 8 。 2 (及更高版本)。 NVIDIA 只為最新的官方 RHEL 內(nèi)核提供預(yù)編譯驅(qū)動(dòng)程序包,例如 4 。 18 。 0-193 。 19 。 1 及更高版本。如果使用早期內(nèi)核,請(qǐng)更新以開(kāi)始接收預(yù)編譯的驅(qū)動(dòng)程序包。沒(méi)有為 幾何學(xué) 內(nèi)核提供預(yù)編譯驅(qū)動(dòng)程序。

表 3 顯示了根據(jù) NVIDIA 驅(qū)動(dòng)程序生命周期策略 支持的分支。

新的 kmod 包通常在新的 RHEL 內(nèi)核更新后 24 小時(shí)內(nèi)可用。

為了防止系統(tǒng)崩潰,dnf插件會(huì)在內(nèi)核上線和 kmod 包可用性之間阻止內(nèi)核更新。在升級(jí)過(guò)程中,dnf會(huì)顯示一條警告:

NOTE: Skipping kernel installation since no NVIDIA driver kernel module package kmod-nvidia-${driver}-${kernel} ... could be found

摘要

在 RHEL8 上部署 NVIDIA 驅(qū)動(dòng)程序是使用預(yù)編譯內(nèi)核模塊包和模塊化流的更好的體驗(yàn)。新的驅(qū)動(dòng)程序包在 CUDA 存儲(chǔ)庫(kù) 中提供,所以您可以從今天開(kāi)始。

GitHub 上提供了打包模板和說(shuō)明,允許您為自定義內(nèi)核和衍生 Linux 發(fā)行版維護(hù)自己的預(yù)編譯內(nèi)核模塊包:

NVIDIA / yum 打包預(yù)編譯 kmod

NVIDIA / yum 打包 -NVIDIA – 插件

關(guān)于作者

Kevin Mittman 是一個(gè) GNU / Linux 愛(ài)好者,對(duì)自動(dòng)化有著濃厚的熱情。他是 NVIDIA 的系統(tǒng)軟件工程師,專注于 CUDA 、 NVIDIA 驅(qū)動(dòng)程序和其他 CUDA -X 產(chǎn)品的安裝程序打包和發(fā)布過(guò)程。在加入 NVIDIA 之前, Kevin 在開(kāi)源社區(qū)開(kāi)始了他的職業(yè)生涯。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4986

    瀏覽量

    103066
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1634

    瀏覽量

    49133
  • CUDA
    +關(guān)注

    關(guān)注

    0

    文章

    121

    瀏覽量

    13628
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DRV8601ZQVEVM ERM/LRA驅(qū)動(dòng)程序評(píng)估模塊

    電子發(fā)燒友網(wǎng)站提供《DRV8601ZQVEVM ERM/LRA驅(qū)動(dòng)程序評(píng)估模塊.pdf》資料免費(fèi)下載
    發(fā)表于 12-23 15:04 ?0次下載
    DRV8601ZQVEVM ERM/LRA<b class='flag-5'>驅(qū)動(dòng)程序</b>評(píng)估<b class='flag-5'>模塊</b>

    模塊化示波器的技術(shù)原理和應(yīng)用

    模塊化示波器是一種用于信息科學(xué)與系統(tǒng)科學(xué)領(lǐng)域的電子測(cè)量?jī)x器,以下是對(duì)其技術(shù)原理及應(yīng)用的詳細(xì)闡述:一、技術(shù)原理 信號(hào)轉(zhuǎn)換與顯示: 模塊化示波器利用電子示波管的特性,將肉眼無(wú)法直接觀測(cè)的交變電
    發(fā)表于 12-11 14:20

    模塊化儀器的技術(shù)原理和應(yīng)用場(chǎng)景

    不是嵌入在儀器框架或包裝中的顯示和控制。 軟件驅(qū)動(dòng)模塊化儀器通常沒(méi)有自己的用戶界面,因此被稱為無(wú)面儀器。它們通過(guò)共享計(jì)算機(jī)顯示器和鍵盤/鼠標(biāo)進(jìn)行操作,并通過(guò)編程軟件接口(驅(qū)動(dòng)程序)與儀器模塊
    發(fā)表于 11-28 15:09

    pcie設(shè)備驅(qū)動(dòng)程序安裝步驟

    PCIe(Peripheral Component Interconnect Express)是一種高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn),用于計(jì)算機(jī)內(nèi)部硬件組件之間的連接。安裝PCIe設(shè)備驅(qū)動(dòng)程序是確保硬件
    的頭像 發(fā)表于 11-13 10:32 ?748次閱讀

    NVIDIA DOCA-OFED的主要特性

    NVIDIA DOCA 軟件平臺(tái)釋放了 NVIDIA BlueField 網(wǎng)絡(luò)平臺(tái)的潛力,并為NVIDIA BlueField和ConnectX設(shè)備提供了所需的所有主機(jī)驅(qū)動(dòng)程序。DOC
    的頭像 發(fā)表于 11-09 13:50 ?272次閱讀

    模塊化插座接線方法有哪些

    模塊化插座,也稱為模塊化電源插座或模塊化PDU(Power Distribution Unit),是一種可以根據(jù)需要靈活配置電源插座和接口的設(shè)備。這種設(shè)計(jì)允許用戶根據(jù)具體的用電需求,選擇不同的
    的頭像 發(fā)表于 10-18 09:50 ?561次閱讀

    Linux設(shè)備驅(qū)動(dòng)程序分類有哪些

    Linux設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)與硬件設(shè)備之間的橋梁,負(fù)責(zé)實(shí)現(xiàn)硬件設(shè)備與操作系統(tǒng)之間的通信和控制。Linux設(shè)備驅(qū)動(dòng)程序的分類繁多,可以根據(jù)不同的標(biāo)準(zhǔn)進(jìn)行分類。 按硬件類型分類 Linux設(shè)備
    的頭像 發(fā)表于 08-30 15:11 ?567次閱讀

    linux驅(qū)動(dòng)程序如何加載進(jìn)內(nèi)核

    ,需要了解Linux內(nèi)核的基本概念和API。以下是一些關(guān)鍵概念: 1.1 內(nèi)核模塊:Linux內(nèi)核模塊是一種動(dòng)態(tài)加載和卸載的代碼,可以在不重新啟動(dòng)系統(tǒng)的情況下加載和卸載。驅(qū)動(dòng)程序通常以內(nèi)核模塊
    的頭像 發(fā)表于 08-30 15:02 ?474次閱讀

    linux驅(qū)動(dòng)程序主要有哪些功能

    Linux驅(qū)動(dòng)程序是操作系統(tǒng)與硬件設(shè)備之間進(jìn)行通信的橋梁,負(fù)責(zé)實(shí)現(xiàn)硬件設(shè)備與操作系統(tǒng)之間的數(shù)據(jù)交換和控制。Linux驅(qū)動(dòng)程序的主要功能包括以下幾個(gè)方面: 設(shè)備識(shí)別與初始 Linux驅(qū)動(dòng)程序
    的頭像 發(fā)表于 08-30 14:47 ?367次閱讀

    linux驅(qū)動(dòng)程序的編譯方法是什么

    Linux驅(qū)動(dòng)程序的編譯方法主要包括兩種: 與內(nèi)核一起編譯 和 編譯成獨(dú)立的內(nèi)核模塊 。以下是對(duì)這兩種方法的介紹: 一、與內(nèi)核一起編譯 與內(nèi)核一起編譯意味著將驅(qū)動(dòng)程序的源代碼直接集成到Linux內(nèi)核
    的頭像 發(fā)表于 08-30 14:46 ?577次閱讀

    紅帽發(fā)布RHEL AI開(kāi)發(fā)者預(yù)覽版,集成IBM Granite模型,簡(jiǎn)化AI開(kāi)發(fā)流程

    RHEL AI依托InstructLab開(kāi)源項(xiàng)目,結(jié)合IBM Research的開(kāi)源授權(quán)Granite大型語(yǔ)言模型與InstructLab模型對(duì)齊工具,采用LAB(Large-scale Alignment for chatBots)方法創(chuàng)建可引導(dǎo)的RHEL鏡像,從而
    的頭像 發(fā)表于 05-08 15:01 ?493次閱讀

    怎么編寫Framebuffer驅(qū)動(dòng)程序

    Framebuffer 驅(qū)動(dòng)程序框架 分為上下兩層: fbmem.c:承上啟下 實(shí)現(xiàn)、注冊(cè) file_operations 結(jié)構(gòu)體 把 APP 的調(diào)用向下轉(zhuǎn)發(fā)到具體的硬件驅(qū)動(dòng)程序
    的頭像 發(fā)表于 03-22 09:13 ?565次閱讀
    怎么編寫Framebuffer<b class='flag-5'>驅(qū)動(dòng)程序</b>

    什么是模塊化機(jī)房?

    在這個(gè)數(shù)據(jù)驅(qū)動(dòng)的時(shí)代,數(shù)據(jù)中心的作用變得日益重要。而模塊化機(jī)房,作為一種創(chuàng)新的數(shù)據(jù)中心解決方案,正在逐漸改變我們構(gòu)建和管理這些關(guān)鍵設(shè)施的方式。但究竟什么是模塊化機(jī)房呢?它又為何受到越來(lái)越多行業(yè)的青睞?在本文中,我們將一探究竟。
    的頭像 發(fā)表于 03-12 15:05 ?1483次閱讀

    NVIDIA顯卡驅(qū)動(dòng)下載哪個(gè)?NVIDIA顯卡驅(qū)動(dòng)下載方法

    關(guān)于下載哪個(gè)NVIDIA顯卡驅(qū)動(dòng),建議您下載最新版本的官方驅(qū)動(dòng)程序,以確保顯卡性能的穩(wěn)定性和最佳體驗(yàn)。同時(shí),也可以根據(jù)您的電腦型號(hào)和配置,選擇適合您的驅(qū)動(dòng)程序版本。如果您不確定應(yīng)該下載
    的頭像 發(fā)表于 03-01 17:11 ?2653次閱讀

    模塊化UPS是什么?模塊化UPS電源并機(jī)的優(yōu)點(diǎn)

    模塊化UPS是什么?模塊化UPS電源并機(jī)的優(yōu)點(diǎn)? 模塊化UPS是一種將UPS電源拆分為多個(gè)獨(dú)立模塊的解決方案。每個(gè)模塊包括一個(gè)或多個(gè)電池組、
    的頭像 發(fā)表于 01-10 15:16 ?1362次閱讀