Graphics processing unit

Related articles
NVIDIA
AMDGPU
Intel
Wayland
Xorg
OpenGL
Vulkan
Hardware video acceleration
External GPU
A
graphics processing unit
(GPU) is the hardware in your computer that generates the video feed that appears on your display. They are present in two device types:
Integrated Graphics Processors
(IGP) and dedicated (or discrete) graphics, also known as
graphics cards
. The acronym is often abused to refer to the graphics card as a whole.
Their ease to perform parallel calculation has given birth to
general-purpose computing on graphics processing units
(GPGPU).
Installation
The Linux kernel includes open-source video drivers and support for hardware accelerated framebuffers. However, userland support is required for
OpenGL
,
Vulkan
, 2D acceleration in
Xorg
and
hardware video acceleration
.
First, identify the graphics card (the
Subsystem
output shows the specific model):
$ lspci -vnnd ::03xx
Tip
::03
here means "
Display controller
PCI device class", and
xx
stands for "any subclass of the class".
Then, installing its video driver is required. See the tables below for the three major vendors.
For 32-bit software, enable the
multilib
repository and install
lib32-
prefixed userspace drivers, such as
lib32-mesa
,
lib32-vulkan-radeon
,
lib32-nvidia-utils
, etc.
For X11, other
Device Dependent X (DDX)
drivers can be found in the
xorg-drivers
group or searching for
xf86-video
. In most cases, you do not need to install any DDX drivers; see
Xorg#Drivers
for details.
AMD
AMD supports the open source driver. A proprietary driver was provided before but it is no longer packaged.
[1]
[2]
Tip
For a translation of model names (e.g.
Radeon RX 6600
) to GPU family (e.g.
RDNA 2
), see
Wikipedia:List of AMD graphics processing units#Features overview
.
See
Hardware video acceleration#Comparison tables
for details on
VA-API
support per GPU family.
Documentation
GPU family
DRM driver
OpenGL
Vulkan
DDX driver
VA-API
AMDGPU
GCN 3 and later (e.g. RDNA 1-4)
Included in
Linux
mesa
vulkan-radeon
xf86-video-amdgpu
2
mesa
AMDGPU
1
/
ATI
GCN 1&2
Depends on the chosen driver
ATI
TeraScale 1-3
None
xf86-video-ati
2
R300 through R500
None
R100 & R200
mesa-amber
Rage 4 and older
Not available
[3]
[4]
Enabled by default since
linux
≥6.19, can be manually chosen otherwise
Using the modesetting driver is reported to work without issues
Intel
Intel provides and supports open source drivers, except for PowerVR-based graphics (GMA 3600 series) which are not supported.
Tip
Intel's Gen
N
hardware does not refer to the generation of the CPU, it refers to the
generation of the GPU
, which is different from the generation of the CPU.
See
Hardware video acceleration#Comparison tables
for more details on
VA-API
support per GPU family, only the packages are listed below.
Documentation
GPU family
DRM driver
OpenGL
Vulkan
DDX driver
VA-API
Intel graphics
Gen 12.1 and later
Included in
Linux
mesa
vulkan-intel
1
xf86-video-intel
2
intel-media-driver
Gen 8 through 11
intel-media-driver
or legacy
libva-intel-driver
Gen 7 & 7.5
libva-intel-driver
Gen 5 & 6
None
Gen 3 through 4.5
None
Gen 2
mesa-amber
Gen 7 and 7.5 have
incomplete support
, Gen 8 is limited to Vulkan 1.3.
The
modesetting
DDX driver is recommended for Gen 3 hardware and later. See
Intel graphics#Installation
for details.
NVIDIA
NVIDIA does not support the fully open driver. They switched to a hybrid approach (with an open DRM driver and closed userland) in 2022.
Tip
For a translation of model names (e.g.
RTX 4060
) to GPU family (e.g.
NV190
), see
nouveau wiki's code names page
.
See
Hardware video acceleration#NVIDIA
for details on which APIs are supported, and
Hardware video acceleration#VDPAU drivers
for details per GPU family.
License
Documentation
GPU family
DRM driver
OpenGL
Vulkan
DDX driver
Open
Nouveau
1
Kepler (NVE0/GKXXX)
and newer
Included in
Linux
mesa
vulkan-nouveau
xf86-video-nouveau
2
Fahrenheit (NV04/05)
through
Fermi (NVC0/GF1XX)
None
Open DRM driver, proprietary userland
NVIDIA
1
Turing (NV160/TUXXX)
and newer
nvidia-open
nvidia-utils
Proprietary
Maxwell (NV110/GMXXX)
through
Ada Lovelace (NV190/ADXXX)
nvidia-580xx-dkms
AUR
nvidia-580xx-utils
AUR
Kepler (NVE0/GKXXX)
nvidia-470xx-dkms
AUR
nvidia-470xx-utils
AUR
Fermi (NVC0/GF1XX)
nvidia-390xx-dkms
AUR
nvidia-390xx-utils
AUR
None
nvidia-390xx-utils
AUR
Tesla (NV50/G80-90-GT2XX)
nvidia-340xx-dkms
AUR
nvidia-340xx-utils
AUR
nvidia-340xx-utils
AUR
Curie (NV40/G70)
and older
No longer packaged
For NVIDIA Optimus enabled laptop which uses an integrated video card combined with a dedicated GPU, see
NVIDIA Optimus
.
The
modesetting
DDX driver is recommended for for
NV50 (G80)
and later. See
Nouveau#Installation
for details.
Loading
Most driver kernel modules should load automatically on system boot.
If it does not happen, then:
Make sure you do
not
have
nomodeset
or
vga=
as a
kernel parameter
, since they require
KMS
.
Also, check that you have not disabled the driver by using any
kernel module blacklisting
.
Monitoring
Monitoring your GPU is often used to check the temperature, core and VRAM utilization, and the P-states of your GPU.
CLI
amdgpu_top
— Tool to display AMDGPU usage
https://github.com/Umio-Yasuno/amdgpu_top
||
amdgpu_top
nvtop
— GPUs process monitoring for AMD, Intel and NVIDIA
https://github.com/Syllo/nvtop
||
nvtop
radeontop
— A GPU utilization viewer, both for the total activity percent and individual blocks. Works with ATI's R600 and newer GPUs as well as cards using the
AMDGPU
driver
https://github.com/clbr/radeontop
||
radeontop
nvidia-smi
— CLI monitoring tool for Fermi and newer
NVIDIA
GPUs bundled in with NVIDIA's proprietary drivers
https://docs.nvidia.com/deploy/nvidia-smi/index.html
||
nvidia-utils
GUI
amdgpu_top
— Tool to display AMDGPU usage
https://github.com/Umio-Yasuno/amdgpu_top
||
amdgpu_top
AmdGuid
— A basic fan control GUI fully written in Rust.
https://github.com/Eraden/amdgpud
||
amdguid-wayland-bin
AUR
,
amdguid-glow-bin
AUR
Radeon Profile
— A Qt5 tool to read and change current clocks of AMD Radeon cards.
https://github.com/emerge-e-world/radeon-profile
||
radeon-profile-git
AUR
TuxClocker
— A Qt5 monitoring and overclocking tool.
https://github.com/Lurkki14/tuxclocker
||
tuxclocker
AUR
Plasma System Monitor
— An interface for monitoring system sensors, process information and other system resources. Bundled in with
KDE Plasma
.
https://apps.kde.org/plasma-systemmonitor/
||
plasma-systemmonitor
LACT
— Control your AMD, Nvidia or Intel GPU on a Linux system.
https://github.com/ilya-zlobintsev/LACT
||
lact