33 lines
1.4 KiB
Diff
33 lines
1.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jeff Bolz <jbolz@nvidia.com>
|
|
Date: Wed, 29 Oct 2025 03:53:04 -0500
|
|
Subject: [PATCH] vulkan: Call ggml_vk_buffer_write_2d from ggml_vk_buffer_copy
|
|
(#16793)
|
|
|
|
This lets the copy to the destination device use the host-visible
|
|
vidmem optimization.
|
|
---
|
|
ggml/src/ggml-vulkan/ggml-vulkan.cpp | 5 +----
|
|
1 file changed, 1 insertion(+), 4 deletions(-)
|
|
|
|
diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp
|
|
index 221e29509..18b7cbccf 100644
|
|
--- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp
|
|
+++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp
|
|
@@ -5654,14 +5654,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);
|
|
}
|
|
}
|
|
|