Skip to content

Commit 0df5d24

Browse files
mengdilinfacebook-github-bot
authored andcommitted
clean up hnsw benchmark (facebookresearch#3901)
Summary: Pull Request resolved: facebookresearch#3901 1) remove system time from benchmark as this metric has extremely high jitter (50-100%) and is not useful for us 2) clean up command-line arguments and define a main function the external world can call 3) tweak default so microbenchmark runs fast by default (this does not the parameters we pass to microbenchmarks for servicelab) Reviewed By: mnorris11 Differential Revision: D63650110 fbshipit-source-id: efc81563291f00701a0d1df1d27172adeb3ef231
1 parent 09bffd2 commit 0df5d24

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

perf_tests/bench_hnsw.py

+18-15
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ def accumulate_perf_counter(
4646
):
4747
counters[f"{phase}_wall_time_us"] = int(t.wall_time_s * US_IN_S)
4848
counters[f"{phase}_user_time_us"] = int(t.user_time_s * US_IN_S)
49-
counters[f"{phase}_system_time_us"] = int(t.system_time_s * US_IN_S)
5049

5150

5251
def run_on_dataset(
@@ -137,19 +136,19 @@ def _accumulate_counters(
137136

138137
def main():
139138
parser = argparse.ArgumentParser(description="Benchmark HNSW")
140-
parser.add_argument("-M", "--M", type=int, required=True)
141-
parser.add_argument("-t", "--num-threads", type=int, required=True)
142-
parser.add_argument("-w", "--warm-up-iterations", type=int, default=0)
143-
parser.add_argument("-i", "--num-search-iterations", type=int, default=20)
144-
parser.add_argument("-i", "--num-add-iterations", type=int, default=20)
145-
parser.add_argument("-r", "--num-repetitions", type=int, default=20)
146-
parser.add_argument("-s", "--ef-search", type=int, default=16)
147-
parser.add_argument("-c", "--ef-construction", type=int, default=40)
148-
parser.add_argument("-b", "--search-bounded-queue", action="store_true")
149-
150-
parser.add_argument("-n", "--nb", type=int, default=5000)
151-
parser.add_argument("-q", "--nq", type=int, default=500)
152-
parser.add_argument("-d", "--d", type=int, default=128)
139+
parser.add_argument("--M", type=int, default=32)
140+
parser.add_argument("--num-threads", type=int, default=5)
141+
parser.add_argument("--warm-up-iterations", type=int, default=0)
142+
parser.add_argument("--num-search-iterations", type=int, default=1)
143+
parser.add_argument("--num-add-iterations", type=int, default=1)
144+
parser.add_argument("--num-repetitions", type=int, default=1)
145+
parser.add_argument("--ef-search", type=int, default=16)
146+
parser.add_argument("--ef-construction", type=int, default=40)
147+
parser.add_argument("--search-bounded-queue", action="store_true")
148+
149+
parser.add_argument("--nb", type=int, default=5000)
150+
parser.add_argument("--nq", type=int, default=500)
151+
parser.add_argument("--d", type=int, default=128)
153152
args = parser.parse_args()
154153

155154
if args.warm_up_iterations > 0:
@@ -191,6 +190,10 @@ def main():
191190
for counter, values in result.items():
192191
if is_perf_counter(counter):
193192
print(
194-
"%s t=%.3f us (± %.4f)" %
193+
"%s t=%.3f us (± %.4f)" %
195194
(counter, np.mean(values), np.std(values))
196195
)
196+
197+
198+
if __name__ == "__main__":
199+
main()

0 commit comments

Comments
 (0)