blob: a81ec7e559a4cc0ebf79bf15b57a48c5c4c24953 [file] [log] [blame]
#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}};