Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Name
VK_KHR_cooperative_matrix - device extension
VK_KHR_cooperative_matrix
- Name String
VK_KHR_cooperative_matrix
- Extension Type
- Device extension
- Registered Extension Number
- 507
- Revision
- 2
- Ratification Status
- Ratified
- Extension and Version Dependencies
- VK_KHR_get_physical_device_properties2
- Contact
Other Extension Metadata
- Last Modified Date
- 2023-05-03
- Interactions and External Dependencies
- This extension requires SPV_KHR_cooperative_matrix
- This extension provides API support for 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 SPV_KHR_cooperative_matrix SPIR-V extension and can be used with the GLSL_KHR_cooperative_matrix GLSL extension.
This extension includes support for enumerating the matrix types and dimensions that are supported by the implementation.
New Commands
New Structures
Extending
PhysicalDeviceFeatures2
,DeviceCreateInfo
:Extending
PhysicalDeviceProperties2
:
New Enums
New Enum Constants
New SPIR-V Capabilities
Version History
Revision 2, 2023-05-03 (Kevin Petit)
- First KHR revision
Revision 1, 2019-02-05 (Jeff Bolz)
- NVIDIA vendor extension
See Also
ComponentTypeKHR
, CooperativeMatrixPropertiesKHR
,
PhysicalDeviceCooperativeMatrixFeaturesKHR
,
PhysicalDeviceCooperativeMatrixPropertiesKHR
, ScopeKHR
,
getPhysicalDeviceCooperativeMatrixPropertiesKHR
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- getPhysicalDeviceCooperativeMatrixPropertiesKHR :: forall io. MonadIO io => PhysicalDevice -> io (Result, "properties" ::: Vector CooperativeMatrixPropertiesKHR)
- data PhysicalDeviceCooperativeMatrixFeaturesKHR = PhysicalDeviceCooperativeMatrixFeaturesKHR {}
- data CooperativeMatrixPropertiesKHR = CooperativeMatrixPropertiesKHR {}
- data PhysicalDeviceCooperativeMatrixPropertiesKHR = PhysicalDeviceCooperativeMatrixPropertiesKHR {}
- newtype ScopeKHR where
- ScopeKHR Int32
- pattern SCOPE_DEVICE_KHR :: ScopeKHR
- pattern SCOPE_WORKGROUP_KHR :: ScopeKHR
- pattern SCOPE_SUBGROUP_KHR :: ScopeKHR
- pattern SCOPE_QUEUE_FAMILY_KHR :: ScopeKHR
- newtype ComponentTypeKHR where
- ComponentTypeKHR Int32
- pattern COMPONENT_TYPE_FLOAT16_KHR :: ComponentTypeKHR
- pattern COMPONENT_TYPE_FLOAT32_KHR :: ComponentTypeKHR
- pattern COMPONENT_TYPE_FLOAT64_KHR :: ComponentTypeKHR
- pattern COMPONENT_TYPE_SINT8_KHR :: ComponentTypeKHR
- pattern COMPONENT_TYPE_SINT16_KHR :: ComponentTypeKHR
- pattern COMPONENT_TYPE_SINT32_KHR :: ComponentTypeKHR
- pattern COMPONENT_TYPE_SINT64_KHR :: ComponentTypeKHR
- pattern COMPONENT_TYPE_UINT8_KHR :: ComponentTypeKHR
- pattern COMPONENT_TYPE_UINT16_KHR :: ComponentTypeKHR
- pattern COMPONENT_TYPE_UINT32_KHR :: ComponentTypeKHR
- pattern COMPONENT_TYPE_UINT64_KHR :: ComponentTypeKHR
- type KHR_COOPERATIVE_MATRIX_SPEC_VERSION = 2
- pattern KHR_COOPERATIVE_MATRIX_SPEC_VERSION :: forall a. Integral a => a
- type KHR_COOPERATIVE_MATRIX_EXTENSION_NAME = "VK_KHR_cooperative_matrix"
- pattern KHR_COOPERATIVE_MATRIX_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
getPhysicalDeviceCooperativeMatrixPropertiesKHR Source #
:: forall io. MonadIO io | |
=> PhysicalDevice |
|
-> io (Result, "properties" ::: Vector CooperativeMatrixPropertiesKHR) |
vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR - Returns properties describing what cooperative matrix types are supported
Description
If pProperties
is NULL
, then the number of cooperative matrix
properties available is returned in pPropertyCount
. Otherwise,
pPropertyCount
must point to a variable set by the user to the
number of elements in the pProperties
array, and on return the
variable is overwritten with the number of structures actually written
to pProperties
. If pPropertyCount
is less than the number of
cooperative matrix properties available, at most pPropertyCount
structures will be written, and INCOMPLETE
will be returned instead of SUCCESS
, to
indicate that not all the available cooperative matrix properties were
returned.
Valid Usage (Implicit)
-
physicalDevice
must be a validPhysicalDevice
handle
-
pPropertyCount
must be a valid pointer to auint32_t
value -
If the value referenced by
pPropertyCount
is not0
, andpProperties
is notNULL
,pProperties
must be a valid pointer to an array ofpPropertyCount
CooperativeMatrixPropertiesKHR
structures
Return Codes
See Also
VK_KHR_cooperative_matrix,
CooperativeMatrixPropertiesKHR
, PhysicalDevice
data PhysicalDeviceCooperativeMatrixFeaturesKHR Source #
VkPhysicalDeviceCooperativeMatrixFeaturesKHR - Structure describing cooperative matrix features that can be supported by an implementation
Members
This structure describes the following features:
Description
If the PhysicalDeviceCooperativeMatrixFeaturesKHR
structure is
included in the pNext
chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2
,
it is filled in to indicate whether each corresponding feature is
supported. PhysicalDeviceCooperativeMatrixFeaturesKHR
can also be
used in the pNext
chain of DeviceCreateInfo
to
selectively enable these features.
Valid Usage (Implicit)
See Also
Instances
data CooperativeMatrixPropertiesKHR Source #
VkCooperativeMatrixPropertiesKHR - Structure specifying cooperative matrix properties
Description
If some types are preferred over other types (e.g. for performance),
they should appear earlier in the list enumerated by
getPhysicalDeviceCooperativeMatrixPropertiesKHR
.
At least one entry in the list must have power of two values for all
of MSize
, KSize
, and NSize
.
Valid Usage (Implicit)
See Also
VK_KHR_cooperative_matrix,
Bool32
, ComponentTypeKHR
, ScopeKHR
,
StructureType
,
getPhysicalDeviceCooperativeMatrixPropertiesKHR
CooperativeMatrixPropertiesKHR | |
|
Instances
data PhysicalDeviceCooperativeMatrixPropertiesKHR Source #
VkPhysicalDeviceCooperativeMatrixPropertiesKHR - Structure describing cooperative matrix properties supported by an implementation
Description
If the PhysicalDeviceCooperativeMatrixPropertiesKHR
structure is
included in the pNext
chain of the
PhysicalDeviceProperties2
structure passed to
getPhysicalDeviceProperties2
,
it is filled in with each corresponding implementation-dependent
property.
Valid Usage (Implicit)
See Also
PhysicalDeviceCooperativeMatrixPropertiesKHR | |
|
Instances
VkScopeKHR - Specify SPIR-V scope
Description
All enum values match the corresponding SPIR-V value.
See Also
pattern SCOPE_DEVICE_KHR :: ScopeKHR |
|
pattern SCOPE_WORKGROUP_KHR :: ScopeKHR |
|
pattern SCOPE_SUBGROUP_KHR :: ScopeKHR |
|
pattern SCOPE_QUEUE_FAMILY_KHR :: ScopeKHR |
|
Instances
newtype ComponentTypeKHR Source #
VkComponentTypeKHR - Specify SPIR-V cooperative matrix component type
See Also
Instances
type KHR_COOPERATIVE_MATRIX_SPEC_VERSION = 2 Source #
pattern KHR_COOPERATIVE_MATRIX_SPEC_VERSION :: forall a. Integral a => a Source #
type KHR_COOPERATIVE_MATRIX_EXTENSION_NAME = "VK_KHR_cooperative_matrix" Source #
pattern KHR_COOPERATIVE_MATRIX_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #