I understand that NVIDIA GPUs have a DMA engine or Copy Engine. However, I believe that for the DMA engine to distribute work effectively, there must be a higher-level scheduler managing it. While looking through various sources, I came across the Gigathread Engine, but it seems to be more related to thread scheduling rather than DMA scheduling.
Do you know if there is a higher-level scheduler inside the GPU that manages the scheduling of DMA or Copy Engine tasks? I see that there is a GSP (GPU System Processor) inside the GPU—could it be responsible for this scheduling? Or is all of this scheduling handled by the CPU?