From 7629a02fe6f12caa68f4af800f89dd06b0c93301 Mon Sep 17 00:00:00 2001 From: Cass Date: Tue, 7 Jul 2026 23:31:26 -0500 Subject: [PATCH] ci(release): drop CUDA and SYCL targets; ship CPU/Vulkan/macOS only 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 --- .github/workflows/release.yml | 45 +---------------------------------- README.md | 15 ++++-------- 2 files changed, 6 insertions(+), 54 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9e79672..d5673e0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,22 +28,12 @@ jobs: target: x86_64-unknown-linux-gnu suffix: "" prebuilt: llama-b9837-bin-ubuntu-x64.tar.gz - - name: Linux-x86_64-cuda - os: ubuntu-22.04 - target: x86_64-unknown-linux-gnu - suffix: -cuda - cuda: true - name: Linux-x86_64-vulkan os: ubuntu-24.04 target: x86_64-unknown-linux-gnu suffix: -vulkan vulkan: true prebuilt: llama-b9837-bin-ubuntu-vulkan-x64.tar.gz - - name: Linux-x86_64-sycl - os: ubuntu-22.04 - target: x86_64-unknown-linux-gnu - suffix: -sycl - sycl: true steps: - uses: actions/checkout@v4 with: @@ -64,24 +54,10 @@ jobs: echo "LLAMA_CPP_PREBUILT_DIR=/tmp/llama-prebuilt/llama-b9837" >> "$GITHUB_ENV" echo "LLAMA_PREBUILT_SRC=/tmp/llama-prebuilt/llama-b9837" >> "$GITHUB_ENV" - # Source build dependencies (only needed when no prebuilt archive is used) - - name: Install deps (Linux) - if: runner.os == 'Linux' && !matrix.prebuilt - run: sudo apt-get update && sudo apt-get install -y cmake libclang-dev pkg-config libssl-dev libopenblas-dev - - name: Install deps (Linux, prebuilt) if: runner.os == 'Linux' && matrix.prebuilt run: sudo apt-get update && sudo apt-get install -y libclang-dev libssl-dev - - name: Install CUDA toolkit - if: matrix.cuda - uses: Jimver/cuda-toolkit@v0.2.22 - with: - cuda: "12.6.3" - method: network - sub-packages: '["nvcc", "cudart"]' - non-cuda-sub-packages: '["libcublas", "libcublas-dev"]' - # libvulkan-dev provides the unversioned libvulkan.so the linker needs # (-lvulkan). Required even for the prebuilt Vulkan target: its archive # ships libggml-vulkan but links against the system Vulkan loader. @@ -89,19 +65,6 @@ jobs: if: matrix.vulkan run: sudo apt-get update && sudo apt-get install -y glslc libvulkan-dev - - name: Add Intel oneAPI repository - if: matrix.sycl - run: | - cd /tmp - wget -qO- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | sudo gpg --dearmor -o /usr/share/keyrings/intel-oneapi-archive-keyring.gpg - echo "deb [signed-by=/usr/share/keyrings/intel-oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/intel-oneapi.list - - - name: Install Intel oneAPI - if: matrix.sycl - run: | - sudo apt-get update - sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp intel-oneapi-mkl-devel - - name: Install deps (macOS) if: runner.os == 'macOS' run: brew install openssl@3 @@ -117,14 +80,8 @@ jobs: - name: Build release binary env: - GGML_CUDA: ${{ matrix.cuda && 'ON' || '' }} - GGML_SYCL: ${{ matrix.sycl && 'ON' || '' }} GGML_VULKAN: ${{ matrix.vulkan && 'ON' || '' }} - run: | - if [ "${{ matrix.sycl }}" = "true" ]; then - source /opt/intel/oneapi/setvars.sh - fi - cargo build --release --features llama-native -p autocommit-cli --target ${{ matrix.target }} + run: cargo build --release --features llama-native -p autocommit-cli --target ${{ matrix.target }} - name: Package artifact run: | diff --git a/README.md b/README.md index c70ebc8..3959111 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ No API keys. No cloud. Fully local inference powered by [llama.cpp](https://gith - **Commit generation** — analyzes staged/worktree diffs, generates conventional commit messages with interactive approve/edit/cancel flow - **PR generation** — generates PR title and body, creates or updates pull requests via `gh`, with branch selection and optional push - **Version bump recommendations** — detects manifest files (Cargo.toml, package.json, go.mod, etc.), suggests semver bumps, syncs lockfiles after applying -- **Local inference** — ships with llama.cpp compiled in, supports Metal (macOS), CUDA (NVIDIA), Vulkan (cross-vendor), and SYCL (Intel) GPU acceleration +- **Local inference** — ships with llama.cpp compiled in. Pre-built binaries cover CPU, Metal (macOS), and Vulkan (cross-vendor GPU); CUDA (NVIDIA) and SYCL (Intel) are supported when building from source - **Per-repo config** — caches model state and runtime settings under `.git/autocommit/` for fast subsequent runs ## Installation @@ -37,17 +37,9 @@ sudo mv autocommit /usr/local/bin/ curl -L https://github.com/MicroPerceptron/autocommit/releases/latest/download/autocommit-x86_64-unknown-linux-gnu.tar.gz | tar xz sudo mv autocommit /usr/local/bin/ -# Linux (CUDA — NVIDIA GPUs) -curl -L https://github.com/MicroPerceptron/autocommit/releases/latest/download/autocommit-x86_64-unknown-linux-gnu-cuda.tar.gz | tar xz -sudo mv autocommit /usr/local/bin/ - # Linux (Vulkan — Intel/AMD/NVIDIA GPUs, requires Vulkan drivers) curl -L https://github.com/MicroPerceptron/autocommit/releases/latest/download/autocommit-x86_64-unknown-linux-gnu-vulkan.tar.gz | tar xz sudo mv autocommit /usr/local/bin/ - -# Linux (SYCL — Intel GPUs, requires Intel oneAPI runtime) -curl -L https://github.com/MicroPerceptron/autocommit/releases/latest/download/autocommit-x86_64-unknown-linux-gnu-sycl.tar.gz | tar xz -sudo mv autocommit /usr/local/bin/ ``` ### cargo binstall @@ -68,12 +60,15 @@ cargo install --path crates/cli --locked --features llama-native #### GPU backend selection -By default, Metal is used on macOS and CUDA is auto-detected on Linux. To build with a different GPU backend: +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 +# CUDA / NVIDIA (requires CUDA Toolkit) +GGML_CUDA=ON cargo install --path crates/cli --locked --features llama-native + # SYCL / Intel oneAPI (requires oneAPI toolkit) source /opt/intel/oneapi/setvars.sh GGML_SYCL=ON cargo install --path crates/cli --locked --features llama-native