Стенд dgx5–8 (по указанию оператора), прод dgx1–4 не трогали.
Панель рецептов держала лейны «активными» после остановки. Причина: строки
пересобирались только по событиям файлов в reports/ и recipe.toml, а
serve/stop пишут .lock (леджер) — он не считался релевантным. Плюс флаги
stale/fleet_up выставлялись навсегда.
.lock теперь триггерит пересборку; 30-секундный тик сверяет «up»-множество
строк с леджером и пересобирает при расхождении;fleet_up на аддоне, где леджера
нет вообще — раньше он замирал после первого прохода).stale; runlock
close → строка исчезает на следующем тике. Релиз 1.3.3.Ресайз окна лога. Жест умирал при пересечении iframe-панели рецептов (iframe
становится целью pointer-событий). drag() теперь берёт pointer capture —
работает и рост, и перенос. Релиз 1.3.1.
Host-скрипты переехали в репозиторий рецептов. before_serve/after_stop
принимают { script = "scripts/prepare.sh" } — путь относительно каталога
рецепта (абсолютные и .. запрещены). tensorfold_1017_prepare стал
recipes/dsv41-flash-1017-2x-tensorfold/scripts/prepare.sh. Попутно: хуки
получают serve-local NODE_RANK (на subset-запуске отдавали конфиг-ранг —
паки строились для ранга 2/3 в 2-ранговом движке), bench понимает
TensorFold-овский --name.
Чейнджлог аддона — sm121/CHANGELOG.md (HA показывает секцию установленной
версии); правило «каждый бамп = своя секция» в AGENTS.md. Релизы 1.3.0 → 1.3.3.
Дисциплина мониторинга (по замечанию оператора) — раздел в AGENTS.md: не
sleep 600; check, а фоновый запуск + короткий поллинг в том же вызове с
выходом на первом Error:/FATAL.
TensorFold ушёл далеко вперёд. Наш рецепт пинит TF 0.6.0; публичная семья — 1.0.12 / 1.2.4 (нативный Zig-движок) с 2- и 4-нодовыми рецептами, kept-prompt reuse, wide copy windows, точным DSpark.
RedHatAI/GLM-5.3-MXFP4xFP8 (21-е): полный GLM-5.3 (не Flash), 78 слоёв,
GlmMoeDsaForCausalLM, ~4.5 бита/пар, 415.4 GB, 1M окно. В карточке —
TP8; у нас TP4 = ~97 GiB весов на ранк.
local-inference-lab открыл GitHub: blackwell-llm-docker (образы
voipmonitor/sglang:cu130|cu132, voipmonitor/vllm:vllm-b12x-cu132,
voipmonitor/vllm:lucifer — b12x + FlashInfer из исходников, CUDA 13.2),
форк flashinfer, llm-inference-bench.
Форум, новое: 386130 «RAIDFLASH: 2.5× decode on 2×GB10 GLM-5.3-Flash (TensorFold)» — слой параллельных страйпов поверх TF 0.6.0 (разбивает длинный ответ на k полос, собирает): 49 → 110–200 tok/s на одном пользователе, но это про длинную генерацию, не про агентский ход (целостность между полосами под вопросом — см. #4 в треде). 386108 (GLM-5.3-Flash-FP4-Local + 2M FP8 KV), 386098 (1017), 386285 (4×China OEM без свитча, 90 tok/s).
Полный план: 2026-10-21-night-plan.md.
Подробно: specs/tech-architecture/tensorfold-1.0.12-bringup.md.
Сделано: движок собран (Zig 0.17.0 + CUDA 13, -Dsm=121), kit проверен
(362/362 файлов MANIFEST; RoPE-таблицы и vision-биas добраны из HF), веса
EXL3 4.0bpw (288 GB) на NAS, rank-cache 75.6 GiB/нода (tf-dsv41-check:
189 610 записей, 0 расхождений), token map.
Блокер: the native CUDA engine cannot load /model … glue kernels
(FileNotFound), а tf-dsv41-load → MissingEntry — движок и 4.0bpw-чекпойнт
на этом коммите расходятся по какой-то записи (не шард, не kit-файл).
Попутно выяснено и записано: HF-симлинки рвут bind-mount (лечится каталогом
жёстких ссылок), entrypoint образа надо гасить (--entrypoint ""), token map
на хосте падает (нет tokenizers).
Рецепт glm53-mxfp4-fp8-4x (TP4, 32K окно, MTP k=5, glm47-парсеры, образ
spark-glm53:v10, у которого в реестре уже есть GlmMoeDsaForCausalLM).
Веса (415 GB) качаются на NAS (~123 MB/s). Образ разложен на все 4 ноды заранее.
Дальше: boot (чтение 415 GB с NAS на каждый ранк), probe, tool-eval-bench.