VK_NV_cooperative_matrix2

Other Extension Metadata

Last Modified Date

2024-08-01

Interactions and External Dependencies
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

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

Issues

Version History

  • Revision 1, 2024-08-01 (Jeff Bolz)
    • Initial revision