GPU Transposer for Parallel Processing via Virtual Data Stream Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional graphics processing units (GPUs) are not well suited for supporting multi-threaded processing due to their single instruction, single data (SISD) processing techniques, which limits their ability to adapt to single data streams and hinder parallel processing in graphics pipelines.
Innovation Solution
A transposer is introduced to generate parallel data streams by converting a single data stream into multiple data streams, utilizing a memory arrangement with rows and columns to emulate transposition, reducing memory size requirements and increasing memory utilization, and allowing parallel processing through SIMD-based vertex processors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single data stream is used in SISD processing, then the processing structure is simple, but parallel processing capability is limited
Solution Approach 1:
The single data stream is segmented into multiple parallel attribute streams, where each stream contains a specific type of attribute (e.g., position, color, texture) that can be processed independently by different processing elements, enabling parallel processing while maintaining structural simplicity
Solution Approach 2:
The patent transitions from a single-dimensional data stream to a multi-dimensional data structure by organizing attributes into parallel streams with different orientations (row-major vs. column-major), allowing simultaneous access to different attribute types across multiple processing elements
2Productivity
If physical data transposition is implemented to enable parallel processing, then parallel processing efficiency is improved, but memory size requirements increase
Solution Approach 1:
Instead of physically transposing data in memory, the patent creates virtual copies of data through different access patterns and orientations. The same physical memory location can be interpreted as different logical positions depending on the active orientation, eliminating the need for duplicate data storage
Solution Approach 2:
The patent changes the access parameters (orientation, stride, offset) rather than the physical data arrangement. By dynamically adjusting these parameters, the system can switch between row-major and column-major access patterns without physically reorganizing the data in memory, thus enabling parallel processing efficiency without increasing memory size
3Device complexity
If conventional SISD interfaces are used, then interface simplicity is maintained, but adaptability to SIMD processing is poor
Solution Approach 1:
The patent creates a universal interface that can handle both SISD and SIMD processing modes. The same interface structure supports single-threaded execution by sequentially processing attributes and multi-threaded execution by providing parallel access to different attribute streams, making it adaptable to different processing paradigms without requiring separate interfaces
Solution Approach 2:
The interface dynamically adapts its behavior based on the processing mode required. It can switch between providing sequential attribute access for SISD and parallel attribute stream access for SIMD, allowing the system to optimize for different workloads while maintaining a single flexible interface design
Data Source
AI summary
Disclosed are an apparatus, a method, a programmable graphics processing unit (“GPU”), a computer device, and a computer medium to facilitate, among other things, the generation of parallel data streams to effect parallel processing in at least a portion of a graphics pipeline of a GPU. In one embodiment, an input of the apparatus receives graphics elements in a data stream of graphics elements. The graphics pipeline can use the graphics elements to form computer-generated images. The apparatus also can include a transposer configured to produce parallel attribute streams. Each of the parallel attribute streams includes a type of attribute common to the graphics elements. In one embodiment, the transposer can be configured to convert at least a portion of the graphics pipeline from a single data stream to multiple data streams (e.g., executable by multiple threads of execution) while reducing the memory size requirements to implement such a conversion.


