Skip to content

Conversation

mbaudier
Copy link
Contributor

This PR introduces a GitHub action building the Vulkan backend on Ubuntu using the default distribution packages. The goal is to be closer to the official Debian packaging of ggml and llama.cpp (which will be used by Ubuntu at some point) and also to test against an older, but still in use, version of Vulkan (v1.3).

I am co-maintainer (with @ckastner) of the official Debian packages for ggml and llama.cpp. I have contributed the packaging of the ggml Vulkan backend, and I am therefore following more closely its portability. We regularly face issues [e.g. 1, 2, 3] on Debian 12/bookworm, which is still widely used, because it is using Vulkan v1.3, as is also the case of Ubuntu 24.04.

As we plan to soon provide backported ggml and llama.cpp packages for bookworm (until August 2026), it would be great if such compatibility issues could be caught directly during llama.cpp development. Otherwise we only notice them when the code gets merged into the ggml repository and when we then update the packages (which can take weeks).

Moreover, at some point these Debian packages will likely also become the Ubuntu packages, so it would be useful long-term to have a straightforward build based on Ubuntu's Vulkan packages, in addition to the build based on the downloaded latest Vulkan SDK.

Dynamic backend loading and all CPU variants is enabled in this build, as is the case in the official Debian packages, but this could be disabled in order to make the build a bit faster.

[1] #11117
[2] #15939
[3] #16345

@mbaudier mbaudier requested a review from CISC as a code owner October 12, 2025 10:18
@github-actions github-actions bot added the devops improvements to build systems and github actions label Oct 12, 2025
@CISC
Copy link
Collaborator

CISC commented Oct 12, 2025

My greatest concern is adding another very long running CI to the queue, can we do without the Test step or is that part of something we might expect to break?

@mbaudier
Copy link
Contributor Author

No, you are right, the tests are unnecessary here. That is really the build combination that we are testing.

I have removed them.

@CISC CISC merged commit 8415f61 into ggml-org:master Oct 12, 2025
58 of 59 checks passed
gabe-l-hart added a commit to gabe-l-hart/llama.cpp that referenced this pull request Oct 13, 2025
* origin/master: (32 commits)
metal : FA support F32 K and V and head size = 32 (ggml-org#16531)
graph : support cacheless embeddings with FA and iSWA (ggml-org#16528)
opencl: fix build targeting CL 2 (ggml-org#16554)
CUDA: fix numerical issues in tile FA kernel (ggml-org#16540)
ggml : fix build broken with -march=armv9-a on MacOS (ggml-org#16520)
CANN: fix CPU memory leak in CANN backend (ggml-org#16549)
fix: add remark plugin to render raw HTML as literal text (ggml-org#16505)
metal: add support for opt_step_sgd (ggml-org#16539)
ggml : fix scalar path for computing norm (ggml-org#16558)
CANN: Update several operators to support FP16 data format (ggml-org#16251)
metal : add opt_step_adamw and op_sum (ggml-org#16529)
webui: remove client-side context pre-check and rely on backend for limits (ggml-org#16506)
[SYCL] fix UT fault cases: count-equal, argsort, pad OPs (ggml-org#16521)
ci : add Vulkan on Ubuntu with default packages build (ggml-org#16532)
common : handle unicode during partial json parsing (ggml-org#16526)
common : update presets (ggml-org#16504)
ggml : Fix FP16 ELU positive branch (ggml-org#16519)
hparams : add check for layer index in is_recurrent (ggml-org#16511)
ggml: Correct SVE implementation in ggml_vec_dot_f16_unroll (ggml-org#16518)
CUDA: faster tile FA, add oob checks, more HSs (ggml-org#16492)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devops improvements to build systems and github actions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants