Kernoscope 0.2.0 本机自检（selftest）
  设备 NVIDIA GeForce RTX 4090（sm_89） · torch 2.12.1+cu130 / CUDA 13.0
  口径：256 MB 张量 · 每类负载 3 次 × 2 s 饱和循环 · bf16

已知答案对拍（物理上应该是多少 vs 我们测出来多少）：
  负载              解析字节/次        实测字节/次       偏差      显存忙碌
  copy          536.9 MB      589.8 MB    +9.8%    100.0%
  copy          536.9 MB      589.8 MB    +9.9%    100.0%
  copy          536.9 MB      589.7 MB    +9.8%    100.0%
  read          268.4 MB      289.8 MB    +8.0%    100.0%
  read          268.4 MB      289.9 MB    +8.0%    100.0%
  read          268.4 MB      289.9 MB    +8.0%    100.0%
  write         268.4 MB      283.4 MB    +5.6%    100.0%
  write         268.4 MB      283.4 MB    +5.6%    100.0%
  write         268.4 MB      283.4 MB    +5.6%    100.0%
  matmul        805.3 MB     5034.6 MB  +525.2%     21.0%
  matmul        805.3 MB     5034.5 MB  +525.2%     21.0%
  matmul        805.3 MB     4648.2 MB  +477.2%     21.0%

本机误差带（DRAM 字节代理，只用 copy/read/write 的已知答案偏差并集（DRAM-bound 负载））：+5.6% … +9.9%   ← 单边偏高是代理口径的已知性质，不是 bug
  （matmul 不进误差带：compute-bound：显存忙碌只有 20%~40%，「忙碌时间×峰值」口径不适用（偏差可达 +1000%，这不是测量误差而是口径错用））
MDD（两次运行差多少才算真差别）：DRAM 字节 5.0% · kernel 时长 0.5%
  口径：max(3×SD（同负载重复，含跨进程样本）, NVML 1 个百分点分辨率下限, 本机误差带半宽, 实测漂移下限 5%)（本次 SD=0.31% · 分辨率下限=1.0% · 误差带半宽=2.15%）
  下限的依据：本次自测的 run-to-run SD = 0.31%（唯一来源：本产物的 run_to_run_sd_pct）；5% 是保守下限常量（MDD_FLOOR_DRAM_PCT），用来兜住「SD 恰好很小」的那次自测
  适用范围：MDD 只对测出它的那段机器状态成立：换机器、时钟/温度状态或同机其他租户负载变化后都要重跑 selftest；比较两次运行前先让 GPU 进入稳态

顺带量到的本机峰值（copy 侧可当 --ks-calibration 的带宽输入；matmul 侧见下方适用范围）：copy 921 GB/s · read 939 GB/s · matmul 135.1 TFLOP/s（单一尺寸 11585）
  ⚠ selftest 的 matmul 峰值来自**单一尺寸**的采样，只用于本机误差带与带宽侧 roofline；**不要当 --ks-calibration** —— 要标定请跑 tools/machine-profile.py（多尺寸 sweep + 累加口径扫描）
注：误差带是**本机、本次口径**的测量结果：换机器或换 dtype 都要重跑
