Virtual Tile Cluster Middleware for GPU Task Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional GPU architectures and scheduling policies limit flexible task scheduling and resource utilization, particularly in applications requiring multi-processor synchronization, leading to underutilization of GPU resources due to bulk-synchronous programming models and lack of manual algorithm placement on multi-processors.
Innovation Solution
A software middleware that presents a GPU device as a virtual compute cluster, forming a virtual tile cluster with tiles comprising processors and memory from both CPU and GPU devices, and a virtual unified memory with ingress and egress rings, allowing for efficient task assignment, execution, and data management across subprocessors, enabling manual placement and synchronization of tasks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional bulk-synchronous programming model is used on GPU, then computational throughput is maximized, but task scheduling flexibility is lost
Solution Approach 1:
The patent segments the GPU architecture into multiple virtual multi-processors (vMPs), each capable of independent task scheduling and execution. This segmentation allows different task scheduling policies to be applied to different vMPs simultaneously, maintaining high throughput while enabling flexible task scheduling for specific algorithms.
Solution Approach 2:
The patent introduces a software layer that acts as an intermediary between the host CPU and the GPU hardware, implementing a virtualized scheduling mechanism. This software intermediary enables manual algorithm placement and task scheduling on specific vMPs while maintaining compatibility with the underlying bulk-synchronous execution model.
2Device complexity
If hardware-defined scheduling policies are used, then implementation simplicity is maintained, but manual algorithm placement on specific multi-processors is prevented
Solution Approach 1:
The patent introduces a software layer that acts as an intermediary between the host CPU and the GPU hardware, implementing a virtualized scheduling mechanism. This software intermediary enables manual algorithm placement and task scheduling on specific vMPs while maintaining compatibility with the underlying bulk-synchronous execution model.
3Productivity
If GPU resources are allocated for massive parallel processing, then arithmetic operation throughput increases, but resource utilization for flexible applications decreases
Solution Approach 1:
The patent segments the GPU architecture into multiple virtual multi-processors (vMPs), each capable of independent task scheduling and execution. This segmentation allows different task scheduling policies to be applied to different vMPs simultaneously, maintaining high throughput while enabling flexible task scheduling for specific algorithms.
Solution Approach 2:
The patent applies different scheduling policies and resource allocation strategies to different virtual multi-processors based on their specific workload requirements. This local quality approach allows optimal resource utilization for each type of application while maintaining overall system throughput.
4Adaptability or versatility
If multi-processor synchronization is implemented, then task coordination capability is improved, but risk of deadlock increases
Solution Approach 1:
The patent implements a synchronization mechanism with feedback control that monitors the state of multi-processor operations and dynamically adjusts scheduling decisions. This feedback mechanism detects potential deadlock conditions and takes corrective action, enabling safe multi-processor synchronization for coordinated task execution.
Data Source
AI summary
A method includes: forming a virtual tile cluster having tiles, wherein a tile comprises a processor and memory from a CPU device and a GPU device, and a tile in the GPU device further comprises subprocessors; forming a virtual unified memory that is accessible by the CPU and GPU devices; receiving a task; assigning the task to a tile of the virtual tile cluster according to a pre-defined rule. When the task is assigned to a tile in the GPU device, the method further performs: broadcasting the task to the subprocessors of a tile using a GPU shuffle instruction; and dividing data for the task and assigning the divided data to the subprocessors, wherein each subprocessor runs a codelet using the each of divided data. The task is executed by the at least one tile of the virtual tile cluster.


