Data graphs
Data graph pipelines encapsulate computational graphs that operate on whole resources (e.g. tensors). The graph operations that form these computational graphs are executed by graph processing engines.
Pipeline Creation
Sessions
Graph pipelines execute within data graph pipeline sessions that provide a context for their execution as well as binding points for the memory they need (e.g. transient storage).
Dispatch
Properties
Processing Engines
Data graph pipelines execute on one or more data graph processing engines.
Each queue family of a VkPhysicalDevice that supports
VK_QUEUE_DATA_GRAPH_BIT_ARM may provide access to processing engines.
Processing engines may be foreign.
Foreign processing engines require the use of external memory and semaphores
to exchange data and synchronize with data graph pipelines that target them.
Each processing engine may support a selection of graph
operations.
There exists a default processing engine that enables implementations to
support some operations without tying support to specific processing
engines.
This allows implementations to avoid being specific about the processing
engines that they use internally or to remove the necessity for applications
to choose the specific processing engine used to execute a given set of
operations.
Operations
Data graph processing engines execute data graph operations. Operations may be of a fixed-function nature, configurable or not, or may , for example, be provided as part of a SPIR-V extended instruction set.