跳转至内容

NVIDIA

来自 ArchWiki

本文涵盖官方 NVIDIA 显卡驱动程序。有关社区开发的开源驱动,请参阅 Nouveau。如果您使用的是混合显卡笔记本电脑,请参阅 NVIDIA Optimus

安装

警告 避免通过 NVIDIA 官网提供的软件包安装驱动。通过 pacman 安装驱动程序可以确保其与系统其余部分同步更新。
注意 在使用 混合显卡 的系统上进行双启动时,启用 Windows 或第三方应用中的“节能模式”(如 华硕 Eco 模式)可能会完全禁用 NVIDIA 独立显卡,导致系统无法检测到它。

首先,请在 Nouveau wiki 的代号页面 上根据型号/官方名称查找显卡代号(例如 NV110, NVC0 等)。

$ lspci -k -d ::03xx

然后,根据您的显卡安装对应的驱动程序

GPU系列 驱动程序 状态
Blackwell (GBXXX) 及更新架构 nvidia-open 适用于 linux
nvidia-open-lts 适用于 linux-lts
nvidia-open-dkms 适用于任意内核
上游推荐
当前受支持版本1
Turing (NV160/TUXXX) 及更新
Ada Lovelace (NV190/ADXXX)
同时受以下支持
Maxwell (NV110/GMXXX)
Volta (NV140/GV100)
nvidia-580xx-dkmsAUR 遗留版本,受支持
Kepler (NVE0/GKXXX) nvidia-470xx-dkmsAUR 遗留版本,不受支持3,4
Fermi (NVC0/GF1XX) nvidia-390xx-dkmsAUR
Tesla (NV50/G80-90-GT2XX) nvidia-340xx-dkmsAUR
Curie (NV40/G70) 及更早版本 已不再打包


  1. 如果这些包无法工作(通常是因为硬件较新),nvidia-open-betaAUR 可能有更新的版本提供支持。
  2. NVIDIA 的 GSP 固件 已知存在问题,从 Turing GPU 的电源管理不佳某些搭载 Ampere GPU 的笔记本电脑无法启动。如果受到影响,请使用专有驱动程序(例如 nvidia-580xx-dkmsAUR),并添加 内核模块参数 NVreg_EnableGpuFirmware=0
  3. 在搭载 第 11 代及更新 CPU 的 Linux 5.18(或更新版本)系统上,由于与 间接分支跟踪 (IBT) 不兼容,可能无法正常工作。您可以通过在 引导加载程序 中设置 ibt=off 内核参数 来禁用它。请注意,此安全功能旨在 减轻一类漏洞利用技术
  4. NVIDIA 已不再积极维护这些显卡,其驱动程序 可能无法官方支持当前的 Xorg 版本。使用 nouveau 驱动程序可能更简单;不过,NVIDIA 的遗留驱动程序依然可用,且可能提供更好的 3D 性能/稳定性。
  • 安装 dkms 时,请阅读 DKMS#安装
  • DKMS 变体不绑定于特定内核,因为它们会为已安装内核头文件的每个内核重新编译 NVIDIA 内核模块。

对于 32 位应用程序支持,还需要从 multilib 仓库安装对应的 lib32 软件包(例如 lib32-nvidia-utils)。

nvidia-utils 软件包包含一个文件,会在重启后将 nouveau 模块列入黑名单。您可以选择从 /etc/mkinitcpio.confHOOKS 数组中移除 kms重新生成 initramfs。这将防止 initramfs 包含 nouveau 模块,从而确保内核无法在启动早期加载它。

自定义内核

确保您的内核配置了 CONFIG_DRM_SIMPLEDRM=y,如果使用了 CONFIG_DEBUG_INFO_BTF,则(从 5.16 内核起)在 PKGBUILD 中也需要此项。

install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids

如果您的内核编译时启用了 CONFIG_NOVA_CORE,您可能需要阻止新的 NVIDIA GPU 驱动 Nova 加载。nvidia-utils 默认将其添加至黑名单。您可以 通过运行 systemd-analyze 进行检查。如果您安装了不同版本的驱动,可能需要手动将 nova_corenova_drm 模块 列入黑名单

DRM 内核模式设置

内核模式设置 (KMS) 是 Wayland 合成器正常工作的前提。在 NVIDIA 双显卡系统上,原生 Wayland 渲染也需要 KMS。NVIDIA 不支持在未启用 DRM (Direct Rendering Manager) 的情况下使用 自动 KMS 后期加载。从 nvidia-utils 560.35.03-5 版本起,DRM 已 默认启用

要验证 DRM 是否确实启用,请执行以下操作:

