本文包含安裝和配置 NVIDIA 官方顯卡驅動的信息。想要了解社區開源驅動的信息,參見 Nouveau。如果你使用具有 Intel 和 NVIDIA 雙顯卡的筆記本, 請參考 NVIDIA Optimus 頁面。
安裝
首先,從nouveau 英偉達代號查詢頁中查找您的顯卡系列代號(例如:NV110, NVC0)。您也可以運行以下命令獲知顯卡型號/名稱:
$ lspci -k -d ::03xx
隨後為您的顯卡安裝合適的驅動:
GPU 家族 | 驅動 | 支持狀態 |
---|---|---|
Turing (NV160/TUXXX)系列或更新版本 |
nvidia-open包 (適用於linux包) nvidia-open-dkms包 (適用於任意內核) |
上游推薦使用,支持中1 |
Maxwell (NV110/GMXXX)系列到 Ada Lovelace (NV190/ADXXX)系列 |
nvidia包 (適用於linux包) nvidia-lts包 (適用於linux-lts包) nvidia-dkms包 (適用於任意內核) |
支持中1 |
Kepler (NVE0/GKXXX)系列 | nvidia-470xx-dkmsAUR | 過時,不再支持2,3 |
Fermi (NVC0/GF1XX)系列 | nvidia-390xx-dkmsAUR | |
Tesla (NV50/G80-90-GT2XX)系列 | nvidia-340xx-dkmsAUR | |
Curie (NV40/G70) 以及更老的系列 | Arch Linux沒有相應的驅動包 |
- 如果以上驅動安裝後都不能正常工作,您也許需要使用 nvidia-open-betaAUR 以獲得更新版本的驅動。
- 在安裝了 Intel CPU 11 代或更新版本的處理器以及Linux 5.18 (或更高版本)的系統上可能無法正常工作,原因是與其與 Indirect Branch Tracking 這個安全功能不兼容。您可以在 Arch_的啟動流程中設置
ibt=off
內核參數來禁用它。請注意,這項安全功能負責緩解一些攻擊技術的影響。 - Nvidia不再積極為這些顯卡提供驅動。這意味著這些驅動不正式支持現在的Xorg版本。因此使用 Nouveau 驅動可能會更方便,因為它依然為這些老顯卡提供對當前Xorg的支持。但是,Nvidia 提供的 legacy 驅動依舊可用,並且或許擁有更好的 3D 性能(穩定性)。
對於 32 位應用程式支持,請安裝 multilib 倉庫中對應的 lib32 nvidia 軟體包(例如 lib32-nvidia-utils包)。
將kms
從 /etc/mkinitcpio.conf
裡的HOOKS
數組中移除,並重新生成 initramfs。 這能防止 initramfs 包含 nouveau
模塊,以確保內核在早啟動階段不會加載它。nvidia-utils包 軟體包包含一個文件,其將會在重啟後屏蔽 nouveau 內核模塊。
一旦驅動安裝完畢,就可以進入下一步了:#Xorg配置或#Wayland 配置
定製內核
安裝 nvidia-dkms包 軟體包以及你內核對應的頭文件。
確保您的內核設置了 CONFIG_DRM_SIMPLEDRM=y
選項,如果使用 CONFIG_DEBUG_INFO_BTF
,則 PKGBUILD 中需要以下選項(從內核 5.16 開始):
install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids
DRM 內核級顯示模式設置
由於NVIDIA不支持自動 KMS 晚加載, 要正常運行Wayland 合成器或沒有 root 權限的 Xorg,您必須啟用 DRM (直接渲染管理器)內核級顯示模式設置。
nvidia-utils包 560.35.03-5 版本後默認啟用 DRM (Direct Rendering Manager) 內核級顯示模式設置。對於更舊的版本,請為nvidia_drm
模塊設置內核模塊參數 modeset=1
。
使用以下命令驗證DRM是否自動啟用:
# cat /sys/module/nvidia_drm/parameters/modeset
其應當返回 Y
。
simpledrm
, 如您使用545或更舊版本的NVIDIA驅動,您需要設置內核模塊參數 nvidia_drm.fbdev
。因為當其不被啟用時,NVIDIA 驅動程序嘗試使用 efifb
或 vesafb
進行幀緩衝(其無法在simpledrm
下工作)。早啟動
對於基本功能,只需添加內核參數就足夠了。如果您希望確保驅動能被最早加載,或者遇到了啟動問題(例如 nvidia
內核模塊在顯示管理器啟動後才被加載),可以將 nvidia
、nvidia_modeset
、nvidia_uvm
和 nvidia_drm
添加到 initramfs 中。
mkinitcpio
如果使用 mkinitcpio initramfs,請按照 mkinitcpio#MODULES 添加模塊。
如果你將驅動添加到了 initramfs 中,記得每次更新 nvidia包 驅動程序後都要運行 mkinitcpio。請參見 #pacman hook 來自動執行這些步驟。
Booster
如果使用 Booster,請參考 Booster#Early module loading。
dracut
如果使用 dracut,請參考dracut#Early kernel module loading。
Pacman 鉤子
為了避免更新 NVIDIA 驅動之後忘了更新 initramfs,你可以使用 Pacman Hooks:
/etc/pacman.d/hooks/nvidia.hook
[Trigger] Operation=Install Operation=Upgrade Operation=Remove Type=Package Target=nvidia Target=linux # Change the linux part above and in the Exec line if a different kernel is used # 如果使用不同的內核,請更改上面的 linux 部分和 Exec 行中的內容,例如更改為Target=nvidia-open [Action] Description=Updating Nvidia module in initcpio Depends=mkinitcpio When=PostTransaction NeedsTargets Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'
務必保證 Target
項所設置的軟體包與你在前面的安裝過程中所使用的相符(例如nvidia
或 nvidia-dkms
或 nvidia-lts
或 nvidia-ck-something
等)。
Exec
那一行看起來非常複雜,是為了避免在 nvidia
和 linux
軟體包都發生更新的時候重複運行 mkinitcpio
。如果你覺得無所謂,可以刪掉 Target=linux
以及 NeedsTargets
,然後 Exec
就可以簡化為 Exec=/usr/bin/mkinitcpio -P
.硬體加速視頻解碼
GeForce 8 系列及更新的顯卡通過 VDPAU 進行視頻硬體解碼。費米架構(400、500系列)及更新的顯卡支持通過 NVDEC 進行硬體加速解碼。參見硬體視頻加速。
基於 NVENC 的硬體加速視頻編碼
想要使用 NVENC,則需要安裝 nvidia_uvm
模塊,並在 /dev
下創建相關設備節點。
最新的驅動程序包提供了一個 udev規則,它可以自動創建設備節點,因此不需要進一步的操作。
如果您使用舊的驅動程序 ( 例如 nvidia-340xx-dkmsAUR) ,則需要另外創建設備節點。調用 nvidia-modprobe
實用程序會自動創建它們。您可以自己創建 /etc/udev/rules.d/70-nvidia.rules
規則來自動運行它 :
/etc/udev/rules.d/70-nvidia.rules
ACTION=="add", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/usr/bin/nvidia-modprobe -c 0 -u"
Xorg 配置
NVIDIA專有驅動不需要任何 Xorg 伺服器配置文件。您可以啟動 X 來檢驗沒有配置文件的 Xorg 能否正確運行。但是,您可能需要創建配置文件(優先創建/etc/X11/xorg.conf.d/20-nvidia.conf
而不是/etc/X11/xorg.conf
)來調整 Xorg 運行時的一些設置。您可以用NVIDIA Xorg 配置工具來生成配置,也可以手動創建它。假如是手動創建的話,它可以是一個最小配置文件(也就是意味著它僅僅把一些基礎的選項傳給 Xorg 伺服器),也可以是包含大量的繞開Xorg 自動發現與預配置選項的設置的文件。
自動配置
英偉達的軟體包已經包含一個自動配置的工具來幫助您創建Xorg伺服器配置文件(xorg.conf
)。您可以通過運行下面的命令來實現自動配置:
# nvidia-xconfig
該命令會自動檢測並根據現有硬體的情況創建(或修改)/etc/X11/xorg.conf
。如果配置文件中存在DRI的話,請把它們注釋掉:
# Load "dri"
再一次檢查您的配置文件/etc/X11/xorg.conf
中的默認色深、水平同步、垂直刷新和解析度是否正確。
nvidia-settings
nvidia-settings包工具可以讓你通過 CLI 或者圖形界面配置很多選項。無參數運行nvidia-settings
會啟動圖形界面版本的配置工具,而 CLI 選項參見nvidia-settings(1)。
你可以以非 root 用戶身份使用 CLI/圖形界面配置工具,並把設置保存到~/.nvidia-settings-rc
或使用Save to X configuration File按鈕來保存到xorg.conf(用於多用戶環境)。
通過以下命令來為當前用戶加載 ~/.nvidia-settings-rc
:
$ nvidia-settings --load-config-only
參見 Autostarting 來在每次開機的時候自動執行此命令。
- 在保存了
nvidia-settings
的設置變更之後,Xorg 可能會無法啟動或者啟動時崩潰。修改或者刪掉生成的~/.nvidia-settings-rc
及(或)Xorg 文件可能能夠恢復正常啟動。 -
Cinnamon 會覆蓋通過
nvidia-settings
工具所作的修改。你可以通過 調整 Cinnamon 啟動行為以防止出現這種情況 .
手動配置
有些調整項無法通過#自動配置或#nvidia-settings自動啟用,但可以通過修改你的配置文件來進行配置。Xorg伺服器需要重新啟動以應用這些配置。
參見NVIDIA Accelerated Linux Graphics Driver README and Installation Guide來了解更多細節及選項。
最簡配置
用 root 用戶創建一個配置文件20-nvidia.conf
(或 /etc/X11/xorg.conf
):
/etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" EndSection
關閉啟動時的 Logo
如果您使用的是舊版驅動(nvidia-340xx-dkmsAUR),您可能希望禁用在 X 啟動時顯示的 NVIDIA 徽標啟動畫面。添加"NoLogo"
選項到Device
節裡:
Option "NoLogo" "1"
覆蓋顯示器偵測
Device
節下面的"ConnectedMonitor"
選項允許您覆蓋X伺服器在啟動時的顯示器偵測過程,這可能有助於在啟動時節約大量時間。可用的選項包括:"CRT"
用於模擬信號連接,"DFP"
用於數字顯示器,"TV"
用於電視。
下面的例子是強制英偉達的驅動繞開啟動檢測並且強制把顯示器識別為DFP:
Option "ConnectedMonitor" "DFP"
啟用亮度控制
添加內核參數:
nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1
或者,在Device
節下添加:
Option "RegistryDwords" "EnableBrightnessControl=1"
如果亮度控制依舊無法生效,請嘗試安裝nvidia-bl-dkmsAUR。
/sys/class/backlight/nvidia_backlight/
接口以用於背光亮度控制,但是你的系統可能會繼續發送亮度調整信號到 /sys/class/backlight/acpi_video0/
。 解決方案之一是監視文件變化,例如為 acpi_video0/brightness
添加 inotifywait 並將變化翻譯並寫入 nvidia_backlight/brightness
。 參見 Backlight#sysfs modified but no brightness change.啟用 SLI
根據英偉達驅動的 README 附錄 B: 這個選項可以在支持的配置中控制 SLI 渲染的相關配置。一個支持的配置是指有一塊 SLI 認證的主板以及 2 或者 3 個 SLI認 證的 GeForce GPU 的計算機。
您可以用lspci
查找第一個 GPU 的 PCI 總線 ID:
# lspci -d ::03xx
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09) 03:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1) 04:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GTX 650] (rev a1) 08:00.0 3D controller: NVIDIA Corporation GM108GLM [Quadro K620M / Quadro M500M] (rev a2)
在Device
節下添加 BusID(例如前面例子裡的那 3 個):
BusID "PCI:3:0:0"
"PCI:<BusID>:0:0"
的格式。根據需要的 SLI 渲染模式來添加值到Screen
節下面:
Option "SLI" "AA"
下表列出了可用的渲染模式。
Value | Behavior |
---|---|
0, no, off, false, Single | 渲染時僅使用單GPU。 |
1, yes, on, true, Auto | 啟用SLI並讓驅動自動選擇合適的渲染模式。 |
AFR | 啟用SLI並使用交替幀渲染模式。 |
SFR | 啟用SLI並使用分割幀渲染模式。 |
AA | 啟用SLI和使用SLI抗鋸齒。與全場景反鋸齒結合使用以改善視覺效果。 |
另外,您可以使用 nvidia-xconfig
實用工具來將這些變動寫入xorg.conf
:
# nvidia-xconfig --busid=PCI:3:0:0 --sli=AA
從shell來驗證一下SLI是否被啟用:
$ nvidia-settings -q all | grep SLIMode
Attribute 'SLIMode' (arch:0.0): AA 'SLIMode' is a string attribute. 'SLIMode' is a read-only attribute. 'SLIMode' can use the following target types: X Screen.
如果這個配置沒有效果,你可能需要使用 nvidia-settings
提供的PCI總線ID:
$ nvidia-settings -q all | grep -i pcibus
Attribute 'PCIBus' (host:0[gpu:0]): 101. 'PCIBus' is an integer attribute. 'PCIBus' is a read-only attribute. 'PCIBus' can use the following target types: GPU, SDI Input Device. Attribute 'PCIBus' (host:0[gpu:1]): 23. 'PCIBus' is an integer attribute. 'PCIBus' is a read-only attribute. 'PCIBus' can use the following target types: GPU, SDI Input Device.
並將 xorg.d 配置中的 PrimaryGPU 選項注釋掉:
/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
... Section "OutputClass" ... # Option "PrimaryGPU" "yes" ...
使用後面這個配置或許會順便解決任何圖形界面啟動問題。
多台顯示器
參見Multihead以獲取更多信息。
使用 nvidia-settings
nvidia-settings 工具可以配置多個監視器。
對於 CLI 配置,首先運行以下命令獲取 CurrentMetaMode
:
$ nvidia-settings -q CurrentMetaMode
Attribute 'CurrentMetaMode' (hostnmae:0.0): id=50, switchable=no, source=nv-control :: DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0}
將 ::
之後的所有內容保存到屬性末尾(在本例中為:{{ic|1=DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0}}}),并使用 {{ic|1=nvidia-settings --assign "CurrentMetaMode=''your_meta_mode''"}} 重新配置显示器。
ConnectedMonitor
如果驅動程序沒有正確檢測到第二個監視器,則可以使用 ConnectedMonitor 強制設置。
/etc/X11/xorg.conf
Section "Monitor" Identifier "Monitor1" VendorName "Panasonic" ModelName "Panasonic MICRON 2100Ex" HorizSync 30.0 - 121.0 # this monitor has incorrect EDID, hence Option "UseEDIDFreqs" "false" VertRefresh 50.0 - 160.0 Option "DPMS" EndSection Section "Monitor" Identifier "Monitor2" VendorName "Gateway" ModelName "GatewayVX1120" HorizSync 30.0 - 121.0 VertRefresh 50.0 - 160.0 Option "DPMS" EndSection Section "Device" Identifier "Device1" Driver "nvidia" Option "NoLogo" Option "UseEDIDFreqs" "false" Option "ConnectedMonitor" "CRT,CRT" VendorName "NVIDIA Corporation" BoardName "GeForce 6200 LE" BusID "PCI:3:0:0" Screen 0 EndSection Section "Device" Identifier "Device2" Driver "nvidia" Option "NoLogo" Option "UseEDIDFreqs" "false" Option "ConnectedMonitor" "CRT,CRT" VendorName "NVIDIA Corporation" BoardName "GeForce 6200 LE" BusID "PCI:3:0:0" Screen 1 EndSection
通過添加帶有 Screen
選項的重複設備配置,能讓 X 在一張顯卡上使用兩台顯示器而不需要 TwinView
。注意,nvidia-settings
將去掉您添加的任何 ConnectedMonitor
選項。
TwinView
若你想用一個大屏幕,而不是兩個屏幕.將TwinView
設為1
。只有所有顯示器都接到同一張顯卡上時,TwinView 才能工作。
Option "TwinView" "1"
示例配置:
/etc/X11/xorg.conf.d/10-monitor.conf
Section "ServerLayout" Identifier "TwinLayout" Screen 0 "metaScreen" 0 0 EndSection Section "Monitor" Identifier "Monitor0" Option "Enable" "true" EndSection Section "Monitor" Identifier "Monitor1" Option "Enable" "true" EndSection Section "Device" Identifier "Card0" Driver "nvidia" VendorName "NVIDIA Corporation" #refer to the link below for more information on each of the following options. Option "HorizSync" "DFP-0: 28-33; DFP-1: 28-33" Option "VertRefresh" "DFP-0: 43-73; DFP-1: 43-73" Option "MetaModes" "1920x1080, 1920x1080" Option "ConnectedMonitor" "DFP-0, DFP-1" Option "MetaModeOrientation" "DFP-1 LeftOf DFP-0" EndSection Section "Screen" Identifier "metaScreen" Device "Card0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "True" SubSection "Display" Modes "1920x1080" EndSubSection EndSection
另請參考設備選項信息
如果您有多個支持 SLI 的顯卡,則可以把多個顯示器接到不同的顯卡上。「MetaModes」選項與 SLI Mosaic 模式配合使用可實現此功能。下面是一個適用於上述情況的配置,它可以完美運行 GNOME。
/etc/X11/xorg.conf.d/10-monitor.conf
Section "Device" Identifier "Card A" Driver "nvidia" BusID "PCI:1:00:0" EndSection Section "Device" Identifier "Card B" Driver "nvidia" BusID "PCI:2:00:0" EndSection Section "Monitor" Identifier "Right Monitor" EndSection Section "Monitor" Identifier "Left Monitor" EndSection Section "Screen" Identifier "Right Screen" Device "Card A" Monitor "Right Monitor" DefaultDepth 24 Option "SLI" "Mosaic" Option "Stereo" "0" Option "BaseMosaic" "True" Option "MetaModes" "GPU-0.DFP-0: 1920x1200+4480+0, GPU-1.DFP-0:1920x1200+0+0" SubSection "Display" Depth 24 EndSubSection EndSection Section "Screen" Identifier "Left Screen" Device "Card B" Monitor "Left Monitor" DefaultDepth 24 Option "SLI" "Mosaic" Option "Stereo" "0" Option "BaseMosaic" "True" Option "MetaModes" "GPU-0.DFP-0: 1920x1200+4480+0, GPU-1.DFP-0:1920x1200+0+0" SubSection "Display" Depth 24 EndSubSection EndSection Section "ServerLayout" Identifier "Default" Screen 0 "Right Screen" 0 0 Option "Xinerama" "0" EndSection
對於同時擁有amd核顯和nvidia獨立顯卡的用戶
由於NVIDIA自動生成的xorg.conf配置默認不包含AMDGPU這會導致雙屏用戶其中一個屏幕不能顯示 需要先進行自動配置,然後在/etc/X11/xorg.conf.d/
下新建20-amdgpu.conf
:
Section "Device" Identifier "AMD" Driver "amdgpu" EndSection
TwinView 和垂直同步
如果您正在使用 TwinView 和垂直同步 (nvidia-settings 中的 Sync to VBlank 選項 ) ,您將注意到只有一個屏幕能正常同步,除非您有兩個相同的顯示器。雖然 nvidia-settings 確實提供了一個選項來更改垂直同步的屏幕 (Sync to this display device 選項 ) ,但這並不總是有效。一個解決方案是在啟動時添加以下環境變量,例如在 /etc/profile
中附加 :
export __GL_SYNC_TO_VBLANK=1 export __GL_SYNC_DISPLAY_DEVICE=DFP-0 export VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE=DFP-0
你可以把 DFP-0
改為你首選要同步的屏幕 (DFP-0
是DVI接口, CRT-0
是VGA接口). 您可以從 "X Server XVideoSettings" 部分的 nvidia-settings 中找到顯示器的標識符。
用 TwinView 玩遊戲
如果你想在使用 TwinView 時玩全屏遊戲,你會注意到遊戲將兩個屏幕識別為一個大屏幕。雖然這理論上沒問題(因為虛擬 X 屏幕實際上是屏幕大小的總和),但您可能不希望同時在兩個屏幕上顯示。
要糾正 SDL 的這種行為,請嘗試 :
export SDL_VIDEO_FULLSCREEN_HEAD=1
對於 OpenGL,向 xorg.conf 中添加適當的 Metamode 並重新啟動 X:
Option "Metamodes" "1680x1050,1680x1050; 1280x1024,1280x1024; 1680x1050,NULL; 1280x1024,NULL;"
另一種可以單獨使用或與上述方法結合使用的方法是在單獨的 X 伺服器中啟動遊戲。
馬賽克拼接模式
馬賽克模式是使用多個顯示器進行跨顯卡合成的唯一方式。您的窗口管理器不一定能區分不同的顯示器。馬賽克模式需要一個有效的 SLI 配置。即使使用基本模式而不使用 SLI,GPU 仍然必須支持 / 兼容 SLI。
基本馬賽克拼接模式
Base Mosaic 模式適用於任何 Geforce 8000 系列或更高版本的 GPU。無法從 nvidia-setting GUI 中啟用它。您必須使用 nvidia-xconfig 命令行程序或手動編輯 xorg.conf
。必須指定元模式。以下是 2x2 配置中四個 DFP 的示例,每個 DFP 以 1920x1024 運行,兩個 DFP 連接到兩個顯卡:
$ nvidia-xconfig --base-mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"
SLI 馬賽克拼接模式
如果您有 SLI 配置,並且每個 GPU 都是 Quadro FX 5800、Quadro Fermi 或更新型號,那麼您可以使用 SLI 馬賽克模式。可以從 nvidia-settings GUI 內或從命令行通過以下方式啟用:
$ nvidia-xconfig --sli=Mosaic --metamodes="GPU-0.DFP-0: 1920x1024+0+0, GPU-0.DFP-1: 1920x1024+1920+0, GPU-1.DFP-0: 1920x1024+0+1024, GPU-1.DFP-1: 1920x1024+1920+1024"
Wayland配置
關於 XWayland,請查看 XWayland。
有關進一步的配置選項,請查看相應混成器的 wiki 頁面或文檔。
linux-drm-syncobj-v1
協議進行顯式同步的混成器時,NVIDIA 驅動程序可能會出現嚴重問題,表現為閃爍、幀順序錯亂等,這在原生 Wayland 或 Xwayland 應用程式中均會發生。
配置
你可能需要調整nvidia_drm
模塊的以下兩個內核參數。
modeset
使用Wayland時,modeset
必須被啟用。在使用受支持的驅動程序(nvidia-utils 560.35.03-5以後)時默認啟用,未來它也將成為上游的默認設置。
對於不支持的驅動程序,需手動啟用 modeset
,請參見 #DRM 內核級顯示模式設置和 Wayland系統需求。
fbdev
啟用fbdev
對於某些 Wayland 配置是必要的。其在使用受支持的驅動程序時默認啟用,未來它也將成為上游的默認設置。
在Linux6.11以及更高版本上這是一個硬性需求,但目前尚不清楚這是預期行為還是一個錯誤[2]
您可以參考 #DRM 內核級顯示模式設置中的方法進行設置。其區別在於驗證其是否打開時,您需要執行:
# cat /sys/module/nvidia_drm/parameters/fbdev
如果沒有成功設置,其將返回缺少文件錯誤,而不是N
。
休眠支持
Wayland 的休眠可能比 X 更容易受到默認設置的影響,詳細信息請參見 Tips and tricks#Preserve video memory after suspend。
如您使用 GDM,請參考 GDM#Wayland and the proprietary NVIDIA driver。
NVswitch
對於具有 NVswitch 的系統,例如 AWS 上的 H100x8:
- 安裝 nvidia-fabricmanager
- 安裝所有fabric manager所需要的內核模塊
使用 fabricmanager 時,pytorch 會報告未找到 GPU。
安裝 fabric manager:
- 從此處下載tarball。
- 版本 555.42.02 運作良好
- 修改 sbin/fm_run_package_installer.sh 中的安裝腳本以修復安裝文件路徑
要獲取匹配的內核驅動程序:
- 克隆 nvidia-beta-dkms 和 nvidia-utils-beta 的 AUR
- 將 PKGBUILD 更改為使用版本 555.42.02
- 構建安裝並重啟
隨後運行systemctl enable nvidia-fabricmanager
以及 systemctl start nvidia-fabricmanager
,現在 pytorch 應當能正確識別到GPU。
提示和技巧
故障排除
參考 NVIDIA/故障排除.