Structures

VkCooperativeVectorPropertiesNV

Structure specifying cooperative vector properties

Each VkCooperativeVectorPropertiesNV structure describes a single supported combination of types for a matrix-vector multiply (or multiply-add) operation (OpCooperativeVectorMatrixMulNV or OpCooperativeVectorMatrixMulAddNV).

The VkCooperativeVectorPropertiesNV structure is defined as:

typedef struct VkCooperativeVectorPropertiesNV {
    VkStructureType sType;
    void* pNext;
    VkComponentTypeKHR inputType;
    VkComponentTypeKHR inputInterpretation;
    VkComponentTypeKHR matrixInterpretation;
    VkComponentTypeKHR biasInterpretation;
    VkComponentTypeKHR resultType;
    VkBool32 transpose;
} VkCooperativeVectorPropertiesNV;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • inputType is the component type of vector Input, of type VkComponentTypeKHR.
  • inputInterpretation is the value of InputInterpretation, of type VkComponentTypeKHR.
  • matrixInterpretation is the value of MatrixInterpretation, of type VkComponentTypeKHR.
  • biasInterpretation is the value of BiasInterpretation, of type VkComponentTypeKHR.
  • resultType is the component type of Result Type, of type VkComponentTypeKHR.
  • transpose is a boolean indicating whether opaque layout matrices with this combination of input and output types supports transposition.

VK_COMPONENT_TYPE_SINT8_PACKED_NV and VK_COMPONENT_TYPE_UINT8_PACKED_NV must not be used for members other than inputInterpretation.

The following combinations must be supported (each row is a required combination):

inputTypeinputInterpretationmatrixInterpretationbiasInterpretationresultType

FLOAT16

FLOAT16

FLOAT16

FLOAT16

FLOAT16

UINT32

SINT8_PACKED

SINT8

SINT32

SINT32

SINT8

SINT8

SINT8

SINT32

SINT32

FLOAT32

SINT8

SINT8

SINT32

SINT32

FLOAT16

FLOAT_E4M3

FLOAT_E4M3

FLOAT16

FLOAT16

FLOAT16

FLOAT_E5M2

FLOAT_E5M2

FLOAT16

FLOAT16