ci(release): build the linux vulkan bundle for arm64 - #31
Merged
Conversation
The release workflow ships a vulkan bundle for linux x64 but linux arm64 only gets cpu, so arm64 hosts with a Vulkan GPU have nothing to pin. Add a vulkan/arm64 entry to the build-linux matrix on ubuntu-24.04-arm. LunarG publishes no arm64 SDK apt repo, so the LunarG install step is gated to x64 and arm64 installs the toolchain from the Ubuntu archive: libvulkan-dev (loader/headers), glslc (shaderc, to compile ggml's compute shaders), and spirv-headers. glslangValidator is not required. 24.04 rather than 22.04 because glslc/shaderc is packaged on noble but not jammy -- the same reason the cuda job already uses 24.04. The entry produces parakeet-<ver>-bin-linux-vulkan-arm64.tar.gz like the others. Like every CI-built Vulkan/CUDA bundle it is GPU-unvalidated (the runners have no GPU); shader generation and linkage are exercised on the runner.
mudler
approved these changes
Jun 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The release workflow ships a Vulkan bundle for linux x64 (and windows x64) but linux arm64 only gets a cpu bundle, so arm64 hosts with a Vulkan GPU have no prebuilt to pin.
This adds a
vulkan/arm64entry to thebuild-linuxmatrix on theubuntu-24.04-armrunner. LunarG publishes no arm64 SDK apt repo, so the LunarG install step is gated to x64 and arm64 installs the Vulkan toolchain from the Ubuntu archive instead:libvulkan-dev— loader + headersglslc(shaderc) — compiles ggml's compute shaders (find_package(Vulkan COMPONENTS glslc REQUIRED))spirv-headers— the SPIR-V registry headers (find_package(SPIRV-Headers CONFIG REQUIRED))glslangValidatoris not required.ubuntu-24.04-armrather than22.04becauseglslc/shadercis packaged on noble but not jammy — the same reason the cuda job already uses 24.04. The entry producesparakeet-<ver>-bin-linux-vulkan-arm64.tar.gz(and the matchinglib-bundle) like the other variants.Like every CI-built Vulkan/CUDA bundle this validates that the arm64 Vulkan backend builds — the runners have no GPU, so GPU execution is not exercised. Shader generation, the ggml Vulkan backend compile, and linkage are exercised on the native arm64 runner.
Validated end-to-end on a fork run with the free
ubuntu-24.04-armrunner: thevulkan/arm64job is green and attaches thebin-linux-vulkan-arm64+lib-linux-vulkan-arm64bundles; the x64 LunarG path is unchanged.