feat: GPU llama.cpp builds via FREELLAMA_BACKEND, resumable pulls, and a configurable ready timeout - #47
Draft
johnpangalos wants to merge 1 commit into
Draft
feat: GPU llama.cpp builds via FREELLAMA_BACKEND, resumable pulls, and a configurable ready timeout#47johnpangalos wants to merge 1 commit into
johnpangalos wants to merge 1 commit into
Conversation
…t override - FREELLAMA_BACKEND=vulkan|cuda|rocm|... downloads the matching GPU variant of the prebuilt llama.cpp release (installed to bin/<tag>-<backend> so variants of the same tag don't collide); default stays the CPU/Metal build. - Interrupted model downloads keep their .partial file and resume with an HTTP Range request on the next pull instead of restarting from zero. - FREELLAMA_READY_TIMEOUT overrides the 180 s llama-server startup cap, which large models (tens of GB) can legitimately exceed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Owner
Author
Laguna S 2.1 benchmark results (RX 9070 XT 16 GB + 32 GB RAM, Vulkan b10088)Model:
Generation plateaus ~10 t/s at FREELLAMA_BACKEND=vulkan \
FREELLAMA_READY_TIMEOUT=600 \
FREELLAMA_CTX=8192 \
FREELLAMA_SERVER_ARGS="-ngl 99 --n-cpu-moe 32 -fa on -t 16" \
freellama run unsloth/Laguna-S-2.1-GGUF:UD-Q2_K_XL→ 9.9 t/s generation, ~7 t/s prompt eval, vs 2.3 t/s untuned (all experts on CPU). A 118B-param model at usable speed on a gaming PC. Note: Laguna support landed in llama.cpp master today (ggml-org/llama.cpp#25165, first release |
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.
Born from getting poolside's freshly released Laguna S 2.1 (118B MoE, 8.5B active) running through freellama on a 16 GB AMD RX 9070 XT + 32 GB RAM machine. Three gaps surfaced, each fixed here:
FREELLAMA_BACKEND — GPU release builds
pickAssetalways chose the plain CPU build and actively penalized every GPU variant, so a GPU machine ran inference on CPU unless the user built llama.cpp themselves.FREELLAMA_BACKEND=vulkan(orcuda,rocm,sycl, ...) now selects the matching prebuilt asset from the same llama.cpp release. Variants install tobin/<tag>-<backend>so they don't collide with the CPU build of the same tag, and the default behavior is unchanged. Verified live:vulkanfetchedllama-b10088-bin-ubuntu-vulkan-x64.tar.gzand the default still resolves the plain build, ignoring the-vulkandir.Resumable pulls
An interrupted download restarted from zero — painful at Laguna size (39.7 GB for unsloth's UD-Q2_K_XL).
downloadGgufnow keeps the.partialfile and resumes it with an HTTPRangerequest; a server that ignores the range falls back to a full restart, and a 416 clears the stale partial. Verified live: a 7.7 GB partial resumed at 20% instead of restarting.FREELLAMA_READY_TIMEOUT
The 180 s llama-server readiness cap was hardcoded and SIGKILLs a model that loads slower — realistic for tens-of-GB models. Now overridable in seconds via env, same default.
Tests cover backend asset selection, the resume path (206 + range-ignored restart), and timeout parsing.
deno task checkanddeno task test(25/25) pass.Laguna S 2.1 benchmark results on the RX 9070 XT to follow in a comment.
🤖 Generated with Claude Code