$ cat local-llm/week/2026-09-14.log
the week in review · Sep 14 – Sep 20, 2026
Sparse attention lands across vLLM, SGLang, llama.cpp
By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology
Vulkan and SYCL backends got sparse Flash Attention and memory fixes, while SGLang gated Responses persistence off by default.
vulkan: support sparse Flash Attention ggml-org/llama.cpp
Vulkan now supports sparse Flash Attention, extending the kernel to a backend that previously had none. llama.cpp's SYCL side also got a oneDNN scratchpad fix for the pool free order and a fix for free-memory reporting, and ggml-cpu disabled its precompiled header and removed the std::hardware_destructive_interference_size branch from CACHE_LINE_SIZE after that combination caused heap corruption.
[Perf][Kernel] Integrate DeepSelect TopK for the DSA sparse indexer vllm-project/vllm
vLLM pulled DeepSeek DeepSelect in via CMake FetchContent and made every decode top-k implementation on the DSA sparse indexer path explicitly selectable, so you can pick the kernel per deployment instead of taking the default. A companion change adds sampled filtering for persistent top-k: a coalesced sample estimates a cutoff, survivors are compacted in shared memory, and exact FP32 selection...
[PD][OpenAI] Gate /v1/responses persistence behind --enable-response-store, default off sgl-project/sglang
The Responses serving path kept two unbounded in-memory dicts, response_store and msg_store, with no TTL or eviction. Persistence is now behind --enable-response-store and defaults off, so prefill and decode nodes stop accumulating per-node bookkeeping unless asked.
create: add server-side MLX imports and drop GGUF conversion ollama/ollama
Ollama's create pipeline now supports server-side MLX safetensors imports, locally and remote, covering upload and staging, draft layers, cancellation propagation, transfer limits, and shared manifest and blob writing. GGUF create is narrowed to wrapping existing GGUF inputs into manifests, so safetensors is the path for anything new.
[DSA] Wire DeepGEMM sparse MQA logits into the DeepSeek V4.1 indexer vllm-project/vllm
DeepSeek V4.1 picks attention tokens in two levels, but consumer layers still scored the whole context with dense MQA logits and masked afterward. DeepGEMM sparse MQA logits are now wired into the indexer so scoring happens inside the blocks the first indexer layer published.
[Bugfix] Handle bare and malformed tool call openers in Gemma4 parser vllm-project/vllm
gemma-4-26b-a4b-it emits tool calls in formats beyond the documented one: a bare opener that omits "call", and a no-brace variant without an opening brace. The Gemma4 parser handles the malformed cases now, which matters if you parse tool calls from that model in production.
ggml-cpu : disable PCH and fix CACHE_LINE_SIZE ambiguity to fix heap corruption (#28882) ggml-org/llama.cpp
Disabling the ggml-cpu precompiled header and dropping the std::hardware_destructive_interference_size branch fixes heap corruption on affected builds.
[SYCL] Fix get mem error ggml-org/llama.cpp
Alongside: llama.cpp's SYCL free-memory reporting was fixed, the MLX engine moved out of x/ into mlx/ and mlxrunner/ as the only non-experimental Go engine, Metal MoE and SSM fusion landed, and Ollama exposed thinking levels.
$ ls local-llm/week/ # the briefings behind this review
Keep up with Local LLMs in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.
Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.