IP Library Granted Patent US 11,709,611
Granted Patent B2
US 11,709,611 · App. 17/878,504 · Granted Jul 25, 2023

Determining and using memory unit partitioning solutions for reconfigurable dataflow computing systems

Inventors: Matthew S. Feldman (Oakland, CA); Yaqi Zhang (San Carlos, CA)
Assignee: SambaNova Systems, Inc.
G06F3/0644G06F3/0604G06F3/0683G06F9/5077
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 11,709,611
App. No.
17/878,504
Granted
Jul 25, 2023
Kind
B2
Abstract

A system includes a parser that receives and parses source code for a reconfigurable dataflow processor, a tensor expression extractor configured to extract tensor indexing expressions from the source code, a logical memory constraint generator that converts the tensor indexing expressions to logical memory indexing constraints, a grouping module that groups the logical memory indexing constraints into concurrent access groups and a memory partitioning module that determines a memory unit partitioning solution for each concurrent access group. The system also includes reconfigurable dataflow processor that comprises an array of compute units and an array of memory units interconnected with a switching fabric. The reconfigurable dataflow processor may be configured to execute the plurality of tensor indexing expressions and access the array of memory units according to the memory unit partitioning solution. A corresponding method and computer-readable medium are also disclosed herein.

Claims (33)

1. A system for determining and using memory unit partitioning solutions for reconfigurable dataflow computing systems, the system comprising:

a parser configured to receive and parse source code for a reconfigurable dataflow processor that comprises an array of compute units and an array of memory units interconnected with a switching fabric, the source code comprising a plurality of tensor indexing expressions;

a tensor expression extractor configured to extract the plurality of tensor indexing expressions from the source code;

a logical memory constraint generator configured to convert the plurality of tensor indexing expressions to a plurality of logical memory indexing constraints;

a grouping module configured to group the plurality of logical memory indexing constraints into concurrent access groups;

a memory partitioning module configured to determine a memory unit partitioning solution for each concurrent access group that supports the plurality of logical memory indexing constraints without concurrent usage conflicts, including memory unit and memory port conflicts, by selecting a set of logical-to-physical mapping parameters comprising a logical memory unit count N, a blocking parameter B, a scaling vector alpha, and a packing vector P; and

reconfigurable dataflow processor configured to execute the plurality of tensor indexing expressions and access the array of memory units according to the memory unit partitioning solution.

2. The system of claim 1 , wherein memory units in the array of memory units comprise address generators that generate, for each memory cycle, a physical address comprising a bank identifier and a bank offset.

3. The system of claim 2 , wherein memory units in the array of memory units are configured to respond to a specific bank identifier.

4. The system of claim 1 , wherein the selecting of the set of logical-to-physical mapping parameters comprises testing legal combinations of N, B and alpha.

5. The system of claim 1 , wherein the set of logical-to-physical mapping parameters define a hyperplane partitioning or a parallelepiped partitioning.

6. The system of claim 1 , further comprising a capacity modification module configured to perform a capacity modification to legalize the memory unit partitioning solution.

7. The system of claim 6 , wherein the capacity modification comprises scaling the packing vector P or increasing the logical memory unit count N of the set of logical-to-physical mapping parameters.

8. The system of claim 1 , further comprising a configuration module configured to generate configuration data for the reconfigurable dataflow processor corresponding to the memory unit partitioning solution.

9. A method for determining and using memory unit partitioning solutions for reconfigurable dataflow computing systems, the method comprising:

receiving source code for a reconfigurable dataflow processor that comprises an array of compute units and an array of memory units interconnected with a switching fabric, the source code comprising a plurality of tensor indexing expressions;

converting the plurality of tensor indexing expressions to a plurality of logical memory indexing constraints;

grouping the plurality of logical memory indexing constraints into concurrent access groups;

determining a memory unit partitioning solution for each concurrent access group that supports the plurality of logical memory indexing constraints without concurrent usage conflicts, including memory unit and memory port conflicts, by selecting a set of logical-to-physical mapping parameters comprising a logical memory unit count N, a blocking parameter B, a scaling vector alpha, and a packing vector P; and

accessing the array of memory units according to the memory unit partitioning solution in conjunction with executing the plurality of tensor indexing expressions with the reconfigurable dataflow processor.

10. The method of claim 9 , wherein the selecting of the set of logical-to-physical mapping parameters comprises testing legal combinations of N, B and alpha.

11. The method of claim 9 , wherein the set of logical-to-physical mapping parameters define a hyperplane partitioning or a parallelepiped partitioning.

12. The method of claim 9 , further comprising performing a capacity modification to legalize the memory unit partitioning solution.

13. The method of claim 12 , wherein the capacity modification comprises scaling the packing vector P or increasing the logical memory unit count N of the set of logical-to-physical mapping parameter.

14. The method of claim 9 , wherein the memory unit partitioning solution satisfies a bandwidth requirement for a tensor.

15. The method of claim 9 , wherein the array of compute units operate on vectors and the memory unit partitioning solution is vectorized.

16. The method of claim 9 , further comprising generating configuration data for the reconfigurable dataflow processor corresponding to the memory unit partitioning solution and configuring the reconfigurable dataflow processor using the configuration data.

17. A non-transitory computer readable medium having instructions encoded thereon for determining and using memory unit partitioning solutions for reconfigurable dataflow computing systems, the instructions configured to cause a processor to conduct a method comprising:

receiving source code for a reconfigurable dataflow processor that comprises an array of compute units and an array of memory units interconnected with a switching fabric, the source code comprising a plurality of tensor indexing expressions;

converting the plurality of tensor indexing expressions to a plurality of logical memory indexing constraints;

grouping the plurality of logical memory indexing constraints into concurrent access groups

determining a memory unit partitioning solution for each concurrent access group that supports the plurality of logical memory indexing constraints without concurrent usage conflicts, including memory unit and memory port conflicts, by selecting a set of logical-to-physical mapping parameters comprising a logical memory unit count N, a blocking parameter B, a scaling vector alpha, and a packing vector P; and

accessing the array of memory units according to the memory unit partitioning solution in conjunction with executing the plurality of tensor indexing expressions with the reconfigurable dataflow processor.

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 Aug 1, 2022
From: FELDMAN, MATTHEW S.; ZHANG, YAQI
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 060689/0644 →
Continuity (2)
Provisional Application 63271906 · Oct 26, 2021
Related Publication 20230126532A1 · Apr 27, 2023