IP Library Granted Patent US 12,411,670
Granted Patent B2
US 12,411,670 · App. 18/387,912 · Granted Sep 9, 2025

Analysis assistant for determining 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,411,670
App. No.
18/387,912
Granted
Sep 9, 2025
Kind
B2
Abstract

In a method, in response to an interface a computer-implemented analysis assistant initiates a presentation of inefficiency results, determined an efficiency analyzer based on a mapping of a dataflow program to execute on hardware of a computing system. The assistant receives an inefficiency included among the inefficiency results and composes formatted inefficiency results comprising a presentation format of the inefficiency to assist a developer of the dataflow program to interpret the inefficiency. The analysis assistant outputs the formatted inefficiency results to an interface, which can comprise an interface to output the formatted inefficiency results for use by the developer to improve the dataflow program in association with the inefficiency. In implementations the presentation can comprise an interactive presentation with a developer of the dataflow program. A computer program product and a computing system can implement the method. The computing system can execute the assistant, and can include the interfaces.

Claims (47)

1. A method, the method comprising:

initiating, by a computer-implemented analysis assistant, responsive to an interface of a first computing system, a presentation session comprising a presentation of inefficiency results associated with a mapping of a set of operators of a dataflow program to execute the set of operators on hardware of a second computing system, the analysis assistant included in the first computing system;

receiving, by the analysis assistant, an inefficiency included among the inefficiency results;

composing by the analysis assistant, formatted inefficiency results comprising the inefficiency having a presentation format to assist a developer of the dataflow program to interpret the inefficiency; and,

outputting, by the analysis assistant, to an interface of a third computing system, the formatted inefficiency results, the interface of the third computing system comprising at least a portion to output the formatted inefficiency results for use by the developer to improve the dataflow program in association with the inefficiency.

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

determining, by the analysis assistant, a suggestion to modify the dataflow program to improve the inefficiency; and,

outputting, by the analysis assistant, using a second output interface of the third computing system, the suggestion.

3. The method of claim 2 , wherein the suggestion to modify the dataflow program to improve the inefficiency comprises one of a suggestion to modify the dataflow program to reduce the inefficiency and a suggestion to modify the dataflow program to remove the inefficiency.

4. The method of claim 1 , wherein the presentation session comprises an interactive presentation of the formatted inefficiency results.

5. The method of claim 4 , wherein the interactive presentation is included in an interaction of a compiler with a developer to program the dataflow program.

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

7. The method of claim 1 , wherein the hardware of the second computing system comprises at least one reconfigurable processor;

wherein the mapping comprises executing an operator, among the set of operators, on a processor among the at least one reconfigurable processor; and

wherein the inefficiency results are further associated with the executing the operator on the processor among the at least one reconfigurable processor.

8. The method of claim 1 , wherein at least one of the interface of the first computing system and the interface of the third computing system comprises an interface of a compiler for compiling the dataflow program.

9. The method of claim 1 , wherein the presentation format is selected from the group consisting of a tabular format; a graphical format; a pie chart; a bar chart; a latency waterfall chart; and, a combination of a bar chart and a latency waterfall chart.

10. The method of claim 1 , wherein the inefficiency is included among an inefficiency category selected from the group consisting of an inefficiency in an operator program to execute an operator of the dataflow program; a pipeline imbalance; a memory stall; a transient effect; an unused hardware component of the second computing system; and, an underutilized hardware component of the second computing system.

11. 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:

initiate, responsive to an interface of a first computing system, a presentation session comprising a presentation of inefficiency results associated with a mapping of a set of operators of a dataflow program to execute the set of operators on hardware of a second computing system;

receive an inefficiency included among the inefficiency results;

compose formatted inefficiency results comprising the inefficiency having a presentation format to assist a developer of the dataflow program to interpret the inefficiency; and,

output, to an interface of a third computing system, the formatted inefficiency results, the interface of the third computing system comprising at least a portion an interface to output the formatted inefficiency results for use by the developer to improve the dataflow program in association with the inefficiency.

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

determine, based on the inefficiency, a suggestion to modify the dataflow program to improve the inefficiency; and,

output, using a second output interface of the third computing system, the suggestion.

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

a first processor;

a second computing system comprising a second processor;

an efficiency analyzer configured to execute on the second processor to determine inefficiency results associated with executing a dataflow program on a third computing system; and,

an analysis assistant configured to execute on the first processor to:

initiate, responsive to an interface of the first computing system, a presentation session comprising a presentation of the inefficiency results;

receive the inefficiency results;

select, from among the inefficiency results, an inefficiency;

compose formatted inefficiency results comprising the inefficiency having a presentation format to assist a developer of the dataflow program to interpret the inefficiency; and,

output, to an interface of a fourth computing system, the formatted inefficiency results, the interface of the fourth computing system comprising at least a portion to output the formatted inefficiency results for use by the developer to improve the dataflow program in association with the inefficiency.

14. The first computing system of claim 13 , wherein the analysis assistant is configured to execute on the first processor to further:

determine a suggestion to modify the dataflow program to improve the inefficiency; and,

output, using a second output interface of the fourth computing system, the suggestion.

15. The first computing system of claim 13 , wherein the analysis assistant configured to execute on the first processor to initiate, responsive to an interface of the first computing system,

the presentation session comprises the analysis assistant configured to execute on the first processor to further initiate the presentation session to comprise an interactive presentation of the formatted inefficiency results.

16. The first computing system of claim 15 , wherein the interactive presentation is included in an interaction of a compiler with a developer to program the dataflow program.

17. The first computing system of claim 13 , wherein the presentation format is selected from the group consisting of a tabular format; a graphical format; a pie chart; a bar chart; a latency waterfall chart; and, a combination of a bar chart and a latency waterfall chart.

18. The first computing system of claim 13 , wherein the third computing system comprises at least one reconfigurable processor; and,

wherein the inefficiency results associated with the executing the dataflow program on the third computing system comprise inefficiency results associated with the executing an operator of the dataflow program on a processor among the at least one reconfigurable processor.

19. The first computing system of claim 13 , wherein at least one of the interface of the first computing system and the interface of the third computing system comprises an interface of a compiler for compiling the dataflow program.

20. The first computing system of claim 13 , wherein the inefficiency is included among an inefficiency category selected from the group consisting of an inefficiency in an operator program to execute an operator of the dataflow program; a pipeline imbalance; a memory stall; a transient effect; an unused hardware component of the second computing system; and, an underutilized hardware component of the second 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/0959 →
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 20240078098A1 · Mar 7, 2024
References Cited (25)
US 11080227B2 · Koeplinger 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 20140237459A1 · Von Platen · 2014 [cited by examiner]
US 20190042217A1 · Glossop · 2019 [cited by examiner]
US 20210365248A1 · ChoFleming, Jr. · 2021 [cited by examiner]
US 20220012028A1 · Yount · 2022 [cited by examiner]
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, Jun. 6, 2024, 2 pages. [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]