|
|
@@ -0,0 +1,84 @@
|
|
|
+# Night shift 2026-10-21 → 22 — отчёт
|
|
|
+
|
|
|
+Стенд dgx5–8 (по указанию оператора), прод dgx1–4 не трогали.
|
|
|
+
|
|
|
+## 1. Баги из дашборда — исправлены и выпущены
|
|
|
+
|
|
|
+**Панель рецептов держала лейны «активными» после остановки.** Причина: строки
|
|
|
+пересобирались только по событиям файлов в `reports/` и `recipe.toml`, а
|
|
|
+`serve`/`stop` пишут `.lock` (леджер) — он не считался релевантным. Плюс флаги
|
|
|
+`stale`/`fleet_up` выставлялись навсегда.
|
|
|
+
|
|
|
+- `.lock` теперь триггерит пересборку; 30-секундный тик сверяет «up»-множество
|
|
|
+ строк с леджером и пересобирает при расхождении;
|
|
|
+- флаги пересчитываются каждый проход (в т.ч. `fleet_up` на аддоне, где леджера
|
|
|
+ нет вообще — раньше он замирал после первого прохода).
|
|
|
+- Проверено вживую: подсунутый открытый run → оранжевый `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`.
|
|
|
+
|
|
|
+## 2. Дневной ресерч — главное
|
|
|
+
|
|
|
+**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`.
|
|
|
+
|
|
|
+## 3. TensorFold 1.0.12 (Zig) TP4 — собран, но не поднялся
|
|
|
+
|
|
|
+Подробно: `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`).
|
|
|
+
|
|
|
+## 4. GLM-5.3 (full) MXFP4×FP8 на 4 нодах — в работе
|
|
|
+
|
|
|
+Рецепт `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.
|