Skip to content

ci(release): build the linux vulkan bundle for arm64 - #31

Merged
mudler merged 1 commit into
mudler:masterfrom
quartzjer:ci/release-arm64-vulkan
Jun 19, 2026
Merged

ci(release): build the linux vulkan bundle for arm64#31
mudler merged 1 commit into
mudler:masterfrom
quartzjer:ci/release-arm64-vulkan

Conversation

@quartzjer

Copy link
Copy Markdown
Contributor

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/arm64 entry to the build-linux matrix on the ubuntu-24.04-arm runner. 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 + headers
  • glslc (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))

glslangValidator is not required. ubuntu-24.04-arm 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 (and the matching lib- 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-arm runner: the vulkan/arm64 job is green and attaches the bin-linux-vulkan-arm64 + lib-linux-vulkan-arm64 bundles; the x64 LunarG path is unchanged.

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
mudler merged commit db755a7 into mudler:master Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants