layout | title |
---|---|
default |
Hardware |
Because the ROCm Platform has a focus on particular computational domains, we offer official support for a selection of AMD GPUs that are designed to offer good performance and price in these domains. This section details the GPUs that ROCm Supports.
ROCm offers support for three chips from AMD's "gfx8" generation of GPUs. Note that these GPUs all require a host CPU and platform with PCIe gen 3 with support for PCIe atomics. This is detailed further in the following section on CPU requirements.
- "Fiji" chips, which include the following GPUs:
- AMD Radeon R9 Fury
- AMD Radeon R9 Nano
- AMD Radeon R9 Fury X
- AMD Radeon Pro Duo (Fiji)
- AMD FirePro S9300 X2
- AMD Radeon Instinct MI8
- "Polaris 10" chips, including the following GPUs:
- AMD Radeon RX 470
- AMD Radeon RX 480
- AMD Radeon RX 570
- AMD Radeon RX 580
- AMD Radeon Pro Duo (Polaris)
- AMD Radeon Pro WX 5100
- AMD Radeon Pro WX 7100
- AMD Radeon Instinct MI6
- "Polaris 11" chips, including the following GPUs:
- AMD Radeon RX 460
- AMD Radeon RX 560
- Note that some AMD Radeon RX 560 GPUs are actually "Polaris 12"/"Lexa" chips, and thus are not supported. Please check with your device vendor for details on the chip your card uses.
- AMD Radeon Pro WX 4100
ROCm offers support for one chip from AMD's most recent "gfx9" generation of GPUs. By default, these GPUs require a host CPU and platform with PCIe gen 3 with support for PCIe atomics. This is detailed further in the following section on CPU requirements. However, as of ROCm 1.8, we have enabled a mode of operation that does not require PCIe atomics at the expense of lower performance. If you want to run any of these gfx9 GPUs on a system that does not support PCIe gen 3 with atomics, please set the environment variable HSA_ENABLE_SDMA=0
.
- "Vega 10" chips, including the following GPUs:
- AMD Radeon RX Vega 56
- AMD Radeon RX Vega 64
- AMD Radeon Vega Frontier Edition
- AMD Radeon Pro WX 8200
- AMD Radeon Pro WX 9100
- AMD Radeon Pro V340
- AMD Radeon Pro V340 MxGPU
- AMD Radeon Instinct MI25
- Note that ROCm does not support the Radeon Pro SSG
ROCm is a collection of software ranging from drivers and runtimes to libraries and developer tools. Some of this software may work with more GPUs than the "officially supported" list above, though AMD does not make any official claims of support for these devices on the ROCm software platform.
ROCm has code to enable one chip from AMD's "gfx7" generation of GPUs. These GPUs do not require PCIe atomics.
- "Hawaii" chips, including the following GPUs:
- AMD Radeon R9 290
- AMD Radeon R9 290X
- AMD Radeon R9 295X2
- AMD Radeon R9 390
- AMD Radeon R9 390X
- AMD FirePro W8100
- AMD FirePro W9100
- AMD FirePro S9150
- AMD FirePro S9170
As of ROCm 1.9, the following GPUs are known not to work with ROCm because the basic drivers required for ROCm, such as amdkfd
do not include support for them.
- Any pre-GCN AMD GPU
- This includes "Evergreen" and "Northern Islands" GPUs, and "Trinity"/"Richland" APUs
- Any GPU from the "Southern Islands" (gfx6) generation of GCN GPUs, including the following chips:
- "Cape Verde"
- "Pitcairn"
- "Tahiti"
- Any "Sea Islands" (gfx7) GPU besides "Hawaii", including:
- "Bonaire" and "Oland"
- "Iceland" chips (gfx802), also known as "Topaz".
- "Polaris 12" chips (gfx803), also known as "Lexa".
- AMD Radeon Vega M
The following GPU is known not to work with ROCm 1.9 and before because of a bug in the Thunk. Because of this runtime bug, the HCC compiler has chosen to disable compilation for this class of GPUs as well, and thus none of the ROCm libraries are built for this GPU.
- "Tonga" chips, including the following GPUs:
- Radeon R9 285
- Radeon R9 380
- Radeon R9 380X
- FirePro W7100
- FirePro S7150
- FirePro S7100X
- FirePro S7150x2
The following APUs are not fully supported by the ROCm stack. They may work in the kernel driver and Thunk, but support for them is not enabled in our HCC compiler or libraries. In addition, because ROCm is currently focused on discrete GPUs, AMD does not make any claims of continued support in the ROCm stack for these integrated GPUs.
- "Kaveri" and "Godavari" APUs
- "Carrizo" and "Bristol Ridge" APUs
- "Raven Ridge" APUs
In addition, these APUs may have limited support in the kernel due to OEM & ODM decisions to not properly include CRAT tables in their system BIOS, or to allow the IOMMU to be enabled. As such, APU-based laptops, all-in-one systems, and desktop motherboards may not be properly detected by the ROCm drivers. You should check with your system vendor to see if these options are available before attempting to use an APU-based system with ROCm.
As described above, GFX8 and GFX9 GPUs require PCI Express 3.0 with PCIe atomics in the default ROCm configuration. The ROCm Platform leverages these advanced capabilities ( including PCIe atomic Fetch and Add, Compare and Swap, Unconditional Swap, AtomicOp Completion) to allow features such as user-level submission of work from the host to the GPU. To find out more; PCIe Atomics and Large Bar Overview
As such, by default ROCm requires that these GPUs be installed in PCIe slots with PCI Express 3.0 or higher capabilities with transfer rates of 8.0 GT/s in either x16 or x8 lanes. The system configuration can have the PCIe slots directly on CPU's root port or a PCIe switch, but everything between the CPU and the GPU must support atomics. The CPU root must indicate PCIe AtomicOp Completion capabilities and any intermediate switch must indicate PCIe AtomicOp Routing capabilities.
PCIe root port must report and support
- 32-bit AtomicOp Completer Supported = 1
- 64-bit AtomicOp Completer Supported = 1
All PCIe switches between GPU End Point and Root Point must report and support
- AtomicOp Routing Supported = 1
Note that the physical PCIe slot size does not guarantee support for ROCm. Some motherboards have physical x16 PCIe slots, but the PCIe connector is electrically connected as PCIe Express 2.0 to the southbridge. Since the PCIe slot connector matters to the GPU, care must be taken to not place them in on motherboards configured this way.
The ROCm kernel driver logs if ROCm capable GPUs are installed on system that does not support PCIe atomics.
Example text from kernel log:
kfd: skipped device 1002:7300, PCI rejects atomics
If you are using gfx9 GPUs, you can bypass this requirement by setting the environment variable HSA_ENABLE_SDMA=0
. However, this disables the use of DMA engines to move data between the CPU and GPU memory. This can reduce performance.
-
AMD
- Ryzen CPUs (Family 17h Model 01h-0Fh -- previously code-named Zen) such as:
- Ryzen 3 1300X
- Ryzen 3 2300X
- Ryzen 5 1600X
- Ryzen 5 2600X
- Ryzen 7 1800X
- Ryzen 7 2700X
- Ryzen APUs (Family 17h Model 10h-1Fh -- previously code-named Raven Ridge) such as:
- Athlon 200GE
- Ryzen 5 2400G
- Note that the integrated GPU in these devices is not guaranteed to work with ROCm.
- Ryzen Threadripper Workstation CPUs (Family 17h Model 01h-0Fh -- previously code-named Zen) such as:
- Ryzen Threadripper 1950X
- Ryzen Threadripper 2990WX
- EPYC Server CPUs (Family 17h Model 01h-0Fh -- previously code-named Zen) such as:
- Epyc 7551P
- Epyc 7601
- Ryzen CPUs (Family 17h Model 01h-0Fh -- previously code-named Zen) such as:
-
INTEL
- "Haswell" CPUs, including:
- Core i3, i5, and i7 from ranges such as "Core i7 4790K"
- Xeon E5
- "Broadwell" CPUs, including
- "Skylake"
- Intel Core i3, i5, and i7 CPUs from "Haswell" and beyond. This includes:
- "Haswell" CPUs such as the Core i7 4790K
- "Broadwell" CPUs such as the Core i7 5775C
- "Skylake" CPUs such as the Core i7 6700K
- "Kaby Lake" CPUs such as the Core i7 7740X
- "Coffee Lake" CPUs such as the Core i7 8700K
- Xeon CPUs from "v3" and newer
- "Haswell" CPUs, including:
The following CPUs do not support PCIe gen 3 atomics, and as such are not supported ROCm host platforms for gfx8 GPUs. gfx9 GPUs may work with these platforms with the environment variable HSA_ENABLE_SDMA=0
- AMD Phenom CPUs
- AMD FX CPUs
- AMD Opteron CPUs
- AMD Kaveri APUs
- AMD Carrizo APUs
- Intel CPUs that were released before "Haswell"
In addition, connecting gfx8 GPUs to the host through Thunderbolt 1 or Thunderbolt 2 adapters is not supported because these are based on PCIe gen 2.