Structures
VkPhysicalDeviceTensorPropertiesARM
Structure describing the tensor properties of a physical device
The VkPhysicalDeviceTensorPropertiesARM structure is defined as:
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;
pub struct PhysicalDeviceTensorPropertiesARM {
s_type: vk::StructureType,
p_next: *mut c_void,
max_tensor_dimension_count: u32,
max_tensor_elements: u64,
max_per_dimension_tensor_elements: u64,
max_tensor_stride: i64,
max_tensor_size: u64,
max_tensor_shader_access_array_length: u32,
max_tensor_shader_access_size: u32,
max_descriptor_set_storage_tensors: u32,
max_per_stage_descriptor_set_storage_tensors: u32,
max_descriptor_set_update_after_bind_storage_tensors: u32,
max_per_stage_descriptor_update_after_bind_storage_tensors: u32,
shader_storage_tensor_array_non_uniform_indexing_native: vk::Bool32,
shader_tensor_supported_stages: vk::ShaderStageFlags,
}
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. -
maxTensorSizeis the maximum size, in bytes, of a tensor. 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.
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.
Valid Usage (Implicit)
VUID-VkPhysicalDeviceTensorPropertiesARM-sType-sType
sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM