فهرست منبع

Night-plan Task1: Ling fp4 38/54 done; NAS cold-read collapsed to 1.3MB/s (external, not our cluster) = blocker; converter fixes (copy_file_range NFS hang, 1-worker, NAS is the only bottleneck); resume command

Alexander Korolev 1 هفته پیش
والد
کامیت
28ed284c75
1فایلهای تغییر یافته به همراه25 افزوده شده و 3 حذف شده
  1. 25 3
      history/night-shifts/2026-10-17-night-plan.md

+ 25 - 3
history/night-shifts/2026-10-17-night-plan.md

@@ -37,9 +37,31 @@
 ## Task 1 — Ling-3.1-flash fp4: доконвертировать → serve на 1 Spark → bench
 
 Конвертер (fp8-block experts → MXFP4, «even» scale, byte-exact vs vLLM
-`reference_mxfp4.py`) идёт на dgx5 → NAS
-`models--inclusionAI--Ling-3.1-flash-fp4` (snapshot `9144477b…`, refs/main уже
-стоит). 30/54 шардов.
+`reference_mxfp4.py`) — **38/54 шардов готово** на NAS
+`models--inclusionAI--Ling-3.1-flash-fp4` (snapshot `9144477b…`, refs/main стоит).
+Готовы: 1-14, 19-30, 37-48. Остались: **15-18, 31-36, 49-54** (16).
+
+**БЛОКИРОВКА (внешняя): cold-read throughput NAS `nas.lan` коллапсировал** с
+~83 MB/s (22:xx) до **~1.3 MB/s** (23:1x) — dd, mmap и Python-read одинаково
+виснут в D-state на холодных шардах; warm (page cache) 564MB/s. Это НЕ наш
+кластер (dgx1 kindling RX = 0; NAS не SSH-ится). Скраб/бэкап/диск на NAS.
+Возобновлять когда `dd if=<cold shard> of=/dev/null bs=4M` > 30 MB/s.
+
+**Найденные фиксы конвертера** (`/home/kilork/ling_fp4_full.py`, `/tmp/…` на Mac):
+- `shutil.copyfile` на NFS = `copy_file_range` возвращает 0 → бесконечный
+  D-state цикл. Уже убран (copy-подход откатан — он ещё и удваивает NAS-трафик).
+- 2–3 конкурентных больших потока thrash'ят HDD-NAS (8MB/s на поток). **1 воркер**.
+- `dequant_fp8_block`/`quant_mxfp4` — миллисекунды, НЕ узкое место (GPU не нужен,
+  но и не вредит). Узкое место — только чтение шарда с NAS.
+
+Возобновление (когда NAS здоров, 1 воркер, mmap):
+```
+ssh dgx5; tmux new -d -s fp4S "/home/kilork/relaunch.sh 15-18 31-36 49-54"
+```
+(`relaunch.sh` = 1 docker-run за раз, `--device cuda --no-finalize`, идемпотентно
+по шардам.) Затем **finalize**:
+`python3 ~/ling_fp4_full.py --src <SRC> --dst <DST> --finalize-only` — index+config
+(`total_size ≈ 110 GB`, 54 шарда, `routed_experts_*`).
 
 1. Дождаться 54/54 (3 воркера `fp4_1-18`/`fp4_19-36`/`fp4_37-54`). Если воркер
    завис — перезапустить только его диапазон (`--shards A-B --no-finalize`),