跳至內容

圖形處理器

出自 Arch Linux 中文维基

圖形處理器 (graphics processing unit, GPU) 是計算機中負責生成顯示器所顯示畫面的硬體,也經常(不嚴謹地)稱為顯卡 (graphics card)。存在兩種類型的設備:集成顯卡 (integrated GPU, iGPU) 和獨立顯卡 (discrete GPU, dGPU)。在中文語境下,有時集成顯卡也會不嚴謹地稱為「核顯」。

由於 GPU 擅長並行計算,因此催生了通用圖形處理器英語general-purpose computing on graphics processing units (GPGPU)。

安裝

Linux 內核中已經包含了用於硬體加速幀緩衝的顯卡驅動。然而,OpenGLVulkan硬體視頻加速Xorg 的 2D 加速仍然需要用戶空間驅動支持。

首先,識別設備型號(輸出中的第一行以及 Subsystem 一項顯示了具體型號):

$ lspci -v -nn -d ::03xx
提示:這裡的 ::03 表示「顯示控制器 PCI 設備類」,並且 xx 表示「該類的任何子類」。您可以在安裝 hwdata 後,在 /usr/share/hwdata/pci.ids 文件中搜索 Display controller 查看。

然後,安裝所需的顯卡驅動。參閱下方三個品牌的表格。

對於 32 位軟體,需要啟用 multilib 倉庫並安裝以 lib32- 為前綴的用戶空間驅動,例如 lib32-mesalib32-vulkan-radeonlib32-nvidia-utils 等等。

對於 X11,其它 Device Dependent X (DDX) 驅動可以在 xorg-drivers包組 中找到,或者可以搜索 xf86-video。大部分情況下,您不需要安裝任何 DDX 驅動;詳情參閱 Xorg#驅動安裝

AMD

AMD 支持開源驅動。曾經提供過一個專有驅動,但已經不再打包了。[1][2]

提示:要尋找從型號名(如 Radeon RX 6600)到 GPU 家族名(如 RDNA 2)的對照表,參閱 Wikipedia:List of AMD graphics processing units#Features overview.

有關各個 GPU 家族對 VA-API 的支持情況,參閱硬體視頻加速#對照表了解詳情。

文檔 GPU 家族 DRM 驅動 OpenGL Vulkan VA-API
AMDGPU GCN 3 及更新(如 RDNA 1-4) 包含在 Linux mesa vulkan-radeon mesa
AMDGPU1 / ATI GCN 1&2 取決於選擇的驅動
ATI TeraScale 1-3
R300 到 R500
R100 & R200 mesa-amber
Rage 4 及更舊 無可用驅動 [3][4]
  1. 自從 linux≥6.19 以來默認啟用,但其餘版本也可以手動選擇驅動

Intel

Intel 提供並支持開源驅動,除了舊的基於 PowerVR 的顯卡(GMA 3600 系列)不支持以外。

提示:Intel 所說的 Gen N 硬體並不是指 CPU 的代數,它指的是 GPU 的代數,和 CPU 的不一樣。

有關各個 GPU 家族對 VA-API 的支持情況,參閱硬體視頻加速#對照表了解詳情,下面只列出了軟體包。

文檔 GPU 家族 DRM 驅動 OpenGL Vulkan VA-API
Intel 圖形處理器 Gen 12.1 及更新 包含在 Linux mesa vulkan-intel1 intel-media-driver
Gen 8 到 11 intel-media-driver
或舊版 libva-intel-driver
Gen 7 & 7.5 libva-intel-driver
Gen 5 & 6
Gen 3 到 4.5
Gen 2 mesa-amber
Gen 1 無可用驅動 [5]
  1. Gen 7 和 7.5 只有不完整的支持,Gen 8 被限制在 Vulkan 1.3。

NVIDIA

NVIDIA 不支持完全開源的驅動。他們從 2022 年起改為使用一種混合方案(開源內核 DRM 驅動和閉源用戶空間驅動)。

