VkTensorDescriptionARM(3)
C Specification
The VkTensorDescriptionARM structure is defined as:
// Provided by VK_ARM_tensors
typedef struct VkTensorDescriptionARM {
VkStructureType sType;
const void* pNext;
VkTensorTilingARM tiling;
VkFormat format;
uint32_t dimensionCount;
const int64_t* pDimensions;
const int64_t* pStrides;
VkTensorUsageFlagsARM usage;
} VkTensorDescriptionARM;
Members
-
sTypeis a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
tilingis a VkTensorTilingARM value specifying the tiling of the tensor -
formatis a one component VkFormat describing the format and type of the data elements that will be contained in the tensor. -
dimensionCountis the number of dimensions for the tensor. -
pDimensionsis a pointer to an array of integers of sizedimensionCountproviding the number of data elements in each dimension. -
pStridesis eitherNULLor is an array of sizedimensionCountproviding the strides in bytes for the tensor in each dimension. -
usageis a bitmask of VkTensorUsageFlagBitsARM specifying the usage of the tensor.
Description
When describing a tensor created with VK_TENSOR_TILING_OPTIMAL_ARM,
pStrides must be equal to NULL.
When describing a tensor created with VK_TENSOR_TILING_LINEAR_ARM,
pStrides is either an array of size dimensionCount or NULL.
The formats that must be supported for format are documented in
Mandatory tensor format support.
Each element in the pStrides array describes the offset in bytes
between increments of the given dimension.
For example, pStrides[0] describes the offset between element
[x0,x1,x2,x3] and element [x0+1,x1,x2,x3].
The pStrides array can be used to determine whether a tensor is
packed or not.
If pStrides[dimensionCount-1] is equal to the size of a tensor
element and for each dimension n greater than 0 and less than
dimensionCount, pStrides[n-1] is equal to pStrides[n] *
pDimensions[n], then the tensor is a packed tensor.
If the tensorNonPacked feature is not enabled,
the tensor must be a packed tensor.
When a tensor is created with VK_TENSOR_TILING_LINEAR_ARM and
pStrides equal to NULL the tensor strides are calculated by the
vulkan implementation such that the resulting tensor is a packed tensor.
Expressed as an addressing formula, the starting byte of an element in a 4-dimensional, for example, linear tensor has address:
// Assume (x0,x1,x2,x3) are in units of elements.
address(x0,x1,x2,x3) = x0*pStrides[0] + x1*pStrides[1] + x2*pStrides[2] + x3*pStrides[3]
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.