summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--experiments/coupled_ladder_scaling.py9
-rw-r--r--sdil/coupled_ladder.py3
2 files changed, 11 insertions, 1 deletions
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