You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(whisper): Vulkan GPU acceleration for AMD/Intel GPUs (#1185)
Wire in the whisper-server Vulkan binaries shipped since binaries release
0.0.7 so AMD Radeon and Intel Arc/iGPU users on Windows/Linux get the same
one-click "Enable GPU" flow NVIDIA users get with CUDA.
- Extract src/helpers/gpuBinaryManager.js: the shared download/extract/
install pipeline behind whisperCudaManager and llamaVulkanManager (both
are now thin config subclasses), with streaming SHA256 verification
against in-app pinned digests (fail closed) or the GitHub API asset
digest.
- Add whisperVulkanManager: pinned tag 0.0.8 + pinned digests, statically
linked binaries, no companion libs.
- whisperServer: preferVulkan binary resolution, sticky useVulkan flag,
120s Vulkan startup timeout, and CPU fallback on ANY Vulkan startup
rejection (early exit, late VRAM-OOM death, or hang). CUDA keeps its
existing early-exit rule. An intentional stop() during a pending
startup now rejects instead of resurrecting the server.
- Thread useVulkan through pre-warm, per-dictation starts, and wake
re-warm (which now replays lastStartOptions instead of hardcoding CUDA).
- IPC: get/download/cancel/delete vulkan-whisper channels (download and
delete stop the server first to avoid Windows file locks; CUDA delete
now does the same), WHISPER_VULKAN_ENABLED persisted, gpu-fallback
relay beside the existing cuda-fallback one.
- UI: the CUDA card in TranscriptionModelPicker is now a GPU card that
offers CUDA on NVIDIA machines and Vulkan otherwise; ControlPanel's
unified GPU banner detects whisper-vulkan too. Reuses the existing
gpu.* i18n keys.
- Characterization tests for the shared pipeline: asset resolution,
digest fail-closed, divergent cancel semantics, cleanup on failure.
Deliberate behavior changes kept from the refactor: the CUDA disk
pre-check tightens 2x -> 2.5x, its release fetch now sends GITHUB_TOKEN
when set (rate limits), and download archives stage in the OS temp dir
instead of userData/bin.
0 commit comments