GPU Matrix Data Processing for Flexible Integer Types

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics Processing Units (GPUs) face limitations in performing matrix multiplication operations due to specific arrangement requirements for matrix elements, restricting their applicability, especially when dealing with different integer types and orders.

Innovation Solution

A data processing method that involves reading a to-be-processed matrix into registers, performing a first preset operation to transform it into an initial matrix, and a second preset operation to meet the matrix multiplication requirements of a computation unit, allowing for flexible arrangement and transposition to accommodate various integer types and orders.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the GPU performs matrix multiplication operations only on matrices with specific integer types and arrangements, then the computation unit can operate efficiently, but the applicability of the GPU is limited

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidapplicability for different integer types
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent applies parameter changes by dynamically adjusting the data type parameters (integer bit widths) and arrangement parameters (row-major/column-major order) of matrix elements during the data reading process. The computation unit can handle different integer types (8-bit, 16-bit, 32-bit) by changing how data is read and arranged from memory, without requiring separate hardware units for each type. This resolves the contradiction by allowing the same computation unit to efficiently process various integer types through parameter adjustment rather than hardware specialization.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements universality by designing a single computation unit that can perform matrix multiplication operations on matrices with different integer types and arrangements. Through the flexible data reading mechanism that supports multiple integer bit widths and arrangement orders, one computation unit serves multiple functions that would traditionally require separate specialized units. This multi-functionality approach maintains computational efficiency while significantly expanding applicability.

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

2Productivity

If the GPU requires specific arrangement methods for input matrices, then matrix multiplication can be performed, but the device complexity increases due to transformation processing

Engineering Contradiction:
Improvematrix multiplication capabilityVSAvoidtransformation processing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by performing data arrangement transformations during the data reading phase before the actual matrix multiplication computation. The computation unit reads and arranges matrix elements in the required format (row-major or column-major order) as part of the data loading process, rather than performing separate transformation steps before computation. This preliminary arrangement reduces the overall complexity by integrating the transformation into the existing data flow without requiring additional dedicated transformation hardware or steps.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses the data reading mechanism as an intermediary between memory and the computation unit. This intermediary layer handles the complex tasks of data type conversion and arrangement transformation, shielding the computation unit from complexity while enabling it to receive data in the exact format needed for efficient multiplication. The intermediary reads data with appropriate transformations already applied, simplifying the overall system architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If the GPU performs data transformation for different integer types, then versatility is improved, but the processing time increases

Engineering Contradiction:
Improvesupport for various integer typesVSAvoidtransformation processing time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent maintains continuity of useful action by performing data type transformations and arrangement operations in parallel with the data loading process. Rather than transforming data after loading, the computation unit reads and transforms data simultaneously during the input phase, ensuring that the transformation process does not add to the critical path of computation. This continuous action approach eliminates idle time and keeps the processing pipeline full.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The patent applies preliminary action by completing all necessary data transformations (type conversion and arrangement) before the computation unit begins its actual multiplication work. The data is prepared in the exact format needed during the reading phase, so when the computation starts, no additional transformation time is required. This preliminary preparation eliminates waiting time and ensures continuous efficient computation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20220188380A1Data processing method and apparatus applied to graphics processing unit, and electronic device
Publication Date: 2022.06.16 ALIBABA GROUP HOLDING LTD
  • US20220188380A1 patent drawing
  • US20220188380A1 patent drawing
  • US20220188380A1 patent drawing

AI summary

This application provides a data processing method applied to a GPU, including: reading a to-be-processed matrix from memory corresponding to a target GPU into registers in a target streaming multiprocessor, where the target streaming multiprocessor is a streaming multiprocessor adapted to perform a matrix computation on the to-be-processed matrix; in a process of reading the to-be-processed matrix from the registers into shared memory corresponding to the registers, performing a first preset operation on the to-be-processed matrix to obtain an initial matrix corresponding to the to-be-processed matrix; and in a process of reading the initial matrix from the shared memory into the registers, performing a second preset operation on the initial matrix to obtain a target matrix meeting a matrix multiplication operation requirement of a matrix-dedicated computation unit. The data processing method applied to a graphics processing unit (Graphics Processing Unit, GPU) can transform a to-be-processed matrix into a target matrix meeting a matrix multiplication operation requirement of the GPU, thereby improving applicability of the GPU for matrix multiplication operations.