News: 0001501895

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Vulkan 1.3.300 Delivers New Cooperative Matrix Extension From NVIDIA

([Vulkan] 4 Hours Ago VK_NV_cooperative_matrix2)


Vulkan 1.3.300 debuted on Friday with a handful of fixes and one new extension.

Alongside various minor documentation updates/fixes, Vulkan 1.3.300 introduces the VK_NV_cooperative_matrix2 extension. Introduced back in 2019 was the [1]NVIDIA's VK_NV_cooperative_matrix extension for allowing cooperative matrix types within SPIR-V. With Vulkan 1.3.300 is an updated cooperative matrix implementation based upon NVIDIA's findings over the past five years.

The Vulkan cooperative matrix support has been part of NVIDIA's effort for allowing machine learning acceleration via the Vulkan API. The updated NVIDIA cooperative matrix extension is described as:

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.

Support for VK_NV_cooperative_matrix2 can already be found within the [2]NVIDIA Vulkan driver beta update for Windows and Linux on Friday.

More details on the Vulkan 1.3.300 spec update via [3]this Git commit .



[1] https://www.phoronix.com/news/Vulkan-1.1.101-Released

[2] https://developer.nvidia.com/vulkan-driver

[3] https://github.com/KhronosGroup/Vulkan-Docs/commit/c9304f8dd1aa20183942c6a3638b28c81b4e681d#diff-7036a6fbd7533c52732e8a1ef5e2d09f05572e69e712bd8cf2b8d9d967c4936cR20



hauberg

break; /* don't do magic till later */
-- Larry Wall in stab.c from the perl source code