From: Ruben Ortlam Date: Wed, 3 Sep 2025 20:55:10 +0000 (+0200) Subject: vulkan: fix mmv subgroup16 selection (llama/15775) X-Git-Tag: v0.9.1~92 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=2600727943e2587cb447d42c0ad278a26a23b779;p=pkg%2Fggml%2Fsources%2Fggml vulkan: fix mmv subgroup16 selection (llama/15775) --- diff --git a/src/ggml-vulkan/ggml-vulkan.cpp b/src/ggml-vulkan/ggml-vulkan.cpp index 2f86b22c..3cd5af1c 100644 --- a/src/ggml-vulkan/ggml-vulkan.cpp +++ b/src/ggml-vulkan/ggml-vulkan.cpp @@ -2937,9 +2937,7 @@ static void ggml_vk_load_shaders(vk_device& device) { const bool use_subgroups = device->subgroup_arithmetic && device->architecture != vk_device_architecture::AMD_GCN; // Ensure a subgroup size >= 16 is available - const bool use_subgroups16 = use_subgroups && - (!device->subgroup_size_control && device->subgroup_size >= 16 || - device->subgroup_size_control && device->subgroup_min_size <= 16 && device->subgroup_max_size >= 16); + const bool use_subgroups16 = use_subgroups && subgroup_min_size_16; const uint32_t subgroup_size = (device->vendor_id == VK_VENDOR_ID_INTEL && device->subgroup_size_control && device->subgroup_min_size <= 16 && device->subgroup_max_size >= 16) ? 16 : device->subgroup_size; const uint32_t subgroup_size16 = std::max(subgroup_size, 16u);