IP Library Granted Patent US 12,045,591
Granted Patent B2
US 12,045,591 · App. 17/944,872 · Granted Jul 23, 2024

Skip buffer splitting

Inventors: Nathan Sheeley (Austin, TX); Weihang Fan (Palo Alto, CA); Matheen Musaddiq (Austin, TX); Ram Sivaramakrishnan (San Jose, CA)
Assignee: SambaNova Systems, Inc.
G06F8/452G06F3/0604G06F3/0635G06F3/0656G06F3/0673G06F3/0683
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,045,591
App. No.
17/944,872
Granted
Jul 23, 2024
Kind
B2
Abstract

A compiler transforms a high-level program into configuration data for a coarse-grained reconfigurable (CGR) data processor with an array of CGR units. The compiler includes a method that identifies a skip buffer in a dataflow graph, determines limitations associated with the array, and searches for a lowest cost implementation topology and stage depth. At least three topologies are considered, including a cascaded buffer topology, a hybrid buffer topology, and a striped buffer topology. The lowest cost implementation topology and stage depth are based on the size of the buffered data (usually, the size of a tensor), the depth of the skip buffer, and the array's limitations. The hybrid buffer topology includes multiple sections of parallel memory units. The data travels between memory units in one section to adjacent memory units in a next section without intervening reorder buffers.

Claims (30)

1. A computer-implemented method to transform a high-level program into configuration data for a coarse-grained reconfigurable (CGR) processor with an array of CGR units, comprising:

transforming at least a part of the high-level program into a dataflow graph that includes multiple interdependent asynchronously performing meta-pipelines, wherein at least one of the meta-pipelines includes a nested loop;

in the dataflow graph, identifying a first buffer that stores data that is passed from a producer in a first meta-pipeline stage to a consumer in a second meta-pipeline stage, wherein the first buffer has a first depth and the first depth is more than two timesteps;

determining hardware limitations associated with the array of CGR units, including one or more of a number of bytes in a memory unit, a maximum depth of a buffer, or a maximum fan-in of a buffer;

determining a lowest cost implementation topology and stage depth, based on a size of the data, the first depth, the hardware limitations, and one or more of three topologies, the three topologies including a cascaded buffer topology, a hybrid buffer topology, and a striped buffer topology;

assigning the first buffer to memory units and communication channels according to the lowest cost implementation topology and stage depth;

generating configuration data for the assigned memory units and communication channels, wherein the configuration data, when loaded onto an instance of the array of CGR units, causes the array of CGR units to implement the dataflow graph; and

storing the configuration data in a non-transitory computer-readable storage medium.

2. The computer-implemented method of claim 1 , wherein:

the hybrid buffer topology includes multiple sections that include parallel memory units; and

the data travels from memory units in one to adjacent memory units in a next section without intervening reorder buffers.

3. The computer-implemented method of claim 1 , wherein:

determining a lowest cost implementation topology and stage depth includes calculating a cost based on a number of memory units and based on a number of times the data is written into a memory unit while traveling through the first buffer.

4. The computer-implemented method of claim 3 , wherein the cost factor includes a weight for the number of memory units and/or a weight for the number of times the data is written into a memory unit while traveling through the first buffer.

5. A non-transitory computer-readable storage medium storing computer program instructions to transform a high-level program into configuration data for a CGR processor with an array of CGR units, wherein the computer program instructions, when executed on a processor, implement a method comprising:

transforming at least a part of the high-level program into a dataflow graph that includes multiple interdependent asynchronously performing meta-pipelines, wherein at least one of the meta-pipelines includes a nested loop;

in the dataflow graph, identifying a first buffer that stores data that is passed from a producer in a first meta-pipeline stage to a consumer in a second meta-pipeline stage, wherein the first buffer has a first depth and the first depth is more than two timesteps;

determining hardware limitations associated with the array of CGR units, including one or more of a number of bytes in a memory unit, a maximum depth of a buffer, or a maximum fan-in of a buffer;

determining a lowest cost implementation topology and stage depth, based on a size of the data, the first depth, the hardware limitations, and one or more of three topologies, the three topologies including a cascaded buffer topology, a hybrid buffer topology, and a striped buffer topology;

assigning the first buffer to memory units and communication channels according to the lowest cost implementation topology and stage depth;

generating configuration data for the assigned memory units and communication channels, wherein the configuration data, when loaded onto an instance of the array of CGR units, causes the array of CGR units to implement the dataflow graph; and

storing the configuration data in a non-transitory computer-readable storage medium.

6. A system including one or more processors coupled to a memory, the memory loaded with computer program instructions to transform a high-level program into configuration data for a CGR processor with an array of CGR units, wherein the computer program instructions, when executed on the one or more processors, implement actions comprising:

transforming at least a part of the high-level program into a dataflow graph that includes multiple interdependent asynchronously performing meta-pipelines, wherein at least one of the meta-pipelines includes a nested loop;

in the dataflow graph, identifying a first buffer that stores data that is passed from a producer in a first meta-pipeline stage to a consumer in a second meta-pipeline stage, wherein the first buffer has a first depth and the first depth is more than two timesteps;

determining hardware limitations associated with the array of CGR units, including one or more of a number of bytes in a memory unit, a maximum depth of a buffer, or a maximum fan-in of a buffer;

determining a lowest cost implementation topology and stage depth, based on a size of the data, the first depth, the hardware limitations, and one or more of three topologies, the three topologies including a cascaded buffer topology, a hybrid buffer topology, and a striped buffer topology;

assigning the first buffer to memory units and communication channels according to the lowest cost implementation topology and stage depth;

generating configuration data for the assigned memory units and communication channels, wherein the configuration data, when loaded onto an instance of the array of CGR units, causes the array of CGR units to implement the dataflow graph; and

storing the configuration data in a non-transitory computer-readable storage medium.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 18, 2025
From: SAMBANOVA SYSTEMS, INC.
To: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 070892/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2023
From: SHEELEY, NATHAN; FAN, WEIHANG; MUSADDIQ, MATHEEN; SIVARAMAKRISHNAN, RAM
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 063927/0164 →
Continuity (2)
Provisional Application 63345751 · May 25, 2022
Related Publication 20230385043A1 · Nov 30, 2023
Cited By (1)
US 12,499,003