Graphics Processor Non-Blocking Concurrent Architecture
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing technologies face challenges in efficiently scaling parallelism due to memory bandwidth limitations and the need for data locality, which can lead to performance bottlenecks in computations like ray tracing.
Innovation Solution
The proposed system employs a cluster of computation elements with local memory and SIMD ALUs, along with a scheduler that sorts computations into packets and distributes them among the elements for concurrent execution, while ensuring no grouping writes to the same memory location.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multi-threading is used to increase parallelism, then throughput and response time are improved, but system complexity and resource management overhead increase
Solution Approach 1:
The system segments computation into discrete tasks that can be independently scheduled and executed by multiple threads. The task scheduler divides workloads into manageable units, allowing parallel execution while maintaining organized control flow and reducing overall system complexity.
Solution Approach 2:
The patent introduces a task scheduler as an intermediary layer between the computation elements and memory resources. This mediator manages thread coordination, task distribution, and resource allocation, simplifying the complexity of direct multi-threaded resource management.
2Speed
If memory bandwidth is increased to support more parallel computations, then computation speed is improved, but cost and power consumption increase
Solution Approach 1:
The patent implements local memory caches at each computation element to store frequently accessed data locally. This reduces the need for high-speed global memory bandwidth while maintaining computation speed, as threads can access local cache memory without consuming additional power for global memory transactions.
Solution Approach 2:
The system performs preliminary data loading into local caches before computation begins. By pre-fetching and caching data that will be needed for parallel computations, the system reduces real-time memory bandwidth requirements and associated power consumption during the actual computation phase.
3Loss of energy
If data locality is optimized to reduce memory access, then memory bandwidth usage is reduced, but computation throughput may be limited
Solution Approach 1:
The patent introduces a hierarchical memory architecture with multiple levels of caching (L1, L2, L3 caches) and scratch pad memory, adding dimensional layers between computation elements and global memory. This hierarchical structure allows data to be accessed at different levels, reducing the need for high-speed global memory access while maintaining computation throughput through efficient data placement strategies.
Data Source
AI summary
In some aspects, systems and methods provide for forming groupings of a plurality of independently-specified computation workloads, such as graphics processing workloads, and in a specific example, ray tracing workloads. The workloads include a scheduling key, which is one basis on which the groupings can be formed. Workloads grouped together can all execute from the same source of instructions, on one or more different private data elements. Such workloads can recursively instantiate other workloads that reference the same private data elements. In some examples, the scheduling key can be used to identify a data element to be used by all the workloads of a grouping. Memory conflicts to private data elements are handled through scheduling of non-conflicted workloads or specific instructions and/or deferring conflicted workloads instead of locking memory locations.


