mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-25 04:25:12 +00:00
* Update release number to 124. Github Issues: * Fix Makefile SPECREMARK macro to work when not building in a git tree (public issue 992). * Ignore pname:aspectMask for unused attachments in slink:VkSubpassDescription2KHR valid usage statements (public pull request 1028). * Minor markup / spelling fixes (public pull requests 1035, 1045). Internal Issues: * Fix markup in Valid Usage statement for slink:VkCreateFramebuffer (internal issue 1823). * Add a new <<synchronization-signal-operation-order, _signal operation order_>> section to the synchronization chapter which describes in detail the ordering guarantees provided by the API between fence and semaphore signal operations (internal merge request 3368). * Move generated `appendix/meta/` files into the Makefile GENERATED directory (internal merge request 3381). New Extensions * `<<VK_KHR_shader_clock>>` * `<<VK_KHR_timeline_semaphore>>`
79 lines
2.3 KiB
Plaintext
79 lines
2.3 KiB
Plaintext
include::{generated}/meta/VK_NV_cooperative_matrix.txt[]
|
|
|
|
*Last Modified Data*::
|
|
2019-02-05
|
|
*Contributors*::
|
|
- Jeff Bolz, NVIDIA
|
|
- Markus Tavenrath, NVIDIA
|
|
- Daniel Koch, NVIDIA
|
|
|
|
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}/NV/SPV_NV_cooperative_matrix.html[`SPV_NV_cooperative_matrix`]
|
|
SPIR-V extension and can be used with the
|
|
https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_cooperative_matrix.txt[`GL_NV_cooperative_matrix`]
|
|
GLSL extension.
|
|
|
|
This extension includes support for enumerating the matrix types and
|
|
dimensions that are supported by the implementation.
|
|
|
|
=== New Object Types
|
|
|
|
None.
|
|
|
|
=== New Enum Constants
|
|
|
|
* Extending elink:VkStructureType:
|
|
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
|
|
** ename:VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
|
|
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
|
|
|
|
=== New Enums
|
|
|
|
* elink:VkScopeNV
|
|
* elink:VkComponentTypeNV
|
|
|
|
=== New Structures
|
|
|
|
* Extending slink:VkPhysicalDeviceFeatures2:
|
|
** slink:VkPhysicalDeviceCooperativeMatrixFeaturesNV
|
|
|
|
* Extending slink:VkPhysicalDeviceProperties2:
|
|
** slink:VkPhysicalDeviceCooperativeMatrixPropertiesNV
|
|
|
|
* slink:VkCooperativeMatrixPropertiesNV
|
|
|
|
=== New Functions
|
|
|
|
* flink:vkGetPhysicalDeviceCooperativeMatrixPropertiesNV
|
|
|
|
=== New SPIR-V Capabilities
|
|
|
|
* <<spirvenv-capabilities-table-cooperativeMatrix,CooperativeMatrixNV>>
|
|
|
|
=== Issues
|
|
|
|
(1) What matrix properties will be supported in practice?
|
|
|
|
RESOLVED: In NVIDIA's initial implementation, we will support:
|
|
|
|
* AType = BType = fp16 CType = DType = fp16 MxNxK = 16x8x16 scope =
|
|
Subgroup
|
|
* AType = BType = fp16 CType = DType = fp16 MxNxK = 16x8x8 scope =
|
|
Subgroup
|
|
* AType = BType = fp16 CType = DType = fp32 MxNxK = 16x8x16 scope =
|
|
Subgroup
|
|
* AType = BType = fp16 CType = DType = fp32 MxNxK = 16x8x8 scope =
|
|
Subgroup
|
|
|
|
=== Version History
|
|
|
|
* Revision 1, 2019-02-05 (Jeff Bolz)
|
|
- Internal revisions
|