Class NVCooperativeMatrix
- java.lang.Object
-
- org.lwjgl.vulkan.NVCooperativeMatrix
-
public class NVCooperativeMatrix extends java.lang.ObjectThis 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_matrixSPIR-V extension and can be used with theGL_NV_cooperative_matrixGLSL 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 intVK_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.StringVK_NV_COOPERATIVE_MATRIX_EXTENSION_NAMEThe extension name.static intVK_NV_COOPERATIVE_MATRIX_SPEC_VERSIONThe extension specification version.static intVK_SCOPE_DEVICE_NV
VK_SCOPE_QUEUE_FAMILY_NV
VK_SCOPE_SUBGROUP_NV
VK_SCOPE_WORKGROUP_NVVkScopeNV - Specify SPIR-V scopestatic intVK_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 intnvkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice, long pPropertyCount, long pProperties)Unsafe version of:GetPhysicalDeviceCooperativeMatrixPropertiesNVstatic intvkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice, int[] pPropertyCount, VkCooperativeMatrixPropertiesNV.Buffer pProperties)Array version of:GetPhysicalDeviceCooperativeMatrixPropertiesNVstatic intvkGetPhysicalDeviceCooperativeMatrixPropertiesNV(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_NVcorresponds to SPIR-VOpTypeFloat16.COMPONENT_TYPE_FLOAT32_NVcorresponds to SPIR-VOpTypeFloat32.COMPONENT_TYPE_FLOAT64_NVcorresponds to SPIR-VOpTypeFloat64.COMPONENT_TYPE_SINT8_NVcorresponds to SPIR-VOpTypeInt8 1.COMPONENT_TYPE_SINT16_NVcorresponds to SPIR-VOpTypeInt16 1.COMPONENT_TYPE_SINT32_NVcorresponds to SPIR-VOpTypeInt32 1.COMPONENT_TYPE_SINT64_NVcorresponds to SPIR-VOpTypeInt64 1.COMPONENT_TYPE_UINT8_NVcorresponds to SPIR-VOpTypeInt8 0.COMPONENT_TYPE_UINT16_NVcorresponds to SPIR-VOpTypeInt16 0.COMPONENT_TYPE_UINT32_NVcorresponds to SPIR-VOpTypeInt32 0.COMPONENT_TYPE_UINT64_NVcorresponds to SPIR-VOpTypeInt64 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_NVcorresponds to SPIR-VDevicescope.SCOPE_WORKGROUP_NVcorresponds to SPIR-VWorkgroupscope.SCOPE_SUBGROUP_NVcorresponds to SPIR-VSubgroupscope.SCOPE_QUEUE_FAMILY_NVcorresponds to SPIR-VQueueFamilyKHRscope.
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
pPropertiesisNULL, then the number of cooperative matrix properties available is returned inpPropertyCount. Otherwise,pPropertyCountmust point to a variable set by the user to the number of elements in thepPropertiesarray, and on return the variable is overwritten with the number of structures actually written topProperties. IfpPropertyCountis less than the number of cooperative matrix properties available, at mostpPropertyCountstructures will be written. IfpPropertyCountis smaller than the number of cooperative matrix properties available,INCOMPLETEwill be returned instead ofSUCCESS, to indicate that not all the available cooperative matrix properties were returned.Valid Usage (Implicit)
physicalDevicemust be a validVkPhysicalDevicehandlepPropertyCountmust be a valid pointer to auint32_tvalue- If the value referenced by
pPropertyCountis not 0, andpPropertiesis notNULL,pPropertiesmust be a valid pointer to an array ofpPropertyCountVkCooperativeMatrixPropertiesNVstructures
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- eitherNULLor a pointer to an array ofVkCooperativeMatrixPropertiesNVstructures.
-
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV
public static int vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice, int[] pPropertyCount, @Nullable VkCooperativeMatrixPropertiesNV.Buffer pProperties)
Array version of:GetPhysicalDeviceCooperativeMatrixPropertiesNV
-
-