Buffer Splitting for Memory Optimization in Reconfigurable Dataflow Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Optimizing compute graphs for the configurable units of a coarse-grained reconfigurable (CGR) processor remains a challenge, particularly in efficiently executing massively parallel computations required for machine learning and artificial intelligence workloads.

Innovation Solution

A method in a reconfigurable computing system that involves receiving a user program, converting tensor-based algebraic expressions to an intermediate representation, and determining whether splitting a selected buffer yields a reduced cost, with the option to split the buffer and optimize resource utilization and memory consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If buffer splitting is applied to reduce memory unit consumption, then resource utilization is improved, but device complexity increases

Engineering Contradiction:
Improvememory unit consumptionVSAvoidbuffer management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing a single large buffer into multiple smaller buffers. This allows the system to reduce overall memory unit consumption by selectively allocating smaller buffer sizes based on actual computational needs, thereby resolving the contradiction between reducing resource consumption and managing system complexity through structured division.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent utilizes parameter changes by dynamically adjusting buffer sizes and splitting strategies based on computational workload characteristics. By changing buffer parameters (size, location, allocation) adaptively, the system optimizes memory unit consumption while managing complexity through automated parameter adjustment rather than manual configuration.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If buffer splitting is implemented to optimize resource utilization, then productivity is improved, but ease of operation deteriorates

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidprogram configuration simplicity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements self-service by enabling the buffer splitting mechanism to automatically optimize resource allocation based on computational graphs and workload characteristics. The system performs self-adjustment of buffer configurations without requiring user intervention, thereby improving productivity while maintaining ease of operation through automation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent applies preliminary action by pre-configuring buffer splitting strategies and resource allocation plans before execution. The system analyzes computational graphs in advance and pre-determines optimal buffer splits, eliminating the need for complex runtime configuration and maintaining operational simplicity while enhancing productivity.

Inventive Principle:
Principle #10Preliminary action

3Loss of substance

If buffer splitting is used to reduce memory consumption, then loss of substance is reduced, but measurement precision requirements increase

Engineering Contradiction:
Improvememory resource wasteVSAvoidcost calculation accuracy
Core Design Contradiction:
Loss of substanceVSMeasurement precision

Solution Approach 1:

The patent implements feedback mechanisms that continuously monitor memory consumption patterns and computational workload characteristics. This feedback information is used to refine buffer splitting decisions and cost calculations, improving measurement precision while reducing memory resource waste through adaptive optimization based on actual system behavior.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20250068587A1Buffer Splitting Based on Cost
Publication Date: 2025.02.27 SAMBANOVA SYSTEMS INC
  • US20250068587A1 patent drawing
  • US20250068587A1 patent drawing
  • US20250068587A1 patent drawing

AI summary

A method includes receiving a user program for execution on a reconfigurable dataflow computing system comprising a plurality of compute units and a plurality of memory units, the plurality of compute units and the plurality of memory units being interconnected. The user program is converted to an intermediate representation comprising a plurality of logical operations, executable via dataflow through one or more compute units of the plurality of compute units, one or more logical operations preceded by or followed by a buffer of one or more buffers, each buffer of the one or more buffers corresponding to one or more memory units of the plurality of memory units. The method further includes determining whether splitting a selected buffer yields a reduced cost and splitting the selected buffer in response to determining that splitting the selected buffer yields the reduced cost, to produce a first buffer and a second buffer.