From c8e8eeb75302b5b8c4f022485c395c1a4f2b0183 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Thu, 17 Aug 2023 10:16:13 -0700 Subject: [PATCH 1/3] Add benchmarks for small arrays --- benchmarks/bench-qsort-common.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/benchmarks/bench-qsort-common.h b/benchmarks/bench-qsort-common.h index 0f873641..60792618 100644 --- a/benchmarks/bench-qsort-common.h +++ b/benchmarks/bench-qsort-common.h @@ -19,6 +19,10 @@ }))) #define BENCH(func, type) \ + MY_BENCHMARK_CAPTURE(func, type, smallrandom_128, 128, std::string("random")); \ + MY_BENCHMARK_CAPTURE(func, type, smallrandom_256, 256, std::string("random")); \ + MY_BENCHMARK_CAPTURE(func, type, smallrandom_512, 512, std::string("random")); \ + MY_BENCHMARK_CAPTURE(func, type, smallrandom_1k, 1024, std::string("random")); \ MY_BENCHMARK_CAPTURE(func, type, random_5k, 5000, std::string("random")); \ MY_BENCHMARK_CAPTURE( \ func, type, random_100k, 100000, std::string("random")); \ From 9ec813f657354aa4df9d425e3e91c9576215d7cb Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Thu, 17 Aug 2023 10:53:14 -0700 Subject: [PATCH 2/3] Modify run-bench.py command line arguments to make it easier --- run-bench.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/run-bench.py b/run-bench.py index d7b697b8..fa878bca 100644 --- a/run-bench.py +++ b/run-bench.py @@ -4,20 +4,35 @@ parser = argparse.ArgumentParser() parser.add_argument('--branchcompare', action='store_true', help='Compare benchmarks of current branch with main. Provide an optional --filter') -parser.add_argument('--benchcompare', action='store_true', help='Compare across benchmarks. Requires --baseline and --contender') +parser.add_argument('--benchcompare', type=str, help='Compare simd bench with stdsort methods. Requires one of qsort, qselect, partialsort, argsort or argselect') parser.add_argument("-f", '--filter', type=str, required=False) -parser.add_argument("-b", '--baseline', type=str, required=False) -parser.add_argument("-c", '--contender', type=str, required=False) args = parser.parse_args() if len(sys.argv) == 1: parser.error("requires one of --benchcompare or --branchcompare") +filterb = "" +if args.filter is not None: + filterb = args.filter + if args.benchcompare: - if (args.baseline is None or args.contender is None): - parser.error("--benchcompare requires --baseline and --contender") + baseline = "" + contender = "" + if "qsort" in args.benchcompare: + baseline = "stdsort.*" + filterb + contender = "avx512qsort.*" + filterb + elif "qselect" in args.benchcompare: + baseline = "stdnthelement.*" + filterb + contender = "avx512_qselect.*" + filterb + elif "partial" in args.benchcompare: + baseline = "stdpartialsort.*" + filterb + contender = "avx512_partial_qsort.*" + filterb + elif "argsort" in args.benchcompare: + baseline = "stdargsort.*" + filterb + contender = "avx512argsort.*" + filterb else: - rc = subprocess.check_call("./scripts/bench-compare.sh '%s %s'" % (args.baseline, args.contender), shell=True) + parser.error("Unknown argument '%s'" % args.benchcompare) + rc = subprocess.check_call("./scripts/bench-compare.sh '%s' '%s'" % (baseline, contender), shell=True) if args.branchcompare: if args.filter is None: From bda411bafeaaacdde4a6b5a0f563793a468fb9e6 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Thu, 17 Aug 2023 10:57:30 -0700 Subject: [PATCH 3/3] print usage --- run-bench.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/run-bench.py b/run-bench.py index fa878bca..c93cfae9 100644 --- a/run-bench.py +++ b/run-bench.py @@ -31,7 +31,8 @@ baseline = "stdargsort.*" + filterb contender = "avx512argsort.*" + filterb else: - parser.error("Unknown argument '%s'" % args.benchcompare) + parser.print_help(sys.stderr) + parser.error("ERROR: Unknown argument '%s'" % args.benchcompare) rc = subprocess.check_call("./scripts/bench-compare.sh '%s' '%s'" % (baseline, contender), shell=True) if args.branchcompare: