IP Library Granted Patent US 12,367,022
Granted Patent B2
US 12,367,022 · App. 18/387,906 · Granted Jul 22, 2025

Method and system to determine execution inefficiencies in dataflow programs

Inventors: Blaine Rister (San Francisco, CA); Qingjian Li (Berkeley, CA); Bowen Yang (Palo Alto, CA); Junjue Wang (Newark, CA); Chen Liu (Palo Alto, CA); Zhuo Chen (Palo Alto, CA); Arvind Sujeeth (Palo Alto, CA); Sumti Jairath (Palo Alto, CA)
Assignee: SambaNova Systems, Inc.
G06F8/433
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,367,022
App. No.
18/387,906
Granted
Jul 22, 2025
Kind
B2
Abstract

In a method a computer-implemented efficiency analyzer selects operators from an intermediate representation of a dataflow program. The operators are included in a mapping of the operators to hardware of a computing system to execute the dataflow program. Based on the mapping and a description of the hardware, the efficiency analyzer computes an execution metric associated with executing the operators on the hardware. Based on the execution metric and hardware description, the efficiency analyzer determines an inefficiency metric, and based on the inefficiency metric, the efficiency analyzer determines an inefficiency associated with the dataflow program. The computing system to execute the dataflow program can comprise a coarse grain computing system and the hardware can include a reconfigurable processor of the computing system. A computer program product and a computing system to a the dataflow program can implement the method.

Claims (68)

1. A method, the method comprising:

selecting, by a computer-implemented efficiency analyzer, from an intermediate representation of a dataflow program, a set of operators of the dataflow program, the set of operators included in a first mapping of the set of operators to first hardware to execute the set of operators, the first mapping included in the intermediate representation, the first hardware included in a first computing system for executing the dataflow program;

computing, by the efficiency analyzer, based on a hardware description and the first mapping, a first predicted execution metric associated with executing the set of operators on the first hardware, the hardware description corresponding to hardware included in the first computing system;

determining, by the efficiency analyzer, based on the first predicted execution metric, a first inefficiency metric associated with the executing the set of operators on the first hardware;

determining, by the efficiency analyzer, based on the hardware description and the first inefficiency metric, a first inefficiency associated with the dataflow program; and,

outputting, by the efficiency analyzer, first inefficiency results comprising the first inefficiency.

2. The method of claim 1 , further comprising using, by a compiler, the first inefficiency results to compile the dataflow program to execute on the first computing system.

3. The method of claim 1 , wherein the first computing system comprises a coarse-grain reconfigurable computing system.

4. The method of claim 1 , wherein the method further comprises:

determining, by the efficiency analyzer, that the set of operators comprises a nested meta- pipe;

selecting, by the efficiency analyzer, from the intermediate representation, a second mapping comprising a mapping of the nested meta-pipe to second hardware to execute operators of the nested meta-pipe, the second hardware included in the first computing system;

computing, by the efficiency analyzer, based on the hardware description and the second mapping, a second predicted execution metric associated with executing the operators of the nested meta-pipe on the second hardware;

determining, by the efficiency analyzer, based on the second predicted execution metric, a second inefficiency metric associated with the executing the operators of the nested meta-pipe on the second hardware;

determining, by the efficiency analyzer, based on the hardware description and the second inefficiency metric, a second inefficiency associated with the dataflow program; and,

outputting, by the efficiency analyzer, second inefficiency results comprising the second inefficiency.

5. The method of claim 1 , wherein the first predicted execution metric comprises a predicted execution latency to execute an operator among the set of operators on the first hardware; and,

wherein the efficiency analyzer determining the first inefficiency metric comprises:

computing, by the efficiency analyzer, a theoretical minimum execution latency to execute the operator; and,

determining, by the efficiency analyzer, the first inefficiency metric based on a difference between the predicted execution latency and the theoretical minimum execution latency.

6. The method of claim 1 , wherein the method of the outputting, by the efficiency analyzer, the first inefficiency results comprises:

determining, by the efficiency analyzer, an inefficiency category associated with the first inefficiency; and,

outputting, by the efficiency analyzer, among the first inefficiency results, the inefficiency category.

