SIMD Sparse Vector Compression for Contiguous Memory Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Sparse data vectors with invalid data elements lead to inefficient computation and storage due to the processing of unnecessary data, resulting in hardware inefficiency and increased costs when compressing data within processing pipelines.

Innovation Solution

A system that stores valid data from sparse data vectors at contiguous memory addresses using a SIMD processor, employing scatter instructions and parallel-prefix valid count instructions to generate a compressed data vector, thereby separating and processing only valid data values efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sparse data vectors are compressed within the processing pipeline by shifting data elements, then valid data elements can be adjacent to one another, but this results in a relatively large number of data vectors with complex addressing schemes and increased hardware costs

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidaddressing scheme complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts only the valid data elements from sparse data vectors and stores them in a separate valid data structure, removing invalid data elements entirely. This extraction approach eliminates the need for complex addressing schemes to handle invalid data, while maintaining processing efficiency by working only with valid data elements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the data storage into two distinct parts: a valid data structure containing only valid data elements, and an invalid data structure containing invalid data elements. This segmentation allows the system to handle valid and invalid data separately, simplifying the addressing scheme for valid data while efficiently managing invalid data in the segmented structure.

Inventive Principle:
Principle #1Segmentation

2Productivity

If sparse data vectors are compressed within the processing pipeline, then valid data elements can be adjacent to one another, but this results in increased hardware costs

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidhardware cost
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent implements a universal data structure that can accommodate both valid and invalid data elements using the same storage mechanism. The valid data structure and invalid data structure use identical hardware resources, allowing the system to process sparse data efficiently without requiring specialized hardware components, thereby reducing overall hardware costs.

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

Solution Approach 2:

The system automatically manages the separation and organization of valid and invalid data elements through self-service mechanisms. The processing pipeline autonomously identifies, separates, and stores valid and invalid data elements in their respective structures without requiring additional complex hardware control logic, reducing hardware costs while maintaining processing efficiency.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If invalid data elements are included in data vectors, then data vectors can represent sparse data, but this leads to inefficient computation and storage due to processing of unnecessary data

Engineering Contradiction:
Improvesparse data representationVSAvoidcomputation efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent extracts invalid data elements from the processing pipeline and stores them separately in an invalid data structure. By removing invalid data from the valid data structure, the system computes only on valid data elements, significantly improving computation efficiency while maintaining the ability to represent sparse data through the separate invalid data structure.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by processing only the valid portion of sparse data vectors rather than the entire vector including invalid elements. The system performs computation on valid data elements while managing invalid data elements separately, avoiding the excessive processing of unnecessary invalid data and improving overall computation efficiency.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP3516774B1Data storage at contiguous memory addresses
Publication Date: 2023.11.29 QUALCOMM INC
  • EP3516774B1 patent drawingFigure 1
  • EP3516774B1 patent drawingFigure 2
  • EP3516774B1 patent drawingFigure 3

AI summary

A method for storing data at contiguous memory addresses includes, at a single-instruction-multiple-data (SIMD) processor, executing a parallel-prefix valid count instruction to determine a first offset of a first data vector and to determine a second offset of a second data vector that includes valid data and invalid data. The second offset is based on the first offset and a number of positions in the first data vector that are associated with valid data. The method also includes storing first valid data from the first data vector at a first memory address of a memory and storing second valid data from the second data vector at a particular memory address of the memory. The first memory address is based on the first offset and the particular memory address is based on the second offset.