diff options
Diffstat (limited to 'final/Bitcode/Benchmarks/Halide/bilateral_grid/driver.cpp')
-rw-r--r-- | final/Bitcode/Benchmarks/Halide/bilateral_grid/driver.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/final/Bitcode/Benchmarks/Halide/bilateral_grid/driver.cpp b/final/Bitcode/Benchmarks/Halide/bilateral_grid/driver.cpp new file mode 100644 index 00000000..2d759b52 --- /dev/null +++ b/final/Bitcode/Benchmarks/Halide/bilateral_grid/driver.cpp @@ -0,0 +1,37 @@ +#include <cstdio> +#include <cstdlib> +#include <cassert> + +#include "../common/benchmark.h" +#include "../common/halide_image.h" +#include "../common/halide_image_io.h" +#include "bilateral_grid.h" + +using namespace Halide::Tools; + +int main(int argc, char **argv) { + + if (argc < 5) { + printf("Usage: ./filter input.png range_sigma timing_iterations output.png\n" + "e.g. ./filter input.png 0.1 10 output.png\n"); + return 0; + } + + int timing_iterations = atoi(argv[3]); + + Image<float> input = load_image(argv[1]); + Image<float> output(input.width(), input.height(), 1); + + bilateral_grid(atof(argv[2]), input, output); + + // Timing code. Timing doesn't include copying the input data to + // the gpu or copying the output back. + double min_t = benchmark(timing_iterations, 10, [&]() { + bilateral_grid(atof(argv[2]), input, output); + }); + printf("%gms\n", min_t * 1e3); + + save_image(output, argv[4]); + + return 0; +} |