Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
503 commits
Select commit Hold shift + click to select a range
db95586
Merge branch 'feat/exact-concurrency' into feat/server-side-preemptio…
danielhanchen Sep 6, 2026
4e49a05
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
da0f9fc
Merge branch 'feat/server-side-preemption' into feat/exact-concurrency
danielhanchen Sep 6, 2026
53553ff
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
a552525
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
6ea151a
Merge branch 'feat/server-side-preemption-async' into feat/server-sid…
danielhanchen Sep 6, 2026
a643eae
Merge branch 'feat/exact-concurrency' into feat/server-side-preemptio…
danielhanchen Sep 6, 2026
70b874c
Merge branch 'feat/server-side-preemption-async' into feat/server-sid…
danielhanchen Sep 6, 2026
a7e661c
Merge branch 'feat/exact-concurrency' into feat/server-side-preemptio…
danielhanchen Sep 6, 2026
01dfecc
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
c89d87d
Merge branch 'feat/server-side-preemption' into feat/exact-concurrency
danielhanchen Sep 6, 2026
c1e5453
Merge branch 'feat/server-side-preemption-async' into feat/server-sid…
danielhanchen Sep 6, 2026
1130aed
Merge branch 'feat/exact-concurrency' into feat/server-side-preemptio…
danielhanchen Sep 6, 2026
47ef8de
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
6573242
Merge branch 'feat/server-side-preemption' into feat/exact-concurrency
danielhanchen Sep 6, 2026
e9aeb3a
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
5864dae
server: tell the stream about a park made as a last resort
danielhanchen Sep 6, 2026
b89302b
Merge branch 'feat/server-side-preemption-notify' into feat/server-si…
danielhanchen Sep 6, 2026
f8ec566
Merge branch 'feat/server-side-preemption-async' into feat/server-sid…
danielhanchen Sep 6, 2026
cd1cd4e
server: count a slot being restored in the asynchronous lookahead margin
danielhanchen Sep 6, 2026
5fdfa62
models : fix GDN normalization from `max` to `rsqrt` (#28068)
danielhanchen Sep 6, 2026
465e49b
convert : add `--fuse-qkv` flag to fuse Q/K/V into QKV during HF-to-G…
JoursBleu Sep 6, 2026
0c9fc0e
exact: every context reports the widest decode step it can build
danielhanchen Sep 6, 2026
5e0f99a
Merge branch 'feat/exact-concurrency' into feat/server-side-preemptio…
danielhanchen Sep 6, 2026
301f480
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
08e10da
Merge branch 'feat/server-side-preemption' into feat/exact-concurrency
danielhanchen Sep 6, 2026
1eef6ef
Merge branch 'feat/server-side-preemption-notify' into feat/server-si…
danielhanchen Sep 6, 2026
03e641e
Merge branch 'feat/server-side-preemption-async' into feat/server-sid…
danielhanchen Sep 6, 2026
3fc8339
Merge branch 'feat/exact-concurrency' into feat/server-side-preemptio…
danielhanchen Sep 6, 2026
0303888
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
76baf1a
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
a760b00
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
67063e4
Merge branch 'feat/server-side-preemption' into feat/exact-concurrency
danielhanchen Sep 6, 2026
01e6715
Merge branch 'feat/server-side-preemption-async' into feat/server-sid…
danielhanchen Sep 6, 2026
1afcfe8
Merge branch 'feat/exact-concurrency' into feat/server-side-preemptio…
danielhanchen Sep 6, 2026
7c8a6d5
Merge branch 'feat/server-side-preemption-notify' into feat/server-si…
danielhanchen Sep 6, 2026
cac5ee6
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
46e7fa7
exact: four refusals and one width from review
danielhanchen Sep 6, 2026
7fb42b5
server: keep the park notices of a multi-prompt stream apart
danielhanchen Sep 6, 2026
abbde56
Merge branch 'feat/server-side-preemption-notify' into feat/server-si…
danielhanchen Sep 6, 2026
800e166
Merge branch 'feat/exact-concurrency' into feat/server-side-preemptio…
danielhanchen Sep 6, 2026
bb577b0
Merge branch 'feat/server-side-preemption-notify' into feat/server-si…
danielhanchen Sep 6, 2026
b7ace52
Merge branch 'feat/server-side-preemption' into feat/exact-concurrency
danielhanchen Sep 6, 2026
8d74efb
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
53c59a1
Merge branch 'feat/server-side-preemption' into feat/server-side-pree…
danielhanchen Sep 6, 2026
cccc119
Merge branch 'feat/server-side-preemption-async' into feat/server-sid…
danielhanchen Sep 6, 2026
eb42826
Merge branch 'feat/exact-concurrency' into feat/server-side-preemptio…
danielhanchen Sep 6, 2026
eae4624
exact concurrency: refuse a non-causal context with a cache at creati…
danielhanchen Sep 6, 2026
dbd82ca
exact concurrency: the decode width of every context follows the toke…
danielhanchen Sep 6, 2026
42e5369
server: a round with a context shift waits for every park and restore…
danielhanchen Sep 6, 2026
65f6173
Merge feat/server-side-preemption: keep only the shared prefix of a r…
danielhanchen Sep 6, 2026
ab40f16
server: a stream parked before its first token starts with the notice…
danielhanchen Sep 6, 2026
356978a
Merge feat/server-side-preemption: keep only the shared prefix of a r…
danielhanchen Sep 6, 2026
bdb7c6b
Merge feat/server-side-preemption-async
danielhanchen Sep 6, 2026
9560fbf
Merge feat/exact-concurrency
danielhanchen Sep 6, 2026
9391aa7
Merge feat/server-side-preemption-notify
danielhanchen Sep 6, 2026
d4e3fc8
exact concurrency: equal-count grouping stays on for recurrent and hy…
danielhanchen Sep 6, 2026
3306d4b
Merge feat/server-side-preemption: planner accounting for reused slot…
danielhanchen Sep 6, 2026
232f612
Merge feat/exact-concurrency
danielhanchen Sep 6, 2026
6af0d4e
server: a restore landing inside the context-shift wait sends the res…
danielhanchen Sep 6, 2026
ad3856a
Merge feat/server-side-preemption: planner accounting for reused slot…
danielhanchen Sep 6, 2026
0661764
Merge feat/server-side-preemption-notify
danielhanchen Sep 6, 2026
645d406
Merge feat/server-side-preemption-async
danielhanchen Sep 6, 2026
276dd25
Merge feat/server-side-preemption: victim-policy test knob
danielhanchen Sep 6, 2026
7efef20
Merge feat/server-side-preemption: the rotation parks the resident th…
danielhanchen Sep 6, 2026
2ba0dcf
Merge feat/server-side-preemption: the rotation parks the resident th…
danielhanchen Sep 6, 2026
bf00ac3
exact concurrency: soft-capped attention refused at load; width repor…
danielhanchen Sep 6, 2026
3a5e4c7
Merge feat/exact-concurrency
danielhanchen Sep 6, 2026
68a6f3a
Merge feat/server-side-preemption-async
danielhanchen Sep 6, 2026
ecdb0f5
Merge feat/server-side-preemption-notify
danielhanchen Sep 6, 2026
98fe86d
exact concurrency: the setup runs before anything is loaded; one lock…
danielhanchen Sep 6, 2026
3d179fd
Merge feat/server-side-preemption: a parked slot survives an aborted …
danielhanchen Sep 6, 2026
2297d5d
Merge feat/server-side-preemption: a parked slot survives an aborted …
danielhanchen Sep 6, 2026
02a3e11
server: the abort sweep also leaves a slot whose copy is in flight alone
danielhanchen Sep 6, 2026
706d857
Merge feat/exact-concurrency
danielhanchen Sep 6, 2026
bcffb69
Merge remote-tracking branch 'origin/feat/server-side-preemption' int…
danielhanchen Sep 6, 2026
42a4052
Merge feat/server-side-preemption-async
danielhanchen Sep 6, 2026
089fedd
Merge feat/server-side-preemption-notify
danielhanchen Sep 6, 2026
5a13c67
server: asynchronous copies and the rotation, the budget and the cach…
danielhanchen Sep 6, 2026
77d3185
exact concurrency: an isolated ubatch takes only sets that finish in …
danielhanchen Sep 6, 2026
e432b15
Merge feat/server-side-preemption: the leader is measured by what a r…
danielhanchen Sep 6, 2026
4d5734b
Merge origin/feat/exact-concurrency (the base branch merged on the re…
danielhanchen Sep 6, 2026
49c66c5
Merge feat/server-side-preemption: the leader is measured by what a r…
danielhanchen Sep 6, 2026
a06419d
Merge feat/server-side-preemption: the leader is measured by what a r…
danielhanchen Sep 6, 2026
4a7a60c
Merge feat/exact-concurrency
danielhanchen Sep 6, 2026
861a525
Merge feat/server-side-preemption-async
danielhanchen Sep 6, 2026
d72e2a4
Merge feat/server-side-preemption-notify
danielhanchen Sep 6, 2026
82f40df
preempt: post no copies for a transfer that failed part way, park syn…
danielhanchen Sep 6, 2026
2f2258d
exact concurrency: refuse a whole-context restore before it clears th…
danielhanchen Sep 6, 2026
2b4a691
tests: a state transfer that fails one byte short posts no copies, on…
danielhanchen Sep 6, 2026
319f71b
Merge feat/server-side-preemption-async: commit-gated transfers, page…
danielhanchen Sep 6, 2026
60b1b9f
Merge feat/exact-concurrency: restore preflight, width published at c…
danielhanchen Sep 6, 2026
b4a5f18
preempt: say why the asynchronous runway is rounded once rather than …
danielhanchen Sep 6, 2026
a614c25
Merge feat/server-side-preemption-notify: parent and child alone in t…
danielhanchen Sep 6, 2026
faa3dd3
Merge feat/server-side-preemption: parent and child alone in the pool…
danielhanchen Sep 6, 2026
23c9dc2
Merge feat/server-side-preemption: parent and child alone in the pool…
danielhanchen Sep 6, 2026
1d52885
Merge feat/server-side-preemption: parent and child alone in the pool…
danielhanchen Sep 6, 2026
c2e7755
Merge feat/server-side-preemption-async: parent and child alone in th…
danielhanchen Sep 6, 2026
48f7d7c
Merge feat/exact-concurrency: parent and child alone in the pool test
danielhanchen Sep 6, 2026
9e827b5
preempt: a slot whose park buffer comes back pageable parks synchrono…
danielhanchen Sep 6, 2026
aaa9dc0
Merge feat/server-side-preemption-async: a pageable park buffer parks…
danielhanchen Sep 6, 2026
918a8bf
exact concurrency: ask the device whether it can run the paged attent…
danielhanchen Sep 6, 2026
0269811
Merge feat/exact-concurrency: the device is asked whether it runs the…
danielhanchen Sep 6, 2026
a4b62f2
preempt: the graphs that follow a restore wait for its copies, on the…
danielhanchen Sep 6, 2026
0611fd9
Merge feat/server-side-preemption-async: the graphs after a restore w…
danielhanchen Sep 6, 2026
294d2a9
preempt: idle parked RAM is given back when another slot needs to par…
danielhanchen Sep 7, 2026
f737e6d
Merge feat/server-side-preemption-async: idle parked RAM given back; …
danielhanchen Sep 7, 2026
a158200
Merge feat/server-side-preemption: recurrent caches served without pr…
danielhanchen Sep 7, 2026
dffa102
Merge feat/server-side-preemption: recurrent caches served without pr…
danielhanchen Sep 7, 2026
7d77d71
Merge feat/server-side-preemption-async: recurrent caches served with…
danielhanchen Sep 7, 2026
bf0f731
Merge feat/server-side-preemption-notify a158200de
danielhanchen Sep 7, 2026
ce02834
Merge feat/server-side-preemption: a started slot's reservation count…
danielhanchen Sep 7, 2026
012ef75
llama: the copies wait for a fence the context records after every de…
danielhanchen Sep 7, 2026
a5749d1
Merge feat/server-side-preemption: a started slot's reservation count…
danielhanchen Sep 7, 2026
31dd6a9
Merge feat/server-side-preemption-async: the copies wait for a fence …
danielhanchen Sep 7, 2026
a140e80
Merge feat/server-side-preemption-notify ce02834c4
danielhanchen Sep 7, 2026
5ecdba8
Merge feat/server-side-preemption: the shift and the planner inside t…
danielhanchen Sep 7, 2026
a56d49e
Merge feat/server-side-preemption: the shift and the planner inside t…
danielhanchen Sep 7, 2026
1bcae7b
Merge feat/server-side-preemption-async: the shift and the planner in…
danielhanchen Sep 7, 2026
e36a4b6
Merge feat/server-side-preemption-notify 5ecdba815
danielhanchen Sep 7, 2026
02a908b
server: a parked stream keeps a shorter ping interval the request ask…
danielhanchen Sep 7, 2026
4918294
Merge feat/server-side-preemption: what a started slot keeps is decid…
danielhanchen Sep 7, 2026
4b91744
server: a decode that fits goes ahead beside a park in flight; a rest…
danielhanchen Sep 7, 2026
7eff726
llama: staging counts by what a buffer charges; fences installed afte…
danielhanchen Sep 7, 2026
8cb58df
Merge feat/server-side-preemption: what a started slot keeps is decid…
danielhanchen Sep 7, 2026
a23367f
Merge feat/server-side-preemption-async: staging counted by what a bu…
danielhanchen Sep 7, 2026
b0fae41
Merge feat/server-side-preemption-notify 4918294ff
danielhanchen Sep 7, 2026
3475eb0
llama: the shift wait runs before the draft is asked for; the last tr…
danielhanchen Sep 7, 2026
027c86a
Merge feat/server-side-preemption: the resume order read on every load
danielhanchen Sep 7, 2026
03e57da
Merge feat/server-side-preemption: the resume order read on every load
danielhanchen Sep 7, 2026
d3107ae
Merge feat/server-side-preemption-async: the shift wait before the dr…
danielhanchen Sep 7, 2026
f3809e9
Merge feat/server-side-preemption-notify
danielhanchen Sep 7, 2026
801e29a
Merge feat/server-side-preemption: the rotation-budget test keeps its…
danielhanchen Sep 7, 2026
114e230
Merge feat/server-side-preemption: the rotation-budget test keeps its…
danielhanchen Sep 7, 2026
0d39b88
Merge feat/server-side-preemption: the rotation-budget test keeps its…
danielhanchen Sep 7, 2026
929809f
Merge feat/server-side-preemption: the resume order belongs to the co…
danielhanchen Sep 7, 2026
ebfa47b
llama: a context freed with live transfers drains and disowns them; t…
danielhanchen Sep 7, 2026
b1a31b4
Merge feat/server-side-preemption: the resume order belongs to the co…
danielhanchen Sep 7, 2026
bb24e88
Merge feat/server-side-preemption-async: live transfers drained at te…
danielhanchen Sep 7, 2026
7fdb58b
Merge feat/server-side-preemption-notify 929809ffa
danielhanchen Sep 7, 2026
58c6e33
Merge /mnt/disks/unslothai/daniel3/workspace_12/llamacpp_fork into fe…
danielhanchen Sep 7, 2026
a33c563
Merge /mnt/disks/unslothai/daniel3/workspace_12/llamacpp_fork into fe…
danielhanchen Sep 7, 2026
f8a5338
Merge feat/server-side-preemption-notify a33c56397: a started slot co…
danielhanchen Sep 7, 2026
1bf8519
Merge /mnt/disks/unslothai/daniel3/workspace_12/llamacpp_async_park i…
danielhanchen Sep 7, 2026
b4b0f9b
exact concurrency: shorter comments
danielhanchen Sep 7, 2026
90a5094
server : validate a started slot's prompt before it can be parked
danielhanchen Sep 7, 2026
773db2e
Merge /mnt/disks/unslothai/daniel3/workspace_12/llamacpp_notify into …
danielhanchen Sep 7, 2026
474569c
Merge feat/exact-concurrency b4b0f9bd7: shorter comments; the conflic…
danielhanchen Sep 7, 2026
8fe90e1
vulkan: add TQ1_0 support (mm, mat-vec, mat-vec-id, dequant, get_rows…
Anjielon Sep 7, 2026
2092353
ci : add container image checking and tagging (wip) (#28394)
danbev Sep 7, 2026
f8fdf06
server, llama, ggml : shorter comments across the preemption work
danielhanchen Sep 7, 2026
9ac8c40
vulkan: rms_norm fusion opportunities (#28024)
jeffbolznv Sep 7, 2026
992cb50
ggml: allow backend inputs to not create another split (#28387)
am17an Sep 7, 2026
b74f590
ggml-cuda: fix divergent barrier in f16 flash attention (#27870)
siavashnorouzi Sep 7, 2026
9a75705
convert : write explicit recurrent_layers for Qwen3-Next / Qwen3.5 (#…
devvexus Sep 7, 2026
5202104
caps : recheck typed content if template checks for string (#28511)
CISC Sep 7, 2026
951a219
server : drop the unrelated tooling edits from the preemption change
danielhanchen Sep 7, 2026
57efd21
server : share the park and resume bookkeeping between the copy paths
danielhanchen Sep 7, 2026
7e424ad
server : count the kv reserve in one pass over the slots
danielhanchen Sep 7, 2026
7549c68
tests : share the preemption server setup and the prompts
danielhanchen Sep 7, 2026
4cf9baf
llama : build the asynchronous state io on the host io
danielhanchen Sep 7, 2026
00855c2
server : drop the wrappers that only ever had one reader
danielhanchen Sep 7, 2026
bb510f5
server : drive a slot's two transfers through one helper
danielhanchen Sep 7, 2026
09cecf4
server, llama, ggml : fewer comments
danielhanchen Sep 7, 2026
1173700
examples : print ggml_version and ggml_commit in test-cmake [no ci] (…
danbev Sep 7, 2026
0cae430
vulkan: support type-aligned GET_ROWS (#28253)
jeffbolznv Sep 7, 2026
73ab759
CUDA: branchless Q4_K/Q5_K unpack to speed up mmvq, L2 prefetch on DG…
praneshgo Sep 7, 2026
d23c47f
convert : refactor Hy4-preview conversion - move HC tensor mapping to…
fairydreaming Sep 7, 2026
4735997
ggml: add gfx90c HIP support (#26454)
AuroraRAS Sep 7, 2026
0c96345
CUDA: size routed MoE MMQ N-tiles from typical expert width on RDNA3 …
ravel7524 Sep 7, 2026
7a333e7
vulkan: add DeepSeek-V4 hyper-connection fused ops (DSV4_HC_COMB/PRE/…
kh0pper Sep 7, 2026
dbeb375
sycl: add a batched L2_NORM kernel (#28222)
Titaniumtown Sep 7, 2026
160bd03
server: fix LRU hang on multiple requests same model (#28539)
ngxson Sep 7, 2026
c0b1871
webgpu: format the GET_ROWS case block (#28542)
ServeurpersoCom Sep 7, 2026
ccc3646
nix : update deprecated expressions (#28145)
ZhaolunYin Sep 7, 2026
e71b805
Revert "CUDA: size routed MoE MMQ N-tiles from typical expert width o…
pwilkin Sep 7, 2026
f114f91
tests : initialize the L2_NORM batch array (#28553)
ServeurpersoCom Sep 7, 2026
67672dc
ci : bump ty to 0.0.78 (#28548)
CISC Sep 7, 2026
050dde5
hexagon: add RELU and LEAKY_RELU ops (#28585)
tboinovski1 Sep 8, 2026
9dcf84e
model : support Kimi-K3 recurrent-state rollback (#28466)
soulmachine Sep 8, 2026
f926c3f
llama, server : apply a recorded context shift before a slot is parked
danielhanchen Sep 8, 2026
2fdfbe1
server : validate every prompt of a request before any task is queued
danielhanchen Sep 8, 2026
63b6e6f
server : park a model with a recurrent half synchronously
danielhanchen Sep 8, 2026
d811fe8
common : refuse exact concurrency for an M-RoPE model with a projector
danielhanchen Sep 8, 2026
668e138
tests : fewer preemption tests, the same behaviours
danielhanchen Sep 8, 2026
7e650c4
server : report a slot with a copy in flight apart from a parked one
danielhanchen Sep 8, 2026
168007d
server : park by dropping the cells when the preempt-ram budget is spent
danielhanchen Sep 8, 2026
fb634ca
server : reserve a whole media chunk before the planner lets it decode
danielhanchen Sep 8, 2026
1c2c675
Merge branch 'feat/preemption-fixes-2' into feat/server-side-preempti…
danielhanchen Sep 8, 2026
5a6caa0
ggml : update ggml_prec specification (#26675)
ggerganov Sep 8, 2026
7d701b5
opencl: properly handle non-contiguous inputs to conv2d (#28503)
lhez Sep 8, 2026
895c045
chat : split specialized parsers into common/parsers (#27764)
pwilkin Sep 8, 2026
3f0afe4
Merge branch 'feat/preemption-tests' into feat/server-side-preemption…
danielhanchen Sep 8, 2026
f014bfe
Fix Vulkan-Hpp handle usage on 32-bit targets. (#22892)
miyanyan Sep 8, 2026
64e9bce
vulkan : fuse UNARY(GELU|SIGMOID|SILU|SOFTPLUS) + MUL (#27220)
Ankk98 Sep 8, 2026
522e336
llama : reject a shared-token batch under exact concurrency as invali…
danielhanchen Sep 8, 2026
f8b2f51
llama : reject repeated positions of one sequence under exact concurr…
danielhanchen Sep 8, 2026
73cc64b
server : /props says whether exact concurrency runs, a recompute park…
danielhanchen Sep 8, 2026
ca86fb2
llama : add missing headers (#28566)
peppergrayxyz Sep 8, 2026
1744c6b
ci : add PYTEST_WORKERS=1 to fix server-self-hosted job (#28603)
danbev Sep 8, 2026
03fa73c
ci : disable npm gha cache (#28600)
CISC Sep 8, 2026
415e909
spec: single device drafter should create meta backend wrapper (#28390)
am17an Sep 8, 2026
88ada91
metal : fix idle threads in mul_mv_iq3_xxs for ne00 < 1024 (#28086)
masterFoad Sep 8, 2026
5d806aa
server : apply checkpoint min-step eviction only when the checkpoint …
masterFoad Sep 8, 2026
d4389a4
Revert "ggml-cuda : restore prop.integrated on HIP builds (#24233)" (…
IMbackK Sep 8, 2026
9113cc1
ggml : fix msvc+clang ggml_vld1q_u32 (#28284)
sarahwu185 Sep 8, 2026
f3f1a8f
llama: disable lazy tensor loading by default on iGPUs (#28326)
0cc4m Sep 8, 2026
304665f
Add IQ type handling for MoE (#28476)
cwriter Sep 9, 2026
5497cae
server : rewind a parked slot by tokens, not by positions
danielhanchen Sep 9, 2026
0f97dda
server : fall back to a recompute park where a swap cannot be had
danielhanchen Sep 9, 2026
c31efd0
common : bound a draft by the caller's allowance, not only by the con…
danielhanchen Sep 9, 2026
30b6a75
tests : use less threads for data initialization (#28325)
ggerganov Sep 9, 2026
46b6ed5
server : say when a resume re-prefilled instead of restoring its bytes
danielhanchen Sep 9, 2026
3c5ada2
server : add a prompt in whole ubatches under exact concurrency
danielhanchen Sep 9, 2026
1945e09
vulkan: add f16 B-type matmul pipelines and warp tile size tuning for…
fish-jiang Sep 9, 2026
df750f7
vulkan: add dedicated iq4_xs mat-vec shader (#28426)
WakeUpMorty Sep 9, 2026
aa2e8c0
server : wait longer for a rotation that costs a re-prefill
danielhanchen Sep 9, 2026
e81528c
exact concurrency: a weight off the invariant backend is refused at c…
danielhanchen Sep 9, 2026
1a1082a
exact concurrency: the allocation granularity comment says what a par…
danielhanchen Sep 9, 2026
580ac0a
exact concurrency: a removal that empties nothing leaves the page ind…
danielhanchen Sep 9, 2026
64a7dce
exact concurrency: refuse a batch that cannot hold a whole prompt ubatch
danielhanchen Sep 9, 2026
b64a10c
server : say what an asynchronous park actually overlaps
danielhanchen Sep 9, 2026
a970e25
server : cover the park a stream hears before its first chunk
danielhanchen Sep 9, 2026
3d0a1bb
tests : ask for a shorter keepalive where a rotation races it
danielhanchen Sep 9, 2026
01aa526
exact concurrency: refuse a lora that inherits a host buffer
danielhanchen Sep 9, 2026
6190723
exact concurrency: check the batch geometry the context settled on
danielhanchen Sep 9, 2026
56ed47f
Merge b10869 into feat/server-side-preemption-integration
danielhanchen Sep 9, 2026
cb30d96
Keep upstream's workflow files on the pin branch, as every other pinn…
danielhanchen Sep 9, 2026
cfe5930
Merge upstream b10871 into feat/server-side-preemption-integration
danielhanchen Sep 9, 2026
50aa4be
Pin that an exact-mode cross-sequence copy leaves both sequences as t…
danielhanchen Sep 9, 2026
4700c7f
Condense the allocation granularity comment to two lines
danielhanchen Sep 9, 2026
15df635
Use ggml_prec_set_acc for the exact-mode buffer probe, as upstream de…
danielhanchen Sep 9, 2026
fb5f029
Park only when asked: --preempt-ram defaults to 0, so a server withou…
danielhanchen Sep 10, 2026
04bcb0a
Read src[5] as a page table only for the op that has one
danielhanchen Sep 10, 2026
2b27c22
Normalize sequence planes in every batch-invariant mode, not only und…
danielhanchen Sep 10, 2026
025286e
Fix the CI legs that broke on the last rebase: a portable setenv in t…
danielhanchen Sep 10, 2026
7529931
Build test-exact-buft only where llama-impl.h links, queue the starte…
danielhanchen Sep 10, 2026
8ec97d6
Condense the exact-mode weight check comment so it is not hard-wrapped
danielhanchen Sep 10, 2026
9bcd8ab
tests : give the rotation test time to finish and stop the deliberate…
danielhanchen Sep 10, 2026
d3833b0
server : keep the tokens a recompute restore replays out of the reque…
danielhanchen Sep 10, 2026
e4168eb
server : put the preemption record inside the completed response of a…
danielhanchen Sep 10, 2026
8f2a95d
tests : condense the exact-pages preamble so it is not hard-wrapped
danielhanchen Sep 10, 2026
6d62ad7
llama : refuse an asynchronous state transfer for a model whose state…
danielhanchen Sep 10, 2026
9aabc85
tests : drive the started-slot trim from the prompt lengths instead o…
danielhanchen Sep 10, 2026
d14f07b
tests : make the failed-save park a matter of lengths rather than of …
danielhanchen Sep 10, 2026
5356710
server : reset the prompt counters when a recompute park restarts a p…
danielhanchen Sep 10, 2026
d36213c
server : number the preempt notices of every task of a batched reques…
danielhanchen Sep 10, 2026
7a32e3b
tests : let the server log settle before asserting on its text
danielhanchen Sep 10, 2026
5066bfd
llama : keep the exact-mode host buffer comment to whole sentences
danielhanchen Sep 10, 2026
dcdb691
tests : make the two generations that do not fit overlap by their len…
danielhanchen Sep 10, 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
  •  
  •  
  •  
12 changes: 6 additions & 6 deletions .devops/nix/package.nix
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
]
&& blas.meta.available,
useCuda ? config.cudaSupport,
useMetalKit ? stdenv.isAarch64 && stdenv.isDarwin,
useMetalKit ? stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isDarwin,
# Increases the runtime closure size by ~700M
useMpi ? false,
useRocm ? config.rocmSupport,
Expand Down Expand Up @@ -92,7 +92,7 @@ let

cudaBuildInputs = with cudaPackages; [
cuda_cudart
cuda_cccl # <nv/target>
cccl # <nv/target>
libcublas
];

Expand Down Expand Up @@ -166,7 +166,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {
# `xcrun` is used find the path of the Metal compiler, which is varible
# and not on $PATH
# see https://github.com/ggml-org/llama.cpp/pull/6118 for discussion
__noChroot = effectiveStdenv.isDarwin && useMetalKit && precompileMetalShaders;
__noChroot = effectiveStdenv.hostPlatform.isDarwin && useMetalKit && precompileMetalShaders;

nativeBuildInputs =
[
Expand All @@ -181,10 +181,10 @@ effectiveStdenv.mkDerivation (finalAttrs: {
autoAddDriverRunpath
]
++ optionals (effectiveStdenv.hostPlatform.isGnu && enableStatic) [ glibc.static ]
++ optionals (effectiveStdenv.isDarwin && useMetalKit && precompileMetalShaders) [ xcrunHost ];
++ optionals (effectiveStdenv.hostPlatform.isDarwin && useMetalKit && precompileMetalShaders) [ xcrunHost ];

buildInputs =
optionals effectiveStdenv.isDarwin darwinBuildInputs
optionals effectiveStdenv.hostPlatform.isDarwin darwinBuildInputs
++ optionals useCuda cudaBuildInputs
++ optionals useMpi [ mpi ]
++ optionals useRocm rocmBuildInputs
Expand Down Expand Up @@ -245,7 +245,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {

# Configurations that are known to result in build failures. Can be
# overridden by importing Nixpkgs with `allowBroken = true`.
broken = (useMetalKit && !effectiveStdenv.isDarwin);
broken = (useMetalKit && !effectiveStdenv.hostPlatform.isDarwin);

description = "Inference of LLaMA model in pure C/C++${descriptionSuffix}";
homepage = "https://github.com/ggml-org/llama.cpp/";
Expand Down
12 changes: 6 additions & 6 deletions .devops/openvino.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
ARG OPENVINO_VERSION_MAJOR=2026.3
ARG OPENVINO_VERSION_FULL=2026.3.0.22451.bd8d6542e3c
ARG OPENVINO_VERSION_MAJOR=2026.3.1
ARG OPENVINO_VERSION_FULL=2026.3.1.22476.56d9685302d
ARG UBUNTU_VERSION=24.04

# Intel GPU driver versions. https://github.com/intel/compute-runtime/releases
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 IGC_VERSION=v2.40.13
ARG IGC_VERSION_FULL=2_2.40.13+22418
ARG COMPUTE_RUNTIME_VERSION=26.31.39395.13
ARG COMPUTE_RUNTIME_VERSION_FULL=26.31.39395.13-0
ARG IGDGMM_VERSION=22.10.0

# Intel NPU driver versions. https://github.com/intel/linux-npu-driver/releases
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
blank_issues_enabled: true
blank_issues_enabled: false
contact_links:
- name: Got an idea?
url: https://github.com/ggml-org/llama.cpp/discussions/categories/ideas
Expand Down
50 changes: 27 additions & 23 deletions .github/actions/ccache-buckets/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,34 +58,38 @@ runs:
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"
if [[ -n "$HF_TOKEN" ]]; then
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
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"
if [[ -n "$HF_TOKEN" ]]; then
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
fi
2 changes: 1 addition & 1 deletion .github/actions/windows-setup-rocm/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ runs:
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 }}"
python -m pip install --index-url https://stable.repo.amd.com/rocm/whl-next/ "rocm[libraries,devel]==${{ inputs.version }}"
# Pre-expand the devel tree so it is included in the cache
write-host "Initializing ROCm devel tree"
Expand Down
89 changes: 89 additions & 0 deletions .github/workflows/ai-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: AI review (issues)

on:
issues:
types: [opened]

jobs:
find-related:
if: github.event.action == 'opened'
runs-on: [self-hosted, opencode]

permissions:
contents: read
issues: write

steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 1

- name: Find related
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENCODE_PERMISSION: |
{
"bash": {
"*": "deny",
"gh issue view*": "allow",
"gh issue list*": "allow",
"gh issue comment*": "allow",
"gh search issues*": "allow"
},
"webfetch": "deny"
}
run: |
rm AGENTS.md
rm CLAUDE.md

timeout 5m opencode run -m llama.cpp-dgx/ai-review-issues-find-similar --thinking "A new issue has been created:

Issue number: ${{ github.event.issue.number }}

Lookup the contents of the issue using the following 'gh' command:

gh issue view ${{ github.event.issue.number }} --json title,body,url,number

Next, perform the following task and then post a SINGLE comment (if needed).

---

TASK : FIND RELATED ISSUES

Using the 'gh' CLI tool, search through existing issues on Github.
Find related or similar issues to the newly created one and list them.
Do not list the new issue itself (it is #${{ github.event.issue.number }}).

Consider:
1. Similar titles or descriptions
2. Same error messages or symptoms
3. Related functionality or components
4. Similar feature requests

---

POSTING YOUR COMMENT:

Based on your findings, post a SINGLE comment on issue #${{ github.event.issue.number }}. Build the comment as follows:

- If no related issues were found, do NOT comment at all.
- If related issues were found, include a section listing them with links using the following format:

[comment]
This issue might be similar or related to the following issue(s):

- #12942: [brief description of how they are related]
- #11234: [brief description of how they are related]
...

_This comment was auto-generated locally using **$GA_ENGINE** on **$GA_MACHINE**_
[/comment]

Remember:
- Do not include the comment tags in your actual comment.
- Post at most ONE comment combining all findings.
- If you didn't find issues that are related enough, post nothing.
- You have access only to the 'gh' CLI tool - don't try to use other tools.
- If the output from a tool call is too long, try to limit down the search.
"
57 changes: 57 additions & 0 deletions .github/workflows/build-3rd-party.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: CI (3rd-party)

on:
workflow_dispatch: # allows manual triggering
push:
branches:
- master
paths: [
'.github/workflows/build-3rd-party.yml',
'**/CMakeLists.txt',
'**/.cmake',
'**/*.h',
'**/*.hpp',
'**/*.c',
'**/*.cpp'
]

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}
cancel-in-progress: true

env:
GGML_NLOOP: 3
GGML_N_THREADS: 1
LLAMA_ARG_LOG_COLORS: 1
LLAMA_ARG_LOG_PREFIX: 1
LLAMA_ARG_LOG_TIMESTAMPS: 1

jobs:
ubuntu-24-llguidance:
runs-on: ${{ 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}

steps:
- name: Clone
id: checkout
uses: actions/checkout@v6

- name: Dependencies
id: depends
run: |
sudo apt-get update
sudo apt-get install build-essential libssl-dev

- name: Build
id: cmake_build
run: |
cmake -B build \
-DLLAMA_FATAL_WARNINGS=ON \
-DLLAMA_LLGUIDANCE=ON
cmake --build build --config Release -j $(nproc)

- name: Test
id: cmake_test
run: |
cd build
ctest -L main --verbose --timeout 900

Loading
Loading