7. The method of claim 1 , wherein the method of the outputting, by the efficiency analyzer, the first inefficiency results further comprises outputting, by the efficiency analyzer, the first inefficiency results to a component of a second computing system, the component selected from the group consisting of an application programming interface of a compiler; an application programming interface of the second computing system; a memory of the second computing system; a storage device of the second computing system; and, an analysis assistant program of the second computing system.

8. The method of claim 1 , wherein the first predicted execution metric is selected from the group consisting of a number of processors of the first computing system to execute the first mapping; a number of parallel computations to execute the first mapping; a latency of a first processor of the first computing system to execute the first mapping; a utilization of a second processor of the first computing system to execute the first mapping; a number of stage buffers of the first computing system required to execute the first mapping; an amount of a first memory of the first computing system required to execute the first mapping; a size of a second memory of the first computing system to execute the first mapping; a memory transfer latency of the first computing system to execute the first mapping; a utilization of a third memory of the first computing system to execute the first mapping; a utilization of a particular type of memory of the first computing system to execute the first mapping; and, a utilization of a particular memory of the first computing system to execute the first mapping.

9. The method of claim 1 , wherein an inefficiency metric included in the first inefficiency metric is selected from the group consisting of initialization of an operator, included in the set of operators, to execute on the first computing system; initialization of a first hardware pipeline of the first computing system to execute the operator; termination of a second hardware pipeline of the first computing system to execute the operator;

completing remaining computations of the operator by a processor of the first computing system; an inefficiency in a low level program for executing the operator on the first computing system; an inefficiency in a sequence of low level programs for executing the first mapping on the first computing system; and, a difference between an actual execution latency for executing the first mapping on the first computing system and a theoretical minimum execution latency for executing the first mapping on the first computing system.

10. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the program instructions are executable by at least one processor to cause the at least one processor to:

select, from an intermediate representation of a dataflow program, a set of operators of the dataflow program, the set of operators included in a first mapping of the set of operators to first hardware to execute the set of operators, the first mapping included in the intermediate representation, the first hardware included in a first computing system for executing the dataflow program;

compute, based on a hardware description and the first mapping, first predicted execution metric associated with executing the set of operators on the first hardware, the hardware description corresponding to hardware included in the first computing system;

determine, based on the first predicted execution metric, first inefficiency metric associated with the executing the set of operators on the first hardware;

determine, based on the hardware description and the first inefficiency metric, a first inefficiency associated with the dataflow program; and,

output first inefficiency results comprising the first inefficiency.

11. The computer program product of claim 10 , wherein the program instructions are executable by the at least one processor to further cause the at least one processor to:

determine that the set of operators comprises a nested meta-pipe;

select, from the intermediate representation, a second mapping comprising a mapping of the nested meta-pipe to second hardware to execute operators of the nested meta-pipe, the second hardware included in the first computing system;

compute, based on the hardware description and the second mapping, a second predicted execution metric associated with executing the operators of the nested meta-pipe on the second hardware;

determine, based on the second predicted execution metric, a second inefficiency metric associated with the executing the operators of the nested meta-pipe on the second hardware;

determine, based on the hardware description and the second inefficiency metric, a second inefficiency associated with the dataflow program; and,

output second inefficiency results comprising the second inefficiency.

12. A first computing system, the first computing system comprising:

at least one processor included in the first computing system;

an intermediate representation of a dataflow program;

a hardware description corresponding to hardware included in a second computing system, the second computing system configurable to execute the dataflow program; and,

an efficiency analyzer configured to execute on the at least one processor to:

select, from the intermediate representation, a set of operators of the dataflow program, the set of operators included in a first mapping of the set of operators to first hardware to execute the set of operators, the first mapping included in the intermediate representation, the first hardware among the hardware included in the second computing system;

compute, based on the hardware description and the first mapping, a first predicted execution metric associated with executing the set of operators on the first hardware;

determine, based on the first predicted execution metric, a first inefficiency metric associated with the executing the set of operators on the first hardware;

determine, based on the hardware description and the first inefficiency metric, a first inefficiency associated with the dataflow program; and,

output first inefficiency results comprising the first inefficiency.

