Matrix Multiplication Tile Mapping on Parallel Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing devices face inefficiencies and high costs when performing matrix operations due to limited arithmetic and memory access logic in microprocessors, and memory bandwidth limitations in graphics processing units.

Innovation Solution

The method involves mapping cooperative thread arrays (CTAs) to tiles of a result matrix for efficient matrix multiplication, using a graphics processing unit with synchronization logic to execute CTAs concurrently, and copying source tiles to local memory to reduce global memory access and optimize memory bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a microprocessor is used to perform matrix operations, then the device is cost-effective and widely available, but the processing performance is limited due to limited arithmetic and memory access logic

Engineering Contradiction:
Improvematrix operation performanceVSAvoidarithmetic and memory access logic
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the matrix operation into multiple independent thread groups, where each thread group processes a portion of the matrix multiplication. This allows parallel execution of multiple thread groups on the same microprocessor, effectively increasing throughput without requiring a more complex processor architecture. The segmentation of work enables the system to overcome the limitation of limited arithmetic and memory access logic by distributing computations across multiple concurrent execution units.

Inventive Principle:
Principle #1Segmentation

2Productivity

If a multiprocessing computing device is used to perform matrix operations, then the processing performance increases due to more arithmetic and memory logic, but the cost increases significantly

Engineering Contradiction:
Improvematrix operation performanceVSAvoidcost-effectiveness
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent implements continuous useful action by overlapping memory access operations with computation operations within each thread group. While some threads are computing matrix elements, other threads are simultaneously loading data from memory. This continuous utilization of processing resources eliminates idle time and maximizes the effective performance of the single microprocessor, achieving multiprocessing-like efficiency without the associated cost.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If a graphics processing unit is used to perform matrix operations, then high computational bandwidth is achieved, but memory bandwidth requirements outstrip the actual memory bandwidth provided

Engineering Contradiction:
Improvecomputational bandwidthVSAvoidmemory bandwidth
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies preliminary action by pre-loading matrix data into fast on-chip memory (such as cache or register memory) before the computation phase begins. Thread groups are organized to efficiently utilize this pre-loaded data, minimizing the need for repeated accesses to slower global memory. This preliminary data preparation reduces the memory bandwidth burden during the actual matrix multiplication, allowing the GPU to achieve high computational bandwidth without being bottlenecked by memory bandwidth limitations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8589468B2Efficient matrix multiplication on a parallel processing device
Publication Date: 2013.11.19 NVIDIA CORP
  • US8589468B2 patent drawing
  • US8589468B2 patent drawing
  • US8589468B2 patent drawing

AI summary

The present invention enables efficient matrix multiplication operations on parallel processing devices. One embodiment is a method for mapping CTAs to result matrix tiles for matrix multiplication operations. Another embodiment is a second method for mapping CTAs to result tiles. Yet other embodiments are methods for mapping the individual threads of a CTA to the elements of a tile for result tile computations, source tile copy operations, and source tile copy and transpose operations. The present invention advantageously enables result matrix elements to be computed on a tile-by-tile basis using multiple CTAs executing concurrently on different streaming multiprocessors, enables source tiles to be copied to local memory to reduce the number accesses from the global memory when computing a result tile, and enables coalesced read operations from the global memory as well as write operations to the local memory without bank conflicts.