Modular system for processing pipelines
AssigneeBoard of Trustees of Michigan State University
InventorsDaniel KENT, Dominic MAZZA, Hayder RADHA
Life of this patent
Estimating the term…
Abstract
A system for constructing and testing processing pipelines is disclosed. In some examples, the system includes a node database comprising a plurality of nodes, an application programming interface (API) operable with the node database to present a processing pipeline comprising a plurality of nodes selected from the node database, and a runtime engine configured to direct an operating system to instantiate the processing pipeline according to an optimization strategy.
Claims20
A system for constructing and testing processing pipelines, comprising:
- a node database including a plurality of nodes having inputs and outputs defined according to respective input and output tensors, wherein each node of the plurality of nodes executes routines in furtherance of a related task associated with at least one of a data source, a data sink, and an algorithm;
- a network application programming interface (API) configured to identify a plurality of selected nodes of the plurality of nodes to be arranged into a processing pipeline based on corresponding user inputs to a user interface (UI);
- an operating system coupled with a central processing unit (CPU) having a CPU memory and a plurality of accelerator processing units (APUs) each having an APU memory;
- and
- a runtime engine executable with the operating system to direct instantiation of the processing pipeline according to an optimization strategy, wherein the runtime engine, prior to instantiating the processing pipeline, is configured to perform a conformance check of the processing pipeline and generate the optimization strategy to structure the processing pipeline as an acyclic graph that maximizes use of the APU memory relative to batch sizing of the input and output tensors of the plurality of selected nodes.
A method for constructing and testing processing pipelines, comprising:
- identifying a plurality of selected nodes selected from a plurality of nodes stored in a node database based on corresponding user inputs to a node selection menu presented through a user interface (UI) accessible via a network application programming interface (API), wherein each node of the plurality of nodes includes inputs and outputs defined according to respective input and output tensors and executes routines in furtherance of a related task associated with at least one of a data source, a data sink, and an algorithm;
- generating a processing pipeline for the plurality of selected nodes according to a node arrangement of the plurality of selected nodes within an interactive pipeline interface of the node selection menu, wherein the node arrangement is determined according to corresponding user inputs to the node selection menu and includes connection lines between the inputs and outputs of the plurality of selected nodes to represent edges and dependent processing pathways between adjoining nodes of the processing pipeline;
- and
- directing an operating system comprising a central processing unit (CPU) having a CPU memory and a plurality of accelerator processing units (APUs) each having an APU memory to instantiate the processing pipeline according to an optimization strategy, including, prior to instantiating the processing pipeline, performing a conformance check of the processing pipeline and generating the optimization strategy to structure the processing pipeline as an acyclic graph that maximizes use of the APU memory relative to batch sizing of the input and output tensors of the plurality of selected nodes.
A system for constructing and testing processing pipelines, comprising:
- a node database comprising a plurality of nodes, wherein each node of the plurality of nodes includes inputs and outputs defined according to respective input and output tensors and is configured to execute routines in furtherance of a related task;
- a node selection menu configured to present an interactive pipeline interface through a user interface (UI) accessible via a network application programming interface (API), wherein the interactive pipeline interface is configured to present a processing pipeline comprising a plurality of selected nodes in response to corresponding user inputs indicating selection of the plurality of selected nodes from the plurality of nodes in the node database, wherein the processing pipeline includes connection lines between the inputs and outputs of the plurality of selected nodes to represent edges and dependent processing pathways between adjoining nodes in the processing pipeline;
- and
- a runtime engine configured to direct an operating system to instantiate the processing pipeline according to an optimization strategy, wherein the operating system includes a central processing unit (CPU) having a CPU memory and a plurality of accelerator processing units (APUs) each having an APU memory and the optimization strategy structures the processing pipeline as an acyclic graph that maximizes use of the APU memory relative to batch sizing of the input and output tensors of the plurality of selected nodes.
Dependencies are inferred from the claim text.