This repository was archived by the owner on Jul 30, 2025. It is now read-only.
Add Vulkan GPU enumeration support (related to #160) #227
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Adds a safe Rust wrapper for Vulkan GPU enumeration that mirrors the SYCL request in #160 but targets the
ggml_backend_vk_*APIs instead.What’s included
vulkanfeature is enabledggml_backend_vk_get_device_count,ggml_backend_vk_get_device_description,ggml_backend_vk_get_device_memory,ggml_backend_vk_buffer_typeVkDeviceInfo— human-readable metadata (name, VRAM, buffer type)list_devices()— returnsVec<VkDeviceInfo>in discrete-then-integrated orderenumerate_must_not_panicsane_device_infoWhy
Selecting the optimal GPU at runtime is vital on multi-GPU rigs (e.g. dGPU + iGPU).
While ggml already exposes Vulkan back-end helpers, whisper-rs could not reach them.
This PR fills that gap and lets downstream users build zero-copy buffers on the
device returned by
list_devices().Notes
vulkan— no extra dependencies.