# cat /sys/module/nvidia_drm/parameters/modeset

现在应该返回 Y 而不是 N

对于旧于 560 版本的驱动,请手动为 nvidia_drm 模块设置 modeset=1 内核模块参数

官方支持的内核 启用了 simpledrm,而 NVIDIA 驱动在 其自身的 fbdev 被禁用(或在 545 版本前的旧驱动中不可用)时需要 efifbvesafb:如果遇到问题,请查看 BBS#307164 获取可能的解决方案。

早期加载

对于基本功能,添加内核参数通常就足够了。如果您想确保其尽早加载,或者注意到启动问题(例如 nvidia 内核模块在 显示管理器 之后加载),可以将 nvidianvidia_modesetnvidia_uvmnvidia_drm 添加到 initramfs。请参阅 内核模块#早期模块加载 以了解如何配置 initramfs 生成器。

注意 早期加载这些模块会破坏休眠功能,因为 显存保留 是默认启用的。

硬件加速视频解码

GeForce 8 系列及更新显卡支持使用 VDPAU 进行加速视频解码。Fermi(约 400 系列)及更新显卡支持使用 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"

Wayland 配置

关于 Xwayland,请查看 Wayland#Xwayland

有关更多配置选项,请参阅相应 合成器 的 wiki 页面或文档。

注意 在 555.xx 版本驱动之前,或者当使用不支持通过 linux-drm-syncobj-v1 协议进行显式同步 (Explicit Sync) 的 Wayland 合成器时,NVIDIA 驱动可能会出现严重问题,表现为闪烁、帧顺序错乱等,这在原生 Wayland 和 Xwayland 应用程序中都会出现。

基础支持

对于 nvidia_drm 模块,有两个内核参数需要考虑:modesetfbdev。在使用 nvidia-utils 软件包时,它们均 默认启用。NVIDIA 也 计划在未来的版本中默认启用它们

modeset

启用 modeset 对于所有 Wayland 配置正常运行都是必要的。

对于不支持的驱动程序,如果需要手动启用 modeset,请参阅 #DRM 内核模式设置,以及 Wayland#要求 了解更多信息。

fbdev

NVIDIA 支持的驱动版本提供了 帧缓冲 (framebuffer)。对于不再受支持的遗留驱动版本,某些 Wayland 配置可能需要为 nvidia_drm 模块启用 fbdev 内核模块参数

这在 Linux 6.11 及更高版本上是严格要求的,但目前尚不清楚这是预期行为还是错误,详情请参阅 [1]

要验证 NVIDIA 帧缓冲是否已启用,请执行以下操作:

# cat /sys/module/nvidia_drm/parameters/fbdev

如果启用了帧缓冲,它将返回 Y

挂起支持

Wayland 的挂起比 Xorg 更容易受默认设置的影响,详细信息请参见 /Tips and tricks#挂起后保留显存

如果您使用 GDM,也请参阅 GDM#Wayland 和 NVIDIA 专有驱动

nvidia-application-profiles-rc.d

如果未针对进程名称 应用 GLVidHeapReuseRatio 应用程序配置键,某些 Wayland 合成器默认会占用大量显存。例如,niri 用户可以通过以下配置释放高达约 2.5GiB 的空闲显存占用:

/etc/nvidia/nvidia-application-profiles-rc.d/50-limit-free-buffer-pool-in-wayland-compositors.json
{
    "rules": [
        {
            "pattern": {
                "feature": "procname",
                "matches": "niri"
            },
            "profile": "Limit free buffer pool on Wayland compositors"
        }
    ],
    "profiles": [
        {
            "name": "Limit free buffer pool on Wayland compositors",
            "settings": [
                {
                    "key": "GLVidHeapReuseRatio",
                    "value": 0
                }
            ]
        }
    ]
}

Xorg配置

NVIDIA 专有显卡驱动程序不需要任何 Xorg 服务器配置文件。您可以 启动 X 查看 Xorg 服务器在没有配置文件的情况下是否能正常运行。然而,为了调整各种设置,可能需要创建一个配置文件(建议使用 /etc/X11/xorg.conf.d/20-nvidia.conf 而不是 /etc/X11/xorg.conf)。此配置可以通过 NVIDIA Xorg 配置工具生成,也可以手动创建。如果手动创建,它可以是一个最小化配置(即仅传递基本选项给 Xorg 服务器),或者包含许多覆盖 Xorg 自动发现或预置选项的设置。

提示 更多配置选项,请参见 NVIDIA/故障排除

自动配置

NVIDIA 软件包包含一个自动配置工具,用于创建 Xorg 服务器配置文件 (xorg.conf),可通过以下命令运行:

