General Purpose Register Tile Packing for Fast Convolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata access speedVSAvoidconvolution operation speed
Core Design Contradiction:
SpeedVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If multiple complex data types are supported in the same shader, then versatility is improved, but device complexity increases

Engineering Contradiction:
Improvedata type supportVSAvoidregister system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12190109B2Storing complex data in warp GPRS
Publication Date: 2025.01.07 HUAWEI TECH CO LTD
  • US12190109B2 patent drawing
  • US12190109B2 patent drawing
  • US12190109B2 patent drawing

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.