{
 "rules": "studies/compare/ACCEPTANCE.md",
 "revision": "r14",
 "subject": {
  "nangate45": "cv_gemv_r14c_p8",
  "asap7": "cv_gemv_r14r_p8"
 },
 "gates": {
  "G1 nangate45": {
   "pass": true,
   "evidence": "nangate45-cv_gemv_r14c_p8/sim.log"
  },
  "G2 nangate45": {
   "pass": true,
   "evidence": "nangate45-cv_gemv_r14c_p8/lec.txt"
  },
  "G3 nangate45": {
   "pass": true,
   "drc": 0,
   "setup_worst_slack_ns": 2.01834,
   "evidence": [
    "nangate45-cv_gemv_r14c_p8/6_report.json",
    "nangate45-cv_gemv_r14c_p8/6_finish.rpt"
   ]
  },
  "G1 asap7": {
   "pass": true,
   "evidence": "asap7-cv_gemv_r14r_p8/sim.log"
  },
  "G2 asap7": {
   "pass": true,
   "evidence": "asap7-cv_gemv_r14r_p8/lec.txt"
  },
  "G3 asap7": {
   "pass": true,
   "drc": 0,
   "setup_worst_slack_ns": 0.19401,
   "evidence": [
    "asap7-cv_gemv_r14r_p8/6_report.json",
    "asap7-cv_gemv_r14r_p8/6_finish.rpt"
   ]
  },
  "G4": {
   "rule": "every row used by the verdict reproduced, every number equal, on a different machine",
   "second_machine": {
    "file": "second-machine-summary.json",
    "rows_needed": 22,
    "rows_missing": [],
    "fields_compared": "every scalar field of each row",
    "fields_per_row": 31,
    "differences": [],
    "complete_and_identical": true
   },
   "clean_rerun_same_machine": {
    "file": "rerun-summary.json",
    "rows_needed": 22,
    "rows_missing": [],
    "fields_compared": "every scalar field of each row",
    "fields_per_row": 31,
    "differences": [],
    "complete_and_identical": true
   },
   "pass": true
  }
 },
 "metrics": {
  "M1 nangate45": {
   "subject": 627.7067514597313,
   "against": {
    "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
     "value": 475.2160792031814,
     "row": "vta8_csa",
     "ratio": 1.3208870215676176,
     "better": true
    },
    "LogikBench TPU MXU": {
     "value": 26.86922854275025,
     "row": "tpu8",
     "ratio": 23.361547223472357,
     "better": true
    },
    "OpenGeMM BlockGemm": {
     "value": 313.365889452936,
     "row": "opengemm8",
     "ratio": 2.003111291262624,
     "better": true
    },
    "Gemmini mesh": {
     "value": 27.565778024958405,
     "row": "gemmini8",
     "ratio": 22.77123289940874,
     "better": true
    },
    "Plain W8A8 GEMV (baseline)": {
     "value": 316.311264395914,
     "row": "w8a8_p8",
     "ratio": 1.984459050671228,
     "better": true
    }
   },
   "pass": true
  },
  "M1 asap7": {
   "subject": 27686.39578511054,
   "against": {
    "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
     "value": 23478.48391486634,
     "row": "vta8_csa",
     "ratio": 1.179224173311284,
     "better": true
    },
    "LogikBench TPU MXU": {
     "value": 1395.5708069095263,
     "row": "tpu8",
     "ratio": 19.838761063239573,
     "better": true
    },
    "OpenGeMM BlockGemm": {
     "value": 7544.929306601196,
     "row": "opengemm8",
     "ratio": 3.669536805452532,
     "better": true
    },
    "Gemmini mesh": {
     "value": 1431.2917800876291,
     "row": "gemmini8",
     "ratio": 19.343641995495478,
     "better": true
    },
    "Plain W8A8 GEMV (baseline)": {
     "value": 16489.799316150493,
     "row": "w8a8_p8",
     "ratio": 1.6790013786276854,
     "better": true
    }
   },
   "pass": true
  },
  "M2 nangate45": {
   "subject": 0.694799608787594,
   "against": {
    "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
     "value": 0.9206215689285968,
     "row": "vta8_csa",
     "ratio": 0.754707072088469,
     "better": true
    },
    "LogikBench TPU MXU": {
     "value": 8.289490625954537,
     "row": "tpu8",
     "ratio": 0.08381692436108976,
     "better": true
    },
    "OpenGeMM BlockGemm": {
     "value": 1.1491631235681978,
     "row": "opengemm8",
     "ratio": 0.6046135614152089,
     "better": true
    },
    "Gemmini mesh": {
     "value": 7.968970418971012,
     "row": "gemmini8",
     "ratio": 0.08718812748175686,
     "better": true
    },
    "Plain W8A8 GEMV (baseline)": {
     "value": 1.2649527814179615,
     "row": "w8a8_p8",
     "ratio": 0.5492692051388285,
     "better": true
    }
   },
   "pass": true
  },
  "M2 asap7": {
   "subject": 0.1503444439447159,
   "against": {
    "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
     "value": 0.17930975414690292,
     "row": "vta8_csa",
     "ratio": 0.8384621609683507,
     "better": true
    },
    "LogikBench TPU MXU": {
     "value": 1.6158656259086435,
     "row": "tpu8",
     "ratio": 0.09304266489373045,
     "better": true
    },
    "OpenGeMM BlockGemm": {
     "value": 0.23964751371225915,
     "row": "opengemm8",
     "ratio": 0.6273565772321428,
     "better": true
    },
    "Gemmini mesh": {
     "value": 1.5699730920162345,
     "row": "gemmini8",
     "ratio": 0.0957624335788051,
     "better": true
    },
    "Plain W8A8 GEMV (baseline)": {
     "value": 0.23235266326445386,
     "row": "w8a8_p8",
     "ratio": 0.6470528111554301,
     "better": true
    }
   },
   "pass": true
  },
  "M3 nangate45": {
   "subject": 5.375,
   "against": {
    "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
     "value": 6.0,
     "row": "vta8",
     "ratio": 0.8958333333333334,
     "better": true
    },
    "LogikBench TPU MXU": {
     "value": 8.071428571428571,
     "row": "tpu8",
     "ratio": 0.665929203539823,
     "better": true
    },
    "OpenGeMM BlockGemm": {
     "value": 6.0,
     "row": "opengemm8",
     "ratio": 0.8958333333333334,
     "better": true
    },
    "Gemmini mesh": {
     "value": 8.071428571428571,
     "row": "gemmini8",
     "ratio": 0.665929203539823,
     "better": true
    },
    "Plain W8A8 GEMV (baseline)": {
     "value": 9.0,
     "row": "w8a8_p8",
     "ratio": 0.5972222222222222,
     "better": true
    }
   },
   "pass": true
  },
  "M3 asap7": {
   "subject": 5.375,
   "against": {
    "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
     "value": 6.0,
     "row": "vta8",
     "ratio": 0.8958333333333334,
     "better": true
    },
    "LogikBench TPU MXU": {
     "value": 8.071428571428571,
     "row": "tpu8",
     "ratio": 0.665929203539823,
     "better": true
    },
    "OpenGeMM BlockGemm": {
     "value": 6.0,
     "row": "opengemm8",
     "ratio": 0.8958333333333334,
     "better": true
    },
    "Gemmini mesh": {
     "value": 8.071428571428571,
     "row": "gemmini8",
     "ratio": 0.665929203539823,
     "better": true
    },
    "Plain W8A8 GEMV (baseline)": {
     "value": 9.0,
     "row": "w8a8_p8",
     "ratio": 0.5972222222222222,
     "better": true
    }
   },
   "pass": true
  },
  "M4a nangate45": {
   "pass": true,
   "evidence": "nangate45-cv_gemv_r14c_p8/sim.log"
  },
  "M4a asap7": {
   "pass": true,
   "evidence": "asap7-cv_gemv_r14r_p8/sim.log"
  },
  "M4b": {
   "subject_delta_pct": 14.131014409597768,
   "against": {
    "INT4 g128 round-to-nearest": {
     "delta_pct": 22.254294421810183,
     "row": "int4_g128_rtn",
     "not_worse": true
    },
    "MXFP4 (better encoder)": {
     "delta_pct": 25.655463069411518,
     "row": "mxfp4_ceil",
     "not_worse": true
    }
   },
   "reported_not_in_pass_line": {
    "int4_g32_rtn": 13.97426104535499,
    "nvfp4": 16.29934087396588
   },
   "evidence": "formats.json",
   "pass": true,
   "recent_models": {
    "Qwen3.5-0.8B-Base": {
     "subject_delta_pct": 9.824007574782168,
     "int4_g128_rtn": 16.44015591362362,
     "mxfp4_better": 16.229898380460718,
     "mxfp4_row": "mxfp4",
     "nvfp4_reported": 10.448309287995606,
     "pass": true,
     "evidence": "formats-Qwen3.5-0.8B-Base.json"
    },
    "Qwen3.5-2B-Base": {
     "subject_delta_pct": 5.86548593253251,
     "int4_g128_rtn": 8.037899658939107,
     "mxfp4_better": 10.114549004850183,
     "mxfp4_row": "mxfp4_ceil",
     "nvfp4_reported": 5.34518607758212,
     "pass": true,
     "evidence": "formats-Qwen3.5-2B-Base.json"
    },
    "gemma-4-E2B": {
     "subject_delta_pct": 17.666343391367146,
     "int4_g128_rtn": 36.458947166999465,
     "mxfp4_better": 26.000386951190222,
     "mxfp4_row": "mxfp4",
     "nvfp4_reported": 14.06155446076147,
     "pass": true,
     "evidence": "formats-gemma-4-E2B.json"
    }
   }
  }
 },
 "missing": [],
 "other_setting_disclosure": {
  "nangate45/cv_gemv_r14r_p8": {
   "met_target": true,
   "not_better_than": []
  },
  "asap7/cv_gemv_r14c_p8": {
   "met_target": false,
   "not_better_than": []
  }
 },
 "verdict_by_code": "reached",
 "note": "Section 7 of ACCEPTANCE.md: this is the code half of the verdict. It stands only when a reviewer from a different model family, reading the raw files, agrees.",
 "open_pdk": {
  "processes": [
   "sky130hd",
   "gf180",
   "ihp-sg13g2"
  ],
  "subject": {
   "sky130hd": "cv_gemv_r14c_p8",
   "gf180": "cv_gemv_r14r_p8",
   "ihp-sg13g2": "cv_gemv_r14c_p8"
  },
  "gates": {
   "G1 sky130hd": {
    "pass": true
   },
   "G2 sky130hd": {
    "pass": true
   },
   "G3 sky130hd": {
    "pass": true,
    "drc": 0,
    "setup_worst_slack_ns": 0.478441
   },
   "G1 gf180": {
    "pass": true
   },
   "G2 gf180": {
    "pass": true
   },
   "G3 gf180": {
    "pass": false,
    "drc": 0,
    "setup_worst_slack_ns": -0.0159037
   },
   "G1 ihp-sg13g2": {
    "pass": true
   },
   "G2 ihp-sg13g2": {
    "pass": true
   },
   "G3 ihp-sg13g2": {
    "pass": true,
    "drc": 0,
    "setup_worst_slack_ns": 1.34807
   },
   "G4": {
    "pass": true,
    "rows_needed": 33,
    "rows_missing": [],
    "differences": []
   }
  },
  "metrics": {
   "M1 sky130hd": {
    "subject": 57.25152742931979,
    "against": {
     "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
      "value": 47.251586025859964,
      "row": "vta8_official_csa",
      "ratio": 1.2116318677215836,
      "better": true
     },
     "LogikBench TPU MXU": {
      "value": 2.6168357051507587,
      "row": "tpu8",
      "ratio": 21.878151278901733,
      "better": true
     },
     "OpenGeMM BlockGemm": {
      "value": 16.559730778546328,
      "row": "opengemm8",
      "ratio": 3.457274045994215,
      "better": true
     },
     "Gemmini mesh": {
      "value": 2.722178362618886,
      "row": "gemmini8",
      "ratio": 21.031512194608975,
      "better": true
     },
     "Plain W8A8 GEMV (baseline)": {
      "value": 30.783350255421112,
      "row": "w8a8_p8",
      "ratio": 1.859821200560764,
      "better": true
     }
    },
    "pass": true
   },
   "M2 sky130hd": {
    "subject": 3.7329051260444808,
    "against": {
     "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
      "value": 4.877263251003787,
      "row": "vta8_official_csa",
      "ratio": 0.7653688008897641,
      "better": true
     },
     "LogikBench TPU MXU": {
      "value": 52.20729703191083,
      "row": "tpu8",
      "ratio": 0.07150159725302012,
      "better": true
     },
     "OpenGeMM BlockGemm": {
      "value": 6.896733844498943,
      "row": "opengemm8",
      "ratio": 0.5412569500593337,
      "better": true
     },
     "Gemmini mesh": {
      "value": 52.75450006920377,
      "row": "gemmini8",
      "ratio": 0.07075993746784874,
      "better": true
     },
     "Plain W8A8 GEMV (baseline)": {
      "value": 6.536644158072794,
      "row": "w8a8_p8",
      "ratio": 0.5710736328570557,
      "better": true
     }
    },
    "pass": true
   },
   "M3 sky130hd": {
    "subject": 5.375,
    "against": {
     "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
      "value": 6.0,
      "row": "vta8",
      "ratio": 0.8958333333333334,
      "better": true
     },
     "LogikBench TPU MXU": {
      "value": 8.071428571428571,
      "row": "tpu8",
      "ratio": 0.665929203539823,
      "better": true
     },
     "OpenGeMM BlockGemm": {
      "value": 6.0,
      "row": "opengemm8",
      "ratio": 0.8958333333333334,
      "better": true
     },
     "Gemmini mesh": {
      "value": 8.071428571428571,
      "row": "gemmini8",
      "ratio": 0.665929203539823,
      "better": true
     },
     "Plain W8A8 GEMV (baseline)": {
      "value": 9.0,
      "row": "w8a8_p8",
      "ratio": 0.5972222222222222,
      "better": true
     }
    },
    "pass": true
   },
   "M1 gf180": {
    "subject": 10.90302978979153,
    "against": {
     "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
      "value": 7.204240312889611,
      "row": "vta8_official_csa",
      "ratio": 1.5134183919828654,
      "better": true
     },
     "LogikBench TPU MXU": {
      "value": 0.3436006164395083,
      "row": "tpu8",
      "ratio": 31.73169449686082,
      "better": true
     },
     "OpenGeMM BlockGemm": {
      "value": 2.07976592292872,
      "row": "opengemm8",
      "ratio": 5.242431212853952,
      "better": true
     },
     "Gemmini mesh": {
      "value": 0.49678737626757974,
      "row": "gemmini8",
      "ratio": 21.94707496737787,
      "better": true
     },
     "Plain W8A8 GEMV (baseline)": {
      "value": 6.178736788404686,
      "row": "w8a8_p8",
      "ratio": 1.7646049934110608,
      "better": true
     }
    },
    "pass": true
   },
   "M2 gf180": {
    "subject": 111.26770193623706,
    "against": {
     "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
      "value": 114.73635939777782,
      "row": "vta8_official_csa",
      "ratio": 0.9697684545705749,
      "better": true
     },
     "LogikBench TPU MXU": {
      "value": 1080.6953246079067,
      "row": "tpu8",
      "ratio": 0.10295936273862083,
      "better": true
     },
     "OpenGeMM BlockGemm": {
      "value": 152.81885114397323,
      "row": "opengemm8",
      "ratio": 0.7281019396711068,
      "better": true
     },
     "Gemmini mesh": {
      "value": 936.1026986275991,
      "row": "gemmini8",
      "ratio": 0.11886270822567262,
      "better": true
     },
     "Plain W8A8 GEMV (baseline)": {
      "value": 164.73865801956063,
      "row": "w8a8_p8",
      "ratio": 0.6754194994293654,
      "better": true
     }
    },
    "pass": true
   },
   "M3 gf180": {
    "subject": 5.375,
    "against": {
     "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
      "value": 6.0,
      "row": "vta8",
      "ratio": 0.8958333333333334,
      "better": true
     },
     "LogikBench TPU MXU": {
      "value": 8.071428571428571,
      "row": "tpu8",
      "ratio": 0.665929203539823,
      "better": true
     },
     "OpenGeMM BlockGemm": {
      "value": 6.0,
      "row": "opengemm8",
      "ratio": 0.8958333333333334,
      "better": true
     },
     "Gemmini mesh": {
      "value": 8.071428571428571,
      "row": "gemmini8",
      "ratio": 0.665929203539823,
      "better": true
     },
     "Plain W8A8 GEMV (baseline)": {
      "value": 9.0,
      "row": "w8a8_p8",
      "ratio": 0.5972222222222222,
      "better": true
     }
    },
    "pass": true
   },
   "M1 ihp-sg13g2": {
    "subject": 27.69298382996199,
    "against": {
     "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
      "value": 23.304656107139476,
      "row": "vta8_csa",
      "ratio": 1.1883026165521546,
      "better": true
     },
     "LogikBench TPU MXU": {
      "value": 1.1506262490755836,
      "row": "tpu8",
      "ratio": 24.067749064659886,
      "better": true
     },
     "OpenGeMM BlockGemm": {
      "value": 9.3515971501282,
      "row": "opengemm8",
      "ratio": 2.9613106066681185,
      "better": true
     },
     "Gemmini mesh": {
      "value": 1.1121784805954555,
      "row": "gemmini8",
      "ratio": 24.899765921684878,
      "better": true
     },
     "Plain W8A8 GEMV (baseline)": {
      "value": 14.074240472646329,
      "row": "w8a8_p8",
      "ratio": 1.9676361139191887,
      "better": true
     }
    },
    "pass": true
   },
   "M2 ihp-sg13g2": {
    "subject": 3.511850282936956,
    "against": {
     "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
      "value": 4.935926870527705,
      "row": "vta8_csa",
      "ratio": 0.7114875027638933,
      "better": true
     },
     "LogikBench TPU MXU": {
      "value": 59.4666694910861,
      "row": "tpu8",
      "ratio": 0.05905577549560554,
      "better": true
     },
     "OpenGeMM BlockGemm": {
      "value": 8.49442893855733,
      "row": "opengemm8",
      "ratio": 0.41342982657682914,
      "better": true
     },
     "Gemmini mesh": {
      "value": 60.88847408974096,
      "row": "gemmini8",
      "ratio": 0.05767676617681349,
      "better": true
     },
     "Plain W8A8 GEMV (baseline)": {
      "value": 7.49444238261058,
      "row": "w8a8_p8",
      "ratio": 0.46859393983540826,
      "better": true
     }
    },
    "pass": true
   },
   "M3 ihp-sg13g2": {
    "subject": 5.375,
    "against": {
     "VTA matrix-vector core (best of hand port, official generated module, their tuned versions and their carry-save versions)": {
      "value": 6.0,
      "row": "vta8",
      "ratio": 0.8958333333333334,
      "better": true
     },
     "LogikBench TPU MXU": {
      "value": 8.071428571428571,
      "row": "tpu8",
      "ratio": 0.665929203539823,
      "better": true
     },
     "OpenGeMM BlockGemm": {
      "value": 6.0,
      "row": "opengemm8",
      "ratio": 0.8958333333333334,
      "better": true
     },
     "Gemmini mesh": {
      "value": 8.071428571428571,
      "row": "gemmini8",
      "ratio": 0.665929203539823,
      "better": true
     },
     "Plain W8A8 GEMV (baseline)": {
      "value": 9.0,
      "row": "w8a8_p8",
      "ratio": 0.5972222222222222,
      "better": true
     }
    },
    "pass": true
   }
  },
  "missing": [],
  "verdict_by_code": "not reached",
  "note": "M3, M4a and M4b do not depend on the process and carry over from the main verdict."
 }
}