ggml-vulkan: Refine mobile tuning (optimize ARM & disable unstable Qualcomm configs)

- Android Baseline: Adjusted configurations to avoid large tile allocations, establishing a stable performance floor for mobile devices.
- ARM Optimization: Clarified and explicitly restored optimized warptile tuning for ARM architectures.
- Qualcomm Stability Fix: Removed Qualcomm-specific tuning as Adreno drivers frequently trigger fatal timeouts/crashes. Deprecating support for large models (>1B) on Qualcomm via Vulkan for now.
This commit is contained in:
Gong-Mi 2026-01-20 21:30:32 +08:00
parent e0f3a6b292
commit 73f94ff366
1 changed files with 5 additions and 0 deletions

View File

@ -3037,6 +3037,11 @@ static void ggml_vk_load_shaders(vk_device& device) {
// Xe2/Xe3 with coopmat enabled - warptile performance tuning
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 };
}
l_mmq_wg_denoms = l_wg_denoms = {128, 128, 1 };