Registered Extension Number

508

Revision

1

Ratification Status

Not ratified

Extension and Version Dependencies

API Interactions

  • Interacts with VK_ARM_tensors

SPIR-V Dependencies

Contact

Other Extension Metadata

Last Modified Date

2025-06-18

Interactions and External Dependencies
IP Status

No known IP claims.

Contributors
  • Kévin Petit, Arm Ltd.

  • Emma Ben Yossef, Arm Ltd.

  • Stefano Bucciarelli, Arm Ltd.

  • Marco Cattani, Arm Ltd.

  • Aaron DeBattista, Arm Ltd.

  • Jan-Harald Fredriksen, Arm Ltd.

  • Einar Hov, Arm Ltd.

  • Robert Hughes, Arm Ltd.

  • Oualid Khelifi, Arm Ltd.

  • Derek Lamberti, Arm Ltd.

  • Chetan Mistry, Arm Ltd.

  • Georgios Teneketzis, Arm Ltd.

Description

This extension adds support for a new type of pipeline, data graph pipelines, that provide an encapsulation construct for computational graphs operating on full resources (e.g. ML/AI graphs, image processing pipelines, etc). This extension only supports tensor resources and does not define any operations that can be used within those graphs. These operations will be defined by separate extensions.

New Object Types

New Commands

New Structures

New Enums

New Bitmasks

New Enum Constants

  • VK_ARM_DATA_GRAPH_EXTENSION_NAME

  • VK_ARM_DATA_GRAPH_SPEC_VERSION

  • VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM

  • Extending VkAccessFlagBits2:

    • VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM

    • VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM

  • Extending VkBufferUsageFlagBits2:

    • VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM

  • Extending VkFormatFeatureFlagBits2:

    • VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM

  • Extending VkObjectType:

    • VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM

  • Extending VkPipelineBindPoint:

    • VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM

  • Extending VkPipelineStageFlagBits2:

    • VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM

  • Extending VkQueueFlagBits:

    • VK_QUEUE_DATA_GRAPH_BIT_ARM

  • Extending VkStructureType:

    • VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM

    • VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM

    • VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM

    • VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM

    • VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM

  • Extending VkTensorUsageFlagBitsARM:

    • VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM

If VK_ARM_tensors is supported:

  • Extending VkStructureType:

    • VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM

New SPIR-V Capabilities

Issues

1) Should graph pipeline resource info structures be integrated into pipeline layouts? Would a new graph pipeline layout be a better fit?

RESOLVED: Graph pipeline resource info are passed separately at pipeline creation time.

2) Do we need a new shader stage for graph pipelines for use in creating descriptor set layouts?

RESOLVED: Currently using VK_SHADER_STAGE_ALL.

3) Should this extension provide applications with a way of knowing which combinations of sparsity information implementations can take advantage of when processing graph constants?

RESOLVED: No. Describing the exact combinations is in some cases complex and it is always valid for implementations to ignore the sparsity information and treat the data as dense. Specific implementations can provide guidance to application writers if they so desire and applications are encouraged to always provide sparsity information that they have.

Version History

  • Revision 1, 2025-06-18 (Kévin Petit)

    • Initial revision

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0