tmp: probe chunk import success
This commit is contained in:
@@ -17945,6 +17945,7 @@ static bool ggml_backend_vk_register_host_buffer(void * buffer, size_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool success = false;
|
bool success = false;
|
||||||
|
size_t total_registered = 0;
|
||||||
for (size_t i = 0; i < GGML_VK_MAX_DEVICES; i++) {
|
for (size_t i = 0; i < GGML_VK_MAX_DEVICES; i++) {
|
||||||
vk_device& device = vk_instance.devices[i];
|
vk_device& device = vk_instance.devices[i];
|
||||||
if (!device || !device->external_memory_host || device->max_buffer_size == 0) {
|
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<uint8_t *>(buffer);
|
uint8_t * p = static_cast<uint8_t *>(buffer);
|
||||||
size_t remaining = size;
|
size_t remaining = size;
|
||||||
bool dev_success = false;
|
bool dev_success = false;
|
||||||
|
size_t n_chunks = 0;
|
||||||
while (remaining > 0) {
|
while (remaining > 0) {
|
||||||
size_t cur = std::min(remaining, chunk);
|
size_t cur = std::min(remaining, chunk);
|
||||||
vk_buffer buf = ggml_vk_buffer_from_host_ptr(device, p, cur);
|
vk_buffer buf = ggml_vk_buffer_from_host_ptr(device, p, cur);
|
||||||
if (!buf || !buf->buffer) {
|
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;
|
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);
|
device->pinned_memory.emplace_back(p, cur, buf);
|
||||||
}
|
}
|
||||||
dev_success = true;
|
dev_success = true;
|
||||||
|
total_registered += cur;
|
||||||
|
n_chunks++;
|
||||||
p += cur;
|
p += cur;
|
||||||
remaining -= 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) {
|
if (dev_success) {
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user