Class NVCooperativeMatrix
- java.lang.Object
-
- org.lwjgl.vulkan.NVCooperativeMatrix
-
public class NVCooperativeMatrix extends java.lang.Object
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_NV_cooperative_matrix
SPIR-V extension and can be used with theGL_NV_cooperative_matrix
GLSL extension.This extension includes support for enumerating the matrix types and dimensions that are supported by the implementation.
- Name String
VK_NV_cooperative_matrix
- Extension Type
- Device extension
- Registered Extension Number
- 250
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- Contact
- Jeff Bolz jeffbolznv
- Last Modified Data
- 2019-02-05
- Contributors
- Jeff Bolz, NVIDIA
- Markus Tavenrath, NVIDIA
- Daniel Koch, NVIDIA
-
-
Field Summary
Fields Modifier and Type Field Description static int
VK_COMPONENT_TYPE_FLOAT16_NV
VK_COMPONENT_TYPE_FLOAT32_NV
VK_COMPONENT_TYPE_FLOAT64_NV
VK_COMPONENT_TYPE_SINT16_NV
VK_COMPONENT_TYPE_SINT32_NV
VK_COMPONENT_TYPE_SINT64_NV
VK_COMPONENT_TYPE_SINT8_NV
VK_COMPONENT_TYPE_UINT16_NV
VK_COMPONENT_TYPE_UINT32_NV
VK_COMPONENT_TYPE_UINT64_NV
VK_COMPONENT_TYPE_UINT8_NVVkComponentTypeNV - Specify SPIR-V cooperative matrix component typestatic java.lang.String
VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME
The extension name.static int
VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION
The extension specification version.static int
VK_SCOPE_DEVICE_NV
VK_SCOPE_QUEUE_FAMILY_NV
VK_SCOPE_SUBGROUP_NV
VK_SCOPE_WORKGROUP_NVVkScopeNV - Specify SPIR-V scopestatic int
VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NVExtendsVkStructureType
.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
nvkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice, long pPropertyCount, long pProperties)
Unsafe version of:GetPhysicalDeviceCooperativeMatrixPropertiesNV
static int
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice, int[] pPropertyCount, VkCooperativeMatrixPropertiesNV.Buffer pProperties)
Array version of:GetPhysicalDeviceCooperativeMatrixPropertiesNV
static int
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice, java.nio.IntBuffer pPropertyCount, VkCooperativeMatrixPropertiesNV.Buffer pProperties)
Returns properties describing what cooperative matrix types are supported.
-
-
-
Field Detail
-
VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION
The extension specification version.
-
VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME
The extension name.
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV
-
VK_COMPONENT_TYPE_FLOAT16_NV, VK_COMPONENT_TYPE_FLOAT32_NV, VK_COMPONENT_TYPE_FLOAT64_NV, VK_COMPONENT_TYPE_SINT8_NV, VK_COMPONENT_TYPE_SINT16_NV, VK_COMPONENT_TYPE_SINT32_NV, VK_COMPONENT_TYPE_SINT64_NV, VK_COMPONENT_TYPE_UINT8_NV, VK_COMPONENT_TYPE_UINT16_NV, VK_COMPONENT_TYPE_UINT32_NV, VK_COMPONENT_TYPE_UINT64_NV
VkComponentTypeNV - Specify SPIR-V cooperative matrix component typeDescription
COMPONENT_TYPE_FLOAT16_NV
corresponds to SPIR-VOpTypeFloat
16.COMPONENT_TYPE_FLOAT32_NV
corresponds to SPIR-VOpTypeFloat
32.COMPONENT_TYPE_FLOAT64_NV
corresponds to SPIR-VOpTypeFloat
64.COMPONENT_TYPE_SINT8_NV
corresponds to SPIR-VOpTypeInt
8 1.COMPONENT_TYPE_SINT16_NV
corresponds to SPIR-VOpTypeInt
16 1.COMPONENT_TYPE_SINT32_NV
corresponds to SPIR-VOpTypeInt
32 1.COMPONENT_TYPE_SINT64_NV
corresponds to SPIR-VOpTypeInt
64 1.COMPONENT_TYPE_UINT8_NV
corresponds to SPIR-VOpTypeInt
8 0.COMPONENT_TYPE_UINT16_NV
corresponds to SPIR-VOpTypeInt
16 0.COMPONENT_TYPE_UINT32_NV
corresponds to SPIR-VOpTypeInt
32 0.COMPONENT_TYPE_UINT64_NV
corresponds to SPIR-VOpTypeInt
64 0.
See Also
-
VK_SCOPE_DEVICE_NV, VK_SCOPE_WORKGROUP_NV, VK_SCOPE_SUBGROUP_NV, VK_SCOPE_QUEUE_FAMILY_NV
VkScopeNV - Specify SPIR-V scopeDescription
SCOPE_DEVICE_NV
corresponds to SPIR-VDevice
scope.SCOPE_WORKGROUP_NV
corresponds to SPIR-VWorkgroup
scope.SCOPE_SUBGROUP_NV
corresponds to SPIR-VSubgroup
scope.SCOPE_QUEUE_FAMILY_NV
corresponds to SPIR-VQueueFamilyKHR
scope.
All enum values match the corresponding SPIR-V value.
See Also
-
-
Method Detail
-
nvkGetPhysicalDeviceCooperativeMatrixPropertiesNV
public static int nvkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice, long pPropertyCount, long pProperties)
Unsafe version of:GetPhysicalDeviceCooperativeMatrixPropertiesNV
- Parameters:
pPropertyCount
- a pointer to an integer related to the number of cooperative matrix properties available or queried.
-
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV
public static int vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice, java.nio.IntBuffer pPropertyCount, @Nullable VkCooperativeMatrixPropertiesNV.Buffer pProperties)
Returns properties describing what cooperative matrix types are supported.C Specification
To enumerate the supported cooperative matrix types and operations, call:
VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
Description
If
pProperties
isNULL
, then the number of cooperative matrix properties available is returned inpPropertyCount
. Otherwise,pPropertyCount
must point to a variable set by the user to the number of elements in thepProperties
array, and on return the variable is overwritten with the number of structures actually written topProperties
. IfpPropertyCount
is less than the number of cooperative matrix properties available, at mostpPropertyCount
structures will be written. IfpPropertyCount
is smaller than the number of cooperative matrix properties available,INCOMPLETE
will be returned instead ofSUCCESS
, to indicate that not all the available cooperative matrix properties were returned.Valid Usage (Implicit)
physicalDevice
must be a validVkPhysicalDevice
handlepPropertyCount
must be a valid pointer to auint32_t
value- If the value referenced by
pPropertyCount
is not 0, andpProperties
is notNULL
,pProperties
must be a valid pointer to an array ofpPropertyCount
VkCooperativeMatrixPropertiesNV
structures
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
physicalDevice
- the physical device.pPropertyCount
- a pointer to an integer related to the number of cooperative matrix properties available or queried.pProperties
- eitherNULL
or a pointer to an array ofVkCooperativeMatrixPropertiesNV
structures.
-
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV
public static int vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice, int[] pPropertyCount, @Nullable VkCooperativeMatrixPropertiesNV.Buffer pProperties)
Array version of:GetPhysicalDeviceCooperativeMatrixPropertiesNV
-
-