This is an archive of the discontinued LLVM Phabricator instance.

[test-suite] Add Bilateral Filter kernel using benchmark library
ClosedPublic

Authored by proton on Aug 9 2018, 12:53 PM.

Details

Summary

This patch adds BilateralFiltering kernel in "MicroBenchmarks/ImageProcessing"

Runtime

Without Polly: Total 0m5.542s

BenchmarkTimeCPUIterations
BENCHMARK_BILATERAL_FILTER/16/240 us40 us17339
BENCHMARK_BILATERAL_FILTER/16/4131 us131 us5361
BENCHMARK_BILATERAL_FILTER/32/2164 us164 us4267
BENCHMARK_BILATERAL_FILTER/32/4632 us632 us1109
BENCHMARK_BILATERAL_FILTER/64/2700 us700 us1000
BENCHMARK_BILATERAL_FILTER/64/43286 us3285 us213

With Polly : Total 0m5.577s

BenchmarkTimeCPUIterations
BENCHMARK_BILATERAL_FILTER/16/241 us41 us16945
BENCHMARK_BILATERAL_FILTER/16/4134 us134 us5248
BENCHMARK_BILATERAL_FILTER/32/2168 us168 us4175
BENCHMARK_BILATERAL_FILTER/32/4647 us647 us1071
BENCHMARK_BILATERAL_FILTER/64/2716 us716 us978
BENCHMARK_BILATERAL_FILTER/64/42963 us2963 us236

Even after repeated runs, this small difference in runtime is there. For input (32/4) and (64/4), Polly always performed better.

Diff Detail

Event Timeline

proton created this revision.Aug 9 2018, 12:53 PM

Should the total execution time of benchmarks be around second or less?
Maybe reduce the number of tested parameters to reduce the total runtime?

proton updated this revision to Diff 160034.Aug 9 2018, 4:25 PM
proton edited the summary of this revision. (Show Details)

Reduced test size
Total runtime is still there for about 5.5s (with benchmark library) because the benchmark library runs kernel for multiple inputs.

Without benchmark library
For input 128/5, the kernel runs for around 0.028s of total 0.034s.

Meinersbur accepted this revision.Aug 13 2018, 9:15 AM
This revision is now accepted and ready to land.Aug 13 2018, 9:15 AM
This revision was automatically updated to reflect the committed changes.