C Specification
The VkPhysicalDeviceTensorPropertiesARM structure is defined as:
// Provided by VK_ARM_tensors
typedef struct VkPhysicalDeviceTensorPropertiesARM {
    VkStructureType       sType;
    void*                 pNext;
    uint32_t              maxTensorDimensionCount;
    uint64_t              maxTensorElements;
    uint64_t              maxPerDimensionTensorElements;
    int64_t               maxTensorStride;
    uint64_t              maxTensorSize;
    uint32_t              maxTensorShaderAccessArrayLength;
    uint32_t              maxTensorShaderAccessSize;
    uint32_t              maxDescriptorSetStorageTensors;
    uint32_t              maxPerStageDescriptorSetStorageTensors;
    uint32_t              maxDescriptorSetUpdateAfterBindStorageTensors;
    uint32_t              maxPerStageDescriptorUpdateAfterBindStorageTensors;
    VkBool32              shaderStorageTensorArrayNonUniformIndexingNative;
    VkShaderStageFlags    shaderTensorSupportedStages;
} VkPhysicalDeviceTensorPropertiesARM;Members
- 
sTypeis a VkStructureType value identifying this structure.
- 
pNextisNULLor a pointer to a structure extending this structure.
- 
maxTensorDimensionCountis the maximum number of dimensions that can be specified in thedimensionCountmember of VkTensorDescriptionARM.
- 
maxTensorElementsis the maximum number of data elements in a created tensor as specified in the VkTensorDescriptionARM of VkTensorCreateInfoARM. The number of data elements in a tensor is computed as the product ofpDimensions[i] for all 0 ≤ i ≤ dimensionCount-1.
- 
maxPerDimensionTensorElementsis the maximum number of data elements alongside any dimension of a tensor.
- 
maxTensorStrideis the maximum value for a tensor stride that can be used in VkTensorDescriptionARM::pStrides.
- 
maxTensorShaderAccessArrayLengthis the maximum number of elements in an array returned byOpTensoReadARMor consumed byOpTensorWriteARM.
- 
maxTensorShaderAccessSizeis the maximum size in bytes of the data that can be read from a tensor withOpTensorReadARMor written to a tensor withOpTensorWriteARM.
- 
maxDescriptorSetStorageTensorsis the maximum number of tensors that can be included in descriptor bindings in a pipeline layout across all pipeline shader stages and descriptor set numbers. Descriptors with a type ofVK_DESCRIPTOR_TYPE_TENSOR_ARMcount against this limit.
- 
maxPerStageDescriptorSetStorageTensorsis the maximum number of tensors that can be accessible to a single shader stage in a pipeline layout. Descriptors with a type ofVK_DESCRIPTOR_TYPE_TENSOR_ARMcount against this limit. A descriptor is accessible to a pipeline shader stage when thestageFlagsmember of the VkDescriptorSetLayoutBinding structure has the bit for that shader stage set.
- 
maxDescriptorSetUpdateAfterBindStorageTensorsis similar tomaxDescriptorSetStorageTensorsbut counts descriptors from descriptor sets created with or without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BITbit set.
- 
maxPerStageDescriptorUpdateAfterBindStorageTensorsis similar tomaxPerStageDescriptorSetStorageTensorsbut counts descriptors from descriptor sets created with or without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BITbit set.
- 
shaderStorageTensorArrayNonUniformIndexingNativeis a boolean value indicating whether storage tensor descriptors natively support nonuniform indexing. If this isVK_FALSE, then a single dynamic instance of an instruction that nonuniformly indexes an array of storage buffers may execute multiple times in order to access all the descriptors.
- 
shaderTensorSupportedStagesis a bitfield of VkShaderStageFlagBits describing the shader stages that can access tensor resources.shaderTensorSupportedStageswill have theVK_SHADER_STAGE_COMPUTE_BITbit set if any of the physical device’s queues supportVK_QUEUE_COMPUTE_BIT.
Description
If the VkPhysicalDeviceTensorPropertiesARM structure is included in the pNext chain of the
VkPhysicalDeviceProperties2 structure passed to
vkGetPhysicalDeviceProperties2, it is filled in with each
corresponding implementation-dependent property.
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.