GPU Convolution Pixel Data Reorganization for Stride 2 Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Convolution operations using filters with increased stride or dilation result in increased resource usage and power consumption due to the need for more operations and shared memory access, which hampers efficiency in graphics processing units (GPUs).

Innovation Solution

The proposed solution involves reorganizing convolution pixel data with a stride of 2 or dilation of 2 into multiple smaller regions within a general-purpose register (GPR), allowing for a sliding window-based convolution scheme that reduces the number of operations and eliminates the need for shared memory access by performing convolution on each smaller region and reassembling the results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Area of stationary object

If convolution operations use filters with increased stride or dilation, then the receptive field and coverage area increase, but resource usage and power consumption increase due to more operations and shared memory access

Engineering Contradiction:
Improvereceptive field coverageVSAvoidpower consumption
Core Design Contradiction:
Area of stationary objectVSUse of energy by moving object

Solution Approach 1:

The patent divides the convolution operation into multiple smaller regions within the GPR, processing each region separately with a sliding window approach. This segmentation reduces the computational complexity and memory access requirements compared to processing the entire receptive field at once, thereby lowering power consumption while maintaining full coverage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent reorganizes pixel data into a three-dimensional structure within the GPR (grouping pixels into quads, then into regions). This dimensional reorganization enables more efficient data access patterns and reduces shared memory access, decreasing power consumption while preserving the full receptive field coverage through systematic processing of all regions.

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

2Area of stationary object

If convolution operations use filters with increased stride or dilation, then the coverage area increases, but the number of operations increases leading to decreased efficiency

Engineering Contradiction:
Improvecoverage areaVSAvoidcomputational efficiency
Core Design Contradiction:
Area of stationary objectVSProductivity

Solution Approach 1:

By segmenting the convolution operation into smaller regional processing tasks within the GPR, the patent enables parallel processing of multiple regions simultaneously. This approach maintains comprehensive coverage while improving computational efficiency through better resource utilization and reduced operation overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary reorganization of pixel data into structured regions within the GPR before executing convolution operations. This pre-processing step optimizes data layout for efficient access patterns, reducing the number of operations required and improving overall computational efficiency while maintaining full coverage area.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If convolution operations access shared memory frequently, then data availability improves, but resource usage and power consumption increase

Engineering Contradiction:
Improvedata availabilityVSAvoidpower consumption
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The patent nests multiple levels of data organization within the GPR: pixels are grouped into quads, quads into groups, and groups into regions. This nested structure enables efficient data reuse and local access patterns, reducing the need for frequent shared memory accesses while maintaining data availability throughout the processing pipeline, thereby lowering power consumption.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent creates copies of pixel data in organized regions within the GPR, allowing multiple processing operations to access the same data locally without requiring repeated reads from shared memory. This copying strategy ensures data availability for all operations while significantly reducing shared memory access frequency and associated power consumption.

Inventive Principle:
Principle #26Copying

4Adaptability or versatility

If convolution operations are performed on larger filter sizes, then the processing capability improves, but the complexity of data organization and memory access increases

Engineering Contradiction:
Improveprocessing capabilityVSAvoiddata organization complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing large filter operations into smaller regional processing tasks within the GPR. Each region handles a subset of the convolution computation with simplified data organization rules, making the overall system more manageable and less complex while maintaining the capability to process large effective filter sizes through cumulative results from all regions.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11915338B2Loading apparatus and method for convolution with stride or dilation of 2
Publication Date: 2024.02.27 HUAWEI TECH CO LTD
  • US11915338B2 patent drawing
  • US11915338B2 patent drawing
  • US11915338B2 patent drawing

AI summary

The disclosed technology generally relates to a graphics processing unit (GPU). In one aspect, a GPU includes a general purpose register (GPR) having registers, an arithmetic logic unit (ALU) configured to read pixels of an image independently of a shared memory, and a level 1 (L1) cache storing the pixels read by the ALU. The ALU can implement pixel mapping by fetching a quad of pixels, which includes pixels of first, second, third, and fourth pixel types, from the L1 cache, grouping the pixels of the different pixel types of the quad into four groups based on pixel type, and, for each group, separating the pixels included in the group into three regions that each have a set of pixels. The pixels for each group can then be loaded into the registers corresponding to the three regions.