GPU Coprocessor Dynamic Task Dispatch Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional GPU processing systems face performance limitations due to the requirement for full kernel launch procedures and the need to write information to memory for task enqueueing, which increases latency due to the separation of memory and GPU.
Innovation Solution
The integration of a coprocessor within the GPU to manage a task pool, allowing for dynamic work creation, dispatch, and scheduling, where child tasks are registered and selectively dispatched based on events associated with completion objects, enabling self-enqueuing and asynchronous execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If full kernel launch procedures are used on GPU, then task execution is ensured, but latency increases due to memory separation
Solution Approach 1:
The patent merges the task pool and enqueueing mechanisms directly into the GPU hardware, eliminating the separation between memory and GPU. This integration allows tasks to be enqueued and executed without being written to external memory first, thereby reducing latency while maintaining reliable task execution through the coprocessor's management of the task pool.
Solution Approach 2:
The patent introduces a coprocessor as an intermediary component within the GPU that manages the task pool. This coprocessor acts as a mediator between task submission and execution, handling task enqueueing, event monitoring, and completion object management internally within the GPU, thus avoiding external memory access and reducing latency.
2Ease of operation
If information is written to memory for task enqueueing, then task scheduling is enabled, but latency increases due to memory-GPU separation
Solution Approach 1:
The task pool is merged into the GPU's internal memory structure, combining task storage and scheduling functions within the GPU boundary. This eliminates the need to write task information to external memory for enqueueing, enabling task scheduling while avoiding the latency penalty of memory-GPU data transfer.
3Productivity
If dynamic work creation is implemented, then system responsiveness improves, but device complexity increases
Solution Approach 1:
The coprocessor serves as an intermediary that manages the complexity of dynamic work creation internally. It handles task pool management, event monitoring, and completion object tracking, allowing the GPU to achieve improved system responsiveness through dynamic task spawning without exposing the full complexity to the host system or requiring complex host-side management.
Data Source
AI summary
A processor core is configured to execute a parent task that is described by a data structure stored in a memory. A coprocessor is configured to dispatch a child task to the at least one processor core in response to the coprocessor receiving a request from the parent task concurrently with the parent task executing on the at least one processor core. In some cases, the parent task registers the child task in a task pool and the child task is a future task that is configured to monitor a completion object and enqueue another task associated with the future task in response to detecting the completion object. The future task is configured to self-enqueue by adding a continuation future task to a continuation queue for subsequent execution in response to the future task failing to detect the completion object.


