aboutsummaryrefslogtreecommitdiff
path: root/final/Bitcode/Benchmarks/Halide/bilateral_grid
diff options
context:
space:
mode:
Diffstat (limited to 'final/Bitcode/Benchmarks/Halide/bilateral_grid')
-rw-r--r--final/Bitcode/Benchmarks/Halide/bilateral_grid/CMakeLists.txt10
-rw-r--r--final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.bcbin0 -> 54640 bytes
-rw-r--r--final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.h42
-rw-r--r--final/Bitcode/Benchmarks/Halide/bilateral_grid/driver.cpp37
-rw-r--r--final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgb_out.bytesbin0 -> 15728652 bytes
-rw-r--r--final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgba_out.bytesbin0 -> 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
new file mode 100644
index 00000000..04977045
--- /dev/null
+++ b/final/Bitcode/Benchmarks/Halide/bilateral_grid/bilateral_grid.bc
Binary files differ
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
new file mode 100644
index 00000000..76957958
--- /dev/null
+++ b/final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgb_out.bytes
Binary files differ
diff --git a/final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgba_out.bytes b/final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgba_out.bytes
new file mode 100644
index 00000000..76957958
--- /dev/null
+++ b/final/Bitcode/Benchmarks/Halide/bilateral_grid/output/rgba_out.bytes
Binary files differ