跳转到内容

图形处理器

来自 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