![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/nn_model.h"#include "system/target_clones.h"#include <glib/gstdio.h>#include <json-glib/json-glib.h>#include <limits.h>#include <math.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>
Include dependency graph for nn_model.c:Go to the source code of this file.
Data Structures | |
| struct | nn_conv_t |
| struct | nn_unet_t |
| struct | dt_nn_model_t |
| struct | nn_header_t |
| struct | dt_nn_cl_t |
Macros | |
| #define | NN_MAX_DEPTH 8 |
| #define | NN_MIN(a, b) ((a) < (b) ? (a) : (b)) |
| #define | NN_MAX_DEVICES 16 |
| #define | NN_OC_BLOCK 4 |
| #define | NN_LEDGER(delta) |
| #define | NN_CL_ALLOC(var, floats) |
| #define | NN_CL_FREE(var) |
Typedefs | |
| typedef struct nn_conv_t | nn_conv_t |
| typedef struct nn_unet_t | nn_unet_t |
| typedef struct nn_header_t | nn_header_t |
Variables | |
| static dt_nn_alloc_f | _nn_alloc_fn = NULL |
| static dt_nn_free_f | _nn_free_fn = NULL |
| #define NN_CL_ALLOC | ( | var, | |
| floats | |||
| ) |
| #define NN_CL_FREE | ( | var | ) |
| #define NN_LEDGER | ( | delta | ) |
| #define NN_MAX_DEPTH 8 |
Definition at line 33 of file nn_model.c.
| #define NN_MAX_DEVICES 16 |
Definition at line 44 of file nn_model.c.
| #define NN_MIN | ( | a, | |
| b | |||
| ) | ((a) < (b) ? (a) : (b)) |
Definition at line 34 of file nn_model.c.
| #define NN_OC_BLOCK 4 |
Definition at line 491 of file nn_model.c.
|
static |
Definition at line 512 of file nn_model.c.
References k, L, NN_MIN, NN_OC_BLOCK, out, r, w1, w2, and w3.
Referenced by _unet_forward().
|
static |
Definition at line 759 of file nn_model.c.
References k, L, NN_MIN, NN_OC_BLOCK, out, r, w1, w2, and w3.
Referenced by _unet_forward().
|
static |
Definition at line 1129 of file nn_model.c.
References dt_opencl_enqueue_kernel_2d_with_local(), dt_opencl_set_kernel_arg(), dt_nn_cl_t::kernel_conv, dt_nn_cl_t::kernel_conv3x3, L, NN_MIN, and out.
Referenced by _unet_forward_cl().
Definition at line 108 of file nn_model.c.
References L.
Referenced by _wire_conv(), and dt_nn_model_load().
|
static |
Definition at line 612 of file nn_model.c.
Referenced by _unet_forward().
|
static |
Definition at line 447 of file nn_model.c.
Referenced by dt_nn_model_alignment().
Definition at line 93 of file nn_model.c.
References _nn_alloc_fn, and L.
Referenced by _unet_forward().
Definition at line 99 of file nn_model.c.
References _nn_free_fn, and p.
Referenced by _unet_forward().
|
static |
Definition at line 224 of file nn_model.c.
References L, and NN_MAX_DEPTH.
Referenced by dt_nn_model_load().
|
static |
Definition at line 688 of file nn_model.c.
References _unet_peak_floats(), L, m, and NN_MIN.
Referenced by dt_nn_unet_scratch_per_px(), and dt_nn_unet_scratch_per_px_cl().
|
static |
Definition at line 881 of file nn_model.c.
References _conv2d(), _conv2d_cat2(), _gelu(), _nn_alloc(), _nn_free(), nn_unet_t::base, nn_unet_t::bot1, nn_unet_t::bot2, nn_unet_t::dec1, nn_unet_t::dec2, nn_unet_t::depth, nn_unet_t::down, nn_unet_t::enc1, nn_unet_t::enc2, nn_unet_t::head, height, i, L, NN_MAX_DEPTH, out, nn_conv_t::out_ch, nn_unet_t::out_ch, nn_unet_t::up, v, and width.
Referenced by dt_nn_unet_apply(), and dt_nn_unet_apply_stage().
|
static |
Definition at line 1224 of file nn_model.c.
References _conv_cl(), _upsample_cl(), _weights_cl(), nn_unet_t::base, nn_unet_t::bot1, nn_unet_t::bot2, cleanup(), nn_unet_t::dec1, nn_unet_t::dec2, nn_unet_t::depth, nn_unet_t::down, dt_opencl_enqueue_copy_buffer_to_buffer(), dt_opencl_release_mem_object(), nn_unet_t::enc1, nn_unet_t::enc2, nn_unet_t::head, height, i, L, m, NN_CL_ALLOC, NN_CL_FREE, NN_MAX_DEPTH, nn_conv_t::out_ch, nn_unet_t::up, v, and width.
Referenced by dt_nn_unet_apply_stage_cl().
Definition at line 628 of file nn_model.c.
References nn_unet_t::base, nn_unet_t::depth, i, L, NN_LEDGER, and nn_unet_t::out_ch.
Referenced by _scratch_per_px(), and dt_nn_unet_scratch_bytes().
|
static |
Definition at line 1196 of file nn_model.c.
References ch, dt_opencl_enqueue_kernel_2d(), dt_opencl_set_kernel_arg(), dt_nn_cl_t::kernel_upsample, L, out, ROUNDUPDHT, and ROUNDUPDWD.
Referenced by _unet_forward_cl().
|
static |
Definition at line 1109 of file nn_model.c.
References dt_opencl_alloc_device_buffer(), dt_opencl_release_mem_object(), dt_opencl_write_buffer_to_device(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), L, m, and NN_MAX_DEVICES.
Referenced by _unet_forward_cl().
|
static |
Definition at line 126 of file nn_model.c.
References _err(), i, k, L, n, name, nn_header_t::payload, nn_header_t::payload_size, size, t, and nn_header_t::tensors.
Referenced by _wire_unet().
|
static |
Definition at line 179 of file nn_model.c.
References _wire_conv(), nn_unet_t::base, nn_unet_t::bot1, nn_unet_t::bot2, nn_unet_t::dec1, nn_unet_t::dec2, nn_unet_t::depth, nn_unet_t::down, nn_unet_t::enc1, nn_unet_t::enc2, nn_unet_t::head, i, nn_unet_t::in_ch, L, nn_unet_t::out_ch, and nn_unet_t::up.
Referenced by dt_nn_model_load().
| __DT_CLONE_TARGETS__ void dt_nn_bin_planes | ( | const float * | planes, |
| int | pw, | ||
| int | ph, | ||
| int | bin, | ||
| float * | out_rgb, | ||
| float * | out_cnt | ||
| ) |
Definition at line 1022 of file nn_model.c.
Referenced by _k_bin_planes(), and main().
| dt_nn_cl_t * dt_nn_cl_create | ( | int | program | ) |
Definition at line 1088 of file nn_model.c.
References dt_opencl_create_kernel(), dt_nn_cl_t::kernel_conv, dt_nn_cl_t::kernel_conv3x3, dt_nn_cl_t::kernel_upsample, and L.
Referenced by init_global().
| void dt_nn_cl_destroy | ( | dt_nn_cl_t * | cl | ) |
Definition at line 1098 of file nn_model.c.
References dt_opencl_free_kernel(), dt_nn_cl_t::kernel_conv, dt_nn_cl_t::kernel_conv3x3, and dt_nn_cl_t::kernel_upsample.
Referenced by cleanup_global().
| int dt_nn_model_alignment | ( | const dt_nn_model_t * | m | ) |
Definition at line 460 of file nn_model.c.
References _lcm(), DT_NN_FUSION_COARSEST, and m.
Referenced by main(), process(), process_cl(), and tiling_callback().
| int dt_nn_model_anchor | ( | const dt_nn_model_t * | m | ) |
| int dt_nn_model_bin | ( | const dt_nn_model_t * | m, |
| const int | is_xtrans | ||
| ) |
Definition at line 426 of file nn_model.c.
Referenced by main(), process(), process_cl(), and tiling_callback().
| int dt_nn_model_coarse_in_channels | ( | const dt_nn_model_t * | m | ) |
| int dt_nn_model_coarse_out_channels | ( | const dt_nn_model_t * | m | ) |
| void dt_nn_model_free | ( | dt_nn_model_t * | m | ) |
Definition at line 405 of file nn_model.c.
References dt_nn_model_free_cl(), dt_pthread_mutex_destroy(), and m.
Referenced by cleanup_global(), and main().
|
static |
Definition at line 394 of file nn_model.c.
References d, dt_opencl_release_mem_object(), L, m, and NN_MAX_DEVICES.
Referenced by dt_nn_model_free().
| int dt_nn_model_in_channels | ( | const dt_nn_model_t * | m | ) |
Definition at line 416 of file nn_model.c.
References m.
Referenced by commit_params(), main(), process(), process_cl(), and tiling_callback().
| dt_nn_model_t * dt_nn_model_load | ( | const char * | path, |
| char * | err, | ||
| size_t | err_len | ||
| ) |
Definition at line 237 of file nn_model.c.
References _err(), _read_net_cfg(), _wire_unet(), dt_pthread_mutex_destroy(), dt_pthread_mutex_init(), f, L, m, out, and nn_header_t::tensors.
Referenced by _get_custom_model(), _get_model(), and main().
| int dt_nn_model_out_channels | ( | const dt_nn_model_t * | m | ) |
| void dt_nn_set_allocator | ( | dt_nn_alloc_f | alloc_fn, |
| dt_nn_free_f | free_fn | ||
| ) |
Definition at line 77 of file nn_model.c.
References _nn_alloc_fn, _nn_free_fn, and L.
Referenced by cleanup_global(), and init_global().
| int dt_nn_unet_apply | ( | const dt_nn_model_t * | m, |
| const float * | in, | ||
| float * | out, | ||
| int | width, | ||
| int | height | ||
| ) |
Definition at line 1004 of file nn_model.c.
References _unet_forward(), height, L, m, out, and width.
Referenced by main().
| int dt_nn_unet_apply_stage | ( | const dt_nn_model_t * | m, |
| int | stage, | ||
| const float * | in, | ||
| float * | out, | ||
| int | width, | ||
| int | height, | ||
| int | apply_residual | ||
| ) |
Definition at line 1009 of file nn_model.c.
| int dt_nn_unet_apply_stage_cl | ( | const dt_nn_model_t * | m, |
| int | stage, | ||
| dt_nn_cl_t * | cl, | ||
| int | devid, | ||
| cl_mem | dev_in, | ||
| cl_mem | dev_out, | ||
| int | width, | ||
| int | height | ||
| ) |
Definition at line 1338 of file nn_model.c.
References _unet_forward_cl(), height, L, m, and width.
Referenced by process_cl().
| size_t dt_nn_unet_scratch_bytes | ( | const dt_nn_model_t * | m, |
| int | width, | ||
| int | height | ||
| ) |
Definition at line 736 of file nn_model.c.
References _unet_peak_floats(), height, L, m, NN_MIN, and width.
| float dt_nn_unet_scratch_maxblock_per_px | ( | const dt_nn_model_t * | m | ) |
Definition at line 717 of file nn_model.c.
| float dt_nn_unet_scratch_per_px | ( | const dt_nn_model_t * | m | ) |
Definition at line 707 of file nn_model.c.
References _scratch_per_px(), and m.
Referenced by tiling_callback().
| float dt_nn_unet_scratch_per_px_cl | ( | const dt_nn_model_t * | m | ) |
Definition at line 712 of file nn_model.c.
References _scratch_per_px(), and m.
Referenced by tiling_callback().
| __DT_CLONE_TARGETS__ void dt_nn_upsample_nearest | ( | const float * | in, |
| int | ch, | ||
| int | w, | ||
| int | h, | ||
| int | factor, | ||
| float * | out | ||
| ) |
|
static |
Definition at line 74 of file nn_model.c.
Referenced by _nn_alloc(), and dt_nn_set_allocator().
|
static |
Definition at line 75 of file nn_model.c.
Referenced by _nn_free(), and dt_nn_set_allocator().