C Specification
The VkCooperativeMatrixFlexibleDimensionsPropertiesNV
structure is
defined as:
// Provided by VK_NV_cooperative_matrix2
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;
Members
-
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.
Description
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.
Note
|
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. |
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.