GPU Texture Fetch Bypass for Convolution Shader Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphics processing systems face inefficiencies in texel fetching and computation balance between texture and shader hardware due to redundant fetch operations and imbalanced workloads, particularly during convolution operations.
Innovation Solution
A method that collectively fetches all required texels for a group of output pixels, bypasses bilinear filter hardware, and performs convolution operations in shader hardware, reducing redundant fetches and shifting workload from texture to shader hardware.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If texture hardware performs traditional texel fetching with bilinear filtering for each pixel, then filtering quality is maintained, but redundant fetch operations occur and productivity decreases
Solution Approach 1:
The patent merges the texel fetching operations for multiple adjacent pixels into a single collective fetch operation. By identifying that neighboring pixels share common texels in their convolution kernels, the system fetches these shared texels once and redistributes them to multiple pixels, eliminating redundant memory access operations and improving throughput
Solution Approach 2:
The system performs preliminary collective fetching of all required texels for a group of pixels before the actual convolution computation. By pre-fetching and storing texels in intermediate buffers, the system prepares data in advance, allowing parallel convolution operations to proceed without waiting for individual texel fetches
2Productivity
If texture hardware performs bilinear filtering, then filtering quality is maintained, but workload balance between texture and shader hardware deteriorates
Solution Approach 1:
The patent extracts the bilinear filtering operation from the texture hardware pipeline and relocates it to the shader hardware. By removing the filtering step from the fixed-function texture unit and implementing it within the programmable shader, the system simplifies the texture hardware workload and enables more flexible workload distribution across processing units
Solution Approach 2:
The system dynamically adjusts the division of labor between texture hardware and shader hardware based on the specific convolution operation requirements. For operations requiring standard bilinear filtering, the texture hardware can perform it efficiently, while for custom convolution kernels, the filtering is deferred to the shader, creating a dynamic and adaptable workload distribution mechanism
3Measurement precision
If individual texel fetching is performed for each pixel, then fetch precision is maintained, but texel fetch redundancy increases
Solution Approach 1:
The patent merges individual texel fetch operations into a collective fetch operation that targets multiple pixels simultaneously. By calculating the union of texel coordinates required by a group of adjacent pixels and fetching them in a single operation, the system maintains precise coordinate addressing while eliminating redundant memory access overhead
Solution Approach 2:
The system creates intermediate copies of fetched texels in buffer memory, allowing multiple pixels to reference the same texel data without requiring repeated fetches. This copying mechanism preserves data integrity and precision while dramatically reducing the number of actual memory access operations required
Data Source
Figure 1
Figure 2~4
Figure 5~7
AI summary
A method of operation of a texturing/shading unit in a GPU pipeline is described. The method uses texture hardware to collectively fetch all the texels required to calculate properties for a group of output pixels without any duplication. The method then bypasses bilinear filter hardware in the texture hardware and passes the fetched and unfiltered texel data from the texture hardware unit to shader hardware in the texturing/shading unit. The shader hardware uses the fetched texel data to perform a plurality of convolution operations to calculate the properties of each of the output pixel. To be accompanied, when published, by Figure 2 of the accompanying drawings.