Skip to content

Commit 0890de5

Browse files
author
Raghuveer Devulapalli
authored
Merge pull request #62 from r-devulap/bench-small-arrays
Add benchmarks for small arrays
2 parents 42c672f + bda411b commit 0890de5

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

benchmarks/bench-qsort-common.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
})))
2020

2121
#define BENCH(func, type) \
22+
MY_BENCHMARK_CAPTURE(func, type, smallrandom_128, 128, std::string("random")); \
23+
MY_BENCHMARK_CAPTURE(func, type, smallrandom_256, 256, std::string("random")); \
24+
MY_BENCHMARK_CAPTURE(func, type, smallrandom_512, 512, std::string("random")); \
25+
MY_BENCHMARK_CAPTURE(func, type, smallrandom_1k, 1024, std::string("random")); \
2226
MY_BENCHMARK_CAPTURE(func, type, random_5k, 5000, std::string("random")); \
2327
MY_BENCHMARK_CAPTURE( \
2428
func, type, random_100k, 100000, std::string("random")); \

run-bench.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,36 @@
44

55
parser = argparse.ArgumentParser()
66
parser.add_argument('--branchcompare', action='store_true', help='Compare benchmarks of current branch with main. Provide an optional --filter')
7-
parser.add_argument('--benchcompare', action='store_true', help='Compare across benchmarks. Requires --baseline and --contender')
7+
parser.add_argument('--benchcompare', type=str, help='Compare simd bench with stdsort methods. Requires one of qsort, qselect, partialsort, argsort or argselect')
88
parser.add_argument("-f", '--filter', type=str, required=False)
9-
parser.add_argument("-b", '--baseline', type=str, required=False)
10-
parser.add_argument("-c", '--contender', type=str, required=False)
119
args = parser.parse_args()
1210

1311
if len(sys.argv) == 1:
1412
parser.error("requires one of --benchcompare or --branchcompare")
1513

14+
filterb = ""
15+
if args.filter is not None:
16+
filterb = args.filter
17+
1618
if args.benchcompare:
17-
if (args.baseline is None or args.contender is None):
18-
parser.error("--benchcompare requires --baseline and --contender")
19+
baseline = ""
20+
contender = ""
21+
if "qsort" in args.benchcompare:
22+
baseline = "stdsort.*" + filterb
23+
contender = "avx512qsort.*" + filterb
24+
elif "qselect" in args.benchcompare:
25+
baseline = "stdnthelement.*" + filterb
26+
contender = "avx512_qselect.*" + filterb
27+
elif "partial" in args.benchcompare:
28+
baseline = "stdpartialsort.*" + filterb
29+
contender = "avx512_partial_qsort.*" + filterb
30+
elif "argsort" in args.benchcompare:
31+
baseline = "stdargsort.*" + filterb
32+
contender = "avx512argsort.*" + filterb
1933
else:
20-
rc = subprocess.check_call("./scripts/bench-compare.sh '%s %s'" % (args.baseline, args.contender), shell=True)
34+
parser.print_help(sys.stderr)
35+
parser.error("ERROR: Unknown argument '%s'" % args.benchcompare)
36+
rc = subprocess.check_call("./scripts/bench-compare.sh '%s' '%s'" % (baseline, contender), shell=True)
2137

2238
if args.branchcompare:
2339
if args.filter is None:

0 commit comments

Comments
 (0)