]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
vulkan: change graph_compute to be async and enable get_tensor_async (#17158)
authorJeff Bolz <redacted>
Sat, 15 Nov 2025 08:06:41 +0000 (02:06 -0600)
committerGitHub <redacted>
Sat, 15 Nov 2025 08:06:41 +0000 (09:06 +0100)
commit38eaf32af1da66caa930ce37e9dca1137c66f91c
tree36aae72505b83e9840bb576790a0662fb3d83fa6
parent9b17d74ab7d31cb7d15ee7eec1616c3d825a84c0
vulkan: change graph_compute to be async and enable get_tensor_async (#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