From b8bb78103a4017300720a5904561fdf9efa537dc Mon Sep 17 00:00:00 2001 From: Dmitry Dementiev Date: Fri, 4 Sep 2026 21:38:42 +0300 Subject: [PATCH] =?UTF-8?q?docs(benchmark):=20=D0=B7=D0=B0=D1=84=D0=B8?= =?UTF-8?q?=D0=BA=D1=81=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=20stop=20Ryzen?= =?UTF-8?q?-=D0=BF=D1=80=D0=BE=D0=B3=D0=BE=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - задача #46 должна завершиться воспроизводимым решением по каноническому Ryzen-эксперименту. - Что: - записан stop из-за несовпадения числа кластеров свежего W0. - сохранены безопасные агрегаты W0 и вторичный провал проверки swap. - отмечено, что Sortformer не запускался и данных об ускорении нет. - Проверка: - uv run pytest -q. - независимая сверка отчета с закрытым результатом и проверка литературного русского. --- .../2026-09-04-streaming-sortformer-ryzen.md | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 docs/benchmarks/2026-09-04-streaming-sortformer-ryzen.md diff --git a/docs/benchmarks/2026-09-04-streaming-sortformer-ryzen.md b/docs/benchmarks/2026-09-04-streaming-sortformer-ryzen.md new file mode 100644 index 0000000..078ca5b --- /dev/null +++ b/docs/benchmarks/2026-09-04-streaming-sortformer-ryzen.md @@ -0,0 +1,73 @@ +# Streaming Sortformer: формальный `stop` на Ryzen + +**Дата:** 2026-09-04 + +**Статус:** эксперимент завершен как `stop`. Для трех объектов закрытого +манифеста были закреплены количества кластеров `2 / 2 / 3`, но W0 выдал +`2 / 2 / 2`. Кандидат не запускался. + +## Решение + +Свежий W0 не прошел обязательную проверку числа говорящих на одном из трех +300-секундных фрагментов. По условиям +[эксперимента](../specs/2026-09-01-streaming-sortformer-cpu-experiment.md) +такая база сравнения непригодна. Выполнена одна из двенадцати запланированных +ячеек. Sortformer и остальные ячейки не запускались, ускорение не считалось. +Данных о скорости или качестве кандидата этот прогон не дал. + +Во время W0 также зафиксированы чтение из swap и запись в него. Это независимый +провал проверки среды и памяти, но первой причиной `stop` остается +`cluster-count-mismatch`: проверка качества завершилась раньше итогового снимка +системных счетчиков. + +## Результат W0 + +| Показатель | Значение | +| --- | ---: | +| Суммарный wall, с | `103,242485` | +| Ожидаемые кластеры | `2 / 2 / 3` | +| Полученные кластеры | `2 / 2 / 2` | +| Пиковый RSS | `340 340 736` байт (`324,57` МиБ) | +| Прочитано из swap за ячейку | `503 808` байт (`492` КиБ) | +| Записано в swap за ячейку | `151 552` байт (`148` КиБ) | + +Первые два фрагмента прошли обязательные проверки числа кластеров, текста, +порядка слов и интервалов. Третий фрагмент содержал подтвержденные три голоса, +но W0 сформировал два кластера. Повтор не назначался: несовпадение числа +кластеров само по себе завершает шаг приемки W0. + +## Условия + +W0 выполнялся по закрепленному рецепту `W0-FRESH`: + +- `sherpa-onnx/core 1.13.6`, CPU provider; +- Pyannote Segmentation 3.0 FP32 и WeSpeaker ResNet34 LM FP32; +- один процесс, одна сессия, восемь физических ядер, + `intra_op_threads=8`, `inter_op_threads=1`; +- `window_shift_ratio=0.1`, `FastClustering(auto, 0.89)`, + `min_duration_on=0.3`, `min_duration_off=0.5`; +- Windows Balanced, boost mode `2`; Linux cpufreq/governor в WSL2 не + предоставляется. + +До измерения успешно завершились обязательные детерминированные тесты, запуск +с `--validate-only` и предварительная проверка C ABI и конфигурации кандидата. +Последняя подтвердила четыре выходных канала, шаг `0,08` с и закрепленную +CPU-конфигурацию, но не обрабатывала аудио и не является проверкой качества +Sortformer. + +## Техническая привязка + +- коммит исходного кода `local-transcriber`: + `4c4a8be07b3653cede35b0435e6c9ef6cb3fb87d`; +- коммит NeMo-Speech.cpp: + `4f9676226f667d14608487df744f375db87127f8`; +- модель Streaming Sortformer v2 Q8_0: + `0679cfeb1ce356d0dea9470b31274f4bfc7eb927497d82005483770666da998a`; +- закрытый итоговый файл W0: + `ad32b3fe8a204e2fe6fbb6a13142e22c7e00ce9f0d816c3b0b8889fcab898e89`. + +Последний SHA-256 нужен только для проверки неизменности закрытого результата: +он не оценивает диаризацию и не участвует в решении `stop`. Закрытая основа и +результаты сохраняются для следующих исследований. Их повторное использование +должно быть прямо предусмотрено новым экспериментом; вердикт и расписание +задачи #46 автоматически не переносятся.