Research Notes Catalog
This file catalogs permanent research notes in docs/research/. AGENTS.md is
the workflow document for deciding where new documentation belongs.
Deep CFR
- Lost Cities Deep CFR selectivity ideas — Consolidates selectivity failure hypotheses, diagnostics, and interventions before expensive architecture changes. (2026-05-10)
- Deep CFR 512x3 2000-iteration baseline analysis — Finds advantage loss improving while evaluated average-policy quality degrades, requiring current-vs-average diagnostics. (2026-05-08)
- Batched and parallel evaluation in Deep CFR — Batching games and parallelizing opponents cuts CUDA evaluation overhead after entropy stays on device. (2026-05-08)
- Deep CFR evaluation profiling — Defines runtime counters that separate policy inference, encoding, opponent logic, and engine costs. (2026-05-08)
- Deep CFR evaluation performance — Shows serial batch-size-one CUDA evaluation is slower than CPU until evaluation is batched. (2026-05-08)
- Deep CFR legacy parity and hyperparameter mapping — Maps legacy features, architecture, and traversal knobs needed for meaningful reproduction comparisons. (2026-05-08)
- Deep CFR runtime: legacy vs. current implementation — Attributes current speedups to Cython traversal, batched evaluation, and opponent-parallel execution. (2026-05-08)
- Deep CFR performance optimization and scaling — Concludes small models regress under AMP or compile; interleaved traversal is the real win. (2026-05-08)
- Advantage memory split performance optimization — Splitting advantage reservoirs by player removes linear sample filtering and stabilizes iteration time. (2026-05-08)
- Deep CFR performance profile: advantage training bottlenecks — Identifies shared-memory player filtering as the original advantage-training scaling bottleneck. (2026-05-08)
- Deep CFR regret matching fallback and early over-opening — Shows uniform all-negative fallback frequently fires early and over-samples expedition-opening actions. (2026-05-08)
- Deep CFR reproducibility policy — Sets debug versus research reproducibility expectations and required matched-seed reporting practice. (2026-05-08)
- Deep CFR reproducibility — Traces same-seed multi-worker divergence to completion-order-sensitive reservoir insertion and sampling. (2026-05-08)
- Deep CFR v0: architectural parity and performance gaps — Confirms functional parity while naming synchronous recursive policy inference as the scaling bottleneck. (2026-05-08)
- Deep CFR Cython traversal architecture — Explains mutation-based Cython traversal, chance sampling, and non-leaking information-state encoding. (2026-05-08)
- Option A benchmark and structural ceiling — Shows centralized inference regressed because sync-blocking recursion capped realized GPU batch size. (2026-05-08)
- Post-A optimization calculus — Defers compile and TensorRT until model scale or evaluation density makes inference compute-bound. (2026-05-08)
- Deep CFR package architecture and design rationale — Documents the Cython/Python module split that follows traversal hot paths versus orchestration. (2026-05-07)
- Batched traversal inference decision — Records the initial Option A rationale and why later benchmarks redirected work toward interleaving. (2026-05-07)
- Deep CFR v0 subsystem coverage vs. legacy reference — Establishes that remaining legacy gaps are tooling and performance, not core algorithm correctness. (2026-05-07)
- Opponent policy: network vs. self-play league — Explains why a live network opponent collapses while snapshot leagues preserve stationarity. (2026-05-07)
- Outcome-sampling MCCFR advantage target — Defends zero unsampled-action targets as the textbook importance-weighted outcome-sampling estimator. (2026-05-07)
- Regret-matching all-negative fallback — Keeps uniform as the safe default while documenting argmax-tiebreak's unsettled early-training effects. (2026-05-07)
- Strategy memory recording location — Concludes traverser-node strategy samples are fine for outcome sampling, but external sampling needs OpenSpiel flags. (2026-05-07)
SO-ISMCTS
- SO-ISMCTS BC ceiling — Finds behavior cloning remains the ceiling under current search and compute budgets. (2026-05-11)
Engine / Performance
- Classic game port architecture — Describes the standalone Cython classic engine as the stable rules layer for all consumers. (2026-05-08)
- Fast engine optimization architecture — Prioritizes C-level APIs, contiguous allocation, and zero-copy extraction for high-throughput RL. (2026-05-08)
- Optimization sequencing — Orders runtime, traversal, model-scale, and inference optimizations to avoid invalidating experiments. (2026-05-07)
Other
- Julia port evaluation — Rejects a full Julia port for now because GPU MLP inference misses the threshold. (2026-05-10)
- Test coverage strategy for Python and Cython modules — Recommends Python-first coverage and isolated Cython tracing to protect performance artifacts. (2026-05-08)