diff --git a/validation/validate.py b/validation/validate.py index bff3de1..7599c95 100644 --- a/validation/validate.py +++ b/validation/validate.py @@ -60,6 +60,7 @@ def main(): ap.add_argument("--simulator-dir", default=None, help="Path to pim-simulator crate root (default: auto-detected relative to script).") ap.add_argument("--threshold", type=float, default=1e-3, help="Max allowed diff per output element.") + ap.add_argument("--seed", type=int, default=0, help="RNG seed for generated validation inputs.") ap.add_argument("--crossbar-size", type=int, default=64) ap.add_argument("--crossbar-count", type=int, default=8) ap.add_argument("--core-count", type=int, default=None, @@ -117,6 +118,7 @@ def main(): onnx_path, a.raptor_path, a.onnx_include_dir, simulator_dir, crossbar_size=a.crossbar_size, crossbar_count=a.crossbar_count, core_count=a.core_count, threshold=a.threshold, + seed=a.seed, reporter=reporter, model_index=index, model_total=len(onnx_files), diff --git a/validation/validate_one.py b/validation/validate_one.py index c00a433..0e66b3b 100644 --- a/validation/validate_one.py +++ b/validation/validate_one.py @@ -268,7 +268,7 @@ def validate_outputs(sim_arrays, runner_out_dir, outputs_descriptor, threshold=1 def validate_network(network_onnx_path, raptor_path, onnx_include_dir, simulator_dir, crossbar_size=64, crossbar_count=8, core_count=None, threshold=1e-3, - reporter=None, model_index=1, model_total=1, verbose=False): + seed=0, reporter=None, model_index=1, model_total=1, verbose=False): network_onnx_path = Path(network_onnx_path).resolve() raptor_path = Path(raptor_path).resolve() onnx_include_dir = Path(onnx_include_dir).resolve() @@ -306,7 +306,7 @@ def validate_network(network_onnx_path, raptor_path, onnx_include_dir, print_stage(reporter, model_index, model_total, network_onnx_path.name, "Generate Inputs") inputs_descriptor, outputs_descriptor = onnx_io(network_onnx_path) - inputs_list, _inputs_dict = gen_random_inputs(inputs_descriptor) + inputs_list, _inputs_dict = gen_random_inputs(inputs_descriptor, seed=seed) flags, _files = save_inputs_to_files(network_onnx_path, inputs_list, out_dir=workspace_dir / "inputs") print_info(reporter, f"Saved {len(inputs_list)} input file(s) to {workspace_dir / 'inputs'}") reporter.advance()