// Phase 2 方案B:真实区槽状态 C++ 全接管(1 次同步版)+ demand_dual。 // 复刻 Python ResidentExpertPool 的 free/LFU 语义,成为 dual-source decode 真实区唯一权威。 #pragma once #include "../common.h" void real_init(int layer, int cap); // 初始化某层真实区(cap 槽全空闲),幂等 std::vector real_region_contents(int layer); // [expert, slot, ...] int real_region_count(int layer); void real_reset(); // AUTOPIN:注册 pinned 热专家(驱逐免选),返回平行槽位(-1=分不到);前置 real_init。 std::vector real_pin(int layer, const std::vector& experts); // 该层 pinned(永不可驱逐)专家数。调用方据此算「可安放的唯一专家上限」= cap − pinned, // 用于在超容量前把该前向分流到 host/fetch 路径(超了会落 0 号槽 → 逐位错算)。 int real_pinned_count(int layer); // AUTOPIN:导出各层 LFU 累计频次,扁平 [layer, expert, count, ...]。 std::vector real_freq_dump(); // demand 全接管:inds 惰性(内部 eval 一次);side_gen 侧区代;pool_list 为 _segs 顺序池数组。 mx::array demand_dual( const mx::array& inds, const std::vector& pool_list, const std::vector& seg_nbytes, int layer, int side_gen, const std::string& path, int stride, int cap, bool lfu, int decay_interval, mx::StreamOrDevice s); // [hitpos, misspos, loads, fallback01, unplaced] // unplaced:本次分不到槽、被迫落 0 号槽的唯一专家数。>0 即该前向逐位错算(必须为 0)。 std::vector demand_last_stats(); std::vector demand_timings(); // [inds_eval, pool_eval, state, build] us void demand_timing_enable(bool on); // 测试壳:纯状态推进(不 pread/不侧区),返回 local 槽位;供 LFU 驱逐等价对拍。 std::vector real_debug_place(int layer, const std::vector& experts_flat, int cap, bool lfu, int decay_interval);