From 322605cb6288bbc00973e899729e6b4bcd9a517a Mon Sep 17 00:00:00 2001 From: Gong-Mi <550230171@qq.com> Date: Fri, 23 Jan 2026 20:49:00 +0800 Subject: [PATCH] ggml-vulkan: fix Mali-G720 warptile tuning (WM size) --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 00f8a42eb8..79ba8e8c53 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -3038,10 +3038,11 @@ static void ggml_vk_load_shaders(vk_device& device) { l_warptile = { 512, 128, 128, 16, subgroup_size_8, 32, 2, tm_m, tn_m, tk_m, subgroup_size_8 }; l_warptile_mmq = { 512, 128, 128, 32, subgroup_size_8, 32, 2, tm_m, tn_m, tk_m, subgroup_size_8 }; } else if (device->vendor_id == VK_VENDOR_ID_ARM && device->subgroup_size >= 16) { - uint32_t wm = 32 / device->subgroup_size; - m_warptile_mmq = m_warptile_mmq_int = { 64, 64, 64, 16, 16, 32, wm, 2, 2, 1, device->subgroup_size }; - m_warptile = { 64, 64, 64, 16, 16, 32, wm, 2, 2, 1, device->subgroup_size }; - m_warptile_id = m_warptile_mmqid = { 64, 64, 64, 16, 16, 32, wm, 2, 2, 1, device->subgroup_size }; + uint32_t wm_iter = 32 / device->subgroup_size; + uint32_t wm_tile = device->subgroup_size * 2; + m_warptile_mmq = m_warptile_mmq_int = { 64, 64, 64, 16, wm_tile, 32, wm_iter, 2, 2, 1, device->subgroup_size }; + m_warptile = { 64, 64, 64, 16, wm_tile, 32, wm_iter, 2, 2, 1, device->subgroup_size }; + m_warptile_id = m_warptile_mmqid = { 64, 64, 64, 16, wm_tile, 32, wm_iter, 2, 2, 1, device->subgroup_size }; } l_mmq_wg_denoms = l_wg_denoms = {128, 128, 1 };