summaryrefslogtreecommitdiff
path: root/appendices/VK_KHR_cooperative_matrix.adoc
blob: d3d3edc6338373184f9309fd302b11e04f7ee3a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Copyright (c) 2021-2023 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_cooperative_matrix.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
    2023-05-03
*Interactions and External Dependencies*::
  - This extension provides API support for
    {GLSLregistry}/khr/GLSL_KHR_cooperative_matrix.txt[`GLSL_KHR_cooperative_matrix`]
*Contributors*::
  - Jeff Bolz, NVIDIA
  - Markus Tavenrath, NVIDIA
  - Daniel Koch, NVIDIA
  - Kevin Petit, Arm Ltd.
  - Boris Zanin, AMD

=== Description

This extension adds support for using cooperative matrix types in SPIR-V.
Cooperative matrix types are medium-sized matrices that are primarily
supported in compute shaders, where the storage for the matrix is spread
across all invocations in some scope (usually a subgroup) and those
invocations cooperate to efficiently perform matrix multiplies.

Cooperative matrix types are defined by the
{spirv}/KHR/SPV_KHR_cooperative_matrix.html[`SPV_KHR_cooperative_matrix`]
SPIR-V extension and can be used with the
{GLSLregistry}/khr/GLSL_KHR_cooperative_matrix.txt[`GLSL_KHR_cooperative_matrix`]
GLSL extension.

This extension includes support for enumerating the matrix types and
dimensions that are supported by the implementation.

include::{generated}/interfaces/VK_KHR_cooperative_matrix.adoc[]

=== New SPIR-V Capabilities

  * <<spirvenv-capabilities-table-CooperativeMatrixKHR,CooperativeMatrixKHR>>

=== Issues

=== Version History

  * Revision 2, 2023-05-03 (Kevin Petit)
  ** First KHR revision
  * Revision 1, 2019-02-05 (Jeff Bolz)
  ** NVIDIA vendor extension