diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index dcdfc3ac9..6696f122f 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -17945,6 +17945,7 @@ static bool ggml_backend_vk_register_host_buffer(void * buffer, size_t size) { } bool success = false; + size_t total_registered = 0; for (size_t i = 0; i < GGML_VK_MAX_DEVICES; i++) { vk_device& device = vk_instance.devices[i]; if (!device || !device->external_memory_host || device->max_buffer_size == 0) { @@ -17960,10 +17961,12 @@ static bool ggml_backend_vk_register_host_buffer(void * buffer, size_t size) { uint8_t * p = static_cast(buffer); size_t remaining = size; bool dev_success = false; + size_t n_chunks = 0; while (remaining > 0) { size_t cur = std::min(remaining, chunk); vk_buffer buf = ggml_vk_buffer_from_host_ptr(device, p, cur); if (!buf || !buf->buffer) { + fprintf(stderr, "PROBE chunk import FAILED at offset %zu cur=%zu remaining=%zu\n", (size_t)(p - (uint8_t*)buffer), cur, remaining); break; } { @@ -17971,9 +17974,12 @@ static bool ggml_backend_vk_register_host_buffer(void * buffer, size_t size) { device->pinned_memory.emplace_back(p, cur, buf); } dev_success = true; + total_registered += cur; + n_chunks++; p += cur; remaining -= cur; } + fprintf(stderr, "PROBE device[%zu] registered %zu chunks %.2f MiB (of %.2f MiB)\n", i, n_chunks, (total_registered)/1048576.0, size/1048576.0); if (dev_success) { success = true; }