Kimi K3 в C: 2.78T параметров на 8 ГБ RAM
Полная инженерная заметка о реализации inference 2.78-триллионной модели Kimi K3 в чистом C99 на одном CPU без GPU, BLAS и фреймворков, с измеренным минимумом 8.24 ГБ RAM и byte-identical выводом на всех бюджетах от 8 до 224 ГБ.
privacy
Эта заметка участвует в semantic memory.
AI Summary
🚀 TL;DR: проект показывает, как запустить 2.78T-параметровую MoE-модель Kimi K3 на обычном CPU с 8 ГБ RAM, используя 4 ключевых оптимизации: MXFP4-эксперты (0.53125 байта/вес), KDA-внимание с фиксированным состоянием, MLA-латентный кэш и потоковую загрузку trunk-слоёв.
🔑 Ключевые факты: 82 432 routed-эксперта (1.447 ТБ) никогда не загружаются целиком; 69 из 93 слоёв используют KDA с 626 МБ состояния независимо от длины контекста; 24 MLA-слоя кэшируют 576-мерный латент вместо 30 720 флоатов на позицию; trunk упакован в 108.81 ГБ с одним sequential read на слой.
📌 Важные детали: 5 инвариантов (A_log per-head, UT-inverse, Aqk/Akk, NoPE+64-rope, unbiased sigmoid); 3-фазный LRU-кэш экспертов с INFLIGHT-слотами; O_DIRECT + 2 МБ hugepages; измеренный шум тайминга 33 %; Quantile Balancing делает LRU-кэш бесполезным ниже ~36 ГБ; trunk-first allocation даёт 1.69× ускорение при фиксированном бюджете.
💡 Вывод и значение: даёт byte-identical токены на всех бюджетах 8–224 ГБ; 40–61 % времени — ожидание диска; prefill стоит ~53 с, decode ~8.9 с/токен; рекомендуемый split — 110 ГБ trunk / 13 ГБ cache; для разработки достаточно make test без чекпоинта.