Tokenized Streams for Concurrent GPU Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing programming languages are sequential, preventing developers from leveraging the parallel execution capabilities of processors like GPUs, resulting in inefficient data processing.
Innovation Solution
The introduction of a method using streams, where a device driver parses commands to identify stream tokens and semaphores, allowing parallel execution of commands across multiple streams without dependencies, thereby exploiting the parallel nature of GPUs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If sequential programming languages are used, then code simplicity is maintained, but parallel processing capability is lost
Solution Approach 1:
The patent segments the execution model into independent streams that can be executed in parallel. Each stream represents an independent sequence of operations that can run concurrently without dependency, allowing the system to leverage parallel processing capabilities while maintaining a relatively simple programming interface through the stream abstraction layer.
Solution Approach 2:
The patent introduces an intermediary abstraction layer (the stream API and device driver) between the sequential programming language and the parallel GPU architecture. This intermediary translates sequential commands into parallel stream executions, hiding the complexity of parallel processing from the developer while enabling efficient data processing on the GPU.
2Speed
If parallel execution is implemented, then processing speed increases, but synchronization complexity increases
Solution Approach 1:
The patent implements self-service synchronization where the GPU automatically manages stream execution and synchronization without requiring complex manual coordination. The device driver handles semaphore signaling and stream dependency management internally, allowing developers to simply submit commands to different streams without worrying about synchronization details.
Solution Approach 2:
The patent uses feedback mechanisms through semaphores that automatically signal when streams have completed execution. The device driver monitors stream completion status and provides feedback to the CPU, enabling automatic synchronization and dependency resolution without requiring complex polling or waiting mechanisms from the developer.
Data Source
AI summary
A method for executing an application program using streams. A device driver receives a first command within an application program and parses the first command to identify a first stream token that is associated with a first stream. The device driver checks a memory location associated with the first stream for a first semaphore, and determines whether the first semaphore has been released. Once the first semaphore has been released, a second command within the application program is executed. Advantageously, embodiments of the invention provide a technique for developers to take advantage of the parallel execution capabilities of a GPU.


