Commit logic and precise exceptions in explicit dataflow graph execution architectures
US-2020089503-A1 · Mar 19, 2020 · US
US11836518B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11836518-B2 |
| Application number | US-202117548463-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 10, 2021 |
| Priority date | Dec 17, 2020 |
| Publication date | Dec 5, 2023 |
| Grant date | Dec 5, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
Convolutional networks [CNN, ConvNet] · CPC title
by interrupt, e.g. masked · CPC title
Machine learning · CPC title
using electronic means · CPC title
Dependency analysis; Data or control flow analysis · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.