# nvidia-xconfig

该命令将根据现有硬件自动检测并创建(或编辑,如果已存在)/etc/X11/xorg.conf 配置。

仔细检查您的 /etc/X11/xorg.conf,确保默认色深、水平同步、垂直刷新率和分辨率均可接受。

nvidia-settings

nvidia-settings 工具允许您通过 CLI 或 GUI 配置许多选项。不带任何选项运行 nvidia-settings 将启动 GUI;有关 CLI 选项,请参见 nvidia-settings(1)

您可以以非 root 用户身份运行 CLI/GUI,并通过“nvidia-settings Configuration”选项卡下的“Save Current Configuration”将设置保存到 ~/.nvidia-settings-rc

要为当前用户加载 ~/.nvidia-settings-rc

$ nvidia-settings --load-config-only

请参阅 自动启动 (Autostarting) 以在每次启动时运行此命令。

注意 保存 nvidia-settings 更改后,Xorg 可能无法启动或在启动时崩溃。调整或删除生成的 ~/.nvidia-settings-rc 和/或 Xorg 文件应能恢复正常启动。

手动配置

通过编辑配置文件,可以执行一些无法 自动 或通过 nvidia-settings 启用的调整。任何更改生效前都需要重启 Xorg 服务器。

有关详细信息和选项,请参阅 NVIDIA 加速 Linux 图形驱动 README 和安装指南

最小化配置

20-nvidia.conf(或已弃用的 xorg.conf)中的基本配置块如下所示:

/etc/X11/xorg.conf.d/20-nvidia.conf
Section "Device"
        Identifier "NVIDIA Card"
        Driver "nvidia"
        VendorName "NVIDIA Corporation"
        BoardName "GeForce GTX 1050 Ti"
EndSection

禁用启动 Logo

如果您使用的是旧版驱动(nvidia-340xx-dkmsAUR),可能需要禁用 X 启动时显示的 NVIDIA Logo 闪屏。在 Device 部分下添加 "NoLogo" 选项:

Option "NoLogo" "1"

覆盖显示器检测

Device 部分下的 "ConnectedMonitor" 选项允许在 X 服务器启动时覆盖显示器检测,这可以显著缩短启动时间。可用选项为:"CRT"(模拟连接)、"DFP"(数字显示器)和 "TV"(电视)。

以下语句强制 NVIDIA 驱动绕过启动检查并将显示器识别为 DFP:

Option "ConnectedMonitor" "DFP"
注意 对于所有 15 针模拟 VGA 连接,即使显示器是平板显示器,也请使用 "CRT"。"DFP" 仅适用于 DVI、HDMI 或 DisplayPort 数字连接。

启用亮度控制

本文或本章节已过时。

原因: 可能已过时[2],上游软件包似乎也非常老旧。(在 Talk:NVIDIA 中讨论)

添加到内核参数

nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1

或者,在 Device 部分下添加以下内容:

Option "RegistryDwords" "EnableBrightnessControl=1"

如果使用此选项后亮度控制仍无效,请尝试安装 nvidia-bl-dkmsAUR

注意 安装 nvidia-bl-dkmsAUR 将提供 /sys/class/backlight/nvidia_backlight/ 接口进行背光亮度控制,但您的系统可能会继续在 /sys/class/backlight/acpi_video0/ 上发出背光控制更改。此情况的一种解决方案是使用 inotifywait 监视 acpi_video0/brightness 等的更改,并相应地转换并写入 nvidia_backlight/brightness。参见 Backlight#sysfs 已修改但亮度无变化

启用 SLI

本文或本章节已过时。

原因: 从 455.23.04 版本起,某些 SLI 模式不再受支持。(在 Talk:NVIDIA 中讨论)
警告 自 GTX 10xx 系列(1080, 1070, 1060 等)起,仅支持 2-way SLI。3-way 和 4-way SLI 可能适用于 CUDA/OpenCL 应用,但极有可能会破坏所有 OpenGL 应用。

摘自 NVIDIA 驱动的 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"
注意 格式很重要。BusID 值必须指定为 "PCI:<BusID>:0:0"

Screen 部分下添加所需的 SLI 渲染模式值:

Option "SLI" "AA"

下表列出了可用的渲染模式:

行为
0, no, off, false, Single 渲染时仅使用单个 GPU。
1, yes, on, true, Auto 启用 SLI 并允许驱动自动选择适当的渲染模式。
AFR 启用 SLI 并使用交替帧渲染 (Alternate Frame Rendering) 模式。
SFR 启用 SLI 并使用分割帧渲染 (Split Frame Rendering) 模式。
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.
警告 启用 SLI 后,您的系统在启动 xorg 时可能会死机/无响应。建议在重启前禁用显示管理器。

