From 9ffd620c5d4960ea28d0d1292260237860066e4a Mon Sep 17 00:00:00 2001 From: YurenHao0426 Date: Sat, 29 Aug 2026 17:59:48 -0500 Subject: feat: add clean-only overclamp selection path --- experiments/coupled_ladder_scaling.py | 9 +++++++++ sdil/coupled_ladder.py | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/experiments/coupled_ladder_scaling.py b/experiments/coupled_ladder_scaling.py index 7c50e2d..bb6f090 100644 --- a/experiments/coupled_ladder_scaling.py +++ b/experiments/coupled_ladder_scaling.py @@ -35,6 +35,7 @@ METHODS = ( "raw", "constant", "sdil", + "overclamp_clean", "overclamp", "overclamp_sdil", ) @@ -135,6 +136,8 @@ def run_job(job: dict) -> dict: epochs=job["epochs"], record_every=job["record_every"], learning_time_seconds=job["learning_time_seconds"], + overclamp_time_seconds_per_v=( + job["overclamp_time_seconds_per_v"]), ) methods = {} for method in job["methods"]: @@ -262,6 +265,8 @@ def parse_args() -> argparse.Namespace: "24:0.001,32:0.001"), ) parser.add_argument("--calibration-observations", type=int, default=16) + parser.add_argument( + "--overclamp-time-seconds-per-v", type=float, default=0.0025) parser.add_argument("--gain-standard-deviation", type=float, default=0.01) parser.add_argument( "--twin-mismatch-standard-deviation-v", type=float, default=0.001) @@ -300,6 +305,8 @@ def main() -> None: "record_every": args.record_every, "learning_time_seconds": learning_times[side], "calibration_observations": args.calibration_observations, + "overclamp_time_seconds_per_v": ( + args.overclamp_time_seconds_per_v), "gain_standard_deviation": args.gain_standard_deviation, "twin_mismatch_standard_deviation_v": ( args.twin_mismatch_standard_deviation_v), @@ -341,6 +348,8 @@ def main() -> None: "record_every": args.record_every, "learning_time_seconds_by_side": learning_times, "calibration_observations": args.calibration_observations, + "overclamp_time_seconds_per_v": ( + args.overclamp_time_seconds_per_v), "component_imperfection": { "gain_standard_deviation": args.gain_standard_deviation, "twin_mismatch_standard_deviation_v": ( diff --git a/sdil/coupled_ladder.py b/sdil/coupled_ladder.py index b7c67fb..7777ecc 100644 --- a/sdil/coupled_ladder.py +++ b/sdil/coupled_ladder.py @@ -198,6 +198,7 @@ def train_digital_grid( "raw", "constant", "sdil", + "overclamp_clean", "overclamp", "overclamp_sdil", } @@ -268,7 +269,7 @@ def train_digital_grid( observed_rate = imperfection.observed_rate( circuit.measured_learning_rate, free_drops, clamped_drops) - if method == "clean": + if method in {"clean", "overclamp_clean"}: applied_rate = ideal_rate elif method == "matched_noise": measurement_error = observed_rate - ideal_rate -- cgit v1.2.3