Skip to content

fix(continuum-core/gpu): detect Vulkan via vulkaninfo (was missing entirely)#1039

Merged
joelteply merged 1 commit into
canaryfrom
fix/detect-vulkan-via-vulkaninfo
May 4, 2026
Merged

fix(continuum-core/gpu): detect Vulkan via vulkaninfo (was missing entirely)#1039
joelteply merged 1 commit into
canaryfrom
fix/detect-vulkan-via-vulkaninfo

Conversation

@joelteply
Copy link
Copy Markdown
Contributor

detect_gpu had only Metal + CUDA branches, no Vulkan — every continuum-core-vulkan binary panicked at boot. Adds detect_vulkan() mirroring detect_cuda subprocess shape (vulkaninfo --summary, already in runtime image). Works with NVIDIA / mesa-radv / mesa-llvmpipe / any ICD. Unblocks PR #1038 and #1035.

…tirely)

detect_gpu() in memory_manager.rs only had Metal and CUDA branches.
Vulkan was listed as a "supported path" in the panic message + Cargo
features but never actually wired into detection. Result: every
continuum-core-vulkan build panicked at boot with "No GPU detected"
regardless of whether a Vulkan ICD was present (NVIDIA, mesa-radv,
mesa-llvmpipe, etc).

Caught live during Carl-Windows install retest of the vulkan variant
on bigmama-1 (continuum-b69f, 2026-05-04): freshly-built
continuum-core-vulkan:108bbc33d image had libvulkan1 +
mesa-vulkan-drivers + vulkan-tools installed in the runtime stage,
but the binary never asked the loader anything — it fell straight
through detect_gpu()'s if-cuda-cfg → panic.

Fix: add detect_vulkan() that mirrors detect_cuda's nvidia-smi
subprocess approach. Calls vulkaninfo --summary (already in the
runtime image via the vulkan-tools apt package), parses the first
deviceName line. Works with any ICD: NVIDIA's loader on a GPU host,
mesa-llvmpipe (software) on a no-/dev/dri runner like
ubuntu-latest CI, mesa-radv on AMD, etc.

Memory size is conservative (4 GiB) because vulkaninfo --summary
doesn't reliably report device-local heap totals across all ICDs
without pulling in `ash`. Real allocations go through the Vulkan
loader at runtime via candle/llama.cpp's vulkan backend, so this
number only seeds GpuMemoryManager's budget estimator.

Unblocks: PR #1038 (drop core variant + default to vulkan) and
#1035 (canary→main), both of which were stuck on the smoke gate
that requires a vulkan binary to actually start.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@joelteply joelteply merged commit e41dbb7 into canary May 4, 2026
3 checks passed
@joelteply joelteply deleted the fix/detect-vulkan-via-vulkaninfo branch May 4, 2026 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant