From: Jeff Bolz Date: Tue, 18 Nov 2025 06:41:24 +0000 (-0600) Subject: vulkan: support noncontig i32 copy (llama/17328) X-Git-Tag: upstream/1.8.3~275 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=24b981eff7232b6abbffc36931d045928eff67df;p=pkg%2Fggml%2Fsources%2Fwhisper.cpp vulkan: support noncontig i32 copy (llama/17328) --- diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 75b76e59..11262c19 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -13644,10 +13644,11 @@ static bool ggml_backend_vk_device_supports_op(ggml_backend_dev_t dev, const ggm } // We can handle copying from a type to the same type if it's - // contiguous (memcpy). We use f16 or f32 shaders to do the copy, + // either not quantized or is quantized and contiguous. + // We use f16 or f32 shaders to do the copy, // so the type/block size must be a multiple of 4. if (src0_type == src1_type && - ggml_is_contiguous(op->src[0]) && ggml_is_contiguous(op) && + (!ggml_is_quantized(src0_type) || (ggml_is_contiguous(op->src[0]) && ggml_is_contiguous(op))) && (ggml_type_size(src0_type) % 2) == 0) { return true; }