mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
This commit introduces set of information that details the different sets of schedulers available in the SE. Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Christian König <christian.koenig@amd.com> Cc: Timur Kristóf <timur.kristof@gmail.com> Signed-off-by: Rodrigo Siqueira <siqueira@igalia.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
55 lines
2.4 KiB
ReStructuredText
55 lines
2.4 KiB
ReStructuredText
.. _amdgpu-gc:
|
|
|
|
========================================
|
|
drm/amdgpu - Graphics and Compute (GC)
|
|
========================================
|
|
|
|
The relationship between the CPU and GPU can be described as the
|
|
producer-consumer problem, where the CPU fills out a buffer with operations
|
|
(producer) to be executed by the GPU (consumer). The requested operations in
|
|
the buffer are called **Command Packets**, which can be summarized as a
|
|
compressed way of transmitting command information to the graphics controller.
|
|
|
|
The component that acts as the front end between the CPU and the GPU is called
|
|
**Command Processor (CP)**. This component is responsible for providing greater
|
|
flexibility to the **Graphics and Compute (GC)** since CP makes it possible to
|
|
program various aspects of the GPU pipeline. CP also coordinates the
|
|
communication between the CPU and GPU via a mechanism named **Ring Buffers**,
|
|
where the CPU appends information to the buffer while the GPU removes
|
|
operations. CP is also responsible for handling **Indirect Buffers (IB)**.
|
|
|
|
For reference, internally the CP consists of several sub-blocks (CPC - CP
|
|
compute, CPG - CP graphics, and CPF - CP fetcher). Some of these acronyms
|
|
appear in register names, but this is more of an implementation detail and not
|
|
something that directly impacts driver programming or debugging.
|
|
|
|
Graphics (GFX) and Compute Microcontrollers
|
|
-------------------------------------------
|
|
|
|
GC is a large block, and as a result, it has multiple firmware associated with
|
|
it. Some of them are:
|
|
|
|
CP (Command Processor)
|
|
The name for the hardware block that encompasses the front end of the
|
|
GFX/Compute pipeline. Consists mainly of a bunch of microcontrollers
|
|
(PFP, ME, CE, MEC). The firmware that runs on these microcontrollers
|
|
provides the driver interface to interact with the GFX/Compute engine.
|
|
|
|
MEC (MicroEngine Compute)
|
|
This is the microcontroller that controls the compute queues on the
|
|
GFX/compute engine.
|
|
|
|
MES (MicroEngine Scheduler)
|
|
This is the engine for managing queues. For more details check
|
|
:ref:`MicroEngine Scheduler (MES) <amdgpu-mes>`.
|
|
|
|
RLC (RunList Controller)
|
|
This is another microcontroller in the GFX/Compute engine. It handles
|
|
power management related functionality within the GFX/Compute engine.
|
|
The name is a vestige of old hardware where it was originally added
|
|
and doesn't really have much relation to what the engine does now.
|
|
|
|
.. toctree::
|
|
|
|
mes.rst
|