提示:要尋找從型號名(如 RTX 4060)到 GPU 家族名(如 NV190)的對照表,參閱 nouveau wiki 上的代號頁面

參閱硬體視頻加速#NVIDIA以了解支持哪些 API,並參閱硬體視頻加速#VDPAU 驅動了解各個 GPU 家族的支持詳情。

許可 文檔 GPU 家族 DRM 驅動 OpenGL Vulkan
開源 Nouveau1 Kepler (NVE0/GKXXX) 及更新 包含在 Linux mesa vulkan-nouveau
Rankine (NV30)Fermi (NVC0/GF1XX)
Fahrenheit (NV04/05)Kelvin (NV20) mesa-amber
開源 DRM 驅動、專有用戶空間驅動 NVIDIA1 Turing (NV160/TUXXX) 及更新 nvidia-open nvidia-utils
專有 Maxwell (NV110/GMXXX)
Ada Lovelace (NV190/ADXXX)
nvidia-580xx-dkmsAUR nvidia-580xx-utilsAUR
Kepler (NVE0/GKXXX) nvidia-470xx-dkmsAUR nvidia-470xx-utilsAUR
Fermi (NVC0/GF1XX) nvidia-390xx-dkmsAUR nvidia-390xx-utilsAUR
Tesla (NV50/G80-90-GT2XX) nvidia-340xx-dkmsAUR nvidia-340xx-utilsAUR
Curie (NV40/G70) 及更舊 不再打包
  1. 對於同時使用集成顯卡和獨立顯卡、且啟用了 NVIDIA Optimus 的筆記本電腦,參閱 NVIDIA Optimus

加載

大部分驅動的內核模塊會在系統啟動時自動加載。

如果沒有自動加載,那麼:

監控

監控 GPU 的工具經常用於查看 GPU 的溫度、核心和顯存 (VRAM) 使用率、以及 P-state。

CLI

  • amdgpu_top — 顯示 AMDGPU 使用率的工具
https://github.com/Umio-Yasuno/amdgpu_top || amdgpu_top
  • nvtop — 支持 AMD、Intel 和 NVIDIA 的 GPU 進程監視器
https://github.com/Syllo/nvtop || nvtop
  • radeontop — GPU 使用率查看器,支持顯示總體的活動百分比和各個部分的使用情況。支持 ATI R600 或更新的顯卡,以及使用 AMDGPU 驅動的顯卡。
https://github.com/clbr/radeontop || radeontop
  • nvidia-smi — NVIDIA 專有驅動捆綁的命令行監控工具,支持 Fermi 或更新的 NVIDIA GPU
https://docs.nvidia.com/deploy/nvidia-smi/index.html || nvidia-utils

GUI

  • amdgpu_top — 顯示 AMDGPU 使用率的工具
https://github.com/Umio-Yasuno/amdgpu_top || amdgpu_top
  • AmdGuid — 一個基礎的風扇控制 GUI,完全使用 Rust 編寫
https://github.com/Eraden/amdgpud || amdguid-wayland-binAUR, amdguid-glow-binAUR
  • Radeon Profile — 用於讀取和更改 AMD Radeon 顯卡當前時鐘頻率的 Qt5 工具
https://github.com/emerge-e-world/radeon-profile || radeon-profile-gitAUR
  • TuxClocker — 基於 Qt5 的監控和超頻工具
https://github.com/Lurkki14/tuxclocker || tuxclockerAUR
  • Plasma System Monitor — 一個顯示系統傳感器、進程信息和其它系統資源的界面。捆綁在 KDE Plasma 中。
https://apps.kde.org/plasma-systemmonitor/ || plasma-systemmonitor
  • LACT — 在 Linux 系統上控制您的 AMD、Nvidia 或 Intel GPU
https://github.com/ilya-zlobintsev/LACT || lact