mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 18:43:33 +02:00
Documentation/gpu: Create a GC entry in the amdgpu documentation
GC is a large block that plays a vital role for amdgpu; for this reason, this commit creates one specific page for GC and adds extra information about the CP component. Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Rodrigo Siqueira <siqueira@igalia.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
4ede6d2004
commit
e7aaa5fbf4
|
|
@ -67,38 +67,16 @@ GC (Graphics and Compute)
|
|||
This is the graphics and compute engine, i.e., the block that
|
||||
encompasses the 3D pipeline and and shader blocks. This is by far the
|
||||
largest block on the GPU. The 3D pipeline has tons of sub-blocks. In
|
||||
addition to that, it also contains the CP microcontrollers (ME, PFP,
|
||||
CE, MEC) and the RLC microcontroller. It's exposed to userspace for
|
||||
user mode drivers (OpenGL, Vulkan, OpenCL, etc.)
|
||||
addition to that, it also contains the CP microcontrollers (ME, PFP, CE,
|
||||
MEC) and the RLC microcontroller. It's exposed to userspace for user mode
|
||||
drivers (OpenGL, Vulkan, OpenCL, etc.). More details in :ref:`Graphics (GFX)
|
||||
and Compute <amdgpu-gc>`.
|
||||
|
||||
VCN (Video Core Next)
|
||||
This is the multi-media engine. It handles video and image encode and
|
||||
decode. It's exposed to userspace for user mode drivers (VA-API,
|
||||
OpenMAX, etc.)
|
||||
|
||||
Graphics and Compute Microcontrollers
|
||||
-------------------------------------
|
||||
|
||||
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 a new engine for managing queues. This is currently unused.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
GFX, Compute, and SDMA Overall Behavior
|
||||
=======================================
|
||||
|
||||
|
|
|
|||
47
Documentation/gpu/amdgpu/gc/index.rst
Normal file
47
Documentation/gpu/amdgpu/gc/index.rst
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
.. _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
|
||||
the Command Processor (CP). This component is responsible for providing greater
|
||||
flexibility to the 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. It is relevant to highlight that a
|
||||
CPU can add a pointer to the Ring Buffer that points to another region of
|
||||
memory outside the Ring Buffer, and CP can handle it; this mechanism is called
|
||||
**Indirect Buffer (IB)**. CP receives and parses the Command Streams (CS), and
|
||||
writes the operations to the correct hardware blocks.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
|
@ -10,6 +10,7 @@ Next (GCN), Radeon DNA (RDNA), and Compute DNA (CDNA) architectures.
|
|||
driver-core
|
||||
amd-hardware-list-info
|
||||
module-parameters
|
||||
gc/index
|
||||
display/index
|
||||
flashing
|
||||
xgmi
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user