Tile-Based Matrix Store Instructions for Large-Matrix Memory Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processors face difficulties in efficiently handling large matrices due to instruction intensity and inefficiencies in matrix operations, particularly when dealing with larger matrices.

Innovation Solution

Implementing 2-dimensional data structures called tiles in computer hardware, such as CPUs and GPUs, to facilitate matrix operations, including matrix multiplication, addition, and accumulation, using a matrix operations accelerator that supports tile-based operations and shared memory access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional processors handle large matrices using conventional instruction sets, then basic matrix operations can be performed, but instruction intensity increases and processing efficiency deteriorates

Engineering Contradiction:
Improvematrix operation efficiencyVSAvoidinstruction intensity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides large matrices into smaller 2D tile structures that can be processed in parallel. Each tile represents a sub-matrix that can be independently manipulated, allowing the processor to break down complex large-matrix operations into manageable chunks that reduce instruction intensity while maintaining overall productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a second dimension to data organization by using 2D tile structures instead of traditional 1D arrays. This dimensional change enables more efficient memory access patterns and allows matrix operations to be performed with fewer instructions by exploiting the spatial structure of the tiles.

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

2Speed

If conventional memory access patterns are used for matrix operations, then memory can be accessed sequentially, but access efficiency deteriorates for large matrices

Engineering Contradiction:
Improvememory access efficiencyVSAvoidprocessing time for large matrices
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

By segmenting large matrices into smaller tiles, the patent enables more efficient memory access where each tile can be loaded and processed independently. This segmentation allows for better cache utilization and reduces memory access latency compared to processing large matrices as single continuous blocks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs preliminary actions by pre-loading tile data into registers before computation. This allows the computational units to operate on already-available data in registers rather than repeatedly accessing memory during computation, significantly improving access speed and reducing processing time.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If standard register allocation is used for matrix operations, then registers can be allocated sequentially, but register utilization efficiency deteriorates

Engineering Contradiction:
Improveregister utilization efficiencyVSAvoidregister management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies 2D tile structures to register allocation, organizing registers in a two-dimensional layout that mirrors the tile structure of the matrix data. This dimensional correspondence allows for more efficient register utilization by enabling spatial locality in register access patterns and reducing the number of register management operations required.

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

Data Source

PatentUS12536020B2Systems, methods, and apparatuses for tile store
Publication Date: 2026.01.27 INTEL CORP
  • US12536020B2 patent drawing
  • US12536020B2 patent drawing
  • US12536020B2 patent drawing

AI summary

Embodiments detailed herein relate to matrix operations. In particular, the loading of a matrix (tile) from memory. For example, support for a loading instruction is described in at least a form of decode circuitry to decode an instruction having fields for an opcode, a source matrix operand identifier, and destination memory information, and execution circuitry to execute the decoded instruction to store each data element of configured rows of the identified source matrix operand to memory based on the destination memory information.