From f5ce36d26e42f3595faf6827a6deb2e446aee898 Mon Sep 17 00:00:00 2001 From: Nicolas Ayache Date: Fri, 30 Jun 2023 12:54:01 +0200 Subject: [PATCH 1/3] Proto/Benchmarks: refactor intercept name. --- .../lib_benchmarks_proto/carbonated_map_benchmarks.ml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml b/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml index 4fd7667fd73a..4a7854f5ad21 100644 --- a/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml +++ b/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml @@ -200,6 +200,10 @@ module Make (CS : COMPARABLE_SAMPLER) = struct let info = Printf.sprintf "Carbonated find model" + let ns s = Free_variable.of_namespace (Namespace.cons name s) + + let fv_intercept = ns "intercept" + (** Given the cost of comparing keys, the model is used for deducing [intercept] and [traverse_overhead] from: @@ -208,11 +212,10 @@ module Make (CS : COMPARABLE_SAMPLER) = struct *) let find_model ?intercept ?traverse_overhead name = let open Tezos_benchmark in - let ns s = Free_variable.of_namespace (Namespace.cons name s) in let traverse_overhead = Option.value ~default:(ns "traverse_overhead") traverse_overhead in - let intercept = Option.value ~default:(ns "intercept") intercept in + let intercept = Option.value ~default:fv_intercept intercept in let module M = struct type arg_type = int * unit -- GitLab From ade8549b0488f6fc89f4fd667c01da903fb4c941 Mon Sep 17 00:00:00 2001 From: Nicolas Ayache Date: Fri, 30 Jun 2023 12:54:56 +0200 Subject: [PATCH 2/3] Proto/Benchmarks: use intercept name for intercept benchmark. Fixes the carbonated_map/find benchmark. --- .../lib_benchmarks_proto/carbonated_map_benchmarks.ml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml b/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml index 4a7854f5ad21..b59a60002d92 100644 --- a/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml +++ b/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml @@ -303,7 +303,10 @@ module Make (CS : COMPARABLE_SAMPLER) = struct let group = group - let model = Model.make ~conv:(fun () -> ()) ~model:Model.unknown_const1 + let model = + Model.make + ~conv:(fun () -> ()) + ~model:(Model.unknown_const1 ~const:Find.fv_intercept) let create_benchmark ~rng_state (_config : config) = let ctxt = make_context ~rng_state in -- GitLab From 0563a363a65dab6f53b99c7e90792500e4e4112d Mon Sep 17 00:00:00 2001 From: Nicolas Ayache Date: Fri, 30 Jun 2023 12:56:26 +0200 Subject: [PATCH 3/3] Proto/Benchmark: reinstate previous parameter name. --- .../carbonated_map_benchmarks.ml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml b/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml index b59a60002d92..0ea637b09369 100644 --- a/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml +++ b/src/proto_alpha/lib_benchmarks_proto/carbonated_map_benchmarks.ml @@ -206,14 +206,14 @@ module Make (CS : COMPARABLE_SAMPLER) = struct (** Given the cost of comparing keys, the model is used for deducing [intercept] - and [traverse_overhead] from: + and [traversal_overhead] from: [intercept + (log2 size * compare_cost) + (log2 size * traversal_overhead)] *) - let find_model ?intercept ?traverse_overhead name = + let find_model ?intercept ?traversal_overhead name = let open Tezos_benchmark in - let traverse_overhead = - Option.value ~default:(ns "traverse_overhead") traverse_overhead + let traversal_overhead = + Option.value ~default:(ns "traversal_overhead") traversal_overhead in let intercept = Option.value ~default:fv_intercept intercept in let module M = struct @@ -232,7 +232,9 @@ module Make (CS : COMPARABLE_SAMPLER) = struct let compare_cost = log2 size * free ~name:(compare_var CS.type_name) in - let traversal_overhead = log2 size * free ~name:traverse_overhead in + let traversal_overhead = + log2 size * free ~name:traversal_overhead + in free ~name:intercept + compare_cost + traversal_overhead end end in -- GitLab