Release pipeline: drop CUDA/SYCL targets + make prebuilt binaries self-contained - #46
Merged
Merged
Conversation
The from-source CUDA and SYCL builds broke repeatedly after the b9837 bump and take ~15 min each. Vulkan already covers NVIDIA, AMD, and Intel GPUs via a prebuilt archive and passes CI, so the dedicated source-build targets are not worth the maintenance cost for autocommit's small models. - release.yml: remove the cuda and sycl matrix legs and every step that only served them (CUDA toolkit, Intel oneAPI repo/install, the non-prebuilt Linux deps step, the SYCL setvars source, and the GGML_CUDA/GGML_SYCL build env). All three remaining targets are prebuilt. - README: drop the pre-built -cuda/-sycl download links (they will no longer be published) and note that CUDA/SYCL are build-from-source only. CUDA/SYCL remain available via `GGML_CUDA=ON` / `GGML_SYCL=ON` source builds; this only removes them from the release matrix. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR streamlines the release pipeline by removing CUDA and SYCL from the GitHub Actions release matrix, focusing releases on CPU (Linux), Vulkan (Linux), and Metal (macOS) via prebuilt llama.cpp archives, and updating the README to avoid publishing links that would 404.
Changes:
- Removed CUDA and SYCL legs (and their dedicated install/build steps) from
.github/workflows/release.yml. - Updated
README.mdto remove CUDA/SYCL prebuilt download links and clarify that CUDA/SYCL are source-build-only. - Clarified GPU backend selection guidance in the README.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
.github/workflows/release.yml |
Drops CUDA/SYCL from the release matrix and removes CUDA/oneAPI/source-build-only setup steps to speed up and stabilize releases. |
README.md |
Removes CUDA/SYCL prebuilt download commands and updates backend-selection messaging to match the new release artifacts. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+63
to
67
| The default build (and every pre-built binary) uses CPU on Linux, Metal on macOS, and Vulkan when requested. CUDA and SYCL have no pre-built binaries — selecting them requires the matching toolkit and compiles llama.cpp from source: | ||
|
|
||
| ```sh | ||
| # Vulkan (requires Vulkan SDK + glslc) | ||
| GGML_VULKAN=ON cargo install --path crates/cli --locked --features llama-native |
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.
Overview
Two related release-pipeline fixes.
1. Drop CUDA/SYCL from the release matrix
After the b9837 bump these from-source builds broke four times in a row (bridge API drift →
LLAMA_BUILD_APP→llama_params_fit→ build-info link), each costing a ~15-min CI cycle. Vulkan already covers NVIDIA, AMD, and Intel GPUs via a prebuilt archive and passes CI, so the dedicated source builds aren't worth the maintenance cost for autocommit's small models.release.yml: matrix is now the three prebuilt targets —macOS-arm64,Linux-x86_64(CPU),Linux-x86_64-vulkan. Removed the two source-build legs and every step that only served them (CUDA toolkit, Intel oneAPI repo/install, non-prebuilt Linux deps, the SYCLsetvarssource, and theGGML_CUDA/GGML_SYCLbuild env).README.md: dropped the pre-built-cuda/-sycldownload links (they'll no longer be published) and noted CUDA/SYCL are build-from-source only. Source support (GGML_CUDA=ON/GGML_SYCL=ON) is unchanged — see also fix(build): link llama-common-base so CUDA/SYCL source builds link #45, which keeps the from-source path linking.2. Make prebuilt binaries relocatable (
$ORIGINrpath)The prebuilt binaries link llama.cpp's shared libs dynamically but carried no rpath, so they died at runtime with
libllama.so.0: cannot open shared object fileunless the libs were already on the loader path. build.rs emits-Wl,-rpath, but through a dependency crate'scargo:rustc-link-arg, which — unlikelink-lib/link-search— does not propagate to the final binary. Soautocommitnever got an rpath (local or released).release.yml: set the rpath viaRUSTFLAGSin the build step ($ORIGINon Linux,@loader_pathon macOS), which does reach the binary. The Package step already bundles the libs next to it, so the tarball is now self-contained.README.md: install by extracting into a directory and symlinking the binary ontoPATH(keeping the libs beside it), instead of moving the binary alone.Verified locally
readelf -dshowsRUNPATH=$ORIGIN; the binary runs with noLD_LIBRARY_PATHboth directly and through a PATH symlink.Note
This fixes the released tarballs. A local
cargo installof a prebuilt backend still can't be self-contained (cargo copies only the binary, not the sidecar.sos) — those users need the libs on their loader path, or a from-source (static) build.