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

vkCreateDataGraphPipelinesARMCreate data graph pipeline objects
VkDataGraphPipelineCreateInfoARMStructure specifying parameters of a newly created data graph pipeline
VkDataGraphPipelineShaderModuleCreateInfoARMStructure specifying shader module parameters of a newly created data graph pipeline
VkDataGraphPipelineIdentifierCreateInfoARMStructure specifying an identifier for the newly created data graph pipeline
VkDataGraphPipelineBuiltinModelCreateInfoQCOMStructure specifying a built-in model for the newly created data graph pipeline
VkDataGraphPipelineCompilerControlCreateInfoARMStructure specifying compiler control parameters of a newly created data graph pipeline
VkDataGraphPipelineConstantARMStructure specifying parameters of a data graph pipeline constant
VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARMStructure specifying semi-structured sparsity parameters of a tensor data graph pipeline constant
VkDataGraphPipelineResourceInfoARMStructure specifying parameters of a data graph pipeline resource

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).

VkDataGraphPipelineSessionARMOpaque handle to a data graph pipeline session object
vkCreateDataGraphPipelineSessionARMCreate a data graph pipeline session
VkDataGraphPipelineSessionCreateInfoARMStructure specifying parameters of a newly created data graph pipeline session
VkDataGraphPipelineSessionCreateFlagBitsARMBitmask specifying additional parameters of a data graph pipeline session
VkDataGraphPipelineSessionCreateFlagsARMBitmask of VkDataGraphPipelineSessionCreateFlagBitsARM
vkGetDataGraphPipelineSessionBindPointRequirementsARMGet the bind point requirements of a data graph pipeline session
VkDataGraphPipelineSessionBindPointRequirementsInfoARMStructure specifying info to query the bind point requirements of a data graph pipeline session
VkDataGraphPipelineSessionBindPointRequirementARMStructure specifying the requirements of a bind point of a data graph pipeline session
VkDataGraphPipelineSessionBindPointARMEnumeration describing the bind points of a data graph pipeline session
VkDataGraphPipelineSessionBindPointTypeARMEnumeration describing the type of bind points of a data graph pipeline session
vkGetDataGraphPipelineSessionMemoryRequirementsARMGet the memory requirements of a data graph pipeline session
VkDataGraphPipelineSessionMemoryRequirementsInfoARMStructure specifying parameters to query the memory requirements of a data graph pipeline session
vkBindDataGraphPipelineSessionMemoryARMBind device memory to a data graph pipeline session object
VkBindDataGraphPipelineSessionMemoryInfoARMStructure describing how to bind a data graph pipeline session to memory
vkDestroyDataGraphPipelineSessionARMDestroy a data graph pipeline session object

Dispatch

vkCmdDispatchDataGraphARMDispatch a data graph pipeline within a session
VkDataGraphPipelineDispatchInfoARMStructure specifying parameters of a data graph pipeline dispatch
VkDataGraphPipelineDispatchFlagBitsARMBitmask specifying additional parameters of a data graph pipeline dispatch
VkDataGraphPipelineDispatchFlagsARMBitmask of VkDataGraphPipelineDispatchFlagBitsARM

Properties

vkGetDataGraphPipelineAvailablePropertiesARMQuery available properties of a data graph pipeline
vkGetDataGraphPipelinePropertiesARMQuery properties of a data graph pipeline
VkDataGraphPipelineInfoARMStructure describing a data graph pipeline
VkDataGraphPipelinePropertyQueryResultARMStructure describing a data graph pipeline property query or result
VkDataGraphPipelinePropertyARMEnumeration describing the properties of a data graph pipeline that can be queried

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.

vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARMQuery the properties of a data graph processing engine for a specific queue family of a physical device
VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARMStructure specifying a data graph processing engine type and queue family to query
VkQueueFamilyDataGraphProcessingEnginePropertiesARMStructure describing the properties of a data graph processing engine type for a given queue family
VkPhysicalDeviceDataGraphProcessingEngineARMStructure describing a data graph processing engine supported by a physical device
VkPhysicalDeviceDataGraphProcessingEngineTypeARMEnumeration describing data graph processing engines
VkDataGraphProcessingEngineCreateInfoARMStructure describing a collection of data graph processing engines for which the object being created is specialized

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.

vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARMQuery the data processing engines and the operations they support for a given queue family of a physical device
VkQueueFamilyDataGraphPropertiesARMStructure describing a data graph processing engine and operation it supports
VkPhysicalDeviceDataGraphOperationSupportARMStructure describing an operation or set of operations supported by a data graph processing engine
VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARMLength of a data graph operation name string
VkPhysicalDeviceDataGraphOperationTypeARMEnumeration describing data graph operations