fix(experiment): уточнено определение активной подкачки

- Зачем:
  - занятые, но неизменные swap-страницы ошибочно блокировали канонический Ryzen-прогон.
- Что:
  - active swap определяется изменением счетчиков sin/sout во время ячейки.
  - сохранены memory gates для OOM, RSS plateau, линейного роста и пикового RSS.
- Проверка:
  - uv run pytest -q tests/test_streaming_sortformer_experiment.py tests/test_benchmark_experiment.py tests/test_speaker_diarizer.py tests/test_diarization.py.
This commit is contained in:
Dmitry Dementiev committed 2026-09-04 18:50:31 +03:00
1 parent d71aec4ab2
commit 4c4a8be07b
2 files changed
+47 -18

No files matched your search

@@ -1095,8 +1095,6 @@ def memory_gate(
for value in integer_values
):
raise ValueError("memory-value")
if swap_before_bytes > 0 or swap_after_bytes > 0:
return {"state": "stop", "reason": "active-swap", **base}
if stage == "fragment":
if len(rss_after_inputs) != 3:
return {"state": "stop", "reason": "rss-no-plateau", **base}
@@ -1446,13 +1444,10 @@ def _guard_transition_reasons(
def _swap_active(before: Mapping[str, Any], after: Mapping[str, Any] | None = None) -> bool:
if before["swap_used_bytes"] > 0:
return True
if after is None:
return False
return bool(
after["swap_used_bytes"] > 0
or after["swap_sin_bytes"] != before["swap_sin_bytes"]
after["swap_sin_bytes"] != before["swap_sin_bytes"]
or after["swap_sout_bytes"] != before["swap_sout_bytes"]
)