]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
vulkan: Call ggml_vk_buffer_write_2d from ggml_vk_buffer_copy (#16793)
authorJeff Bolz <redacted>
Wed, 29 Oct 2025 08:53:04 +0000 (03:53 -0500)
committerGitHub <redacted>
Wed, 29 Oct 2025 08:53:04 +0000 (09:53 +0100)
This lets the copy to the destination device use the host-visible
vidmem optimization.

ggml/src/ggml-vulkan/ggml-vulkan.cpp

index 173677a2637a982ef20d9942cb89dd4ba311f313..5caf37d4030ad1568061381b244d43e178b5693d 100644 (file)
@@ -5652,14 +5652,11 @@ static void ggml_vk_buffer_copy(vk_buffer& dst, size_t dst_offset, vk_buffer& sr
         VK_LOG_DEBUG("ggml_vk_buffer_copy(MULTI_DEVICE, " << size << ")");
         // Copy device to device
         ggml_vk_ensure_sync_staging_buffer(src->device, size);
-        ggml_vk_ensure_sync_staging_buffer(dst->device, size);
 
         // Copy to src staging buffer
         ggml_vk_buffer_copy(src->device->sync_staging, 0, src, src_offset, size);
-        // memcpy to dst staging buffer
-        memcpy(dst->device->sync_staging->ptr, src->device->sync_staging->ptr, size);
         // Copy to dst buffer
-        ggml_vk_buffer_copy(dst, dst_offset, dst->device->sync_staging, 0, size);
+        ggml_vk_buffer_write_2d(dst, dst_offset, src->device->sync_staging->ptr, 0, size, 1);
     }
 }