| #include <stdlib.h> |
| #include <stdio.h> |
| #include <time.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 |
| #ifndef FILTER_T_DEFINED |
| #define FILTER_T_DEFINED |
| typedef struct filter { |
| const char *name; |
| int (*fn)(buffer_t *, |
| buffer_t *, |
| buffer_t *); |
| } filter; |
| #endif |
| |
| //int FftConvolve8x8xCHalide(struct halide_buffer_t *_input_buffer, struct halide_buffer_t *_kernel_buffer, struct halide_buffer_t *_result_buffer) HALIDE_FUNCTION_ATTRS; |
| //int FftConvolve8x8xCHalide_argv(void **args) HALIDE_FUNCTION_ATTRS; |
| //const struct halide_filter_metadata_t *FftConvolve64x64xRHalide_metadata() HALIDE_FUNCTION_ATTRS; |
| |
| int FftConvolve8x8xCHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve8x8xCZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve8x8xRHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve8x8xRZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve16x16xCHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve16x16xCZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve16x16xRHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve16x16xRZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve32x32xCHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve32x32xCZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve32x32xRHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve32x32xRZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve64x64xCHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve64x64xCZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve64x64xRHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve64x64xRZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve128x128xCHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve128x128xCZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve128x128xRHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve128x128xRZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve256x256xCHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve256x256xCZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve256x256xRHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| int FftConvolve256x256xRZHalide(struct buffer_t *_input, struct buffer_t *_kernel, struct buffer_t *_result) HALIDE_FUNCTION_ATTRS; |
| |
| filter filters[] = { |
| {"FftConvolve8x8xCHalide",&FftConvolve8x8xCHalide}, |
| {"FftConvolve8x8xCZHalide",&FftConvolve8x8xCZHalide}, |
| {"FftConvolve8x8xRHalide",&FftConvolve8x8xRHalide}, |
| {"FftConvolve8x8xRZHalide",&FftConvolve8x8xRZHalide}, |
| {"FftConvolve16x16xCHalide",&FftConvolve16x16xCHalide}, |
| {"FftConvolve16x16xCZHalide",&FftConvolve16x16xCZHalide}, |
| {"FftConvolve16x16xRHalide",&FftConvolve16x16xRHalide}, |
| {"FftConvolve16x16xRZHalide",&FftConvolve16x16xRZHalide}, |
| {"FftConvolve32x32xCHalide",&FftConvolve32x32xCHalide}, |
| {"FftConvolve32x32xCZHalide",&FftConvolve32x32xCZHalide}, |
| {"FftConvolve32x32xRHalide",&FftConvolve32x32xRHalide}, |
| {"FftConvolve32x32xRZHalide",&FftConvolve32x32xRZHalide}, |
| {"FftConvolve64x64xCHalide",&FftConvolve64x64xCHalide}, |
| {"FftConvolve64x64xCZHalide",&FftConvolve64x64xCZHalide}, |
| {"FftConvolve64x64xRHalide",&FftConvolve64x64xRHalide}, |
| {"FftConvolve64x64xRZHalide",&FftConvolve64x64xRZHalide}, |
| {"FftConvolve128x128xCHalide",&FftConvolve128x128xCHalide}, |
| {"FftConvolve128x128xCZHalide",&FftConvolve128x128xCZHalide}, |
| {"FftConvolve128x128xRHalide",&FftConvolve128x128xRHalide}, |
| {"FftConvolve128x128xRZHalide",&FftConvolve128x128xRZHalide}, |
| {"FftConvolve256x256xCHalide",&FftConvolve256x256xCHalide}, |
| {"FftConvolve256x256xCZHalide",&FftConvolve256x256xCZHalide}, |
| {"FftConvolve256x256xRHalide",&FftConvolve256x256xRHalide}, |
| {"FftConvolve256x256xRZHalide",&FftConvolve256x256xRZHalide}, |
| {NULL, NULL}}; |
| |