Universal FPGA Matrix-Vector Multiplication Using Compressed Variable-Length Bit Vector Format

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The exponential growth of sparse matrix sizes has outpaced the capabilities of commodity CPUs and GPUs, leading to challenges in storage, communication, and processing, with existing CPU-centric sparse matrix formats requiring significant resources and inefficiently leveraging the capabilities of FPGAs and GPUs.

Innovation Solution

A universal single-bitstream library for FPGAs that uses the Compressed Variable-Length Bit Vector (CVBV) format for sparse matrices and supports dense matrices, reducing storage and bandwidth requirements, and incorporating a runtime-programmable decoder to handle various formats, enabling efficient processing of large datasets and flexible format conversion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If CPU-centric sparse matrix formats (e.g., CSR) are used, then compatibility with existing systems is maintained, but storage and bandwidth requirements increase significantly

Engineering Contradiction:
Improvestorage requirementsVSAvoidformat complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent changes the fundamental parameters of sparse matrix representation by using bit-level encoding instead of word-level encoding. The CVBV format represents each non-zero element with a variable-length bit vector, where the length corresponds to the number of trailing zeros in the column index. This parameter change reduces storage requirements by exploiting the statistical distribution of zero patterns in sparse matrices, while maintaining a systematic structure that avoids excessive complexity.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments the storage representation into two distinct components: (1) a bit vector indicating the presence of non-zero elements, and (2) a value array storing only the non-zero elements. This segmentation allows independent optimization of each component and enables more efficient memory utilization compared to traditional formats that store all elements uniformly.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If multiple sparse matrix formats are supported, then versatility is improved, but CPU resources for translation between formats increase

Engineering Contradiction:
Improveformat compatibilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent creates a universal bitstream format that can represent multiple sparse matrix formats (CSR, COO, DIA, ELL) without requiring separate processing paths. The runtime-programmable decoder can interpret the same underlying bitstream structure in different ways depending on the desired output format, eliminating the need for format conversion and the associated CPU overhead.

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

Solution Approach 2:

The patent introduces an intermediary runtime-programmable decoder that acts as a mediator between the stored bitstream format and various output formats. This decoder can be configured at runtime to produce different sparse matrix formats as needed, avoiding the need for pre-computation of multiple format versions and reducing CPU resources required for format translation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If FPGAs are configured for specific formats, then processing performance is optimized, but reconfiguration time and resource usage increase

Engineering Contradiction:
Improveprocessing performanceVSAvoidreconfiguration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a dynamic architecture where the FPGA decoder can be reconfigured at runtime to handle different sparse matrix formats and produce different output formats. This dynamic capability allows the system to adapt to different problem parameters without requiring complete reconfiguration of the FPGA, maintaining high processing performance while reducing reconfiguration overhead.

Inventive Principle:
Principle #15Dynamics

4Quantity of substance

If compressed formats are used, then storage efficiency is improved, but decoding complexity increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoiddecoding complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent changes the encoding parameters from fixed-width representations to variable-length bit vectors. Each non-zero element is represented by a bit vector whose length is determined by the number of trailing zeros in its column index. This parameter change achieves compression by exploiting the statistical distribution of column indices in sparse matrices, while the systematic nature of the encoding keeps decoding complexity manageable through regular patterns.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9317482B2Universal FPGA/ASIC matrix-vector multiplication architecture
Publication Date: 2016.04.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9317482B2 patent drawing
  • US9317482B2 patent drawing
  • US9317482B2 patent drawing

AI summary

A universal single-bitstream FPGA library or ASIC implementation accelerates matrix-vector multiplication processing multiple matrix encodings including dense and multiple sparse formats. A hardware-optimized sparse matrix representation referred to herein as the Compressed Variable-Length Bit Vector (CVBV) format is used to take advantage of the capabilities of FPGAs and reduce storage and bandwidth requirements across the matrices compared to that typically achieved when using the Compressed Sparse Row (CSR) format in typical CPU- and GPU-based approaches. Also disclosed is a class of sparse matrix formats that are better suited for FPGA implementations than existing formats reducing storage and bandwidth requirements. A partitioned CVBV format is described to enable parallel decoding.