ggml-vulkan: don't assert compute_ctx empty before perf timestamp
Pinned async host uploads can record into compute_ctx before graph compute, so the perf logger's opening timestamp must append after them instead of asserting the context is expired. Without this, profiling (GGML_VK_PERF_LOGGER) crashes whenever host-register pinning is on. Assisted-by: Claude
This commit is contained in:
@@ -16685,7 +16685,7 @@ static ggml_status ggml_backend_vk_graph_compute(ggml_backend_t backend, ggml_cg
|
|||||||
std::fill(ctx->query_nodes.begin(), ctx->query_nodes.end(), nullptr);
|
std::fill(ctx->query_nodes.begin(), ctx->query_nodes.end(), nullptr);
|
||||||
std::fill(ctx->query_node_idx.begin(), ctx->query_node_idx.end(), 0);
|
std::fill(ctx->query_node_idx.begin(), ctx->query_node_idx.end(), 0);
|
||||||
|
|
||||||
GGML_ASSERT(ctx->compute_ctx.expired());
|
// compute_ctx may hold async host uploads recorded before the graph; append the timestamp after them
|
||||||
compute_ctx = ggml_vk_get_compute_ctx(ctx);
|
compute_ctx = ggml_vk_get_compute_ctx(ctx);
|
||||||
ctx->query_idx = 0;
|
ctx->query_idx = 0;
|
||||||
compute_ctx->s->buffer->buf.writeTimestamp(vk::PipelineStageFlagBits::eAllCommands, ctx->query_pool, ctx->query_idx++);
|
compute_ctx->s->buffer->buf.writeTimestamp(vk::PipelineStageFlagBits::eAllCommands, ctx->query_pool, ctx->query_idx++);
|
||||||
|
|||||||
Reference in New Issue
Block a user