Advanced Micro Devices
Advanced Micro Devices (AMD) is an American computer electronics corporation who designs and sells computer processors, motherboard chipsets and graphics card chips. Their chip designs are manufactured at TSMC and GlobalFoundries.
AMD provides very good kernel and user-space support for their graphics cards. AMD submits kernel support for upcoming graphics cards around three months before the cards are released. They sometimes submit kernel patches with improvements for up to ten year old graphics cards.
AMD develops and maintains a GPU compute framework called Radeon Open Compute which can be used to get OpenCL 2.0 support on newer AMD GPUs. ROCm is, unlike Mesa, not bundled by any GNU/Linux distributions. Those who want to use it have to install it separately.
AMD is notably absent in other areas. As an example, the sensors on partner motherboards for Ryzen processors tend to have chips sensors like it8792 and it8686 that are not supported by the Linux kernel (though there is a unmaintained and unsupported it87 driver fork available). You will rarely, if ever see anyone from @amd.com take the lead in areas like watchdog drivers, hardware sensor drivers or any other drivers for chips and features on their motherboard chipsets. AMD's contributions to both the Linux kernel and user-space programs is limited to graphics and GPU related contributions.
AMD graphics cards are very well supported on GNU/Linux systems. The OpenGL and Vulkan support, provided by the Mesa graphics stack, is very good. OpenCL 2.0 is not supported out of the box on any Linux distributions. Those who want to use AMD graphics cards for OpenCL 2.0 and other compute applications have to manually install the Radeon Open Compute framework.
- See AMD graphics for detailed information about AMD graphics cards, kernel options, driver tips and other information about AMD graphics chips.
AMD processors tend to work well under Linux but there has been some huge issues with several of them at launch like not being able to boot Linux distributions at all.
First generation Ryzen CPUs
First generation Ryzen CPUs have an issue that can cause random hangs on GNU/Linux when the CPU is idle. This problem was later partly fixed with BIOS updates. Users of first generation Ryzen CPUs should:
- make sure a BIOS setting named something like
Power Supply Idle Controlor
Idle Power(depends on BIOS) is set to
Typical Current Idle(the choices are usually
Low Current Idle,
Typical Current Idleand
idle=nomwaitto the kernel boot parameters.
idle=nomwaitwill, according to
admin-guide/kernel-parameters.txt, "Disable mwait for CPU C-states" (mwait is a special instruction used for power management).
The combination of the above fixes makes the "hangs when idle" problem with first generation Ryzen chips (and some early EPYC chips) go away. The machine will use slightly more power at idle with those settings.
Early first generation Ryzen CPUs had a completely different issue which can cause
gcc to segfault when the CPU is under 100% load (compiling with
make -j$(nproc) or
-j12). AMD offered refunds for this particular problem. Those who still have affected chips can create a file called
kernel.randomize_va_space = 0 to work around that issue, it only manifests itself if ASLR is enabled.
AMD CPUs are generally reliable and they do work very well with GNU/Linux - but you should NOT buy a brand new CPU generation from AMD at launch. Waiting until a few months after launch is a good idea; it ensures that AGESA BIOS updates or kernel fixes for any issues present at launch have become available.