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;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.MGranularity
is the granularity of the number of rows in matricesA
,C
, andResult
. The rows must be an integer multiple of this value.KGranularity
is the granularity of columns in matrixA
and rows in matrixB
. The columns/rows must be an integer multiple of this value.NGranularity
is the granularity of columns in matricesB
,C
,Result
. The columns must be an integer multiple of this value.AType
is the component type of matrixA
, of type VkComponentTypeKHR.BType
is the component type of matrixB
, of type VkComponentTypeKHR.CType
is the component type of matrixC
, of type VkComponentTypeKHR.ResultType
is the component type of matrixResult
, of type VkComponentTypeKHR.saturatingAccumulation
indicates whether theSaturatingAccumulation
operand toOpCooperativeMatrixMulAddKHR
must be present or not. If it isVK_TRUE
, theSaturatingAccumulation
operand must be present. If it isVK_FALSE
, theSaturatingAccumulation
operand must not be present.scope
is the scope of all the matrix types, of type VkScopeKHR.workgroupInvocations
is 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