Processor graph execution using interrupt conservation

US11836518B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11836518-B2
Application numberUS-202117548463-A
CountryUS
Kind codeB2
Filing dateDec 10, 2021
Priority dateDec 17, 2020
Publication dateDec 5, 2023
Grant dateDec 5, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for data manipulation using processor graph execution using interrupt conservation are disclosed. Processing elements are configured to implement a data flow graph. The processing elements comprise a multilayer graph execution engine. A data engine is loaded with computational parameters for the multilayer graph execution engine. The data engine is coupled to the multilayer graph execution engine, and the computational parameters supply layer-by-layer execution data to the multilayer graph execution engine for data flow graph execution. A first command FIFO is used for loading the data engine with computational parameters, and a second command FIFO is used for loading the multilayer graph execution engine with layer definition data. An input image is provided for a first layer of the multilayer graph execution engine. The data flow graph is executed using the input image and the computational parameters. The executing is controlled by interrupts only when an uncertainty exists within the data flow graph.

First claim

Opening claim text (preview).

What is claimed is: 1. A processor-implemented method for data manipulation comprising: configuring a plurality of processing elements to implement a data flow graph, wherein the processing elements comprise a multilayer graph execution engine; loading a data engine with computational parameters for the multilayer graph execution engine using one or more first command FIFO registers, wherein an order of commands in the one or more first command FIFO registers corresponds to an order of flow in the data flow, and wherein the data engine is coupled to the multilayer graph execution engine, and wherein the computational parameters supply layer-by-layer execution data to the multilayer graph execution engine for data flow graph execution; providing an input image for a first layer of the multilayer graph execution engine; and executing the data flow graph using the input image and the computational parameters, wherein the executing is controlled by interrupts only when an uncertainty exists as to whether the order of commands in the one or more FIFO registers corresponds to the order of flow in the data flow graph. 2. The method of claim 1 further comprising loading the multilayer graph execution engine with layer definition data using a second command FIFO. 3. The method of claim 2 wherein the second command FIFO enables an interrupt generation control bit. 4. The method of claim 3 wherein the interrupt generation control bit is set based on graph topology of the data flow graph implemented on the multilayer graph execution engine. 5. The method of claim 2 wherein an order of commands in the first command FIFO and the second command FIFO determines execution order in the multilayer graph execution engine. 6. The method of claim 1 wherein the executing the data flow graph is controlled by an interrupt generated by completion of the providing an input image. 7. The method of claim 1 wherein the executing the data flow graph is controlled by an interrupt generated by completion of both the providing an input image for the first layer and loading the first layer with corresponding first layer computational parameters. 8. The method of claim 1 wherein the uncertainty results from starting graph execution before all data is loaded into the graph execution engine. 9. The method of claim 1 wherein the uncertainty results from a lack of explicit dependency notification. 10. The method of claim 9 wherein the lack of explicit dependency notification is caused by an overlap of loading and execution of the graph execution engine. 11. The method of claim 9 wherein the lack of explicit dependency notification is caused by non-determinism of loads from memory. 12. The method of claim 1 wherein the data engine is coupled to the multilayer graph execution engine using a high-speed buffer. 13. The method of claim 1 wherein the loading the data engine is performed on a per layer basis for each layer of the multilayer graph execution engine. 14. The method of claim 1 wherein one or more layers of the multilayer graph execution engine are configured to perform a matrix multiplication operation. 15. The method of claim 14 wherein the matrix multiplication operation enables neural network functionality. 16. The method of claim 14 wherein the matrix multiplication operation is part of a convolutional neural network layer. 17. The method of claim 1 wherein the computational parameters for loading the data engine are determined by a processor distinct from the processing elements. 18. The method of claim 1 wherein the processing elements are part of a reconfigurable fabric. 19. The method of claim 1 wherein each processing element is controlled by one or more circular buffers. 20. The method of claim 19 wherein the one or more circular buffers are statically scheduled. 21. The method of claim 1 wherein the data flow graph implements machine learning. 22. A computer program product embodied in a non-transitory computer readable medium for data manipulation, the computer program product comprising code which causes one or more processors to perform operations of: configuring a plurality of processing elements to implement a data flow graph, wherein the processing elements comprise a multilayer graph execution engine; loading a data engine with computational parameters for the multilayer graph execution engine using one or more first command FIFO registers, wherein an order of commands in the one or more first command FIFO registers corresponds to an order of flow in the data flow, and wherein the data engine is coupled to the multilayer graph execution engine, and wherein the computational parameters supply layer-by-layer execution data to the multilayer graph execution engine for data flow graph execution; providing an input image for a first layer of the multilayer graph execution engine; and executing the data flow graph using the input image and the computational parameters, wherein the executing is controlled by interrupts only when an uncertainty exists as to whether the order of commands in the one or more FIFO registers corresponds to the order of flow in the data flow graph. 23. A computer system for data manipulation comprising: a memory which stores instructions; one or more processors coupled to the memory wherein the one or more processors, when executing the instructions which are stored, are configured to: configure a plurality of processing elements to implement a data flow graph, wherein the processing elements comprise a multilayer graph execution engine; load a data engine with computational parameters for the multilayer graph execution engine using one or more first command FIFO registers, wherein an order of commands in the one or more first command FIFO registers corresponds to an order of flow in the data flow, and wherein the data engine is coupled to the multilayer graph execution engine, and wherein the computational parameters supply layer-by-layer execution data to the multilayer graph execution engine for data flow graph execution; provide an input image for a first layer of the multilayer graph execution engine; and execute the data flow graph using the input image and the computational parameters, wherein the executing is controlled by interrupts only when an uncertainty exists as to whether the order of commands in the one or more FIFO registers corresponds to the order of flow in the data flow graph.

Assignees

Inventors

Classifications

  • Convolutional networks [CNN, ConvNet] · CPC title

  • G06F9/4812Primary

    by interrupt, e.g. masked · CPC title

  • Machine learning · CPC title

  • G06N3/063Primary

    using electronic means · CPC title

  • Dependency analysis; Data or control flow analysis · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11836518B2 cover?
Techniques for data manipulation using processor graph execution using interrupt conservation are disclosed. Processing elements are configured to implement a data flow graph. The processing elements comprise a multilayer graph execution engine. A data engine is loaded with computational parameters for the multilayer graph execution engine. The data engine is coupled to the multilayer graph exe…
Who is the assignee on this patent?
Wave Computing Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/4812. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 05 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).