Matrix Multiplication Fusion with GPU Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Matrix multiplication operations in artificial neural networks, particularly on central processing units (CPUs), face significant bottlenecks due to the overhead of loading repetitive matrix elements, limiting the computational potential of even high-speed CPUs.

Innovation Solution

Implementing matrix multiplication fused with reduction (MMFR) operations using multi-core Graphics Processing Units (GPUs), which perform reduction operations in conjunction with matrix multiplication by dividing matrices into tiles and distributing computations across multiple threads, allowing for parallel processing and efficient loading of matrix elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If matrix multiplication is performed on a single-core CPU, then the computational operations can be executed, but the loading overhead becomes the bottleneck that limits processing speed

Engineering Contradiction:
Improveprocessing speedVSAvoidloading overhead time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent divides the matrix multiplication operation into multiple independent segments that can be processed in parallel. Specifically, it partitions the computation into multiple threads, each handling a portion of the matrix elements, thereby enabling simultaneous processing and reducing the sequential loading overhead that plagues single-core CPU execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from single-core sequential processing to multi-core parallel processing, effectively adding a dimensional aspect to the computation. By distributing matrix multiplication tasks across multiple CPU cores simultaneously, the system overcomes the linear speed limitations of single-core execution and reduces overall loading time through concurrent operations.

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

2Productivity

If matrix elements are loaded repeatedly for each computation, then the operations can be completed, but the loading overhead increases significantly

Engineering Contradiction:
Improvecomputational throughputVSAvoidloading overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements preliminary loading of matrix elements into shared memory before the actual computation begins. By pre-loading and caching the necessary matrix data in a shared memory space accessible by multiple threads, the system eliminates repeated loading operations during computation, thereby reducing loading overhead and improving computational throughput.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If fusion of matrix multiplication and reduction operations is implemented, then processing efficiency improves, but the device complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidoperation fusion complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges matrix multiplication and reduction operations into a single fused computational kernel. By combining these two operations that were traditionally executed separately into one unified thread block execution, the patent improves processing efficiency through better data reuse and reduced memory access overhead, while managing the increased operational complexity through systematic thread organization and shared memory management.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20220075842A1Processor and system for automatic fusion of matrix multiplication and reduction operations
Publication Date: 2022.03.10 NVIDIA CORP
  • US20220075842A1 patent drawing
  • US20220075842A1 patent drawing
  • US20220075842A1 patent drawing

AI summary

Apparatuses, systems, and techniques to perform matrix multiplication fused with reduction using a graphics processing unit. In at least one embodiment, one or more circuits are used to multiply two or more sub-portions of one or more matrices and generate two or more vectors therefrom using two or more parallel operations.