Processor Tile Permutation for Matrix Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Mainstream processors face difficulties in efficiently handling large matrices due to the complexity and instruction intensity required for matrix operations, particularly in loading, processing, and storing data across packed registers and memory.

Innovation Solution

The implementation of matrix operations using 2-dimensional data structures referred to as 'tiles' that can be configured for different dimensions and data types, allowing for optimized processing through specialized instructions and hardware support, such as the matrix operations accelerator, which enables efficient matrix multiplication, addition, and other operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional processor architectures are used to handle large matrices, then general-purpose computing is maintained, but processing efficiency and performance deteriorate due to instruction intensity and complexity

Engineering Contradiction:
Improvematrix processing efficiencyVSAvoidinstruction complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides large matrices into smaller tile blocks that can be processed independently and in parallel. This segmentation allows the processor to handle manageable portions of data simultaneously, improving overall processing efficiency while reducing the complexity of individual operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a tile-based two-dimensional processing model that adds spatial organization to matrix operations. By organizing data into tiles with specific dimensions and using permute operations to rearrange tile positions, the system optimizes data access patterns and enables more efficient parallel processing.

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

2Speed

If data is loaded and stored across packed registers and memory using traditional methods, then data accessibility is maintained, but processing speed deteriorates due to computational overhead

Engineering Contradiction:
Improvedata processing speedVSAvoidcomputational overhead time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of matrix data into tile blocks before processing. By pre-configuring the tile structure and arranging data in optimized formats, the system reduces the need for complex data manipulation during processing, thereby decreasing computational overhead and improving processing speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces tile blocks as intermediary structures between raw matrix data and processed results. These tiles serve as intermediate containers that facilitate efficient data movement between memory and registers, reducing the computational overhead associated with direct data access and manipulation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If specialized matrix operations hardware is implemented, then processing performance is improved, but device complexity and configuration requirements increase

Engineering Contradiction:
Improvematrix operation performanceVSAvoidhardware configuration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent designs a tile-based processing framework that can handle multiple matrix operations (multiplication, addition, transposition, permutation) using a unified approach. This universal tile structure can be configured for different operations without requiring separate specialized hardware for each function, thereby improving performance while managing complexity.

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

Solution Approach 2:

The patent employs dynamic tile configuration where tile dimensions, data types, and arrangement patterns can be adjusted based on the specific operation requirements. This dynamic adaptability allows the hardware to optimize for different matrix operations without being locked into a fixed configuration, balancing performance improvement with configuration flexibility.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP4020171A1Processors, methods, systems, and instructions to select and store data elements from two source two-dimensional arrays indicated by permute control elements in a result two-dimensional array
Publication Date: 2022.06.29 INTEL CORP
  • EP4020171A1 patent drawingFigure 1A~1B
  • EP4020171A1 patent drawingFigure 2(A)~2(C)
  • EP4020171A1 patent drawingFigure 3

AI summary

Techniques for permuting two source two dimensional (2D) arrays are described. A processor of an aspect includes a decoder circuitry to decode an instruction having an opcode. The instruction may indicate a first source 2D array, a second source 2D array, and permute control elements. Execution circuitry is coupled with the decoder circuitry. The execution circuitry is to execute the decoded instruction to select data elements, from among any data elements of the first source 2D array, and any data elements of the second source 2D array, that are each indicated by a different corresponding one of the permute control elements. The execution circuitry is also to store the selected data elements in data element positions of a result 2D array that each correspond to a different one of the permute control elements. Other processors, methods, systems, and instructions are disclosed.