Перейти к содержанию

Ёмкость кэша активаций

Жёсткая оценка без sharing (worst case: каждый геном и каждый breeder держат все вершины на всём батче).

Zero-sharing bound

[ n_{\mathrm{img}} = \left\lfloor \frac{B_{\mathrm{cache}}}{(P + \rho P)\, V\, C_{\max}\, H_{\max}\, W_{\max}\, \cdot 4} \right\rfloor ] где \(V = 1 + L_{\max} N_{\max}\) — верхняя оценка числа вершин, 4 — байт float32, \(\rho P\) — inherited breeders.

Функция: strict_full_batch_image_limit. Script 11 использует bound + OOM-лестницу val \(4000\to 3000\to 2000\).

Мягкое и жёсткое вытеснение

В ForwardActivationCache:

  • soft: resident \(\ge 0.55\, B\) — ranked drip до \(0.50\, B\), остальной unused остаётся;
  • hard: \(\ge 0.70\, B\) — drip до \(0.58\, B\), иначе covered parents;
  • panic \(\ge 0.75\, B\) — ranked drip ≤10% бюджета, без empty_cache.

При fitness_forward_hash_cache_strict_capacity=True превышение бюджета после поколения — CacheCapacityViolation (не «тихо пропустить put»).

Общее использование и верхняя граница

Реальный hit-rate \(\gg 0\) из-за общих префиксов и elite-наследования, поэтому \(n_{\mathrm{img}}\) — нижняя оценка безопасного full-batch. Wave-simulator (cache_wave_sim) проверяет политики eviction без свёрток.

Capacity ladder

Zero-sharing bound, soft/hard reclaim и OOM-лестница val.

Результаты: ёмкость кэша.