From 8e98e723eb7ca001c177c3e26748607ad3ad8325 Mon Sep 17 00:00:00 2001 From: Gong-Mi <550230171@qq.com> Date: Fri, 23 Jan 2026 21:04:37 +0800 Subject: [PATCH] ggml-vulkan: clamp subgroup size to 64 on Qualcomm to prevent instability --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 79ba8e8c53..10dea421bb 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -4703,6 +4703,10 @@ static vk_device ggml_vk_get_device(size_t idx) { device->suballocation_block_size = std::min(device->suballocation_block_size, device->max_memory_allocation_size); device->subgroup_size = subgroup_props.subgroupSize; + if (device->vendor_id == VK_VENDOR_ID_QUALCOMM && device->subgroup_size > 64) { + VK_LOG_INFO("ggml_vulkan: clamping subgroup size to 64 for Qualcomm"); + device->subgroup_size = 64; + } device->subgroup_size_log2 = uint32_t(log2f(float(device->subgroup_size))); device->uma = device->properties.deviceType == vk::PhysicalDeviceType::eIntegratedGpu; if (sm_builtins) {