Binary Array Dissolution Coding for Memory Traffic Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for compressing and accessing large binary arrays are inefficient, leading to high memory traffic and computational redundancy, particularly in low-end or embedded processors, and fail to optimize for both compression and computational performance simultaneously.

Innovation Solution

The method employs dissolution coding to represent binary arrays as easily computable generating functions, which are then codified into branch-free programs for optimal packing, allowing for fast bitwise operations and reduced memory traffic, and is applicable to both binary and non-binary arrays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If binary arrays are stored in compressed format to reduce memory overhead, then space efficiency is improved, but transfer costs between host and device increase

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

Solution Approach 1:

The binary array is divided into multiple segments or blocks, each independently compressed and stored. This segmentation allows selective transfer of only the required segments between host and device, reducing overall transfer time while maintaining compression benefits for the entire array.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The binary array is pre-compressed into an efficient format before transfer to the device. By performing compression in advance on the host system, the actual transfer time is reduced as smaller data volumes need to be transmitted, while the compressed format is preserved for efficient device-side operations.

Inventive Principle:
Principle #10Preliminary action

2Power

If deep neural networks are employed to process large datasets, then computational power is improved, but inference time and computational redundancy increase

Engineering Contradiction:
Improvecomputational powerVSAvoidinference time
Core Design Contradiction:
PowerVSLoss of time

Solution Approach 1:

The patent extracts and removes redundant computational operations from the neural network processing pipeline. By identifying and eliminating unnecessary computations in the deep neural network, the system maintains high computational power for essential operations while significantly reducing inference time and computational redundancy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of performing complete neural network inference on entire large datasets, the system applies partial processing to subsets of data or uses approximate computing techniques. This approach maintains sufficient computational accuracy while dramatically reducing inference time by avoiding excessive computational actions.

Inventive Principle:
Principle #16Partial or excessive action

3Ease of operation

If large binary matrices are transferred between host and device, then data availability is improved, but processing time increases

Engineering Contradiction:
Improvedata availabilityVSAvoidprocessing time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent applies different quality levels or compression ratios to different regions or portions of the binary matrix based on their access patterns and importance. Frequently accessed or critical regions are maintained in higher quality with faster access, while less critical regions use higher compression, optimizing the balance between data availability and processing time.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20240152334A1Method and system for implementing binary arrays
Publication Date: 2024.05.09 NOTACEON INC
  • US20240152334A1 patent drawing
  • US20240152334A1 patent drawing
  • US20240152334A1 patent drawing

AI summary

In one aspect, a computerized method includes the step of obtaining a binary array, wherein the binary array is utilized for a subsequent set of operations. The method includes the step of performing a dissolution coding on the binary array to yield a one or more generating functions. The method includes the step of codifying the one or more generating functions as a branch-free program to yield an optimal packing of the binary array.