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
-
sType
is a VkStructureType value identifying this structure. -
pNext
isNULL
or a pointer to a structure extending this structure. -
maxTensorDimensionCount
is the maximum number of dimensions that can be specified in thedimensionCount
member of VkTensorDescriptionARM. -
maxTensorElements
is 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. -
maxPerDimensionTensorElements
is the maximum number of data elements alongside any dimension of a tensor. -
maxTensorStride
is the maximum value for a tensor stride that can be used in VkTensorDescriptionARM::pStrides
. -
maxTensorShaderAccessArrayLength
is the maximum number of elements in an array returned byOpTensoReadARM
or consumed byOpTensorWriteARM
. -
maxTensorShaderAccessSize
is the maximum size in bytes of the data that can be read from a tensor withOpTensorReadARM
or written to a tensor withOpTensorWriteARM
. -
maxDescriptorSetStorageTensors
is 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_ARM
count against this limit. -
maxPerStageDescriptorSetStorageTensors
is 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_ARM
count against this limit. A descriptor is accessible to a pipeline shader stage when thestageFlags
member of the VkDescriptorSetLayoutBinding structure has the bit for that shader stage set. -
maxDescriptorSetUpdateAfterBindStorageTensors
is similar tomaxDescriptorSetStorageTensors
but counts descriptors from descriptor sets created with or without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set. -
maxPerStageDescriptorUpdateAfterBindStorageTensors
is similar tomaxPerStageDescriptorSetStorageTensors
but counts descriptors from descriptor sets created with or without theVK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set. -
shaderStorageTensorArrayNonUniformIndexingNative
is 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. -
shaderTensorSupportedStages
is a bitfield of VkShaderStageFlagBits describing the shader stages that can access tensor resources.shaderTensorSupportedStages
will have theVK_SHADER_STAGE_COMPUTE_BIT
bit 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.