Structures
VkPhysicalDeviceCooperativeMatrix2FeaturesNV
Structure describing cooperative matrix features that can be supported by an implementation
The VkPhysicalDeviceCooperativeMatrix2FeaturesNV
structure is defined
as:
typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
VkStructureType sType;
void* pNext;
VkBool32 cooperativeMatrixWorkgroupScope;
VkBool32 cooperativeMatrixFlexibleDimensions;
VkBool32 cooperativeMatrixReductions;
VkBool32 cooperativeMatrixConversions;
VkBool32 cooperativeMatrixPerElementOperations;
VkBool32 cooperativeMatrixTensorAddressing;
VkBool32 cooperativeMatrixBlockLoads;
} VkPhysicalDeviceCooperativeMatrix2FeaturesNV;
This structure describes the following features:
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.cooperativeMatrixWorkgroupScope
indicates that the implementation supports workgroup scope cooperative matrices.cooperativeMatrixFlexibleDimensions
indicates that the implementation supports cooperative matrix sizes that are a multiple of the granularity advertised in VkCooperativeMatrixFlexibleDimensionsPropertiesNV.cooperativeMatrixReductions
indicates that the implementation supports theCooperativeMatrixReductionsNV
SPIR-V capability. This allows performing (row, column, 2x2, or all element) reductions on matrices.cooperativeMatrixConversions
indicates that the implementation supports theCooperativeMatrixConversionsNV
SPIR-V capability. This allows converting accumulator matrices to A or B matrices.cooperativeMatrixPerElementOperations
indicates that the implementation supports theCooperativeMatrixPerElementOperationsNV
SPIR-V capability. This allows performing element-wise operations on matrix elements using a callback function.cooperativeMatrixTensorAddressing
indicates that the implementation supports theTensorAddressingNV
andCooperativeMatrixTensorAddressingNV
SPIR-V capabilities. This allows using tensor layout and tensor view types for matrix loads and stores.cooperativeMatrixBlockLoads
indicates that the implementation supports theCooperativeMatrixBlockLoadsNV
SPIR-V capability. This allows setting block size for loads and using a callback function to decode block elements.
If the VkPhysicalDeviceCooperativeMatrix2FeaturesNV
structure is included in the pNext
chain of the
VkPhysicalDeviceFeatures2 structure passed to
vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each
corresponding feature is supported.
If the application wishes to use a VkDevice with any features
described by VkPhysicalDeviceCooperativeMatrix2FeaturesNV
, it must add an instance of the structure,
with the desired feature members set to VK_TRUE
, to the pNext
chain of VkDeviceCreateInfo when creating the VkDevice.
Valid Usage (Implicit)
VUID-VkPhysicalDeviceCooperativeMatrix2FeaturesNV-sType-sType
sType
must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV