Ollama 发布: v0.34.2-rc2: mlxrunner: Release freed KV buffers during speculative decode
来源摘要
The decode loop releases MLX's pool of freed buffers every 256 generated tokens, which is also how often the KV cache grows and drops its previous, smaller buffers. The check fires only when the token count lands exactly on a multiple of 256. Speculative decoding emits several tokens per round, so most rounds step over the boundary and the pool is never released. Each growth at a long context leaves several GB of buffers that no later allocation can reuse, so the runner's footprint keeps climbing over a long generation until the system runs out of memory. We now release the pool whenever a round crosses a multiple of 256 tokens, which is what a single-token round already did. With qwen3.8:27b-mlx at a 98k-token context on a 128 GB machine, a long speculative generation previously grew the runner past 90 GB and panicked the kernel; it now stays flat at 30 GB.
阅读原始来源- 来源
- Ollama 发布 · 官方来源
- 来源更新
- 2026/09/18 00:45
- 首次采集
- 2026/09/19 12:56
本文为公开信息索引与摘要,详情及后续变化请以原始来源为准。