General Purpose Register Tile Packing for Fast Convolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional systems for storing and reading data in general-purpose registers (GPRs) for convolution operations suffer from slower access speeds, which hinder fast convolutional processes.
Innovation Solution
Organizing data in GPRs by packing tiles of data items into 32b registers, storing auxiliary pixels in 64b registers, and executing these operations with a single load instruction, allowing for efficient storage and processing of various data types such as 8b, 16b, and 32b data, enabling fast convolutions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is stored in conventional scalar GPRs for convolution operations, then data can be stored in standard register formats, but access speeds become slower than required for fast convolutional operations
Solution Approach 1:
The patent segments data storage by creating specialized register types (image GPRs and auxiliary GPRs) distinct from conventional scalar GPRs. Image GPRs store pixel data in a format optimized for convolution operations, while auxiliary GPRs store border pixel data. This segmentation allows each register type to be optimized for its specific purpose, enabling faster data access during convolution operations without compromising the ability to store diverse data types.
Solution Approach 2:
The patent transitions from conventional scalar data organization to a two-dimensional register structure where data is organized into image regions and auxiliary regions. This dimensional change allows the system to store multiple channels of pixel data and their corresponding auxiliary pixels in a spatially organized manner that matches the convolution operation's requirements, significantly improving access speed during parallel processing.
2Adaptability or versatility
If multiple complex data types are supported in the same shader, then versatility is improved, but device complexity increases
Solution Approach 1:
The patent implements universal register structures (image GPRs and auxiliary GPRs) that can handle multiple complex data types (8b, 16b, 32b unsigned and signed integers, and floating-point values) through a unified interface. The same register types and loading mechanisms work across all data types, eliminating the need for separate specialized registers for each data type. This multi-functionality approach maintains versatility while controlling complexity by providing a consistent data organization model that works for all supported types.
Solution Approach 2:
The patent manages complexity by allowing the shader to dynamically change parameters such as data type width (8b, 16b, 32b) and signedness based on the specific operation being performed. The underlying register structure remains constant, but the interpretation and loading of data into these registers adapts to the required parameter configuration. This enables support for multiple complex data types without requiring separate hardware paths for each type.
Data Source
AI summary
A method of storing data in general purpose registers (GPRs) includes packing a tile of data items into GPRs, where the tile includes multiple channels. The tile of data items is read from memory. At least two channels of the data are stored in a first GPR, and at least two additional channels are stored in a second GPR. Auxiliary data is loaded into a third GPR. The auxiliary data and the tile data can be used together for performing convolution operations.


