{
  "source_revision": "69a498b9429c6524beda97269f6e49fd98707143",
  "source_url": "https://github.com/guoshaoyang-pku/poor-rl/blob/69a498b9429c6524beda97269f6e49fd98707143/docs/INFRA_HISTORY.md",
  "source_sha256": "28f89ed327afcd81e3e399b6466ba10a798111d62dde51e67a69d443786dba79",
  "all_rows": [
    {
      "phase": "v0",
      "compute": "FP32",
      "gpus": "4＋4",
      "n": 9,
      "median_step_s": 120.17,
      "tokens_per_s": 1607,
      "vs_v1": "0.81×",
      "rollout_wait": "54.7%",
      "mfu_estimate": "12.1%",
      "first_step_difference": "2.04"
    },
    {
      "phase": "v1（近似 TRL baseline）",
      "compute": "BF16",
      "gpus": "4＋4",
      "n": 17,
      "median_step_s": 113.8,
      "tokens_per_s": 1972,
      "vs_v1": "1.00×",
      "rollout_wait": "84.9%",
      "mfu_estimate": "1.1%",
      "first_step_difference": "1.20"
    },
    {
      "phase": "v2",
      "compute": "BF16",
      "gpus": "4＋2",
      "n": 4,
      "median_step_s": 136.38,
      "tokens_per_s": 1551,
      "vs_v1": "0.79×",
      "rollout_wait": "90.9%",
      "mfu_estimate": "0.9%",
      "first_step_difference": "1.17"
    },
    {
      "phase": "v3",
      "compute": "BF16",
      "gpus": "4＋5",
      "n": 186,
      "median_step_s": 61.06,
      "tokens_per_s": 31392,
      "vs_v1": "15.92×",
      "rollout_wait": "1.9%",
      "mfu_estimate": "15.6%",
      "first_step_difference": "1.64"
    },
    {
      "phase": "v3.1",
      "compute": "BF16",
      "gpus": "4＋3",
      "n": 25,
      "median_step_s": 63.87,
      "tokens_per_s": 30755,
      "vs_v1": "15.60×",
      "rollout_wait": "2.0%",
      "mfu_estimate": "15.0%",
      "first_step_difference": "1.52"
    },
    {
      "phase": "v3.1b",
      "compute": "BF16",
      "gpus": "4＋5",
      "n": 61,
      "median_step_s": 65.11,
      "tokens_per_s": 30516,
      "vs_v1": "15.47×",
      "rollout_wait": "2.4%",
      "mfu_estimate": "14.8%",
      "first_step_difference": "1.48"
    },
    {
      "phase": "v3.1e",
      "compute": "BF16",
      "gpus": "4＋5",
      "n": 110,
      "median_step_s": 65.27,
      "tokens_per_s": 30957,
      "vs_v1": "15.70×",
      "rollout_wait": "1.9%",
      "mfu_estimate": "15.0%",
      "first_step_difference": "1.54"
    },
    {
      "phase": "v3.2",
      "compute": "BF16",
      "gpus": "4＋5",
      "n": 447,
      "median_step_s": 36.18,
      "tokens_per_s": 53221,
      "vs_v1": "26.99×",
      "rollout_wait": "7.4%",
      "mfu_estimate": "25.9%",
      "first_step_difference": "1.54"
    },
    {
      "phase": "v3.2b",
      "compute": "BF16",
      "gpus": "4＋5",
      "n": 447,
      "median_step_s": 36.15,
      "tokens_per_s": 52825,
      "vs_v1": "26.79×",
      "rollout_wait": "7.8%",
      "mfu_estimate": "25.7%",
      "first_step_difference": "1.46"
    },
    {
      "phase": "v3.2（4＋4对照）",
      "compute": "BF16",
      "gpus": "4＋4",
      "n": 17,
      "median_step_s": 35.57,
      "tokens_per_s": 53691,
      "vs_v1": "27.23×",
      "rollout_wait": "6.4%",
      "mfu_estimate": "26.7%",
      "first_step_difference": "1.49"
    },
    {
      "phase": "v3.2（本轮对照）",
      "compute": "BF16",
      "gpus": "4＋4",
      "n": 17,
      "median_step_s": 37.24,
      "tokens_per_s": 52058,
      "vs_v1": "26.40×",
      "rollout_wait": "6.5%",
      "mfu_estimate": "24.8%",
      "first_step_difference": "1.55"
    },
    {
      "phase": "v4（量化／缓存修复）",
      "compute": "FP8",
      "gpus": "4＋4",
      "n": 17,
      "median_step_s": 38.33,
      "tokens_per_s": 52992,
      "vs_v1": "26.87×",
      "rollout_wait": "8.2%",
      "mfu_estimate": "4.3%",
      "first_step_difference": "14.42"
    },
    {
      "phase": "v4（compact backward＋128 GiB）",
      "compute": "FP8",
      "gpus": "4＋4",
      "n": 17,
      "median_step_s": 32.34,
      "tokens_per_s": 58363,
      "vs_v1": "29.60×",
      "rollout_wait": "5.8%",
      "mfu_estimate": "4.7%",
      "first_step_difference": "14.42"
    },
    {
      "phase": "v4（view-base修复）³",
      "compute": "FP8",
      "gpus": "4＋4",
      "n": 17,
      "median_step_s": 33.82,
      "tokens_per_s": 57103,
      "vs_v1": "28.96×",
      "rollout_wait": "5.2%",
      "mfu_estimate": "4.6%",
      "first_step_difference": "14.33"
    },
    {
      "phase": "v4（stride统一）",
      "compute": "FP8",
      "gpus": "4＋4",
      "n": 17,
      "median_step_s": 32.23,
      "tokens_per_s": 61268,
      "vs_v1": "31.07×",
      "rollout_wait": "4.1%",
      "mfu_estimate": "5.0%",
      "first_step_difference": "14.00"
    },
    {
      "phase": "v4（融合／缓存／MB1024）⁴",
      "compute": "FP8",
      "gpus": "4＋4＋2 reference",
      "n": 3,
      "median_step_s": 71.67,
      "tokens_per_s": 135439,
      "vs_v1": "68.68×",
      "rollout_wait": "8.6%",
      "mfu_estimate": "10.5%",
      "first_step_difference": "14.28"
    },
    {
      "phase": "v4（同源码复现，step 4–6）⁴",
      "compute": "FP8",
      "gpus": "4＋4＋2 reference",
      "n": 3,
      "median_step_s": 64.76,
      "tokens_per_s": 136825,
      "vs_v1": "69.38×",
      "rollout_wait": "9.0%",
      "mfu_estimate": "10.6%",
      "first_step_difference": "14.50"
    },
    {
      "phase": "v4（同次复现，step 7–10）⁴",
      "compute": "FP8",
      "gpus": "4＋4＋2 reference",
      "n": 4,
      "median_step_s": 69.18,
      "tokens_per_s": 108421,
      "vs_v1": "54.98×",
      "rollout_wait": "23.8%",
      "mfu_estimate": "8.3%",
      "first_step_difference": "14.50"
    },
    {
      "phase": "v4（judge 链路修复，step 4–6）⁴",
      "compute": "FP8",
      "gpus": "4＋4＋2 reference",
      "n": 3,
      "median_step_s": 67.86,
      "tokens_per_s": 137792,
      "vs_v1": "69.87×",
      "rollout_wait": "8.6%",
      "mfu_estimate": "10.8%",
      "first_step_difference": "14.46"
    },
    {
      "phase": "v4（β=0，4＋4静态）",
      "compute": "FP8",
      "gpus": "4＋4",
      "n": 3,
      "median_step_s": 63.33,
      "tokens_per_s": 116249,
      "vs_v1": "58.95×",
      "rollout_wait": "32.8%",
      "mfu_estimate": "9.0%",
      "first_step_difference": "14.34"
    },
    {
      "phase": "v4（β=0，4＋4自适应）",
      "compute": "FP8",
      "gpus": "4＋4",
      "n": 3,
      "median_step_s": 63.53,
      "tokens_per_s": 141979,
      "vs_v1": "72.00×",
      "rollout_wait": "16.5%",
      "mfu_estimate": "11.2%",
      "first_step_difference": "14.33"
    },
    {
      "phase": "v4（β=0，4＋6静态）",
      "compute": "FP8",
      "gpus": "4＋6",
      "n": 3,
      "median_step_s": 58.01,
      "tokens_per_s": 151401,
      "vs_v1": "76.78×",
      "rollout_wait": "11.3%",
      "mfu_estimate": "11.8%",
      "first_step_difference": "14.20"
    }
  ],
  "throughput_definition": "sum trained completion tokens / sum step wall seconds, including wait and weight sync",
  "v4_beta0_window": "predefined steps 4-6, n=3, one run per configuration",
  "v4_beta0_batch": {
    "true_microbatch_per_rank": 1024,
    "gradient_accumulation": 1,
    "global_batch": 4096
  },
  "caveat": "Precision, batch, scheduling, beta and physical GPU count changed. MFU methods differ. Consistency gate failed."
}
