VkCooperativeMatrixFlexibleDimensionsPropertiesNV
The VkCooperativeMatrixFlexibleDimensionsPropertiesNV structure is
defined as:
typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
VkStructureType sType;
void* pNext;
uint32_t MGranularity;
uint32_t NGranularity;
uint32_t KGranularity;
VkComponentTypeKHR AType;
VkComponentTypeKHR BType;
VkComponentTypeKHR CType;
VkComponentTypeKHR ResultType;
VkBool32 saturatingAccumulation;
VkScopeKHR scope;
uint32_t workgroupInvocations;
} VkCooperativeMatrixFlexibleDimensionsPropertiesNV;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.MGranularityis the granularity of the number of rows in matricesA,C, andResult. The rows must be an integer multiple of this value.KGranularityis the granularity of columns in matrixAand rows in matrixB. The columns/rows must be an integer multiple of this value.NGranularityis the granularity of columns in matricesB,C,Result. The columns must be an integer multiple of this value.ATypeis the component type of matrixA, of type VkComponentTypeKHR.BTypeis the component type of matrixB, of type VkComponentTypeKHR.CTypeis the component type of matrixC, of type VkComponentTypeKHR.ResultTypeis the component type of matrixResult, of type VkComponentTypeKHR.saturatingAccumulationindicates whether theSaturatingAccumulationoperand toOpCooperativeMatrixMulAddKHRmust be present or not. If it isVK_TRUE, theSaturatingAccumulationoperand must be present. If it isVK_FALSE, theSaturatingAccumulationoperand must not be present.scopeis the scope of all the matrix types, of type VkScopeKHR.workgroupInvocationsis the number of invocations in the local workgroup when this combination of values is supported.
Rather than explicitly enumerating a list of supported sizes,
VkCooperativeMatrixFlexibleDimensionsPropertiesNV advertises size
granularities, where the matrix must be a multiple of the advertised size.
The M and K granularities apply to rows and columns of matrices with
Use of MatrixA, K, and N apply to rows and columns of matrices
with Use of MatrixB, M, and N apply to rows and columns of
matrices with Use of MatrixAccumulator.
For a given type combination, if multiple workgroup sizes are supported
there may be multiple
VkCooperativeMatrixFlexibleDimensionsPropertiesNV structures with
different granularities.
All granularity values must be powers of two.
Different A/B types may require different granularities but share the same accumulator type. In such a case, the supported granularity for a matrix with the accumulator type would be the smallest advertised granularity.
Valid Usage (Implicit)
VUID-VkCooperativeMatrixFlexibleDimensionsPropertiesNV-sType-sType
sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV
VUID-VkCooperativeMatrixFlexibleDimensionsPropertiesNV-pNext-pNext
pNext must be NULL