13. The first computing system of claim 12 , wherein the efficiency analyzer is further configured to execute on the at least one processor to:

determine that the set of operators comprises a nested meta-pipe;

select, from the intermediate representation, a second mapping comprising a mapping of the nested meta-pipe to second hardware to execute operators of the nested meta-pipe, the second hardware included in the first computing system;

compute, based on the hardware description and the second mapping, a second predicted execution metric associated with executing the operators of the nested meta-pipe on the second hardware;

determine, based on the second predicted execution metric, a second inefficiency metric associated with the executing the operators of the nested meta-pipe on the second hardware;

determine, based on the hardware description and the second inefficiency metric, a second inefficiency associated with the dataflow program; and,

output second inefficiency results comprising the second inefficiency.

14. The first computing system of claim 12 , wherein the first predicted execution metric comprises a predicted execution latency to execute an operator among the set of operators on the first hardware; and,

wherein the efficiency analyzer configured to execute on the at least one processor to determine the first inefficiency metric comprises the efficiency analyzer further configured to execute on the at least one processor to:

compute a theoretical minimum execution latency to execute the operator; and,

determine the first inefficiency metric based on a difference between the predicted execution latency and the theoretical minimum execution latency.

15. The first computing system of claim 12 , wherein the efficiency analyzer is further configured to execute on the at least one processor to:

determine an inefficiency category associated with the first inefficiency; and,

output, among the first inefficiency results, the inefficiency category.

16. The first computing system of claim 12 , wherein the efficiency analyzer configured to execute on the at least one processor to output the first inefficiency results comprises the efficiency analyzer further configured to execute on the at least one processor to output the first inefficiency results to a component of a third computing system, the component selected from the group consisting of an application programming interface of a compiler; an application programming interface of the third computing system; a memory of the third computing system; a storage device of the third computing system; and, an analysis assistant program of the third computing system.

17. The first computing system of claim 12 , wherein the first predicted execution metric is selected from the group consisting of a number of processors of the second computing system to execute the first mapping; a number of parallel computations to execute the first mapping; a latency of a first processor of the second computing system to execute the first mapping; a utilization of a second processor of the second computing system to execute the first mapping; a number of stage buffers of the second computing system required to execute the first mapping; an amount of a first memory of the second computing system required to execute the first mapping; a size of a second memory of the second computing system to execute the first mapping; a memory transfer latency of the second computing system to execute the first mapping; a utilization of a third memory of the second computing system to execute the first mapping; a utilization of a particular type of memory of the second computing system to execute the first mapping; and, a utilization of a particular memory of the second computing system to execute the first mapping.

18. The first computing system of claim 12 , wherein the first inefficiency metric is selected from the group consisting of initialization of an operator, included in the set of operators, to execute on the second computing system; initialization of a first hardware pipeline of the second computing system to execute the operator; termination of a second hardware pipeline of the second computing system to execute the operator; completing remaining computations of the operator by a processor of the second computing system; an inefficiency in a low level program for executing the operator on the second computing system; an inefficiency in a sequence of low level programs for executing the first mapping on the second computing system; and, a difference between an actual execution latency for executing the first mapping on the second computing system and a theoretical minimum execution latency for executing the first mapping on the second computing system.

19. The first computing system of claim 12 , wherein the efficiency analyzer is associated with a compiler for compiling the dataflow program to execute on the second computing system.

