From c6768b83de11786bc509579cc61229004a974162 Mon Sep 17 00:00:00 2001 From: rasbid <104773487+rasbid@users.noreply.github.com> Date: Mon, 13 Oct 2025 20:01:45 +0300 Subject: [PATCH] Allow Vulkan subgroup reductions on stable AMD GCN drivers --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index ebbb412e55f..2fd8d555d60 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -3114,7 +3114,11 @@ static void ggml_vk_load_shaders(vk_device& device) { rm_stdq = 2; uint32_t rm_iq = 2 * rm_kq; - const bool use_subgroups = device->subgroup_arithmetic && device->architecture != vk_device_architecture::AMD_GCN; + const bool amd_gcn_bad_subgroup_driver = + device->architecture == vk_device_architecture::AMD_GCN && + (device->driver_id == vk::DriverId::eMesaRadv || device->driver_id == vk::DriverId::eAmdOpenSource); + + const bool use_subgroups = device->subgroup_arithmetic && !amd_gcn_bad_subgroup_driver; // Ensure a subgroup size >= 16 is available const bool use_subgroups16 = use_subgroups && subgroup_min_size_16;