vulkan: check coopmat2 features before reporting support (#24186)
This commit is contained in:
@@ -6349,6 +6349,15 @@ static void ggml_vk_print_gpu_info(size_t idx) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(VK_NV_cooperative_matrix2)
|
||||||
|
VkPhysicalDeviceCooperativeMatrix2FeaturesNV coopmat2_features {};
|
||||||
|
coopmat2_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV;
|
||||||
|
if (coopmat2_support) {
|
||||||
|
last_struct->pNext = (VkBaseOutStructure *)&coopmat2_features;
|
||||||
|
last_struct = (VkBaseOutStructure *)&coopmat2_features;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
VkPhysicalDeviceCooperativeMatrixDecodeVectorFeaturesNV coopmat2_decode_vector_features {};
|
VkPhysicalDeviceCooperativeMatrixDecodeVectorFeaturesNV coopmat2_decode_vector_features {};
|
||||||
coopmat2_decode_vector_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_DECODE_VECTOR_FEATURES_NV;
|
coopmat2_decode_vector_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_DECODE_VECTOR_FEATURES_NV;
|
||||||
if (coopmat2_decode_vector_support) {
|
if (coopmat2_decode_vector_support) {
|
||||||
@@ -6380,6 +6389,19 @@ static void ggml_vk_print_gpu_info(size_t idx) {
|
|||||||
#endif
|
#endif
|
||||||
&& ggml_vk_khr_cooperative_matrix_support(props2.properties, driver_props, device_architecture);
|
&& ggml_vk_khr_cooperative_matrix_support(props2.properties, driver_props, device_architecture);
|
||||||
|
|
||||||
|
#if defined(VK_NV_cooperative_matrix2) && defined(GGML_VULKAN_COOPMAT2_GLSLC_SUPPORT)
|
||||||
|
coopmat2_support = coopmat2_support &&
|
||||||
|
coopmat2_features.cooperativeMatrixWorkgroupScope &&
|
||||||
|
coopmat2_features.cooperativeMatrixFlexibleDimensions &&
|
||||||
|
coopmat2_features.cooperativeMatrixReductions &&
|
||||||
|
coopmat2_features.cooperativeMatrixConversions &&
|
||||||
|
coopmat2_features.cooperativeMatrixPerElementOperations &&
|
||||||
|
coopmat2_features.cooperativeMatrixTensorAddressing &&
|
||||||
|
coopmat2_features.cooperativeMatrixBlockLoads;
|
||||||
|
#else
|
||||||
|
coopmat2_support = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
coopmat2_decode_vector_support = coopmat2_decode_vector_support && coopmat2_decode_vector_features.cooperativeMatrixDecodeVector;
|
coopmat2_decode_vector_support = coopmat2_decode_vector_support && coopmat2_decode_vector_features.cooperativeMatrixDecodeVector;
|
||||||
#if !defined(GGML_VULKAN_COOPMAT2_DECODE_VECTOR_GLSLC_SUPPORT)
|
#if !defined(GGML_VULKAN_COOPMAT2_DECODE_VECTOR_GLSLC_SUPPORT)
|
||||||
coopmat2_decode_vector_support = false;
|
coopmat2_decode_vector_support = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user