Vector Dequantization Hardware for Dynamic Weight Cache Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current artificial neural networks (NNs) and deep neural networks (DNNs) face inefficiencies in processing data due to high latency and memory usage, particularly in reading neuron weight values from memory, which can be costly and size-limited, leading to suboptimal performance.

Innovation Solution

The implementation of vector quantization of neuron weight values, which allows for more weight values to be represented in a given memory space by converting contiguous segments into vectors and using indices to reference weight values from a lookup table, reducing memory transfer and maintaining accuracy without precision reduction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If weight values are stored in general memory (DRAM), then memory capacity is sufficient, but reading time and power consumption increase

Engineering Contradiction:
Improvememory capacityVSAvoidreading time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent segments weight values into codebooks organized by neuron layers and groups, allowing selective loading of only the required weight segments into local cache memory. This segmentation enables the system to work with smaller, manageable portions of weights at a time, reducing the amount of data that needs to be transferred from general memory while maintaining sufficient memory capacity for the entire weight set.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by pre-loading weight values from general memory into local cache memory before they are needed for computation. The system predicts which weight values will be needed based on the computation graph and loads them in advance, eliminating the need to read from slow general memory during the actual computation phase.

Inventive Principle:
Principle #10Preliminary action

2Speed

If weight values are cached in local memory (SRAM), then reading speed improves, but memory size and cost increase

Engineering Contradiction:
Improvereading speedVSAvoidmemory size
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent divides the weight values into multiple codebooks, each containing a subset of weights for specific neuron groups. This segmentation allows the local cache memory to store only the relevant codebook(s) needed for current computation, rather than caching all weight values. The system achieves fast reading speeds by having the required data already in local memory while keeping the total cached size manageable through selective organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by organizing weight values into different codebooks with different properties based on their usage patterns and importance. Frequently accessed or critical weight values are stored in local cache memory where they can be accessed quickly, while less frequently used weights remain in general memory. This creates a hierarchy where each memory location has optimized characteristics for its specific purpose.

Inventive Principle:
Principle #3Local quality

3Quantity of substance

If precision of weight values is reduced, then memory requirements decrease, but result accuracy deteriorates

Engineering Contradiction:
Improvememory requirementsVSAvoidresult accuracy
Core Design Contradiction:
Quantity of substanceVSMeasurement precision

Solution Approach 1:

The patent uses copying by creating codebooks that contain compressed representations (indices) of weight values instead of storing the full-precision weights directly. During computation, the system looks up the actual weight values from the codebooks using these indices. This copying mechanism allows the system to store compact index values in memory while maintaining access to full-precision weight values when needed, thus reducing memory requirements without sacrificing accuracy.

Inventive Principle:
Principle #26Copying

4Quantity of substance

If vector quantization is used, then memory storage and bandwidth are reduced, but processing complexity increases

Engineering Contradiction:
Improvememory storageVSAvoidprocessing complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the weight values into fixed-size vectors that are stored in codebooks. Each weight value is represented by an index into these vector segments rather than storing the full weight. This segmentation approach standardizes the quantization process and enables efficient memory layout, reducing memory storage requirements and bandwidth while the fixed vector size helps manage processing complexity through predictable, uniform operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11750212B2Flexible hardware for high throughput vector dequantization with dynamic vector length and codebook size
Publication Date: 2023.09.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11750212B2 patent drawing
  • US11750212B2 patent drawing
  • US11750212B2 patent drawing

AI summary

The performance of a neural network (NN) and/or deep neural network (DNN) can limited by the number of operations being performed as well as memory data management of a NN/DNN. Using vector quantization of neuron weight values, the processing of data by neurons can be optimize the number of operations as well as memory utilization to enhance the overall performance of a NN/DNN. Operatively, one or more contiguous segments of weight values can be converted into one or more vectors of arbitrary length and each of the one or more vectors can be assigned an index. The generated indexes can be stored in an exemplary vector quantization lookup table and retrieved by exemplary fast weight lookup hardware at run time on the fly as part of an exemplary data processing function of the NN as part of an inline de-quantization operation to obtain needed one or more neuron weight values.