]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commit
vulkan: change graph_compute to be async and enable get_tensor_async (llama/17158)
authorJeff Bolz <redacted>
Sat, 15 Nov 2025 08:06:41 +0000 (02:06 -0600)
committerGeorgi Gerganov <redacted>
Mon, 17 Nov 2025 19:05:46 +0000 (21:05 +0200)
commit37d4bba152ca9912b4064c423cc20caee746c69b
tree0301edcc14b16cea9da161c4bb5f4d652a0a8200
parent523a6c27eaf5869080bd695ac59a09448f9eeca1
vulkan: change graph_compute to be async and enable get_tensor_async (llama/17158)

* vulkan: change graph_compute to be async and enable get_tensor_async

This allows some additional CPU/GPU overlap for large pp workloads. Also seems
to help a bit for token gen, maybe getting rid of a small bubble between
graph_compute and get_tensor.

Async set and copy functions seem to be very rarely used, so I didn't enable
them because I didn't have a good way to test them.

The async commands need to be ordered against each other, so put them all on
the compute queue. The non-async commands still use the transfer queue.

The fence for graph_compute/get_tensor_async is submitted and waited on in
ggml_vk_synchronize.

* fix thread safety errors

* teardown context cleanly

* Handle async read to non-pinned dst
ggml/src/ggml-vulkan/ggml-vulkan.cpp