diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index 9781e286c..b7365e5d1 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -1602,8 +1602,6 @@ static void ggml_vk_mul_mat_f16(const ggml_tensor * src0, const ggml_tensor * sr } } - ggml_vk_host_free(fp16_staging); - ggml_vk_submit(vk_transfer_queues[0], transfer_0_seqs, VK_NULL_HANDLE); // cleanup waits for the queue to be done @@ -1611,6 +1609,8 @@ static void ggml_vk_mul_mat_f16(const ggml_tensor * src0, const ggml_tensor * sr ggml_vk_queue_cleanup(vk_transfer_queues[1]); ggml_vk_queue_cleanup(vk_compute_queue); + ggml_vk_host_free(fp16_staging); + if (src0->backend != GGML_BACKEND_GPU) { ggml_vk_pool_free(d_X); }