20. The first computing system of claim 12 , wherein the second computing system comprises a coarse-grain reconfigurable computing system.

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 Nov 8, 2023
From: RISTER, BLAINE BURTON; LI, QINGJIAN; YANG, BOWEN; WANG, JUNJUE; LIU, CHEN; CHEN, ZHUO; SUJEETH, ARVIND KRISHNA; JAIRATH, SUMTI
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 065494/0674 →
Continuity (9)
Continuation 18129718 · Mar 31, 2023
Provisional Application 63331696 · Apr 15, 2022
Provisional Application 63331116 · Apr 14, 2022
Provisional Application 63330740 · Apr 13, 2022
Provisional Application 63330730 · Apr 13, 2022
Provisional Application 63327313 · Apr 4, 2022
Provisional Application 63326762 · Apr 1, 2022
Provisional Application 63326206 · Mar 31, 2022
Related Publication 20240069880A1 · Feb 29, 2024
References Cited (36)
US 8146040B1 · Janneck · 2012 [cited by examiner]
US 10768979B2 · Williams · 2020 [cited by applicant]
US 11080227B2 · Koeplinger et al. · 2021 [cited by applicant]
US 11163546B2 · Rong · 2021 [cited by applicant]
US 11182221B1 · Sivaramakrishnan et al. · 2021 [cited by applicant]
US 11195080B1 · Nama et al. · 2021 [cited by applicant]
US 11227207B1 · Nama et al. · 2022 [cited by applicant]
US 11410027B2 · Chen et al. · 2022 [cited by applicant]
US 11500871B1 · Kulkarni · 2022 [cited by examiner]
US 11521062B2 · Janssen et al. · 2022 [cited by applicant]
US 11567735B1 · Kulkarni · 2023 [cited by examiner]
US 20190146763A1 · Gould · 2019 [cited by examiner]
US 20190228037A1 · Nicol et al. · 2019 [cited by applicant]
US 20200133859A1 · Gottin · 2020 [cited by examiner]
US 20210049465A1 · Bogdan et al. · 2021 [cited by applicant]
US 20210365248A1 · ChoFleming, Jr. et al. · 2021 [cited by applicant]
US 20220012028A1 · Yount et al. · 2022 [cited by applicant]
WO 2010142987A1 · 2010 [cited by applicant]
Koeplinger et al., Spatial: A Language and Compiler for Application Accelerators, PLDI '18, Jun. 18-22, 2018, Association for Computng Machinery, 16 pages. [cited by applicant]
List of related cases—SBNV1114USC01, 2 pages, Date: Jun. 6, 2024 QN. [cited by applicant]
M. Emani et al., Accelerating Scientific Applications With Sambanova Reconfigurable Dataflow Architecture, in Computing in Science & Engineering, vol. 23, No. 2, pp. 114-119, Mar. 26, 2021, [doi: 10.1109/MCSE.2021.30572… [cited by applicant]
Podobas et al, A Survey on Coarse-Grained Reconfigurable Architectures From a Performance Perspective, IEEEAccess, vol. 2020.3012084, Jul. 27, 2020, 25 pages. [cited by applicant]
Prabhakar et al., Plasticine: A Reconfigurable Architecture for Parallel Patterns, ISCA, Jun. 24-28, 2017, 14 pages. [cited by applicant]
U.S. Appl. No. 16/239,252 Final Office Action, dated Jan. 8, 2020, 13 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Notice of Allowance dated Feb. 12, 2020, 10 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Notice of Allowance dated May 14, 2020, 15 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Office Action dated Aug. 7, 2019, 8 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Response to Final Office Action dated Jan. 8, 2020, filed Jan. 24, 2020, 14 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Response to Office Action dated Aug. 7, 2019, filed Sep. 26, 2019, 6 pages. [cited by applicant]
U.S. Appl. No. 17/216,651 Non-Final Rejection, dated Jul. 13, 2021, 12 pages. [cited by applicant]
U.S. Appl. No. 17/216,651 Notice of Allowance, dated Aug. 5, 2021, 14 pages. [cited by applicant]
U.S. Appl. No. 17/216,651 Response to First Office Action, dated Jul. 13, 2021, filed Jul. 23, 2021, 14 pages. [cited by applicant]
U.S. Appl. No. 17/216,652 Non-Final Rejection, dated Aug. 2, 2021, 24 pages. [cited by applicant]
Bosilca, George, et al. “The Template Task Graph (TTG)—an emerging practical dataflow programming paradigm for scientific simulation at extreme scale.” 2020 IEEE/ACM Fifth International Workshop on Extreme Scale Program… [cited by applicant]
Chien, Steven WO, et al. “TensorFlow doing HPC.” 2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW). IEEE, 2019. pp. 509-518. (Year: 2019). [cited by applicant]
Kirisame, Marisa, et al. “Dynamic tensor rematerialization.” arXiv preprint arXiv:2006.09616 (2020). pp. 1-31. (Year: 2020). [cited by applicant]