1// Copyright (c) 2019-2020 NVIDIA Corporation 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5include::{generated}/meta/{refprefix}VK_NV_cooperative_matrix.txt[] 6 7=== Other Extension Metadata 8 9*Last Modified Date*:: 10 2019-02-05 11*Interactions and External Dependencies*:: 12 - This extension requires 13 {spirv}/NV/SPV_NV_cooperative_matrix.html[`SPV_NV_cooperative_matrix`] 14 - This extension provides API support for 15 https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_cooperative_matrix.txt[`GL_NV_cooperative_matrix`] 16*Contributors*:: 17 - Jeff Bolz, NVIDIA 18 - Markus Tavenrath, NVIDIA 19 - Daniel Koch, NVIDIA 20 21=== Description 22 23This extension adds support for using cooperative matrix types in SPIR-V. 24Cooperative matrix types are medium-sized matrices that are primarily 25supported in compute shaders, where the storage for the matrix is spread 26across all invocations in some scope (usually a subgroup) and those 27invocations cooperate to efficiently perform matrix multiplies. 28 29Cooperative matrix types are defined by the 30{spirv}/NV/SPV_NV_cooperative_matrix.html[`SPV_NV_cooperative_matrix`] 31SPIR-V extension and can be used with the 32https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_cooperative_matrix.txt[`GL_NV_cooperative_matrix`] 33GLSL extension. 34 35This extension includes support for enumerating the matrix types and 36dimensions that are supported by the implementation. 37 38include::{generated}/interfaces/VK_NV_cooperative_matrix.txt[] 39 40=== New SPIR-V Capabilities 41 42 * <<spirvenv-capabilities-table-CooperativeMatrixNV,CooperativeMatrixNV>> 43 44=== Issues 45 46(1) What matrix properties will be supported in practice? 47 48*RESOLVED*: In NVIDIA's initial implementation, we will support: 49 50 * AType = BType = fp16 CType = DType = fp16 MxNxK = 16x8x16 scope = 51 Subgroup 52 * AType = BType = fp16 CType = DType = fp16 MxNxK = 16x8x8 scope = 53 Subgroup 54 * AType = BType = fp16 CType = DType = fp32 MxNxK = 16x8x16 scope = 55 Subgroup 56 * AType = BType = fp16 CType = DType = fp32 MxNxK = 16x8x8 scope = 57 Subgroup 58 59=== Version History 60 61 * Revision 1, 2019-02-05 (Jeff Bolz) 62 - Internal revisions 63