如果此配置无效,您可能需要使用 nvidia-settings 提供的 PCI Bus 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}

:: 之后到属性末尾的所有内容保存(本例中为:DPY-1: 2880x1620 @2880x1620 +0+0 {ViewPortIn=2880x1620, ViewPortOut=2880x1620+0+0}),并使用 nvidia-settings --assign "CurrentMetaMode=your_meta_mode" 重新配置您的显示器。

提示 您可以为使用的不同显示器和分辨率配置创建 shell 别名。

ConnectedMonitor

本文或本章节已过时。

原因: Option "TwinView" 已在 302.07 版本中移除,TwinView 始终处于启用状态,此配置需要重写。(在 Talk:NVIDIA 中讨论)

如果驱动程序未能正确检测到第二台显示器,您可以使用 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

本文或本章节已过时。

原因: Option "TwinView" 已在 302.07 版本中移除,TwinView 始终处于启用状态。(在 Talk:NVIDIA 中讨论)

如果您想要一个大屏幕而不是两个屏幕。将 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 的显卡,可以运行连接到不同显卡的多台显示器(例如:两张 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
使用 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 端口)。您可以在 nvidia-settingsX Server XVideoSettings 部分找到显示器的标识符。

使用 TwinView 进行游戏

如果您想在使用 TwinView 时玩全屏游戏,会发现游戏将两台屏幕识别为一个大屏幕。虽然在技术上是正确的(虚拟 X 屏幕确实是您所有屏幕的总和),但您可能不希望同时在两台屏幕上玩游戏。

要针对 SDL 1.2 纠正此行为,请尝试:

export SDL_VIDEO_FULLSCREEN_HEAD=1

对于 OpenGL,将适当的 Metamodes 添加到 xorg.conf 的 Device 部分并重启 X:

Option "Metamodes" "1680x1050,1680x1050; 1280x1024,1280x1024; 1680x1050,NULL; 1280x1024,NULL;"

另一种可能单独有效或与上述方法结合使用的方法是 在单独的 X 服务器中启动游戏

Mosaic 模式

Mosaic 模式是使用多块显卡和合成功能连接两台以上显示器的唯一方法。您的窗口管理器可能会也可能不会识别每台显示器之间的区别。Mosaic 模式需要有效的 SLI 配置。即使在不使用 SLI 的 Base 模式下,GPU 也必须是支持/兼容 SLI 的。

Base Mosaic

Base Mosaic 模式适用于任何 Geforce 8000 系列或更高版本的 GPU。它无法在 nvidia-setting GUI 中启用。您必须使用 nvidia-xconfig 命令行程序或手动编辑 xorg.conf。必须指定 Metamodes。以下是四个 DFP 组成的 2x2 配置的示例,每个以 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"
注意 虽然文档列出了 2x2 显示器配置,但 GeForce 显卡在 Base Mosaic 模式下被人为限制为最多 3 台显示器。Quadro 显卡支持 3 台以上的显示器。截至 2014 年 9 月,Windows 驱动已取消此人为限制,但它仍存在于 Linux 驱动中。
SLI Mosaic

如果您有 SLI 配置且每个 GPU 都是 Quadro FX 5800、Quadro Fermi 或更新型号,则可以使用 SLI Mosaic 模式。它可以在 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"

NVswitch

本文或本节需要在语言、wiki 语法或风格方面进行改进。请参阅 Help:Style 获取参考。

原因: 需要多项小修复,关于 fabric manager 的说明应制作成 AUR 包。(在 Talk:NVIDIA 中讨论)

对于具有 NVswitch 的系统,如 AWS 上的 H100x8,需要执行以下操作:

  • 安装 nvidia-fabricmanager
  • 安装 fabric manager 所需的匹配内核模块

使用 fabricmanager 时,pytorch 会报告未找到 GPU。

要安装 fabric manager:

  1. 从 nvidia 下载 tarball。此处
  2. 555.42.02 版本运行良好
  3. 修改 sbin/fm_run_package_installer.sh 中的安装脚本以修复安装文件路径

要获取匹配的内核驱动程序:

  1. git clone nvidia-beta-dkms 和 nvidia-utils-beta 的 AUR
  2. 更改 PKGBUILD 以使用 555.42.02 版本
  3. 构建并安装它们
  4. 重启

最后,systemctl enable nvidia-fabricmanagersystemctl start nvidia-fabricmanager,pytorch 应该就可以工作了。

技巧与提示

请参阅 NVIDIA/使用技巧

故障排除

请参阅 NVIDIA/故障排除

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.