From: lksj92hs Date: Tue, 9 Sep 2025 12:01:15 +0000 (+0300) Subject: Workaround for subgroup arithmetic failing on MoltenVK with AMD GPUs (issue 15846... X-Git-Tag: upstream/0.0.6527~98 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=ed54e32558ffe0f2c3b1d31f3227211fae05bd49;p=pkg%2Fggml%2Fsources%2Fllama.cpp Workaround for subgroup arithmetic failing on MoltenVK with AMD GPUs (issue 15846) (#15886) --- diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index f0fa9e66..6f130d47 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -3736,6 +3736,12 @@ static vk_device ggml_vk_get_device(size_t idx) { device->subgroup_arithmetic = (vk11_props.subgroupSupportedStages & vk::ShaderStageFlagBits::eCompute) && (vk11_props.subgroupSupportedOperations & vk::SubgroupFeatureFlagBits::eArithmetic); +#ifdef __APPLE__ + // Workaround for subgroup arithmetic failing on MoltenVK with AMD GPUs (issue 15846) + if (device->vendor_id == VK_VENDOR_ID_AMD) { + device->subgroup_arithmetic = false; + } +#endif device->subgroup_shuffle = (vk11_props.subgroupSupportedStages & vk::ShaderStageFlagBits::eCompute) && (vk11_props.subgroupSupportedOperations & vk::SubgroupFeatureFlagBits::eShuffle); device->subgroup_clustered = (vk11_props.subgroupSupportedStages & vk::ShaderStageFlagBits::eCompute) &&