18#ifndef DT_COMMON_NN_MODEL_H
19#define DT_COMMON_NN_MODEL_H
97#define DT_NN_FUSION_FINEST 16
98#define DT_NN_FUSION_COARSEST 64
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
const dt_colormatrix_t dt_aligned_pixel_t out
float *const restrict const size_t const size_t ch
void dt_nn_cl_destroy(dt_nn_cl_t *cl)
void *(* dt_nn_alloc_f)(size_t bytes, int long_lived)
int dt_nn_model_in_channels(const dt_nn_model_t *model)
float dt_nn_unet_scratch_maxblock_per_px(const dt_nn_model_t *model)
int dt_nn_model_out_channels(const dt_nn_model_t *model)
int dt_nn_model_bin(const dt_nn_model_t *model, const int is_xtrans)
void dt_nn_model_free(dt_nn_model_t *model)
int dt_nn_model_alignment(const dt_nn_model_t *model)
float dt_nn_unet_scratch_per_px(const dt_nn_model_t *model)
size_t dt_nn_unet_scratch_bytes(const dt_nn_model_t *model, int width, int height)
int dt_nn_model_anchor(const dt_nn_model_t *model)
void(* dt_nn_free_f)(void *ptr)
dt_nn_cl_t * dt_nn_cl_create(int program)
int dt_nn_model_coarse_in_channels(const dt_nn_model_t *model)
int dt_nn_unet_apply_stage(const dt_nn_model_t *model, int stage, const float *in, float *out, int width, int height, int apply_residual)
void dt_nn_bin_planes(const float *planes, int pw, int ph, int bin, float *out_rgb, float *out_cnt)
float dt_nn_unet_scratch_per_px_cl(const dt_nn_model_t *model)
dt_nn_model_t * dt_nn_model_load(const char *path, char *err, size_t err_len)
int dt_nn_model_coarse_out_channels(const dt_nn_model_t *model)
int dt_nn_unet_apply_stage_cl(const dt_nn_model_t *model, int stage, dt_nn_cl_t *cl, int devid, cl_mem dev_in, cl_mem dev_out, int width, int height)
int dt_nn_unet_apply(const dt_nn_model_t *model, const float *in, float *out, int width, int height)
void dt_nn_upsample_nearest(const float *in, int ch, int w, int h, int factor, float *out)
void dt_nn_set_allocator(dt_nn_alloc_f alloc_fn, dt_nn_free_f free_fn)