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

Программный интерфейс: кэш Меркла прямого прохода

Пакет cnn_neat.forward_cache (experimental). Экспорт: ForwardActivationCache, хэши, план уникальный промах (unique-miss), eviction.

Хэши (hashes.py)

Функция Смысл
data_id_from_tensor SHA256 всего тензора + class/seed/indices/namespace
batch_data_id Срез [start:end] того же data-id
input_node_hash Входной вид: view, data_id, \(C,H,W\)
edge_hash / edge_hash_from_conv Геометрия + байты весов + optional edge scalar
merge_node_hash Merkle-узел: активация, merge mode, \(C,H,W\), отсортированные \((h_e, h_{\mathrm{src}})\)
sort_merge_inputs Стабильный порядок входов
\[ h_{\mathrm{merge}} = \mathrm{SHA256}(\texttt{merge},\;\sigma,\;\mathrm{mode},\;C,H,W,\;\{(h_e,h_{\mathrm{src}})\}) \]

Hit по \(h\) ⇒ тот же активационный тензор (корректность кэша).

Пул и оверлей

ActivationPool, PoolEntry, UnionOverlay, OverlayNode, OverlayEdge, GenomeId — resident-активации и граф «кто использует какой hash».

ForwardActivationCache (executor.py): execute(..., store_activations, defer_commit), commit_pending, discard_pending. Константы: soft 55%→50%, hard 70%→58%, drip ≤10% бюджета без empty_cache; unused ниже keep-линии не вычищается.

Запланированный уникальный промах (planned.py)

Тип / функция Роль
MissRecipe, GenomePlan, PopulationWorkPlan Что ещё не в пуле
plan_population_misses Один compute на уникальный miss-hash
execute_planned_genome / execute_planned_population GPU-проход + сборка выходов

После каждого генома оставляют elite ∪ remaining-needed. Приоритетнее streaming elite, если оба флага True.

Вытеснение (eviction.py)

evict_until, eviction_rank_key, has_heirs, refresh_covered_flags, refresh_heir_flags, drop_doomed_bulk, drop_low_value_bulk, drop_unprotected, evict_unused_without_heirs, is_doomed_entry, is_low_value_entry.

Covered-by-children родители вытесняются раньше; output/frontier — позже.

История

append_cache_history_point, load_cache_history, point_from_cache → forward_hash_cache_history.json для Studio.

Математика: merkle-cache, ёмкость. Реализация: software/forward-cache.