Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1044 commits
Select commit Hold shift + click to select a range
89e0aa6
opencl: default FA c8 cluster width to 16 on X1E (#26433)
wanghqc Aug 12, 2026
4dd1275
ui: add read_media tool (#25877)
parabelboi Aug 12, 2026
5d9e5ac
server : support slot save/restore with media inputs (#26640)
CHIPMUNK-T0T Aug 12, 2026
13fd0bb
cmake : add config version support (ggml/1582)
danbev Aug 12, 2026
af05a42
sync : ggml
ggerganov Aug 12, 2026
ece98b8
model : disallow integer dflash sliding_window_pattern (#26900)
CISC Aug 12, 2026
132753b
kleidiai: Add runtime feature detection mechanism for aarch64/kleidia…
JonathanC-ARM Aug 12, 2026
d8a8bea
gguf : harden loader against malformed tensor dims and metadata types…
harrison001 Aug 12, 2026
680a9ae
cmake : introduce semantic versioning (#26839)
danbev Aug 12, 2026
7a9ff95
disable rocm cache (#26962)
ggerganov Aug 12, 2026
9558fa4
ci : disable ubuntu-rocm (#26969)
ggerganov Aug 12, 2026
84e908c
ci: fix thread sanitizer + remove ccache (#26927)
netrunnereve Aug 12, 2026
8e7f22b
common: add system-level config file (#26118)
jcmdln Aug 12, 2026
e21152d
ui: Constants refactor (#26908)
ServeurpersoCom Aug 13, 2026
1f368f3
ggml : fix arm builds, unused var (#26991)
ggerganov Aug 13, 2026
a6040c9
refactor: Clean up UI types (#26909)
allozaur Aug 13, 2026
094e53d
ui: Stores architecture improvements (#26910)
allozaur Aug 13, 2026
f2efd64
ui: Move `styles/` to `$lib` scope (#26950)
allozaur Aug 13, 2026
d86c7d6
ui: Clean up contexts, remove prop drilling from Chat Form Actions (#…
allozaur Aug 13, 2026
e79e4bf
ggml-hip : remove -funsafe-math-optimizations (#26696)
jimw567 Aug 13, 2026
decaf50
server: refactor + correctness fixes for metrics (#26920)
ngxson Aug 13, 2026
d415e65
sycl : enhance concat to support Q4_0, Q4_1, Q5_0, Q5_1, Q8_0 (#26800)
arthw Aug 13, 2026
8efbf65
sycl : Add DMMV ESIMD Q3_K kernel (#26251)
malsbat Aug 13, 2026
1ee1cd9
sycl: fuse UNARY(silu|sigmoid|softplus) + MUL (#26411)
Titaniumtown Aug 13, 2026
154d57a
sycl: remove separate fp32 type promotion in gemm non-oneDNN path (#2…
icfaust Aug 13, 2026
eeae28b
ggml-cpu/ops: vectorize flash-attention V-cache F16 to F32 conversion…
jinzihao Aug 13, 2026
0d0bfcd
spec: enable backend sampling for both dflash & dspark (#26958)
ruixiang63 Aug 13, 2026
f65e568
common : auto-detect spec type from draft GGUF metadata (#26814)
aic0d3r Aug 13, 2026
4a84b0a
metal : add TQ2_0 support (#26980)
ggerganov Aug 13, 2026
1d2869c
spec : auto-detect mtp draft model type (#27005)
CISC Aug 13, 2026
981184e
server : serve index.html with no-cache (#27006)
erusev Aug 13, 2026
2606220
chat : fix LFM2 tool call arg name prefix ambiguity (#26960)
aldehir Aug 13, 2026
a97123e
[SYCL] Support host pinned mem to improve SYCL Host-to-Device Memory …
arthw Aug 13, 2026
aee56b3
OpenVINO: Qwen3.5, memory optimization, and test-recurrent-state-roll…
wine99 Aug 13, 2026
9c5531e
ui: fix VITE_PUBLIC_SERVER variable reading (#24845)
brainrom Aug 13, 2026
fa4ec45
refactor: Naming (#27001)
allozaur Aug 13, 2026
bdffafa
ui: Refactor data-attrs constants, enum for bool strings (#27002)
ServeurpersoCom Aug 13, 2026
a94d563
common: apply CPU parameters across tools (#27026)
nikwen Aug 13, 2026
2bacf9e
dflash : clarify output logging of target_layer_ids (#27013)
danbev Aug 14, 2026
3d93885
sycl: fuse the gated-delta-net state writeback cpy (#26643)
Titaniumtown Aug 14, 2026
c6f6a92
ggml: force single thread on wasi (#25686)
MendyBerger Aug 14, 2026
6509138
sycl: fuse mul_mat(gate) + mul_mat(up) + GLU for q4_K dense FFN (#26779)
Titaniumtown Aug 14, 2026
885c5bb
tests : replace personal home directory paths with generic placeholde…
jimw567 Aug 14, 2026
77918ca
server: allow accessing /metrics and /slots during llama_decode() (#2…
ngxson Aug 14, 2026
4c1a0af
llama : allow virtual igpu devices (#26953)
ggerganov Aug 14, 2026
1692f9e
ggml : recurrent state rollback for ggml_ssm_scan (#26623)
lnigam Aug 14, 2026
06ae232
ggml : bump version to 0.20.0 (ggml/1584)
ggerganov Aug 14, 2026
9b05354
sync : ggml
ggerganov Aug 14, 2026
7e4c0a9
chat : pass reasoning_effort to template
sobakasu Aug 14, 2026
9e40df6
jinja : fix quadratic cost in gather_string_parts (#27034)
Yunzez Aug 14, 2026
6fed9f6
mtmd, common: various fixes (#27071)
ngxson Aug 14, 2026
16d222f
model : add support for MiniMaxText01ForCausalLM and MiniMaxM1ForCaus…
fairydreaming Aug 14, 2026
9d57ce4
mtmd: fix Granite4 Vision image sequence assembly (#26653)
hbattu73 Aug 14, 2026
7b38cb7
Fixed gating logic for problematic Intel driver version
rillomas Aug 14, 2026
6b4344e
fixed indent
rillomas Aug 14, 2026
0177dcc
common: migrate the deprecated --mmap/--no-mmap to --load-mode (#26934)
fboudra Aug 15, 2026
9b0a2ce
vulkan: add SHMEM_STRIDE_PAD/APPLY_SLM_A_RESHAPE for coopmat1 on Inte…
fish-jiang Aug 15, 2026
27df919
fix: check gguf array type before reading (#27075)
ngxson Aug 15, 2026
5f754ea
common: support --models-dir loading MTP assistant models (#24431)
EZForever Aug 15, 2026
77140d2
vendor : update cpp-httplib to 0.53.1 (#27103)
cabelo Aug 15, 2026
adb55e5
vendor: update BoringSSL to 0.20260813.0 (#27099)
cabelo Aug 15, 2026
22b8e31
server: re-design yield_to_queue thread model (#27133)
ngxson Aug 15, 2026
ad1de39
model: add Kimi-K3 text model (#26185)
pwilkin Aug 15, 2026
0d9ceae
ui: read structuredContent from MCP tool result when content is empty…
Gautam0507 Aug 15, 2026
ece963f
ui: mask API Key field in settings and error splash to stop browser a…
crowmoed Aug 15, 2026
10bf611
llama : check LoRA tensor data is within file bounds (#27056)
oakkaya Aug 16, 2026
b94041a
chat: refactor handling supports_string_content / supports_typed_cont…
ngxson Aug 16, 2026
3cb7ffb
model : remove some ggml_concat (#27176)
fairydreaming Aug 16, 2026
4df29be
ci : fix dry-run reporting in make-release job [no ci] (#27167)
danbev Aug 16, 2026
37a215c
[SYCL] support OP OPT_STEP_ADAMW, OPT_STEP_SGD (#25268)
arthw Aug 17, 2026
f275595
sycl: fix thread/block count in quantized cpy kernel launches (#27160)
Titaniumtown Aug 17, 2026
4695f00
llama-bench: fix deprecation warnings missing trailing newline (#27179)
fboudra Aug 17, 2026
cea66f4
ggml : bump version to 0.20.1 (ggml/1587)
ggerganov Aug 17, 2026
4197155
sync : ggml
ggerganov Aug 17, 2026
3733366
model : BailingMoE3 Support (#26608)
aetherbird Aug 17, 2026
fa88ae9
convert: add @ModelBase.example (#27208)
ngxson Aug 17, 2026
f9779dd
ci : make release workflows use a deploy key (#27229)
ggerganov Aug 17, 2026
7c35571
ci : allow make-release to target a specific commit (#27234)
ggerganov Aug 17, 2026
9f0d017
mtmd: harden preprocessor_granite (#27235)
ngxson Aug 17, 2026
d83f72d
ci : restore release.yml check during make-release.yml (#27247)
ggerganov Aug 17, 2026
7077abb
ui: add browser get_info tool (#27251)
ngxson Aug 17, 2026
9cd719a
model: support speculators-format checkpoints for DSpark (#26275)
wjinxu Aug 17, 2026
805984d
ci : reduce builds in build-xcframework.sh (#27252)
ggerganov Aug 17, 2026
666f889
ui: move get_datetime tool to frontend (#27255)
ngxson Aug 17, 2026
34af94c
ci : push release tag explicitly in release.yml (#27261)
ggerganov Aug 17, 2026
39be55c
vendor: move hash to vendor (#27262)
ngxson Aug 17, 2026
60eeeb6
cuda : skip UMA override for HIP builds (#27083)
superm1 Aug 17, 2026
b75ecd1
mtmd : skip thumbnail for non-tiled LFM2 images (#27246)
tdakhran Aug 17, 2026
d8df12e
vocab : support integer tokenizer scores (#27260)
CISC Aug 17, 2026
ed1c3a2
mtmd: use sha256 for input hashing (#27274)
ngxson Aug 17, 2026
533b182
server: save processed mtmd chunks as placeholder (#27278)
ngxson Aug 17, 2026
087f94d
doc: document MCP stdio servers and CORS defaults in the server READM…
ServeurpersoCom Aug 17, 2026
058df67
ci: more optimizations (#26983)
netrunnereve Aug 17, 2026
0021a77
ui: Refactor Built-In Tools naming (Server/Browser) (#27271)
allozaur Aug 17, 2026
01818e4
ui: enforce alphabetical enum member ordering (#27272)
ngxson Aug 17, 2026
25ae3a9
CUDA: MMVQ nwarps=8 for bs=1 for dense models on DGX Spark (#26843)
ynankani Aug 18, 2026
8b86400
ci : create pre-release with change log and nightly link in make-rele…
ggerganov Aug 18, 2026
27e345b
build : fix xcframework + cmake clean-up (#27304)
ggerganov Aug 18, 2026
da786dc
ggml : bump version to 0.20.2 (ggml/1589)
ggerganov Aug 18, 2026
1511ce3
sync : ggml
ggerganov Aug 18, 2026
7acdbb1
mtmd: fix LFM2 image tiling threshold (#27057)
BlackFoil Aug 18, 2026
c029602
ci: add Windows ARM64 CUDA support to the manual workflow (#27300)
shivamkumard-ctrl Aug 18, 2026
9d77fa1
ci : Update OpenVINO to 2026.3, skip nemotron-h rollback test (#27292)
wine99 Aug 18, 2026
169e4a7
readme : update status badges + regen AUTHORS (#27317)
ggerganov Aug 18, 2026
afd439d
unicode : include '~' in collapsed symbol class (#26972)
tarruda Aug 18, 2026
0882c7b
sycl: honor GGML_HINT_SRC0_IS_HADAMARD (#27298)
Titaniumtown Aug 18, 2026
0596704
quant : Optimise memory usage by evicting weights after processing ea…
EAddario Aug 18, 2026
04b5691
common: share thread pools when `n_threads` differ (#27138)
nikwen Aug 18, 2026
fdf4c64
ui: Stores consolidation refactor (#27238)
allozaur Aug 18, 2026
3dc7285
ui: Services consolidation refactor (#27239)
allozaur Aug 18, 2026
af51726
RPC: populate use_count to enable fusion inside backends (#27142)
am17an Aug 18, 2026
9731ad3
mtmd: deepseek-ocr SAM ggml_conv_2d with the im2col kept in F32 (#26727)
sfallah Aug 18, 2026
60adddd
opencl: fix WAR race in the generic FA tile kernels when the WG spans…
wanghqc Aug 18, 2026
6d05498
server: (cosmetic) do not print cmd_child_to_router messages [no rele…
ngxson Aug 18, 2026
0329fcd
gguf-py : add size guards to GGUFReader (#27188)
oakkaya Aug 19, 2026
79fe799
tests: skip test-unicode build on win32/BUILD_SHARED_LIBS (#27336)
jeffbolznv Aug 19, 2026
0adcc3b
ci : add attestation for signed release artifacts (#25933)
quartzjer Aug 19, 2026
5112b97
ggml-webgpu: add mulmat with overlapping src0/src1 (e.g., for minimax…
yomaytk Aug 19, 2026
98d1e92
vulkan: tiled transpose for 0<->2 permuted CONT (#26585)
kh0pper Aug 19, 2026
ee4c505
server: add dedup-cache-models preset option (#27346)
ngxson Aug 19, 2026
8ef78e6
metal : dequantize q8_0 using packed types (#27370)
ggerganov Aug 19, 2026
95c409c
mtmd: add mtmd_bitmap_set_mergeable (#27348)
ngxson Aug 19, 2026
77acca4
ui: read persisted settings before the API key probe (#27365)
ServeurpersoCom Aug 19, 2026
fe8156f
ggml: add ggml_rope_set_offset (+ metal support) (#27120)
ngxson Aug 19, 2026
645ca28
ci : re-enable release dependency for sycl (#27385)
CISC Aug 19, 2026
2e92ecd
models : remove duplicate metadata load (#27378)
CISC Aug 19, 2026
01ac3ad
ci : add release attestation url (#27389)
CISC Aug 19, 2026
6cc504a
sycl: report zero devices instead of aborting when the host has none …
Titaniumtown Aug 19, 2026
7221e24
model : GraniteSWAForCausalLM / GraniteMoeSWAForCausalLM (#25505)
gabe-l-hart Aug 19, 2026
3e73446
Revert "common: share thread pools when `n_threads` differ (#27138)" …
nikwen Aug 19, 2026
b95502b
vulkan: add null checks in ggml_vk_queue_command_pools_cleanup (#27353)
jetsontan Aug 19, 2026
dc72703
vulkan : dequant q8_0 KV once in coopmat1 (#25494)
Nathanw1014 Aug 19, 2026
ee0ea03
server : make models endpoints private when authentication is enabled…
s0mecode Aug 19, 2026
947fd9b
server: refactor sleep handling, allow access /metrics during sleep (…
ngxson Aug 19, 2026
cd644c3
ggml-cpu: gate __fp16 on __ARM_FP16_FORMAT_IEEE (#26860)
ServeurpersoCom Aug 19, 2026
b062ba7
opencl: port fused ssm_scan kernel (Mamba-2, d_state in {128, 256}) t…
wanghqc Aug 19, 2026
990e3bf
hexagon: fix FA HMX queue ordering and pack the rescale D matrices (#…
njsyw1997 Aug 19, 2026
d59d455
tensor-split meta backend fixes (#26502)
max-krasnyansky Aug 19, 2026
9ee9fc0
opencl: make the MoE expert scatter deterministic (#26464)
wanghqc Aug 20, 2026
2cfdb5f
vulkan : add source groups for shaders (#26666)
mtavenrath Aug 20, 2026
f466cfa
spec : avoid binding reference to null pointer (#27404)
ggerganov Aug 20, 2026
929d47a
graph : create V as a view of K in the k_iswa build_attn (#27392)
ggerganov Aug 20, 2026
d9b6be0
ggml-cuda: provide static workspace for cuBLAS handles (#26574)
heislera763 Aug 20, 2026
a3b1eff
convert: fix get block count error for Nemotron 3 Ultra (#27101)
rockchenn Aug 20, 2026
8497981
ggml: fix backend split scheduler race condition (#26040)
0cc4m Aug 20, 2026
f20395d
Revert "tensor-split meta backend fixes (#26502)" (#27433)
ggerganov Aug 20, 2026
70aff25
metal : dequantize quantized KV to F16 before flash attention (#27390)
ggerganov Aug 20, 2026
dc64a16
common : gracefully fallback on unsupported regex patterns in JSON sc…
aldehir Aug 20, 2026
2b56210
CUDA: adding switch points per HW and quant type to tune the mvq->MMQ…
praneshgo Aug 20, 2026
8a832e4
server : fix --docker-repo being treated as router mode (#27416)
AriBandyo Aug 20, 2026
9855ad6
server: (router) lazy-load startup_models after main setup (#27424)
ngxson Aug 20, 2026
bf0040e
CI: Use LLVM's OpenMP over MSVC_DEBUG_non_redist on Windows (#26678)
ORippler Aug 20, 2026
63b64a5
metal : dequant kv cache only for large batches (#27438)
ggerganov Aug 20, 2026
78ec4c3
vulkan: FA MMQ should use fp32 for Q quantization calculations (#27413)
jeffbolznv Aug 20, 2026
07822bd
model : support DSpark for LFM2 models (#27383)
tdakhran Aug 20, 2026
681c29d
mtmd: add --mmproj-device argument (#23255)
Interpause Aug 20, 2026
521a64c
ui: Stores split refactor (#27240)
allozaur Aug 20, 2026
6b4fa88
opencl: fix local size for norm (#27339)
lhez Aug 20, 2026
6503355
opencl: fix q6_K flat mul_mat for Adreno A6x/A7x GPUs with older E031…
wanghqc Aug 20, 2026
a302733
metal : clamp K extent in tensor API mat-mat kernel for K not a multi…
ggerganov Aug 20, 2026
0e1d918
ci: use shell script to check cmake pkg (#27414)
netrunnereve Aug 20, 2026
749f688
ggml: support ggml_rope_set_offset on opencl, sycl, wgpu, hexagon (#2…
ngxson Aug 20, 2026
a298422
docs: fix typos in ET.md (#27457)
itsvedantkumar Aug 21, 2026
b2e5e9b
TP: enable tensor split for LFM2/LFM2MOE (#26993)
cdanis Aug 21, 2026
9e96cf7
sycl : fix load model with mlock issue (#27250)
arthw Aug 21, 2026
6602dd3
sycl: fix multiple warnings in compiling sycl backend (#26713)
icfaust Aug 21, 2026
1cb3f5e
sycl: Update gate logic for Alchemist GPUs regarding OneDNN features.…
HumerousGorgon Aug 21, 2026
cd26896
opencl: keep the vocab-scale K-quant lm_head on the CPU for Adreno A7…
wanghqc Aug 21, 2026
9e89a19
sycl : Add Q5_K ESIMD kernel (#26376)
malsbat Aug 21, 2026
5fff128
test : make the FA V-is-view-of-K case a test case parameter (#27394)
ggerganov Aug 21, 2026
ff14356
sycl : add Q2_K reordered MMVQ and ESIMD kernels (#26336)
malsbat Aug 21, 2026
62b2269
kleidiai : add SME2 F32 GEMV kernel support (#26891)
chaxu01 Aug 21, 2026
1719747
ci : release clean-up (#27477)
ggerganov Aug 21, 2026
e467c2f
ci : add nightly-tag.txt to make-release (#27485)
ggerganov Aug 21, 2026
5b6ddc9
ui: Settings navigation cleanup (#27241)
allozaur Aug 21, 2026
7a0e42f
Revert "sycl : add Q2_K reordered MMVQ and ESIMD kernels (#26336)" (#…
ggerganov Aug 21, 2026
353b32d
ci : remove duplicate flag (#27488)
ggerganov Aug 21, 2026
01ff204
ggml : bump version to 0.21.0 (ggml/1597)
ggerganov Aug 21, 2026
5de25a7
sync : ggml
ggerganov Aug 21, 2026
c4b0225
scripts : add release.sh for release preparation (#27497)
ggerganov Aug 21, 2026
bb4caa7
llama.cpp : bump version to 0.2.0 (#27498)
ggerganov Aug 21, 2026
d7fa69b
ci : run ccache-clear as the last step of release jobs (#27503)
ggerganov Aug 21, 2026
873e5d8
model: use ggml_rope_set_offset() (#27382)
ngxson Aug 21, 2026
5a32f7b
model: add dots3-note (#27060)
ngxson Aug 21, 2026
a3b9c23
ci : fix empty release_id in make-release upload step (#27516)
ggerganov Aug 21, 2026
9a286ac
docs: improve Windows build instructions (#27381)
nikwen Aug 21, 2026
3af988f
opencl: fold the gpt-oss MoE per-expert bias adds into the epilogue (…
wanghqc Aug 21, 2026
d775b89
mtmd: support webp via ffmpeg (#27520)
ngxson Aug 21, 2026
2100e59
readme : update badges (#27531)
ggerganov Aug 22, 2026
3aeb924
readme : fix server badge alt (#27533)
CISC Aug 22, 2026
8672290
sycl : add Q2_K reordered MMVQ and ESIMD kernels (again) (#27490)
CISC Aug 22, 2026
2c6b141
common : fix draft-mtp with embeddings (#26352, #27299) (#27400)
aorko01 Aug 22, 2026
369e1cd
ggml: optimize concat op by replacing per-element memcpy with row-lev…
sirohikartik Aug 22, 2026
3a653fe
ci : add older, min and dry-run options to ccache-clear (#27504)
ggerganov Aug 22, 2026
54ee5ee
mtmd: support dots3-note vision+audio (#27524)
ngxson Aug 22, 2026
2115b73
model : support DSpark for bailingmoe3 (#27508)
btw616 Aug 22, 2026
e85caa8
ci : Restore ROCm job for Ubuntu (#27399)
superm1 Aug 22, 2026
9fee29e
arg: remove -no-cnv from cli [no ci] (#27542)
ngxson Aug 22, 2026
2fb989b
fit: also take into account n_streams (#27496)
ngxson Aug 22, 2026
d9f918d
common: add json.h abstraction (#27511)
ngxson Aug 22, 2026
b21e4de
mtmd: use ggml_rope_set_offset (#27521)
ngxson Aug 22, 2026
3f545be
vulkan : added the PAD_REFLECT_1D operation (#26586)
safiullah3915 Aug 22, 2026
70adb1b
common: json.h: fix clang lto (#27575)
ngxson Aug 22, 2026
29ea941
cuda : add POOL_1D support (#27573)
amankarki151 Aug 23, 2026
6657ded
vendor : update subprocess.h (#27409)
cabelo Aug 23, 2026
8144f31
ui: Chat Conversation Tabbed navigation (#27263)
allozaur Aug 23, 2026
d337192
[Tensor parallel] Fix meta tensor split state propagation (#27574)
gaugarg-nv Aug 23, 2026
b0539c4
DeepseekV4: fix rollback with multi-seq (#26756)
am17an Aug 23, 2026
ba8e0ed
common : skip device_info loop if it's not going to be printed (#26692)
wolfpld Aug 23, 2026
e8eed45
server : add LLAMA_SERVER_SLOTS_N_DIFF (#27600)
ggerganov Aug 23, 2026
a278dce
contrib : recommend waiting for CI before merging (#27603)
nikwen Aug 23, 2026
95b8e33
ci : add test-llama-archs tensor split for Metal (#27598)
ggerganov Aug 23, 2026
56db501
mtmd: use pillow-accurate algo, correct resize_algo for all models (#…
ngxson Aug 23, 2026
4a08fa2
test: move tools/parser to tests (#27548)
ngxson Aug 23, 2026
8d9af25
test : fix multi-GPU server tests (#27614)
ggerganov Aug 23, 2026
d05f895
fix: Change chat tabs nav shortcuts (#27609)
allozaur Aug 23, 2026
ccc8fd2
readme : update links (#27617)
ggerganov Aug 23, 2026
c060ca9
model : support MTP in GLM-4.5-Air (#26534)
jacekpoplawski Aug 23, 2026
bf0a29c
Deepseek 4: `-sm tensor` (#26490)
am17an Aug 24, 2026
a130532
mamba2 : Flatten in/out projections to dispatch GEMM instead of GEMV …
pskrunner14 Aug 24, 2026
6036c63
ggml : fix ggml_clamp (#27644)
ggerganov Aug 24, 2026
985b149
ci : apply ccache-clear with older/min/dry-run to all ccache jobs (#2…
ggerganov Aug 24, 2026
160c6b0
mtmd: video: fix moov atom at the end of file (#27596)
ngxson Aug 24, 2026
c1c766d
webgpu : reorder includes since V that appears in common_decls.tmpl m…
fairydreaming Aug 24, 2026
a14dba6
ggml : shorten virtual device naming in CUDA and Metal (#27608)
ggerganov Aug 24, 2026
71cc86f
convert: fix GLM regression in index_tensors (#27655)
jacekpoplawski Aug 24, 2026
7584430
tests : disable DOTS3NOTE arch test for WebGPU (#27654)
fairydreaming Aug 24, 2026
b3c3b96
misc : read repetition_penalty from generation_config.json (#27659)
tdakhran Aug 24, 2026
b615f5b
metal: per-op source split + parallel compile (#26561)
forforever73 Aug 24, 2026
f280b26
metal : per-device tuned (Q, NE) for flash-attn vec (#26570)
forforever73 Aug 24, 2026
5ea87dd
webgpu : fix handling of infinity values during ARGSORT and TOP_K (#2…
fairydreaming Aug 25, 2026
814d84b
sycl : mark tq2_0 as not supported (#27660)
arthw Aug 25, 2026
eb25b72
grammar : parse \- in char classes as literal hyphen (#27591)
NIXKnight Aug 25, 2026
9388236
ggml : bump version to 0.22.0 (ggml/1607)
ggerganov Aug 25, 2026
81191af
sync : ggml
ggerganov Aug 25, 2026
c1d0e7a
llama.cpp : bump version to 0.3.0 (#27696)
ggerganov Aug 25, 2026
3737e41
metal : null-check buffer alloc to fix OOM crash (#25371)
ykhrustalev Aug 25, 2026
f1357e4
ui: ESLint config updates (#27700)
allozaur Aug 25, 2026
790b571
ci : store ccache on HF buckets (test with cuda-ubuntu for now) (#27699)
CISC Aug 25, 2026
0cc5b14
chat : scope qwen3-coder workarounds (#27679)
aldehir Aug 25, 2026
1729ed5
server : reject prefilled assistant messages with tool calls (#27626)
kyo-zzz Aug 25, 2026
0a5ac49
devops: use GGML_NATIVE=OFF for OpenVINO (#27338)
krzsztf Aug 25, 2026
b114b47
rpc: support apple RDMA as an RPC transport (#26421)
ryan5rdx Aug 25, 2026
eab8ee4
ci : update OS used for ROCM to Ubuntu 24.04 (#27681)
superm1 Aug 25, 2026
d222767
kleidiai: Rework KleidiAI Build System/Integration (#26077)
JonathanC-ARM Aug 25, 2026
5d5cb4c
ggml-meta: propagate buffer usage and call init on the new tensors (#…
max-krasnyansky Aug 26, 2026
11cd988
ggml-metal: add chunked SSD MMA for Mamba-2 prefill optimization (#26…
dpantaleoni Aug 26, 2026
e8735f3
Record upstream 82bb48500 as an ancestor
shimmyshimmer Aug 26, 2026
ce346ba
Sync master with upstream ggml-org/llama.cpp (b10632)
shimmyshimmer Aug 26, 2026
46da0e7
Guard the two invariants that keep an upstream sync cheap
shimmyshimmer Aug 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
23 changes: 13 additions & 10 deletions .devops/openvino.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
ARG OPENVINO_VERSION_MAJOR=2026.2.1
ARG OPENVINO_VERSION_FULL=2026.2.1.21919.ede283a88e3
ARG OPENVINO_VERSION_MAJOR=2026.3
ARG OPENVINO_VERSION_FULL=2026.3.0.22451.bd8d6542e3c
ARG UBUNTU_VERSION=24.04

# Intel GPU driver versions. https://github.com/intel/compute-runtime/releases
ARG IGC_VERSION=v2.36.3
ARG IGC_VERSION_FULL=2_2.36.3+21719
ARG COMPUTE_RUNTIME_VERSION=26.22.38646.4
ARG COMPUTE_RUNTIME_VERSION_FULL=26.22.38646.4-0
ARG IGC_VERSION=v2.38.2
ARG IGC_VERSION_FULL=2_2.38.2+22051
ARG COMPUTE_RUNTIME_VERSION=26.27.39122.11
ARG COMPUTE_RUNTIME_VERSION_FULL=26.27.39122.11-0
ARG IGDGMM_VERSION=22.10.0

# Intel NPU driver versions. https://github.com/intel/linux-npu-driver/releases
ARG NPU_DRIVER_VERSION=v1.33.0
ARG NPU_DRIVER_FULL=v1.33.0.20260529-26625960453
ARG LIBZE1_VERSION=1.27.0-1~24.04~ppa2
ARG NPU_DRIVER_VERSION=v1.35.0
ARG NPU_DRIVER_FULL=v1.35.0.20260722-29947505341
ARG LIBZE1_VERSION=1.28.2-1~24.04~ppa1

# Optional proxy build arguments
ARG http_proxy=
Expand Down Expand Up @@ -90,6 +90,9 @@ RUN bash -c "source ${OpenVINO_DIR}/setupvars.sh && \
cmake -B build/ReleaseOV -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DLLAMA_BUILD_TESTS=OFF \
-DGGML_NATIVE=OFF \
-DGGML_BACKEND_DL=ON \
-DGGML_CPU_ALL_VARIANTS=ON \
-DGGML_OPENVINO=ON && \
cmake --build build/ReleaseOV --parallel "

Expand Down Expand Up @@ -170,7 +173,7 @@ RUN --mount=type=cache,target=/var/cache/intel-npu,sharing=locked \
fi; \
DEB=/var/cache/intel-npu/libze1_${LIBZE1_VERSION}_amd64.deb; \
if [ ! -f "$DEB" ]; then \
wget -q -O "$DEB" https://snapshot.ppa.launchpadcontent.net/kobuk-team/intel-graphics/ubuntu/20260324T100000Z/pool/main/l/level-zero-loader/libze1_${LIBZE1_VERSION}_amd64.deb; \
wget -q -O "$DEB" https://snapshot.ppa.launchpadcontent.net/kobuk-team/intel-graphics/ubuntu/20260606T100000Z/pool/main/l/level-zero-loader/libze1_${LIBZE1_VERSION}_amd64.deb; \
fi; \
mkdir /tmp/npu/ && cd /tmp/npu/ && tar -xf "$TGZ" && cp "$DEB" .; \
apt-get update; \
Expand Down
1 change: 0 additions & 1 deletion .devops/rocm.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ COPY --from=web /app/tools/ui/dist tools/ui/dist
RUN HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" \
cmake -S . -B build \
-DGGML_HIP=ON \
-DGGML_HIP_ROCWMMA_FATTN=ON \
-DAMDGPU_TARGETS="$ROCM_DOCKER_ARCH" \
-DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON \
-DCMAKE_BUILD_TYPE=Release -DLLAMA_BUILD_TESTS=OFF \
Expand Down
91 changes: 91 additions & 0 deletions .github/actions/ccache-buckets/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: "ccache-buckets"
description: "Save/restore latest GitHub Actions ccache matching a key prefix to/from HF buckets"
inputs:
key:
description: "Cache key prefix to match and load"
required: true
folder:
description: "Bucket folder containing ccache files"
required: true
evict-old-files:
description: "Corresponds to the ccache --evict-older-than AGE option, where AGE is the number of seconds or days followed by the 's' or 'd' suffix respectively."
default: ''
save:
description: "Save ccache"
required: false
default: false
type: boolean
hf_bucket:
description: 'Hugging Face buckets path'
required: true

runs:
using: "composite"
steps:
- name: Install Hugging Face Hub CLI
shell: bash
run: |
python3 -m venv .venv-hf
.venv-hf/bin/pip install -U huggingface_hub==1.28.0

- name: Restore ccache from buckets
if: ${{ inputs.save != 'true' }}
shell: bash
run: |
set +e -uo pipefail
source .venv-hf/bin/activate
CCACHE_DIR=$(ccache -k cache_dir)
if [[ -d "$CCACHE_DIR" ]]; then
CACHE_PATH=$(hf buckets list "hf://buckets/${{ inputs.hf_bucket }}/${{ inputs.folder }}" --json | jq -r '[.[] | select(.type == "file") | select(.path | startswith("${{ inputs.folder }}/${{ inputs.key }}") and endswith(".tar.gz"))] | sort_by(.path) | last | .path // ""')
if [[ -n "$CACHE_PATH" ]]; then
echo "Restoring ccache from '$CACHE_PATH'."
hf buckets cp "hf://buckets/${{ inputs.hf_bucket }}/$CACHE_PATH" ccache_bucket.tar.gz
mkdir -p ccache_bucket
if tar -xzf ccache_bucket.tar.gz -C ccache_bucket; then
rm -rf "$CCACHE_DIR"
mv ccache_bucket "$CCACHE_DIR"
ccache -z
fi
rm ccache_bucket.tar.gz
else
echo "No ccache found."
fi
else
echo "'$CCACHE_DIR' not found."
fi

- name: Save ccache to buckets
if: ${{ inputs.save == 'true' }}
shell: bash
run: |
set +e -uo pipefail
source .venv-hf/bin/activate
CCACHE_DIR=$(ccache -k cache_dir)
if [[ -d "$CCACHE_DIR" ]]; then
ccache -s
if [[ -n "${{ inputs.evict-old-files }}" ]]; then
ccache --evict-older-than "${{ inputs.evict-old-files }}"
fi
DATESTAMP=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
CACHEFILE="${{ inputs.key }}-$DATESTAMP.tar.gz"
if tar -czf ccache_bucket.tar.gz -C "$CCACHE_DIR" .; then
hf buckets cp ccache_bucket.tar.gz "hf://buckets/${{ inputs.hf_bucket }}/${{ inputs.folder }}/$CACHEFILE"
fi
rm ccache_bucket.tar.gz
else
echo "'$CCACHE_DIR' not found."
fi

- name: Remove old ccache files from buckets
if: ${{ inputs.save == 'true' }}
shell: bash
run: |
set +e -uo pipefail
source .venv-hf/bin/activate
CACHE_FILES=$(hf buckets list "hf://buckets/${{ inputs.hf_bucket }}/${{ inputs.folder }}" --json | jq -r '[.[] | select(.type == "file") | select((.uploaded_at | .[:19]+"Z" | fromdateiso8601) < (now - 5 * 60)) | select(.path | startswith("${{ inputs.folder }}/${{ inputs.key }}") and endswith(".tar.gz"))] | sort_by(.path)[:-1] | .[] | [.path // ""] | @tsv')
if [[ -n "$CACHE_FILES" ]]; then
echo "Removing old ccache files..."
while IFS=$'\t' read -r CACHE_PATH; do
hf buckets rm "hf://buckets/${{ inputs.hf_bucket }}/$CACHE_PATH" -y
done <<< "$CACHE_FILES"
fi
48 changes: 38 additions & 10 deletions .github/actions/ccache-clear/action.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,50 @@
# note: place this as the last step of the job, so the new cache is saved by "Post ccache" right after the old one is cleared
name: "ccache-clear"
description: "Delete all GitHub Actions caches matching a key prefix"
description: "Delete GitHub Actions caches matching a key prefix, oldest first"
inputs:
key:
description: "Cache key prefix to match and delete"
required: true
older:
description: "Only delete caches created more than this long ago (e.g. 90m, 1h, 1d). By default all matching caches are deleted"
required: false
default: ""
min:
description: "Stop deleting if fewer than this many caches would remain (e.g. 1). By default there is no minimum"
required: false
default: "0"
dry-run:
description: "Only print the caches that would be deleted, without deleting them"
required: false
default: "false"

runs:
using: "composite"
steps:
- name: Clear caches
- name: Install GitHub CLI if missing
shell: bash
run: |
CACHES=$(gh cache list --key "ccache-${{ inputs.key }}" --json id,key --jq '.[] | "\(.id) \(.key)"' 2>/dev/null)
if [ -z "$CACHES" ]; then
echo "No caches found with key prefix: ${{ inputs.key }}"
exit 0
# e.g. in container jobs, where it is not preinstalled
if ! command -v gh >/dev/null 2>&1; then
echo "GitHub CLI not found, installing..."
if ! command -v curl >/dev/null 2>&1; then
apt-get update >/dev/null 2>&1 || true
apt-get install -y curl >/dev/null 2>&1 || true
fi
mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg >/dev/null
chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list
apt-get update >/dev/null 2>&1 || true
apt-get install -y gh || { echo "Failed to install GitHub CLI (gh)" >&2; exit 1; }
fi
while read -r id key; do
echo "Deleting cache: $id ($key)"
gh cache delete "$id"
done <<< "$CACHES"
command -v gh >/dev/null 2>&1 || { echo "GitHub CLI (gh) is required but could not be installed" >&2; exit 1; }
- name: Clear caches
shell: bash
run: |
bash scripts/ccache-clear.sh \
--key "${{ inputs.key }}" \
--older "${{ inputs.older }}" \
--min "${{ inputs.min }}" \
${{ inputs.dry-run == 'true' && '--dry-run' || '' }}
20 changes: 0 additions & 20 deletions .github/actions/linux-setup-vulkan/action.yml

This file was deleted.

26 changes: 26 additions & 0 deletions .github/actions/windows-setup-cuda/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ inputs:
cuda_version:
description: "CUDA toolkit version"
required: true
cuda_arch:
description: "CUDA target architecture"
required: true

runs:
using: "composite"
Expand Down Expand Up @@ -127,3 +130,26 @@ runs:
echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.3\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.3" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
echo "CUDA_PATH_V13_3=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.3" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8

- name: Install Cuda Toolkit 13.4 for ARM64
if: ${{ inputs.cuda_version == '13.4' && inputs.cuda_arch == 'arm64' }}
shell: pwsh
run: |
mkdir -p "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4"
choco install unzip -y
curl -O "https://packages.nvidia.com/bin-archive/pool/windows-x86_64/5B515474-7E78-11F1-8656-C51E4F4B317F/cccl-windows-x86_64-13.3.4.1.2-archive.zip"
curl -O "https://packages.nvidia.com/bin-archive/pool/windows-x86_64/5B515474-7E78-11F1-8656-C51E4F4B317F/cuda_crt-windows-x86_64-13.4.46-archive.zip"
curl -O "https://packages.nvidia.com/bin-archive/pool/windows-x86_64/5B515474-7E78-11F1-8656-C51E4F4B317F/cuda_nvcc-windows-x86_64-13.4.46-archive.zip"
curl -O "https://packages.nvidia.com/bin-archive/pool/windows-x86_64/5B515474-7E78-11F1-8656-C51E4F4B317F/libnvvm-windows-x86_64-13.4.46-archive.zip"
curl -O "https://packages.nvidia.com/bin-archive/pool/windows-arm64/5B515474-7E78-11F1-8656-C51E4F4B317F/cuda_cudart-windows-arm64-13.4.46-archive.zip"
curl -O "https://packages.nvidia.com/bin-archive/pool/windows-arm64/5B515474-7E78-11F1-8656-C51E4F4B317F/libcublas-windows-arm64-13.7.0.10-archive.zip"
unzip '*.zip' -d "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4"
xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\cccl-windows-x86_64-13.3.4.1.2-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4" /E /I /H /Y
xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\cuda_crt-windows-x86_64-13.4.46-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4" /E /I /H /Y
xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\cuda_nvcc-windows-x86_64-13.4.46-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4" /E /I /H /Y
xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\libnvvm-windows-x86_64-13.4.46-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4" /E /I /H /Y
xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\cuda_cudart-windows-arm64-13.4.46-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4" /E /I /H /Y
xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\libcublas-windows-arm64-13.7.0.10-archive\*" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4" /E /I /H /Y
echo "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
echo "CUDA_PATH_V13_4=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
28 changes: 23 additions & 5 deletions .github/actions/windows-setup-rocm/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,26 @@ inputs:
runs:
using: "composite"
steps:
- name: Setup ROCm
uses: ./.github/actions/install-exe
with:
url: https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-${{ inputs.version }}-Win11-For-HIP.exe
args: -install
- name: Install ROCm with Wheels
shell: pwsh
run: |
$ErrorActionPreference = "Stop"
write-host "Setting up Python virtual environment"

# Create the venv directly at the cache location to avoid relocation issues
New-Item -Path "C:\TheRock\build" -ItemType Directory -Force | Out-Null
python -m venv C:\TheRock\build\.venv
& C:\TheRock\build\.venv\Scripts\Activate.ps1

write-host "Upgrading pip"
python -m pip install --upgrade pip

write-host "Installing ROCm wheels for multi-arch support"
# Install ROCm wheels for multi-arch support (this may take several minutes)
python -m pip install --index-url https://repo.amd.com/rocm/whl-multi-arch/ "rocm[libraries,devel]==${{ inputs.version }}"

# Pre-expand the devel tree so it is included in the cache
write-host "Initializing ROCm devel tree"
rocm-sdk init
if ($LASTEXITCODE -ne 0) { throw "rocm-sdk init failed with exit code $LASTEXITCODE" }
write-host "Completed ROCm wheel installation to C:\TheRock\build"
79 changes: 79 additions & 0 deletions .github/workflows/unsloth-upstream-sync-guard.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# SPDX-License-Identifier: AGPL-3.0-only
# Copyright 2026-present the Unsloth AI Inc. team. All rights reserved.

name: "Unsloth: upstream sync guard"

# Holds the two properties that make a fork sync cheap, and that silently broke once.
#
# The 08-07 sync (PR #80) was squash-merged, so upstream 82bb48500 never became an ancestor of
# master. The files arrived; the ancestry did not. For three weeks every merge involving a
# master-derived branch three-way merged against a 2026-06-10 base and manufactured conflicts
# in files nobody had touched -- 539 of them, against 21 with the correct base. Nothing was red
# while that was true, which is the whole reason this exists.
#
# Uses the compare API rather than a checkout: the ancestry question is one request, and a
# full-history checkout of this repository is neither fast nor free.

on:
push:
branches: [master]
workflow_dispatch:

permissions:
contents: read

jobs:
guard:
name: Upstream sync invariants
runs-on: ubuntu-24.04
env:
GH_TOKEN: ${{ github.token }}
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
with: { fetch-depth: 1 }

- name: Check the recorded sync point is still an ancestor of master
run: |
set -euo pipefail
FILE=scripts/unsloth/upstream-sync.json
SHA="$(jq -r .commit "$FILE")"
TAG="$(jq -r .tag "$FILE")"
case "$SHA" in
[0-9a-f]*) [ "${#SHA}" -eq 40 ] || { echo "::error file=$FILE::commit must be a 40-hex sha"; exit 1; } ;;
*) echo "::error file=$FILE::commit must be a 40-hex sha"; exit 1 ;;
esac

# compare(base...head): 'ahead' or 'identical' means base is an ancestor of head.
# 'diverged' or 'behind' means it is not, which is what a squash-merged sync looks like.
STATUS="$(gh api "repos/${GITHUB_REPOSITORY}/compare/${SHA}...master" --jq .status)"
echo "compare ${SHA:0:10} (${TAG}) ...master -> ${STATUS}"
case "$STATUS" in
ahead|identical) echo "ancestry OK" ;;
*)
echo "::error file=$FILE::upstream ${TAG} (${SHA:0:10}) is NOT an ancestor of master (compare says '${STATUS}')."
echo "::error::A sync PR was almost certainly squash- or rebase-merged. Squashing drops the upstream parent, so the merge base stays stale and every later merge invents hundreds of conflicts. Re-land the sync with a merge commit."
exit 1 ;;
esac

- name: Check the fork still owns only CI
run: |
set -euo pipefail
FILE=scripts/unsloth/upstream-sync.json
SHA="$(jq -r .commit "$FILE")"

# The compare API caps its file list. Say so rather than pass on a truncated answer.
RESP="$(gh api "repos/${GITHUB_REPOSITORY}/compare/${SHA}...master")"
TOTAL="$(jq -r '.files | length' <<<"$RESP")"
if [ "$TOTAL" -ge 300 ]; then
echo "::error file=$FILE::compare returned ${TOTAL} files, at or over the API cap, so this check cannot be trusted. The fork delta should be well under 100 paths; if it is genuinely this large the invariant has already broken."
exit 1
fi

STRAY="$(jq -r '.files[].filename' <<<"$RESP" | grep -vE '^(\.github/|scripts/unsloth/)' || true)"
if [ -n "$STRAY" ]; then
echo "::error file=$FILE::the fork now diverges from upstream outside .github/ and scripts/unsloth/:"
echo "$STRAY" | sed 's/^/ /'
echo "::error::Syncs are provably additive only while this fork owns no llama.cpp source. Land source changes upstream, or pin them through scripts/unsloth/pr-set.json, rather than carrying them on master."
exit 1
fi
echo "fork delta is ${TOTAL} path(s), all under .github/ or scripts/unsloth/"
Loading