Sparse-Dense Transform Unit for Matrix Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High-performance computing systems face inefficiencies when processing large matrices, as the central processing unit (CPU) spends significant time fetching sparse elements from distributed storage, leading to underutilization of computation bandwidth and increased idle time due to serialization and unequal dimensions of dense matrices.

Innovation Solution

A system with a sparse-dense transform unit, comprising multiple sparse element access units arranged in a network topology, partitions and fetches sparse elements from distributed data shards, transforming them into a dense matrix independently of CPU operations, thereby reducing CPU idle time and enhancing computation bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the CPU fetches sparse elements from distributed storage, then the matrix can be processed, but the CPU spends significant time fetching and becomes underutilized

Engineering Contradiction:
Improvematrix processing throughputVSAvoidCPU idle time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent introduces a dedicated sparse-dense transform unit as an intermediary component between the distributed storage system and the CPU. This specialized hardware unit handles the time-consuming sparse element fetching and transformation operations, allowing the CPU to focus on computation while the transform unit manages data retrieval and formatting, thereby eliminating CPU idle time.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system architecture is segmented into distinct functional components: the CPU for computation, the sparse-dense transform unit for data transformation, and multiple memory controllers for parallel data access. This segmentation allows each component to operate independently and efficiently, with the transform unit handling I/O operations while the CPU performs calculations, thus improving overall productivity without increasing CPU idle time.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If sparse data is stored in distributed locations, then large matrices can be handled, but fetching from multiple locations increases processing time

Engineering Contradiction:
Improveability to handle large matricesVSAvoiddata fetching time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The sparse-dense transform unit performs preliminary actions by pre-fetching and pre-transforming sparse elements from distributed storage into dense matrix format before the CPU needs them for computation. This advance preparation eliminates waiting time during the actual computation phase, as the data is already in the required format and ready for processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains continuity of useful action through parallel operation of multiple memory controllers that simultaneously access different portions of distributed storage. While one controller fetches data, another can be preparing transformations, ensuring that the data pipeline remains continuously active without idle gaps, thereby reducing total fetching time despite data being distributed across multiple locations.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If the CPU performs sparse-to-dense transformation, then processing can be done, but computation bandwidth is underutilized due to serialization

Engineering Contradiction:
Improvecomputation bandwidth utilizationVSAvoidprocessing architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The sparse-dense transform unit serves as a specialized intermediary that handles the transformation operations in hardware, separating this I/O-intensive task from the CPU's computation workflow. This allows the CPU to maintain full computation bandwidth utilization by focusing exclusively on mathematical operations, while the transform unit manages the conversion of sparse data to dense format in parallel.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Speed

If multiple memory controllers are used to access distributed data, then data can be fetched in parallel, but coordination overhead increases

Engineering Contradiction:
Improvedata access speedVSAvoidcontroller coordination
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The sparse-dense transform unit is designed as a universal controller that manages multiple memory controllers through a standardized interface and unified coordination logic. This multi-functional unit can direct any number of memory controllers to access any portion of distributed storage, eliminating the need for complex point-to-point coordination protocols between multiple independent controllers, thereby maintaining high parallel access speed while reducing coordination overhead.

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

Data Source

PatentEP4160448A1Matrix processing apparatus
Publication Date: 2023.04.05 GOOGLE LLC
  • EP4160448A1 patent drawingFigure 1
  • EP4160448A1 patent drawingFigure 2A
  • EP4160448A1 patent drawingFigure 2B

AI summary

Methods, systems, and apparatus, including a system for transforming sparse elements to a dense matrix. The system is configured to receive a request for an output matrix based on sparse elements including sparse elements associated with a first dense matrix and sparse elements associated with a second dense matrix; obtain the sparse elements associated with the first dense matrix fetched by a first group of sparse element access units; obtain the sparse elements associated with the second dense matrix fetched by a second group of sparse element access units; and transform the sparse elements associated with the first dense matrix and the sparse elements associated with the second dense matrix to generate the output dense matrix that includes the sparse elements associated with the first dense matrix and the sparse elements associated with the second dense matrix.