diff options
Diffstat (limited to 'final/Bitcode/Benchmarks/Halide/bilateral_grid')
-rw-r--r-- | final/Bitcode/Benchmarks/Halide/bilateral_grid/CMakeLists.txt | 10 | ||||
-rw-r--r-- | final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.bc | bin | 0 -> 54640 bytes | |||
-rw-r--r-- | final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.h | 42 | ||||
-rw-r--r-- | final/Bitcode/Benchmarks/Halide/bilateral_grid/driver.cpp | 37 | ||||
-rw-r--r-- | final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgb_out.bytes | bin | 0 -> 15728652 bytes | |||
-rw-r--r-- | final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgba_out.bytes | bin | 0 -> 15728652 bytes |
6 files changed, 89 insertions, 0 deletions
diff --git a/final/Bitcode/Benchmarks/Halide/bilateral_grid/CMakeLists.txt b/final/Bitcode/Benchmarks/Halide/bilateral_grid/CMakeLists.txt new file mode 100644 index 00000000..0014d84d --- /dev/null +++ b/final/Bitcode/Benchmarks/Halide/bilateral_grid/CMakeLists.txt @@ -0,0 +1,10 @@ +file(GLOB bcsources ${CMAKE_CURRENT_SOURCE_DIR}/../common/x86_halide_runtime.bc ${CMAKE_CURRENT_SOURCE_DIR}/bilateral_grid.bc) +SET_SOURCE_FILES_PROPERTIES(${bcsources} PROPERTIES LANGUAGE CXX) + +test_img_input(rgb 0.1 10) +test_img_input(rgba 0.1 10) + +llvm_multisource(halide_bilateral_grid + ${CMAKE_CURRENT_SOURCE_DIR}/driver.cpp + ${bcsources} +) diff --git a/final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.bc b/final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.bc Binary files differnew file mode 100644 index 00000000..04977045 --- /dev/null +++ b/final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.bc diff --git a/final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.h b/final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.h new file mode 100644 index 00000000..04c002ce --- /dev/null +++ b/final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.h @@ -0,0 +1,42 @@ +#ifndef HALIDE__bilateral_grid_h +#define HALIDE__bilateral_grid_h +#ifndef HALIDE_ATTRIBUTE_ALIGN + #ifdef _MSC_VER + #define HALIDE_ATTRIBUTE_ALIGN(x) __declspec(align(x)) + #else + #define HALIDE_ATTRIBUTE_ALIGN(x) __attribute__((aligned(x))) + #endif +#endif +#ifndef BUFFER_T_DEFINED +#define BUFFER_T_DEFINED +#include <stdbool.h> +#include <stdint.h> +typedef struct buffer_t { + uint64_t dev; + uint8_t* host; + int32_t extent[4]; + int32_t stride[4]; + int32_t min[4]; + int32_t elem_size; + HALIDE_ATTRIBUTE_ALIGN(1) bool host_dirty; + HALIDE_ATTRIBUTE_ALIGN(1) bool dev_dirty; + HALIDE_ATTRIBUTE_ALIGN(1) uint8_t _padding[10 - sizeof(void *)]; +} buffer_t; +#endif +struct halide_filter_metadata_t; +#ifndef HALIDE_FUNCTION_ATTRS +#define HALIDE_FUNCTION_ATTRS +#endif +#ifdef __cplusplus +extern "C" { +#endif + +int bilateral_grid(float _r_sigma, buffer_t *_input_buffer, buffer_t *_bilateral_grid_buffer) HALIDE_FUNCTION_ATTRS; +int bilateral_grid_argv(void **args) HALIDE_FUNCTION_ATTRS; +// Result is never null and points to constant static data +const struct halide_filter_metadata_t *bilateral_grid_metadata() HALIDE_FUNCTION_ATTRS; + +#ifdef __cplusplus +} // extern "C" +#endif +#endif 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; +} diff --git a/final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgb_out.bytes b/final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgb_out.bytes Binary files differnew file mode 100644 index 00000000..76957958 --- /dev/null +++ b/final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgb_out.bytes diff --git a/final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgba_out.bytes b/final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgba_out.bytes Binary files differnew file mode 100644 index 00000000..76957958 --- /dev/null +++ b/final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgba_out.bytes |