index.rst 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. .. _amdgpu-gc:
  2. ========================================
  3. drm/amdgpu - Graphics and Compute (GC)
  4. ========================================
  5. The relationship between the CPU and GPU can be described as the
  6. producer-consumer problem, where the CPU fills out a buffer with operations
  7. (producer) to be executed by the GPU (consumer). The requested operations in
  8. the buffer are called **Command Packets**, which can be summarized as a
  9. compressed way of transmitting command information to the graphics controller.
  10. The component that acts as the front end between the CPU and the GPU is called
  11. **Command Processor (CP)**. This component is responsible for providing greater
  12. flexibility to the **Graphics and Compute (GC)** since CP makes it possible to
  13. program various aspects of the GPU pipeline. CP also coordinates the
  14. communication between the CPU and GPU via a mechanism named **Ring Buffers**,
  15. where the CPU appends information to the buffer while the GPU removes
  16. operations. CP is also responsible for handling **Indirect Buffers (IB)**.
  17. For reference, internally the CP consists of several sub-blocks (CPC - CP
  18. compute, CPG - CP graphics, and CPF - CP fetcher). Some of these acronyms
  19. appear in register names, but this is more of an implementation detail and not
  20. something that directly impacts driver programming or debugging.
  21. Graphics (GFX) and Compute Microcontrollers
  22. -------------------------------------------
  23. GC is a large block, and as a result, it has multiple firmware associated with
  24. it. Some of them are:
  25. CP (Command Processor)
  26. The name for the hardware block that encompasses the front end of the
  27. GFX/Compute pipeline. Consists mainly of a bunch of microcontrollers
  28. (PFP, ME, CE, MEC). The firmware that runs on these microcontrollers
  29. provides the driver interface to interact with the GFX/Compute engine.
  30. MEC (MicroEngine Compute)
  31. This is the microcontroller that controls the compute queues on the
  32. GFX/compute engine.
  33. MES (MicroEngine Scheduler)
  34. This is the engine for managing queues. For more details check
  35. :ref:`MicroEngine Scheduler (MES) <amdgpu-mes>`.
  36. RLC (RunList Controller)
  37. This is another microcontroller in the GFX/Compute engine. It handles
  38. power management related functionality within the GFX/Compute engine.
  39. The name is a vestige of old hardware where it was originally added
  40. and doesn't really have much relation to what the engine does now.
  41. .. toctree::
  42. mes.rst