VK_NV_cooperative_matrix2
Other Extension Metadata
Last Modified Date
2024-08-01
Interactions and External Dependencies
- This extension provides API support for
GLSL_NV_cooperative_matrix2
Contributors
- Jeff Bolz, NVIDIA
- Karthik Vaidyanathan, NVIDIA
Description
This extension adds several new features building on the cooperative matrix types added in VK_KHR_cooperative_matrix. The goal is to add and accelerate features beyond just simple GEMM kernels, including adding support for type/use conversions, reductions, per-element operations, and tensor addressing, and also to improve usability and out-of-the-box performance by adding support for more flexible matrix sizes, and workgroup scope matrices with compiler-managed staging through shared memory.
The new functionality is defined by the
SPV_NV_tensor_addressing
and
SPV_NV_cooperative_matrix2
SPIR-V extensions and can be used with the
GLSL_NV_cooperative_matrix2
GLSL extension.
This extension includes support for enumerating the matrix types and dimensions that are supported by the implementation, and which specific features are supported.
New Commands
New Structures
- VkCooperativeMatrixFlexibleDimensionsPropertiesNV
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
- Extending VkPhysicalDeviceProperties2:
New Enum Constants
VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION
- Extending VkStructureType:
VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV
New SPIR-V Capabilities
- TensorAddressingNV
- CooperativeMatrixReductionsNV
- CooperativeMatrixConversionsNV
- CooperativeMatrixPerElementOperationsNV
- CooperativeMatrixTensorAddressingNV
- CooperativeMatrixBlockLoadsNV
Issues
Version History
- Revision 1, 2024-08-01 (Jeff Bolz)
- Initial revision