/home/liu/actions-runner/_work/ccv/ccv/lib/nnc/ccv_nnc_internal.h
Line | Count | Source |
1 | | /********************************************************** |
2 | | * C-based/Cached/Core Computer Vision Library |
3 | | * Liu Liu, 2010-02-01 |
4 | | **********************************************************/ |
5 | | |
6 | | /********************************************************** |
7 | | * CCV - Neural Network Collection |
8 | | **********************************************************/ |
9 | | |
10 | | #ifndef GUARD_ccv_nnc_internal_h |
11 | | #define GUARD_ccv_nnc_internal_h |
12 | | |
13 | | #include "ccv.h" |
14 | | #include "ccv_internal.h" |
15 | | #include "nnc/ccv_nnc.h" |
16 | | |
17 | | void ccv_nnc_drain_autotune_cache(void); |
18 | | |
19 | | // Define some internal constraints |
20 | | |
21 | | #define CCV_NNC_STACK_BITMASK_ALLOC (2) |
22 | 792 | #define CCV_NNC_TENSOR_PLACEHOLDER ((ccv_nnc_tensor_t*)(intptr_t)(0x10)) |
23 | | |
24 | | typedef void (*ccv_nnc_cmd_tensor_auto_f)(const ccv_nnc_cmd_param_t cmd, const ccv_nnc_tensor_param_t* const inputs, const int input_size, const ccv_nnc_hint_t hint, ccv_nnc_tensor_param_t* const outputs, const int output_size); |
25 | | typedef int (*ccv_nnc_cmd_bitmask_f)(const ccv_nnc_cmd_param_t cmd, const int input_size, const int output_size, const uint64_t* const input_bitmasks, const int input_bitmask_size, const uint64_t* const output_bitmasks, const int output_bitmask_size); |
26 | | typedef int (*ccv_nnc_cmd_inplace_f)(const ccv_nnc_cmd_param_t cmd, const int input_idx, const int input_size, const int output_idx, const int output_size); |
27 | | |
28 | | typedef struct { |
29 | | int flags; |
30 | | ccv_nnc_cmd_bitmask_f bitmask; |
31 | | ccv_nnc_cmd_tensor_auto_f tensor_auto; |
32 | | ccv_nnc_cmd_inplace_f allow_inplace; |
33 | | ccv_nnc_cmd_inplace_f enforce_inplace; |
34 | | } ccv_nnc_cmd_registry_t; |
35 | | |
36 | | typedef struct { |
37 | | int tensor_formats; /**< [formats] The supported formats for this API implementation. */ |
38 | | int tensor_datatypes; /**< [datatypes] The supported data types for this API implementation. */ |
39 | | int tensor_memory; /**< [memory] The supported tensor memory type for this API implementation. */ |
40 | | int algorithms; /**< [algorithms] Number of algorithms variation. */ |
41 | | ccv_nnc_cmd_exec_f exec; /**< [exec] The function for command execution. */ |
42 | | ccv_nnc_cmd_autotune_f autotune; /**< [autotune] The function to find the best algorithm to apply. */ |
43 | | void* aux; /**< [aux] The additional information available for a particular command under a particular backend. */ |
44 | | } ccv_nnc_cmd_backend_registry_t; |
45 | | |
46 | | static inline int ccv_nnc_tensor_hw(const ccv_nnc_tensor_param_t a, const int nd, const int size_nd) |
47 | 4.37k | { |
48 | 4.37k | if ((a.format == CCV_TENSOR_FORMAT_CHWN) || |
49 | 4.37k | (a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 1265 )) |
50 | 101 | return 0; |
51 | 4.27k | else if ((a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 2164 ) || |
52 | 4.27k | (4.11k a.format == CCV_TENSOR_FORMAT_NCHW4.11k && nd == size_nd + 14.11k )) |
53 | 168 | return 1; |
54 | 4.10k | else if (a.format == CCV_TENSOR_FORMAT_NCHW && nd == size_nd + 2) |
55 | 4.10k | return 2; |
56 | 0 | return -1; |
57 | 4.37k | } Unexecuted instantiation: mpsdnn.tests.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_cmd.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_tensor.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_stream.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_micro.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_graph.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_compile.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_graph_while.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_parallel.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_dynamic_graph.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_nnc_tensor_hw ccv_cnnp_dataframe_addons.c:ccv_nnc_tensor_hw Line | Count | Source | 47 | 27 | { | 48 | 27 | if ((a.format == CCV_TENSOR_FORMAT_CHWN) || | 49 | 27 | (a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 1)) | 50 | 27 | return 0; | 51 | 0 | else if ((a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 2) || | 52 | 0 | (a.format == CCV_TENSOR_FORMAT_NCHW && nd == size_nd + 1)) | 53 | 0 | return 1; | 54 | 0 | else if (a.format == CCV_TENSOR_FORMAT_NCHW && nd == size_nd + 2) | 55 | 0 | return 2; | 56 | 0 | return -1; | 57 | 27 | } |
Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_cnnp_model.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_nnc_tensor_hw ccv_cnnp_model_addons.c:ccv_nnc_tensor_hw Line | Count | Source | 47 | 108 | { | 48 | 108 | if ((a.format == CCV_TENSOR_FORMAT_CHWN) || | 49 | 108 | (a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 112 )) | 50 | 0 | return 0; | 51 | 108 | else if ((a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 212 ) || | 52 | 108 | (96 a.format == CCV_TENSOR_FORMAT_NCHW96 && nd == size_nd + 196 )) | 53 | 12 | return 1; | 54 | 96 | else if (a.format == CCV_TENSOR_FORMAT_NCHW && nd == size_nd + 2) | 55 | 96 | return 2; | 56 | 0 | return -1; | 57 | 108 | } |
Unexecuted instantiation: ccv_nnc_palettize.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_cnnp_model_gradient_checkpointing.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_adam.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_blas.c:ccv_nnc_tensor_hw Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_hw Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_comm.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_cmp.c:ccv_nnc_tensor_hw ccv_nnc_compression.c:ccv_nnc_tensor_hw Line | Count | Source | 47 | 10 | { | 48 | 10 | if ((a.format == CCV_TENSOR_FORMAT_CHWN) || | 49 | 10 | (a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 10 )) | 50 | 0 | return 0; | 51 | 10 | else if ((a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 20 ) || | 52 | 10 | (a.format == CCV_TENSOR_FORMAT_NCHW && nd == size_nd + 1)) | 53 | 2 | return 1; | 54 | 8 | else if (a.format == CCV_TENSOR_FORMAT_NCHW && nd == size_nd + 2) | 55 | 8 | return 2; | 56 | 0 | return -1; | 57 | 10 | } |
Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_nnc_tensor_hw Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_nnc_tensor_hw Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_nnc_tensor_hw Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_hw ccv_nnc_convolution.c:ccv_nnc_tensor_hw Line | Count | Source | 47 | 2.19k | { | 48 | 2.19k | if ((a.format == CCV_TENSOR_FORMAT_CHWN) || | 49 | 2.19k | (a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 1124 )) | 50 | 53 | return 0; | 51 | 2.13k | else if ((a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 271 ) || | 52 | 2.13k | (2.06k a.format == CCV_TENSOR_FORMAT_NCHW2.06k && nd == size_nd + 12.06k )) | 53 | 71 | return 1; | 54 | 2.06k | else if (a.format == CCV_TENSOR_FORMAT_NCHW && nd == size_nd + 2) | 55 | 2.06k | return 2; | 56 | 0 | return -1; | 57 | 2.19k | } |
Unexecuted instantiation: ccv_nnc_dropout.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_ew.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_gelu.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_histogram.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_index_select.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_lamb.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_mse.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_nms.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_norm.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_pad.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_partition.c:ccv_nnc_tensor_hw ccv_nnc_pool.c:ccv_nnc_tensor_hw Line | Count | Source | 47 | 2.03k | { | 48 | 2.03k | if ((a.format == CCV_TENSOR_FORMAT_CHWN) || | 49 | 2.03k | (a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 1102 )) | 50 | 21 | return 0; | 51 | 2.01k | else if ((a.format == CCV_TENSOR_FORMAT_NHWC && nd == size_nd + 281 ) || | 52 | 2.01k | (1.93k a.format == CCV_TENSOR_FORMAT_NCHW1.93k && nd == size_nd + 11.93k )) | 53 | 83 | return 1; | 54 | 1.93k | else if (a.format == CCV_TENSOR_FORMAT_NCHW && nd == size_nd + 2) | 55 | 1.93k | return 2; | 56 | 0 | return -1; | 57 | 2.03k | } |
Unexecuted instantiation: ccv_nnc_rand.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_reduce.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_relu.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_lstm.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_sgd.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_softmax.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_sort.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_swish.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_tanh.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_upsample.c:ccv_nnc_tensor_hw Unexecuted instantiation: ccv_nnc_util.c:ccv_nnc_tensor_hw |
58 | | |
59 | | static inline void ccv_nnc_hint_tensor_forward(const ccv_nnc_cmd_param_t cmd, const ccv_nnc_tensor_param_t a, const ccv_nnc_hint_t hint, ccv_nnc_tensor_param_t* b) |
60 | 3.29k | { |
61 | 3.29k | int i; |
62 | 3.29k | assert(a.format == b->format); |
63 | 3.29k | const int nd = ccv_nnc_tensor_nd(a.dim); |
64 | 3.29k | const int size_nd = ccv_nnc_tensor_nd(cmd.size.dim) - 1; |
65 | 3.29k | assert(size_nd == 2 || size_nd == 3); // Support 3D convolution. |
66 | 3.29k | assert(nd == size_nd + 1 || nd == size_nd + 2); |
67 | 3.29k | int hw = ccv_nnc_tensor_hw(a, nd, size_nd); |
68 | 3.29k | assert(hw >= 0); |
69 | 9.89k | for (i = 0; 3.29k i < size_nd; i++6.59k ) |
70 | 6.59k | { |
71 | 6.59k | int stride = ccv_max(1, hint.stride.dim[i]); |
72 | 6.59k | b->dim[i + hw] = (a.dim[i + hw] + hint.border.begin[i] + hint.border.end[i] - cmd.size.dim[i]) / stride + 1; |
73 | 6.59k | } |
74 | 3.29k | } Unexecuted instantiation: mpsdnn.tests.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_cmd.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_tensor.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_stream.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_micro.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_graph.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_compile.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_graph_while.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_parallel.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_dynamic_graph.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_cnnp_model.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_cnnp_model_addons.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_palettize.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_cnnp_model_gradient_checkpointing.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_adam.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_blas.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_comm.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_cmp.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_compression.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_nnc_hint_tensor_forward ccv_nnc_convolution.c:ccv_nnc_hint_tensor_forward Line | Count | Source | 60 | 2.19k | { | 61 | 2.19k | int i; | 62 | 2.19k | assert(a.format == b->format); | 63 | 2.19k | const int nd = ccv_nnc_tensor_nd(a.dim); | 64 | 2.19k | const int size_nd = ccv_nnc_tensor_nd(cmd.size.dim) - 1; | 65 | 2.19k | assert(size_nd == 2 || size_nd == 3); // Support 3D convolution. | 66 | 2.19k | assert(nd == size_nd + 1 || nd == size_nd + 2); | 67 | 2.19k | int hw = ccv_nnc_tensor_hw(a, nd, size_nd); | 68 | 2.19k | assert(hw >= 0); | 69 | 6.57k | for (i = 0; 2.19k i < size_nd; i++4.38k ) | 70 | 4.38k | { | 71 | 4.38k | int stride = ccv_max(1, hint.stride.dim[i]); | 72 | 4.38k | b->dim[i + hw] = (a.dim[i + hw] + hint.border.begin[i] + hint.border.end[i] - cmd.size.dim[i]) / stride + 1; | 73 | 4.38k | } | 74 | 2.19k | } |
Unexecuted instantiation: ccv_nnc_dropout.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_ew.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_gelu.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_histogram.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_index_select.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_lamb.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_mse.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_nms.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_norm.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_pad.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_partition.c:ccv_nnc_hint_tensor_forward ccv_nnc_pool.c:ccv_nnc_hint_tensor_forward Line | Count | Source | 60 | 1.10k | { | 61 | 1.10k | int i; | 62 | 1.10k | assert(a.format == b->format); | 63 | 1.10k | const int nd = ccv_nnc_tensor_nd(a.dim); | 64 | 1.10k | const int size_nd = ccv_nnc_tensor_nd(cmd.size.dim) - 1; | 65 | 1.10k | assert(size_nd == 2 || size_nd == 3); // Support 3D convolution. | 66 | 1.10k | assert(nd == size_nd + 1 || nd == size_nd + 2); | 67 | 1.10k | int hw = ccv_nnc_tensor_hw(a, nd, size_nd); | 68 | 1.10k | assert(hw >= 0); | 69 | 3.31k | for (i = 0; 1.10k i < size_nd; i++2.21k ) | 70 | 2.21k | { | 71 | 2.21k | int stride = ccv_max(1, hint.stride.dim[i]); | 72 | 2.21k | b->dim[i + hw] = (a.dim[i + hw] + hint.border.begin[i] + hint.border.end[i] - cmd.size.dim[i]) / stride + 1; | 73 | 2.21k | } | 74 | 1.10k | } |
Unexecuted instantiation: ccv_nnc_rand.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_reduce.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_relu.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_lstm.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_sgd.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_softmax.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_sort.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_swish.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_tanh.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_upsample.c:ccv_nnc_hint_tensor_forward Unexecuted instantiation: ccv_nnc_util.c:ccv_nnc_hint_tensor_forward |
75 | | |
76 | | static inline void ccv_nnc_hint_tensor_backward(const ccv_nnc_cmd_param_t cmd, const ccv_nnc_tensor_param_t a, const ccv_nnc_hint_t hint, ccv_nnc_tensor_param_t* b) |
77 | 933 | { |
78 | 933 | int i; |
79 | 933 | assert(a.format == b->format); |
80 | 933 | const int nd = ccv_nnc_tensor_nd(a.dim); |
81 | 933 | const int size_nd = ccv_nnc_tensor_nd(cmd.size.dim) - 1; |
82 | 933 | assert(size_nd == 2 || size_nd == 3); // Support 3D convolution. |
83 | 933 | assert(nd == size_nd + 1 || nd == size_nd + 2); |
84 | 933 | int hw = ccv_nnc_tensor_hw(a, nd, size_nd); |
85 | 933 | assert(hw >= 0); |
86 | 2.79k | for (i = 0; 933 i < size_nd; i++1.86k ) |
87 | 1.86k | { |
88 | 1.86k | int stride = ccv_max(1, hint.stride.dim[i]); |
89 | 1.86k | b->dim[i + hw] = (a.dim[i + hw] - 1) * stride - hint.border.begin[i] - hint.border.end[i] + cmd.size.dim[i]; |
90 | 1.86k | } |
91 | 933 | } Unexecuted instantiation: mpsdnn.tests.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_cmd.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_tensor.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_stream.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_micro.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_graph.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_compile.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_graph_while.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_parallel.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_dynamic_graph.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_cnnp_model.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_cnnp_model_addons.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_palettize.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_cnnp_model_gradient_checkpointing.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_adam.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_blas.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_comm.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_cmp.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_compression.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_convolution.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_dropout.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_ew.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_gelu.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_histogram.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_index_select.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_lamb.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_mse.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_nms.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_norm.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_pad.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_partition.c:ccv_nnc_hint_tensor_backward ccv_nnc_pool.c:ccv_nnc_hint_tensor_backward Line | Count | Source | 77 | 933 | { | 78 | 933 | int i; | 79 | 933 | assert(a.format == b->format); | 80 | 933 | const int nd = ccv_nnc_tensor_nd(a.dim); | 81 | 933 | const int size_nd = ccv_nnc_tensor_nd(cmd.size.dim) - 1; | 82 | 933 | assert(size_nd == 2 || size_nd == 3); // Support 3D convolution. | 83 | 933 | assert(nd == size_nd + 1 || nd == size_nd + 2); | 84 | 933 | int hw = ccv_nnc_tensor_hw(a, nd, size_nd); | 85 | 933 | assert(hw >= 0); | 86 | 2.79k | for (i = 0; 933 i < size_nd; i++1.86k ) | 87 | 1.86k | { | 88 | 1.86k | int stride = ccv_max(1, hint.stride.dim[i]); | 89 | 1.86k | b->dim[i + hw] = (a.dim[i + hw] - 1) * stride - hint.border.begin[i] - hint.border.end[i] + cmd.size.dim[i]; | 90 | 1.86k | } | 91 | 933 | } |
Unexecuted instantiation: ccv_nnc_rand.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_reduce.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_relu.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_lstm.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_sgd.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_softmax.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_sort.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_swish.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_tanh.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_upsample.c:ccv_nnc_hint_tensor_backward Unexecuted instantiation: ccv_nnc_util.c:ccv_nnc_hint_tensor_backward |
92 | | |
93 | | void ccv_nnc_hint_tensor_auto_forward_from_inputs(const ccv_nnc_cmd_param_t cmd, const ccv_nnc_tensor_param_t* const inputs, const int input_size, const ccv_nnc_hint_t hint, ccv_nnc_tensor_param_t* const outputs, const int output_size); |
94 | | void ccv_nnc_hint_tensor_auto_backward_from_gradient(const ccv_nnc_cmd_param_t cmd, const ccv_nnc_tensor_param_t* const inputs, const int input_size, const ccv_nnc_hint_t hint, ccv_nnc_tensor_param_t* const outputs, const int output_size); |
95 | | void ccv_nnc_hint_tensor_auto_backward_from_inputs(const ccv_nnc_cmd_param_t cmd, const ccv_nnc_tensor_param_t* const inputs, const int input_size, const ccv_nnc_hint_t hint, ccv_nnc_tensor_param_t* const outputs, const int output_size); |
96 | | void ccv_nnc_hint_tensor_auto_backward_from_gradient_and_inputs(const ccv_nnc_cmd_param_t cmd, const ccv_nnc_tensor_param_t* const inputs, const int input_size, const ccv_nnc_hint_t hint, ccv_nnc_tensor_param_t* const outputs, const int output_size); |
97 | | int ccv_nnc_device_ids_for_io(ccv_nnc_tensor_t* const* const inputs, const int input_size, ccv_nnc_tensor_t* const* const outputs, const int output_size, const int tensor_type, int* const device_ids, const int max_device_id_size); |
98 | | void ccv_nnc_print_tensor_shape(const ccv_nnc_tensor_t* const tensor); |
99 | | void ccv_nnc_print_tensor_info(const ccv_nnc_tensor_t* const tensor); |
100 | | |
101 | | static inline off_t ccv_nnc_tensor_view_offset(const int datatype, const int stride[CCV_NNC_MAX_DIM_ALLOC], const int ofs[CCV_NNC_MAX_DIM_ALLOC]) |
102 | 2.17k | { |
103 | 2.17k | int i; |
104 | 2.17k | int nd = ccv_nnc_tensor_nd(stride); |
105 | 2.17k | off_t offset = 0; |
106 | 4.66k | for (i = nd - 1; i >= 0; i--2.48k ) |
107 | 2.48k | offset += ofs[i] * stride[i] * CCV_GET_DATA_TYPE_SIZE(datatype); |
108 | 2.17k | return offset; |
109 | 2.17k | } Unexecuted instantiation: mpsdnn.tests.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_cmd.c:ccv_nnc_tensor_view_offset ccv_nnc_tensor.c:ccv_nnc_tensor_view_offset Line | Count | Source | 102 | 177 | { | 103 | 177 | int i; | 104 | 177 | int nd = ccv_nnc_tensor_nd(stride); | 105 | 177 | off_t offset = 0; | 106 | 657 | for (i = nd - 1; i >= 0; i--480 ) | 107 | 480 | offset += ofs[i] * stride[i] * CCV_GET_DATA_TYPE_SIZE(datatype); | 108 | 177 | return offset; | 109 | 177 | } |
Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_stream.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_micro.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_graph.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_symbolic_graph.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_nnc_tensor_view_offset ccv_nnc_symbolic_graph_compile.c:ccv_nnc_tensor_view_offset Line | Count | Source | 102 | 2.00k | { | 103 | 2.00k | int i; | 104 | 2.00k | int nd = ccv_nnc_tensor_nd(stride); | 105 | 2.00k | off_t offset = 0; | 106 | 4.00k | for (i = nd - 1; i >= 0; i--2.00k ) | 107 | 2.00k | offset += ofs[i] * stride[i] * CCV_GET_DATA_TYPE_SIZE(datatype); | 108 | 2.00k | return offset; | 109 | 2.00k | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_graph_while.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_symbolic_graph_parallel.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_nnc_tensor_view_offset ccv_nnc_dynamic_graph.c:ccv_nnc_tensor_view_offset Line | Count | Source | 102 | 1 | { | 103 | 1 | int i; | 104 | 1 | int nd = ccv_nnc_tensor_nd(stride); | 105 | 1 | off_t offset = 0; | 106 | 3 | for (i = nd - 1; i >= 0; i--2 ) | 107 | 2 | offset += ofs[i] * stride[i] * CCV_GET_DATA_TYPE_SIZE(datatype); | 108 | 1 | return offset; | 109 | 1 | } |
Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_cnnp_model.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_cnnp_model_addons.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_palettize.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_cnnp_model_gradient_checkpointing.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_adam.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_blas.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_comm.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_cmp.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_compression.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_convolution.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_dropout.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_ew.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_gelu.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_histogram.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_index_select.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_lamb.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_mse.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_nms.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_norm.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_pad.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_partition.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_pool.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_rand.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_reduce.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_relu.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_lstm.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_sgd.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_softmax.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_sort.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_swish.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_tanh.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_upsample.c:ccv_nnc_tensor_view_offset Unexecuted instantiation: ccv_nnc_util.c:ccv_nnc_tensor_view_offset |
110 | | |
111 | | static inline void ccv_nnc_tensor_get_stride(const int dim[CCV_NNC_MAX_DIM_ALLOC], int stride[CCV_NNC_MAX_DIM_ALLOC]) |
112 | 94.6k | { |
113 | 94.6k | int x; |
114 | 94.6k | const int nd = ccv_nnc_tensor_nd(dim); |
115 | 94.6k | if (nd < CCV_NNC_MAX_DIM_ALLOC) |
116 | 94.6k | stride[nd] = 0; |
117 | 94.6k | int cstride = 1; |
118 | 251k | for (x = nd - 1; x >= 0; x--156k ) |
119 | 156k | { |
120 | 156k | stride[x] = cstride; |
121 | 156k | cstride *= dim[x]; |
122 | 156k | } |
123 | 94.6k | } Unexecuted instantiation: mpsdnn.tests.c:ccv_nnc_tensor_get_stride ccv_nnc_cmd.c:ccv_nnc_tensor_get_stride Line | Count | Source | 112 | 3 | { | 113 | 3 | int x; | 114 | 3 | const int nd = ccv_nnc_tensor_nd(dim); | 115 | 3 | if (nd < CCV_NNC_MAX_DIM_ALLOC) | 116 | 3 | stride[nd] = 0; | 117 | 3 | int cstride = 1; | 118 | 6 | for (x = nd - 1; x >= 0; x--3 ) | 119 | 3 | { | 120 | 3 | stride[x] = cstride; | 121 | 3 | cstride *= dim[x]; | 122 | 3 | } | 123 | 3 | } |
ccv_nnc_tensor.c:ccv_nnc_tensor_get_stride Line | Count | Source | 112 | 4 | { | 113 | 4 | int x; | 114 | 4 | const int nd = ccv_nnc_tensor_nd(dim); | 115 | 4 | if (nd < CCV_NNC_MAX_DIM_ALLOC) | 116 | 4 | stride[nd] = 0; | 117 | 4 | int cstride = 1; | 118 | 13 | for (x = nd - 1; x >= 0; x--9 ) | 119 | 9 | { | 120 | 9 | stride[x] = cstride; | 121 | 9 | cstride *= dim[x]; | 122 | 9 | } | 123 | 4 | } |
Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_stream.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_micro.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_graph.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_compile.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_graph_while.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_parallel.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_nnc_tensor_get_stride ccv_nnc_dynamic_graph.c:ccv_nnc_tensor_get_stride Line | Count | Source | 112 | 33 | { | 113 | 33 | int x; | 114 | 33 | const int nd = ccv_nnc_tensor_nd(dim); | 115 | 33 | if (nd < CCV_NNC_MAX_DIM_ALLOC) | 116 | 33 | stride[nd] = 0; | 117 | 33 | int cstride = 1; | 118 | 107 | for (x = nd - 1; x >= 0; x--74 ) | 119 | 74 | { | 120 | 74 | stride[x] = cstride; | 121 | 74 | cstride *= dim[x]; | 122 | 74 | } | 123 | 33 | } |
Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_cnnp_model.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_nnc_tensor_get_stride ccv_cnnp_model_addons.c:ccv_nnc_tensor_get_stride Line | Count | Source | 112 | 1.07k | { | 113 | 1.07k | int x; | 114 | 1.07k | const int nd = ccv_nnc_tensor_nd(dim); | 115 | 1.07k | if (nd < CCV_NNC_MAX_DIM_ALLOC) | 116 | 1.07k | stride[nd] = 0; | 117 | 1.07k | int cstride = 1; | 118 | 2.29k | for (x = nd - 1; x >= 0; x--1.21k ) | 119 | 1.21k | { | 120 | 1.21k | stride[x] = cstride; | 121 | 1.21k | cstride *= dim[x]; | 122 | 1.21k | } | 123 | 1.07k | } |
Unexecuted instantiation: ccv_nnc_palettize.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_cnnp_model_gradient_checkpointing.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_nnc_tensor_get_stride ccv_nnc_gemm_cpu_ref.c:ccv_nnc_tensor_get_stride Line | Count | Source | 112 | 84.3k | { | 113 | 84.3k | int x; | 114 | 84.3k | const int nd = ccv_nnc_tensor_nd(dim); | 115 | 84.3k | if (nd < CCV_NNC_MAX_DIM_ALLOC) | 116 | 84.3k | stride[nd] = 0; | 117 | 84.3k | int cstride = 1; | 118 | 226k | for (x = nd - 1; x >= 0; x--142k ) | 119 | 142k | { | 120 | 142k | stride[x] = cstride; | 121 | 142k | cstride *= dim[x]; | 122 | 142k | } | 123 | 84.3k | } |
Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_nnc_tensor_get_stride ccv_nnc_segmented_gemm_cpu_ref.c:ccv_nnc_tensor_get_stride Line | Count | Source | 112 | 14 | { | 113 | 14 | int x; | 114 | 14 | const int nd = ccv_nnc_tensor_nd(dim); | 115 | 14 | if (nd < CCV_NNC_MAX_DIM_ALLOC) | 116 | 14 | stride[nd] = 0; | 117 | 14 | int cstride = 1; | 118 | 46 | for (x = nd - 1; x >= 0; x--32 ) | 119 | 32 | { | 120 | 32 | stride[x] = cstride; | 121 | 32 | cstride *= dim[x]; | 122 | 32 | } | 123 | 14 | } |
Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_adam.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_blas.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_get_stride _ccv_nnc_gemm_cpu_sys.c:ccv_nnc_tensor_get_stride Line | Count | Source | 112 | 9.19k | { | 113 | 9.19k | int x; | 114 | 9.19k | const int nd = ccv_nnc_tensor_nd(dim); | 115 | 9.19k | if (nd < CCV_NNC_MAX_DIM_ALLOC) | 116 | 9.19k | stride[nd] = 0; | 117 | 9.19k | int cstride = 1; | 118 | 22.6k | for (x = nd - 1; x >= 0; x--13.4k ) | 119 | 13.4k | { | 120 | 13.4k | stride[x] = cstride; | 121 | 13.4k | cstride *= dim[x]; | 122 | 13.4k | } | 123 | 9.19k | } |
Unexecuted instantiation: ccv_nnc_comm.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_cmp.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_compression.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_convolution.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_dropout.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_ew.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_gelu.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_histogram.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_index_select.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_lamb.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_mse.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_nms.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_norm.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_pad.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_partition.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_pool.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_rand.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_reduce.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_relu.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_lstm.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_sgd.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_softmax.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_sort.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_swish.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_tanh.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_upsample.c:ccv_nnc_tensor_get_stride Unexecuted instantiation: ccv_nnc_util.c:ccv_nnc_tensor_get_stride |
124 | | |
125 | | static inline int ccv_nnc_tensor_view_is_contiguous(const int dim[CCV_NNC_MAX_DIM_ALLOC], const int stride[CCV_NNC_MAX_DIM_ALLOC]) |
126 | 181 | { |
127 | | // Check if a tensor view is contiguous. |
128 | 181 | const int nd = ccv_nnc_tensor_nd(dim); |
129 | 181 | int first_none_one_dim_idx = -1; |
130 | 181 | int i; |
131 | 399 | for (i = 0; first_none_one_dim_idx < 0 && i < nd256 ; i++218 ) |
132 | 218 | if (dim[i] > 1) |
133 | 143 | first_none_one_dim_idx = i; |
134 | | // If it is all 1, it is contiguous. |
135 | 181 | if (first_none_one_dim_idx < 0) |
136 | 38 | return 1; |
137 | | // Check if from 0 to first_none_one_dim_idx, it is 1. |
138 | 181 | assert(first_none_one_dim_idx < CCV_NNC_MAX_DIM_ALLOC)143 ; |
139 | 143 | int cstride = 1; |
140 | 324 | for (i = nd - 1; i >= first_none_one_dim_idx; i--181 ) |
141 | 284 | { |
142 | 284 | if (stride[i] != cstride) |
143 | 103 | return 0; |
144 | 181 | else |
145 | 181 | cstride *= dim[i]; |
146 | 284 | } |
147 | 40 | return 1; |
148 | 143 | } Unexecuted instantiation: mpsdnn.tests.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_cmd.c:ccv_nnc_tensor_view_is_contiguous ccv_nnc_tensor.c:ccv_nnc_tensor_view_is_contiguous Line | Count | Source | 126 | 177 | { | 127 | | // Check if a tensor view is contiguous. | 128 | 177 | const int nd = ccv_nnc_tensor_nd(dim); | 129 | 177 | int first_none_one_dim_idx = -1; | 130 | 177 | int i; | 131 | 387 | for (i = 0; first_none_one_dim_idx < 0 && i < nd247 ; i++210 ) | 132 | 210 | if (dim[i] > 1) | 133 | 140 | first_none_one_dim_idx = i; | 134 | | // If it is all 1, it is contiguous. | 135 | 177 | if (first_none_one_dim_idx < 0) | 136 | 37 | return 1; | 137 | | // Check if from 0 to first_none_one_dim_idx, it is 1. | 138 | 177 | assert(first_none_one_dim_idx < CCV_NNC_MAX_DIM_ALLOC)140 ; | 139 | 140 | int cstride = 1; | 140 | 318 | for (i = nd - 1; i >= first_none_one_dim_idx; i--178 ) | 141 | 281 | { | 142 | 281 | if (stride[i] != cstride) | 143 | 103 | return 0; | 144 | 178 | else | 145 | 178 | cstride *= dim[i]; | 146 | 281 | } | 147 | 37 | return 1; | 148 | 140 | } |
Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_stream.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_micro.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_graph.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_compile.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_graph_while.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_parallel.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_nnc_tensor_view_is_contiguous ccv_nnc_dynamic_graph.c:ccv_nnc_tensor_view_is_contiguous Line | Count | Source | 126 | 4 | { | 127 | | // Check if a tensor view is contiguous. | 128 | 4 | const int nd = ccv_nnc_tensor_nd(dim); | 129 | 4 | int first_none_one_dim_idx = -1; | 130 | 4 | int i; | 131 | 12 | for (i = 0; first_none_one_dim_idx < 0 && i < nd9 ; i++8 ) | 132 | 8 | if (dim[i] > 1) | 133 | 3 | first_none_one_dim_idx = i; | 134 | | // If it is all 1, it is contiguous. | 135 | 4 | if (first_none_one_dim_idx < 0) | 136 | 1 | return 1; | 137 | | // Check if from 0 to first_none_one_dim_idx, it is 1. | 138 | 4 | assert(first_none_one_dim_idx < CCV_NNC_MAX_DIM_ALLOC)3 ; | 139 | 3 | int cstride = 1; | 140 | 6 | for (i = nd - 1; i >= first_none_one_dim_idx; i--3 ) | 141 | 3 | { | 142 | 3 | if (stride[i] != cstride) | 143 | 0 | return 0; | 144 | 3 | else | 145 | 3 | cstride *= dim[i]; | 146 | 3 | } | 147 | 3 | return 1; | 148 | 3 | } |
Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_cnnp_model.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_cnnp_model_addons.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_palettize.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_cnnp_model_gradient_checkpointing.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_adam.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_blas.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_comm.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_cmp.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_compression.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_convolution.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_dropout.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_ew.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_gelu.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_histogram.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_index_select.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_lamb.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_mse.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_nms.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_norm.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_pad.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_partition.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_pool.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_rand.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_reduce.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_relu.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_lstm.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_sgd.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_softmax.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_sort.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_swish.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_tanh.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_upsample.c:ccv_nnc_tensor_view_is_contiguous Unexecuted instantiation: ccv_nnc_util.c:ccv_nnc_tensor_view_is_contiguous |
149 | | |
150 | | static inline void ccv_nnc_tensor_data(const ccv_nnc_tensor_param_t params, unsigned char* const data, const off_t off, ccv_numeric_data_t* const data_ref, off_t* const dataof_ref) |
151 | 3.22k | { |
152 | | #ifdef HAVE_MPS |
153 | | if (CCV_TENSOR_GET_MEMORY(params.type) == CCV_TENSOR_GPU_MEMORY) |
154 | | { |
155 | | (*data_ref).u8 = data; |
156 | | *dataof_ref = off; |
157 | | return; |
158 | | } |
159 | | #endif |
160 | 3.22k | (*data_ref).u8 = data + off; |
161 | 3.22k | } Unexecuted instantiation: mpsdnn.tests.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_cmd.c:ccv_nnc_tensor_data ccv_nnc_tensor.c:ccv_nnc_tensor_data Line | Count | Source | 151 | 177 | { | 152 | | #ifdef HAVE_MPS | 153 | | if (CCV_TENSOR_GET_MEMORY(params.type) == CCV_TENSOR_GPU_MEMORY) | 154 | | { | 155 | | (*data_ref).u8 = data; | 156 | | *dataof_ref = off; | 157 | | return; | 158 | | } | 159 | | #endif | 160 | 177 | (*data_ref).u8 = data + off; | 161 | 177 | } |
Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_stream.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_micro.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_graph.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_symbolic_graph.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_nnc_tensor_data ccv_nnc_symbolic_graph_compile.c:ccv_nnc_tensor_data Line | Count | Source | 151 | 2.00k | { | 152 | | #ifdef HAVE_MPS | 153 | | if (CCV_TENSOR_GET_MEMORY(params.type) == CCV_TENSOR_GPU_MEMORY) | 154 | | { | 155 | | (*data_ref).u8 = data; | 156 | | *dataof_ref = off; | 157 | | return; | 158 | | } | 159 | | #endif | 160 | 2.00k | (*data_ref).u8 = data + off; | 161 | 2.00k | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_nnc_tensor_data ccv_nnc_graph_while.c:ccv_nnc_tensor_data Line | Count | Source | 151 | 10 | { | 152 | | #ifdef HAVE_MPS | 153 | | if (CCV_TENSOR_GET_MEMORY(params.type) == CCV_TENSOR_GPU_MEMORY) | 154 | | { | 155 | | (*data_ref).u8 = data; | 156 | | *dataof_ref = off; | 157 | | return; | 158 | | } | 159 | | #endif | 160 | 10 | (*data_ref).u8 = data + off; | 161 | 10 | } |
Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_symbolic_graph_parallel.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_nnc_tensor_data ccv_nnc_dynamic_graph.c:ccv_nnc_tensor_data Line | Count | Source | 151 | 1.03k | { | 152 | | #ifdef HAVE_MPS | 153 | | if (CCV_TENSOR_GET_MEMORY(params.type) == CCV_TENSOR_GPU_MEMORY) | 154 | | { | 155 | | (*data_ref).u8 = data; | 156 | | *dataof_ref = off; | 157 | | return; | 158 | | } | 159 | | #endif | 160 | 1.03k | (*data_ref).u8 = data + off; | 161 | 1.03k | } |
Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_cnnp_model.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_cnnp_model_addons.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_palettize.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_cnnp_model_gradient_checkpointing.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_adam.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_blas.c:ccv_nnc_tensor_data Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_data Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_comm.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_cmp.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_compression.c:ccv_nnc_tensor_data Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_nnc_tensor_data Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_nnc_tensor_data Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_nnc_tensor_data Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_convolution.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_dropout.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_ew.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_gelu.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_histogram.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_index_select.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_lamb.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_mse.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_nms.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_norm.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_pad.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_partition.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_pool.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_rand.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_reduce.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_relu.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_lstm.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_sgd.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_softmax.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_sort.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_swish.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_tanh.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_upsample.c:ccv_nnc_tensor_data Unexecuted instantiation: ccv_nnc_util.c:ccv_nnc_tensor_data |
162 | | |
163 | | static inline void ccv_nnc_tensor_data_add(const ccv_nnc_tensor_param_t params, const off_t off, ccv_numeric_data_t* const data_ref, off_t* const dataof_ref) |
164 | 636 | { |
165 | | #ifdef HAVE_MPS |
166 | | if (CCV_TENSOR_GET_MEMORY(params.type) == CCV_TENSOR_GPU_MEMORY) |
167 | | { |
168 | | (*dataof_ref) += off; |
169 | | return; |
170 | | } |
171 | | #endif |
172 | 636 | (*data_ref).u8 += off; |
173 | 636 | } Unexecuted instantiation: mpsdnn.tests.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_cmd.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_tensor.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_stream.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_micro.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_graph.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_symbolic_graph.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_nnc_tensor_data_add ccv_nnc_symbolic_graph_compile.c:ccv_nnc_tensor_data_add Line | Count | Source | 164 | 114 | { | 165 | | #ifdef HAVE_MPS | 166 | | if (CCV_TENSOR_GET_MEMORY(params.type) == CCV_TENSOR_GPU_MEMORY) | 167 | | { | 168 | | (*dataof_ref) += off; | 169 | | return; | 170 | | } | 171 | | #endif | 172 | 114 | (*data_ref).u8 += off; | 173 | 114 | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_nnc_tensor_data_add ccv_nnc_graph_while.c:ccv_nnc_tensor_data_add Line | Count | Source | 164 | 521 | { | 165 | | #ifdef HAVE_MPS | 166 | | if (CCV_TENSOR_GET_MEMORY(params.type) == CCV_TENSOR_GPU_MEMORY) | 167 | | { | 168 | | (*dataof_ref) += off; | 169 | | return; | 170 | | } | 171 | | #endif | 172 | 521 | (*data_ref).u8 += off; | 173 | 521 | } |
Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_symbolic_graph_parallel.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_nnc_tensor_data_add ccv_nnc_dynamic_graph.c:ccv_nnc_tensor_data_add Line | Count | Source | 164 | 1 | { | 165 | | #ifdef HAVE_MPS | 166 | | if (CCV_TENSOR_GET_MEMORY(params.type) == CCV_TENSOR_GPU_MEMORY) | 167 | | { | 168 | | (*dataof_ref) += off; | 169 | | return; | 170 | | } | 171 | | #endif | 172 | 1 | (*data_ref).u8 += off; | 173 | 1 | } |
Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_cnnp_model.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_cnnp_model_addons.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_palettize.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_cnnp_model_gradient_checkpointing.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_adam.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_blas.c:ccv_nnc_tensor_data_add Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_nnc_tensor_data_add Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_comm.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_cmp.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_compression.c:ccv_nnc_tensor_data_add Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_nnc_tensor_data_add Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_nnc_tensor_data_add Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_nnc_tensor_data_add Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_convolution.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_dropout.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_ew.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_gelu.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_histogram.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_index_select.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_lamb.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_mse.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_nms.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_norm.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_pad.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_partition.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_pool.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_rand.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_reduce.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_relu.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_lstm.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_sgd.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_softmax.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_sort.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_swish.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_tanh.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_upsample.c:ccv_nnc_tensor_data_add Unexecuted instantiation: ccv_nnc_util.c:ccv_nnc_tensor_data_add |
174 | | |
175 | | static inline void ccv_array_add_unique_int(ccv_array_t* ints, const int idx) |
176 | 137k | { |
177 | 137k | int i; |
178 | 444k | for (i = 0; i < ints->rnum; i++307k ) |
179 | 312k | if (*(int*)ccv_array_get(ints, i) == idx) |
180 | 5.51k | return; |
181 | 132k | ccv_array_push(ints, &idx); |
182 | 132k | } Unexecuted instantiation: mpsdnn.tests.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_cmd.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_tensor.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_stream.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_micro.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_array_add_unique_int ccv_nnc_micro_simplify.c:ccv_array_add_unique_int Line | Count | Source | 176 | 204 | { | 177 | 204 | int i; | 178 | 237 | for (i = 0; i < ints->rnum; i++33 ) | 179 | 33 | if (*(int*)ccv_array_get(ints, i) == idx) | 180 | 0 | return; | 181 | 204 | ccv_array_push(ints, &idx); | 182 | 204 | } |
Unexecuted instantiation: ccv_nnc_graph.c:ccv_array_add_unique_int ccv_nnc_symbolic_graph.c:ccv_array_add_unique_int Line | Count | Source | 176 | 26.3k | { | 177 | 26.3k | int i; | 178 | 36.4k | for (i = 0; i < ints->rnum; i++10.0k ) | 179 | 10.1k | if (*(int*)ccv_array_get(ints, i) == idx) | 180 | 18 | return; | 181 | 26.2k | ccv_array_push(ints, &idx); | 182 | 26.2k | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_array_add_unique_int ccv_nnc_symbolic_graph_compile.c:ccv_array_add_unique_int Line | Count | Source | 176 | 21.1k | { | 177 | 21.1k | int i; | 178 | 22.2k | for (i = 0; i < ints->rnum; i++1.11k ) | 179 | 1.11k | if (*(int*)ccv_array_get(ints, i) == idx) | 180 | 2 | return; | 181 | 21.1k | ccv_array_push(ints, &idx); | 182 | 21.1k | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_graph_while.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_array_add_unique_int ccv_nnc_symbolic_graph_parallel.c:ccv_array_add_unique_int Line | Count | Source | 176 | 2.38k | { | 177 | 2.38k | int i; | 178 | 265k | for (i = 0; i < ints->rnum; i++263k ) | 179 | 264k | if (*(int*)ccv_array_get(ints, i) == idx) | 180 | 1.05k | return; | 181 | 1.32k | ccv_array_push(ints, &idx); | 182 | 1.32k | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_array_add_unique_int ccv_nnc_dynamic_graph.c:ccv_array_add_unique_int Line | Count | Source | 176 | 87.0k | { | 177 | 87.0k | int i; | 178 | 115k | for (i = 0; i < ints->rnum; i++28.0k ) | 179 | 32.2k | if (*(int*)ccv_array_get(ints, i) == idx) | 180 | 4.21k | return; | 181 | 82.8k | ccv_array_push(ints, &idx); | 182 | 82.8k | } |
Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_array_add_unique_int ccv_cnnp_model.c:ccv_array_add_unique_int Line | Count | Source | 176 | 381 | { | 177 | 381 | int i; | 178 | 4.10k | for (i = 0; i < ints->rnum; i++3.72k ) | 179 | 3.92k | if (*(int*)ccv_array_get(ints, i) == idx) | 180 | 195 | return; | 181 | 186 | ccv_array_push(ints, &idx); | 182 | 186 | } |
Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_cnnp_model_addons.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_palettize.c:ccv_array_add_unique_int ccv_cnnp_model_gradient_checkpointing.c:ccv_array_add_unique_int Line | Count | Source | 176 | 219 | { | 177 | 219 | int i; | 178 | 1.32k | for (i = 0; i < ints->rnum; i++1.10k ) | 179 | 1.13k | if (*(int*)ccv_array_get(ints, i) == idx) | 180 | 29 | return; | 181 | 190 | ccv_array_push(ints, &idx); | 182 | 190 | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_adam.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_blas.c:ccv_array_add_unique_int Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_array_add_unique_int Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_comm.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_cmp.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_compression.c:ccv_array_add_unique_int Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_array_add_unique_int Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_array_add_unique_int Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_array_add_unique_int Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_convolution.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_dropout.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_ew.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_gelu.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_histogram.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_index_select.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_lamb.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_mse.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_nms.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_norm.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_pad.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_partition.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_pool.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_rand.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_reduce.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_relu.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_lstm.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_sgd.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_softmax.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_sort.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_swish.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_tanh.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_upsample.c:ccv_array_add_unique_int Unexecuted instantiation: ccv_nnc_util.c:ccv_array_add_unique_int |
183 | | |
184 | | static inline int ccv_array_contain_int(ccv_array_t* ints, const int idx) |
185 | 112 | { |
186 | 112 | int i; |
187 | 781 | for (i = 0; i < ints->rnum; i++669 ) |
188 | 728 | if (*(int*)ccv_array_get(ints, i) == idx) |
189 | 59 | return 1; |
190 | 53 | return 0; |
191 | 112 | } Unexecuted instantiation: mpsdnn.tests.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_cmd.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_tensor.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_stream.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_micro.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_graph.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph_compile.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_graph_while.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph_parallel.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_dynamic_graph.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_array_contain_int Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_array_contain_int Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_array_contain_int Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_array_contain_int Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_array_contain_int Unexecuted instantiation: ccv_cnnp_model.c:ccv_array_contain_int Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_array_contain_int Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_array_contain_int Unexecuted instantiation: ccv_cnnp_model_addons.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_palettize.c:ccv_array_contain_int ccv_cnnp_model_gradient_checkpointing.c:ccv_array_contain_int Line | Count | Source | 185 | 112 | { | 186 | 112 | int i; | 187 | 781 | for (i = 0; i < ints->rnum; i++669 ) | 188 | 728 | if (*(int*)ccv_array_get(ints, i) == idx) | 189 | 59 | return 1; | 190 | 53 | return 0; | 191 | 112 | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_adam.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_blas.c:ccv_array_contain_int Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_array_contain_int Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_comm.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_cmp.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_compression.c:ccv_array_contain_int Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_array_contain_int Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_array_contain_int Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_array_contain_int Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_convolution.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_dropout.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_ew.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_gelu.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_histogram.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_index_select.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_lamb.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_mse.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_nms.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_norm.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_pad.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_partition.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_pool.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_rand.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_reduce.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_relu.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_lstm.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_sgd.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_softmax.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_sort.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_swish.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_tanh.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_upsample.c:ccv_array_contain_int Unexecuted instantiation: ccv_nnc_util.c:ccv_array_contain_int |
192 | | |
193 | | static inline void ccv_array_add_unique_uint(ccv_array_t* ints, const uint32_t idx) |
194 | 5.73k | { |
195 | 5.73k | int i; |
196 | 22.7k | for (i = 0; i < ints->rnum; i++17.0k ) |
197 | 19.3k | if (*(uint32_t*)ccv_array_get(ints, i) == idx) |
198 | 2.29k | return; |
199 | 3.43k | ccv_array_push(ints, &idx); |
200 | 3.43k | } Unexecuted instantiation: mpsdnn.tests.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_cmd.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_tensor.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_stream.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_micro.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_array_add_unique_uint ccv_nnc_graph.c:ccv_array_add_unique_uint Line | Count | Source | 194 | 5.73k | { | 195 | 5.73k | int i; | 196 | 22.7k | for (i = 0; i < ints->rnum; i++17.0k ) | 197 | 19.3k | if (*(uint32_t*)ccv_array_get(ints, i) == idx) | 198 | 2.29k | return; | 199 | 3.43k | ccv_array_push(ints, &idx); | 200 | 3.43k | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_compile.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_backward.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_graph_while.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_parallel.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_simplify.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_dynamic_graph.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_cnnp_model.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_cnnp_model_addons.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_palettize.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_cnnp_model_gradient_checkpointing.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_adam.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_blas.c:ccv_array_add_unique_uint Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_array_add_unique_uint Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_comm.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_cmp.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_compression.c:ccv_array_add_unique_uint Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_array_add_unique_uint Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_array_add_unique_uint Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_array_add_unique_uint Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_convolution.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_dropout.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_ew.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_gelu.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_histogram.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_index_select.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_lamb.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_mse.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_nms.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_norm.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_pad.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_partition.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_pool.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_rand.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_reduce.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_relu.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_lstm.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_sgd.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_softmax.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_sort.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_swish.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_tanh.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_upsample.c:ccv_array_add_unique_uint Unexecuted instantiation: ccv_nnc_util.c:ccv_array_add_unique_uint |
201 | | |
202 | | #ifdef __cplusplus |
203 | | #define REGISTER_COMMAND_BACKEND(x, y) extern "C" void _register_command_ ## x ## _backend_ ## y |
204 | | #define REGISTER_COMMAND(x) extern "C" void _register_command_ ## x |
205 | | #else |
206 | | #define REGISTER_COMMAND_BACKEND(x, y) void _register_command_ ## x ## _backend_ ## y |
207 | | #define REGISTER_COMMAND(x) void _register_command_ ## x |
208 | | #endif |
209 | | #define FIND_BACKEND(...) |
210 | | #define FIND_FILE(...) |
211 | | |
212 | | // x is the dimension. |
213 | | // n[x] is the start point for the filter on y axis, so that we can avoid computing the padding. |
214 | | // m[x] shows how long we should loop for filter on y axis, avoid computing the padding too. |
215 | | #define SET_BORDER_OFFSET_SIZE_FOR(x, i, hint, wd, ad, n, m) \ |
216 | 517M | do { \ |
217 | 517M | n[x] = ccv_max(i[x] * hint.stride.dim[x] - hint.border.begin[x], 0) - (i[x] * hint.stride.dim[x] - hint.border.begin[x]); \ |
218 | 517M | m[x] = (wd)[x] - n[x] - (i[x] * hint.stride.dim[x] - hint.border.begin[x] + (wd)[x] - ccv_min((ad)[x], i[x] * hint.stride.dim[x] - hint.border.begin[x] + (wd)[x])); \ |
219 | 517M | } while (0) |
220 | | |
221 | | // Defines common graph visit macros |
222 | | |
223 | | // The visitor function / macro takes parameter visitor(node_type* node, int index, int term); |
224 | | #define CCV_NNC_GRAPH_VISIT(_graph, nodes, node_size, sources, source_size, destinations, destination_size, allow_subset, visitor) \ |
225 | 40.7k | do 15 { \ |
226 | 40.7k | /* Use the same data structure to do topological ordering. */ \ |
227 | 40.7k | typedef struct { \ |
228 | 40.7k | int8_t d; /* tag if this is the destination node. */ \ |
229 | 40.7k | int8_t r; /* tag if this is reached as destination node. */ \ |
230 | 40.7k | uint16_t c; /* number of incoming edges. */ \ |
231 | 40.7k | int32_t edges; /* pointer to incoming edges list. */ \ |
232 | 40.7k | } ccv_nnc_incoming_t; \ |
233 | 40.7k | int _i_, _j_; \ |
234 | 40.7k | /* Statistics of how many incoming edges for all nodes of a graph. */ \ |
235 | 40.7k | int _incoming_edges_ = 0; \ |
236 | 257k | for (_i_ = 0; _i_ < (node_size); _i_++216k ) /* assuming it is all reached */ \ |
237 | 216k | _incoming_edges_ += ((nodes)[_i_].outgoings) ? (nodes)[_i_].outgoings->rnum163k : 053.0k ; \ |
238 | 40.7k | const int _heap_mem_ = ((node_size) + _incoming_edges_ > 1024); \ |
239 | 40.7k | ccv_nnc_incoming_t* _incomings_; \ |
240 | 40.7k | if (_heap_mem_) \ |
241 | 40.7k | _incomings_ = (ccv_nnc_incoming_t*)48 ccmalloc48 (sizeof(ccv_nnc_incoming_t) * (node_size) + sizeof(int32_t) * ((node_size) * 2 + _incoming_edges_)); \ |
242 | 40.7k | else \ |
243 | 40.7k | _incomings_ = (ccv_nnc_incoming_t*)alloca40.6k (sizeof(ccv_nnc_incoming_t) * (node_size) + sizeof(int32_t) * ((node_size) * 2 + _incoming_edges_)); \ |
244 | 40.7k | memset(_incomings_, 0, sizeof(ccv_nnc_incoming_t) * (node_size)); \ |
245 | 40.7k | int32_t* _exists_[2] = { \ |
246 | 40.7k | (int32_t*)(_incomings_ + (node_size)), \ |
247 | 40.7k | (int32_t*)(_incomings_ + (node_size)) + (node_size), \ |
248 | 40.7k | }; \ |
249 | 40.7k | int32_t* const _edges_ = _exists_[1] + (node_size); \ |
250 | 82.0k | for (_i_ = 0; _i_ < (source_size); _i_++41.3k ) \ |
251 | 41.3k | { \ |
252 | 41.3k | assert((sources)[_i_].graph == _graph); \ |
253 | 41.3k | _incomings_[(sources)[_i_].d].r = 1; \ |
254 | 41.3k | _exists_[0][_i_] = (sources)[_i_].d; \ |
255 | 41.3k | } \ |
256 | 40.7k | int _exist_size_[2] = { \ |
257 | 40.7k | (source_size), \ |
258 | 40.7k | 0, \ |
259 | 40.7k | }; \ |
260 | 40.7k | int _p_ = 0, _q_ = 1; /* ping, pong swap. */ \ |
261 | 40.7k | /* Gather statistics. */ \ |
262 | 180k | while (_exist_size_[_p_] > 0) \ |
263 | 139k | { \ |
264 | 139k | _exist_size_[_q_] = 0; \ |
265 | 333k | for (_i_ = 0; _i_ < _exist_size_[_p_]; _i_++193k ) \ |
266 | 193k | { \ |
267 | 193k | const int32_t _idx_ = _exists_[_p_][_i_]; \ |
268 | 193k | if (_incomings_[_idx_].r != 1) \ |
269 | 193k | continue0 ; \ |
270 | 193k | _incomings_[_idx_].r = 2; \ |
271 | 193k | /* mark as not reached */ \ |
272 | 193k | if ((nodes)[_idx_].outgoings) \ |
273 | 334k | for (_j_ = 0; 142k _j_ < (nodes)[_idx_].outgoings->rnum; _j_++191k ) \ |
274 | 191k | { \ |
275 | 191k | const int d = *(int*)ccv_array_get((nodes)[_idx_].outgoings, _j_); \ |
276 | 191k | ++_incomings_[d].c; \ |
277 | 191k | if (_incomings_[d].r != 0) \ |
278 | 191k | continue39.2k ; \ |
279 | 191k | _incomings_[d].r = 1; \ |
280 | 152k | assert(_exist_size_[_q_] < (node_size)); \ |
281 | 152k | _exists_[_q_][_exist_size_[_q_]] = d; \ |
282 | 152k | ++_exist_size_[_q_]; \ |
283 | 152k | } \ |
284 | 193k | } \ |
285 | 139k | /* swap p and q. */ \ |
286 | 139k | CCV_SWAP(_p_, _q_, _i_ /* using i as temp holder */); \ |
287 | 139k | } \ |
288 | 40.7k | /* Fill incoming edges. */ \ |
289 | 82.0k | for (_i_ = 0; 40.7k _i_ < (source_size); _i_++41.3k ) \ |
290 | 41.3k | { \ |
291 | 41.3k | assert((sources)[_i_].graph == _graph); \ |
292 | 41.3k | _incomings_[(sources)[_i_].d].r = 3; \ |
293 | 41.3k | _exists_[0][_i_] = (sources)[_i_].d; \ |
294 | 41.3k | } \ |
295 | 40.7k | _exist_size_[0] = (source_size); \ |
296 | 40.7k | _exist_size_[1] = 0; \ |
297 | 40.7k | _p_ = 0, _q_ = 1; /* ping, pong swap. */ \ |
298 | 40.7k | int _bump_ = 1; \ |
299 | 180k | while (_exist_size_[_p_] > 0) \ |
300 | 139k | { \ |
301 | 139k | _exist_size_[_q_] = 0; \ |
302 | 333k | for (_i_ = 0; _i_ < _exist_size_[_p_]; _i_++193k ) \ |
303 | 193k | { \ |
304 | 193k | const int32_t _idx_ = _exists_[_p_][_i_]; \ |
305 | 193k | if (_incomings_[_idx_].r != 3) \ |
306 | 193k | continue0 ; \ |
307 | 193k | _incomings_[_idx_].r = 4; \ |
308 | 193k | /* mark as not reached */ \ |
309 | 193k | if ((nodes)[_idx_].outgoings) \ |
310 | 334k | for (_j_ = 0; 142k _j_ < (nodes)[_idx_].outgoings->rnum; _j_++191k ) \ |
311 | 191k | { \ |
312 | 191k | const int d = *(int*)ccv_array_get((nodes)[_idx_].outgoings, _j_); \ |
313 | 191k | if (_incomings_[d].edges == 0) \ |
314 | 191k | { \ |
315 | 152k | _incomings_[d].edges = _bump_; \ |
316 | 152k | _bump_ += _incomings_[d].c; \ |
317 | 152k | _incomings_[d].c = 0; \ |
318 | 152k | } \ |
319 | 191k | _edges_[_incomings_[d].edges - 1 + _incomings_[d].c] = _idx_; \ |
320 | 191k | ++_incomings_[d].c; \ |
321 | 191k | if (_incomings_[d].r != 2) \ |
322 | 191k | continue39.2k ; \ |
323 | 191k | _incomings_[d].r = 3; \ |
324 | 152k | assert(_exist_size_[_q_] < (node_size)); \ |
325 | 152k | _exists_[_q_][_exist_size_[_q_]] = d; \ |
326 | 152k | ++_exist_size_[_q_]; \ |
327 | 152k | } \ |
328 | 193k | } \ |
329 | 139k | /* swap p and q. */ \ |
330 | 139k | CCV_SWAP(_p_, _q_, _i_ /* using i as temp holder */); \ |
331 | 139k | } \ |
332 | 40.7k | /* Traverse back and mark r if it can be marked */ \ |
333 | 91.6k | for (_i_ = 0; 40.7k _i_ < (destination_size); _i_++50.8k ) \ |
334 | 50.8k | { \ |
335 | 50.8k | assert((destinations)[_i_].graph == _graph); \ |
336 | 50.8k | _incomings_[(destinations)[_i_].d].r = 5; \ |
337 | 50.8k | _exists_[0][_i_] = (destinations)[_i_].d; \ |
338 | 50.8k | } \ |
339 | 40.7k | _exist_size_[0] = (destination_size); \ |
340 | 40.7k | _exist_size_[1] = 0; \ |
341 | 40.7k | _p_ = 0, _q_ = 1; /* ping, pong swap. */ \ |
342 | 180k | while (_exist_size_[_p_] > 0) \ |
343 | 139k | { \ |
344 | 139k | _exist_size_[_q_] = 0; \ |
345 | 330k | for (_i_ = 0; _i_ < _exist_size_[_p_]; _i_++191k ) \ |
346 | 191k | { \ |
347 | 191k | const int32_t _idx_ = _exists_[_p_][_i_]; \ |
348 | 191k | if (_incomings_[_idx_].r != 5) /* If cannot be traversed in forward pass, cannot in backward pass. */ \ |
349 | 191k | continue0 ; \ |
350 | 191k | _incomings_[_idx_].r = 6; \ |
351 | 191k | /* mark as not reached */ \ |
352 | 191k | if (_incomings_[_idx_].edges > 0) \ |
353 | 335k | for (_j_ = 0; 149k _j_ < _incomings_[_idx_].c; _j_++185k ) \ |
354 | 185k | { \ |
355 | 185k | const int d = _edges_[_incomings_[_idx_].edges - 1 + _j_]; \ |
356 | 185k | if (_incomings_[d].r != 4) \ |
357 | 185k | continue45.4k ; \ |
358 | 185k | _incomings_[d].r = 5; \ |
359 | 140k | assert(_exist_size_[_q_] < (node_size)); \ |
360 | 140k | _exists_[_q_][_exist_size_[_q_]] = d; \ |
361 | 140k | ++_exist_size_[_q_]; \ |
362 | 140k | } \ |
363 | 191k | } \ |
364 | 139k | /* swap p and q. */ \ |
365 | 139k | CCV_SWAP(_p_, _q_, _i_ /* using i as temp holder */); \ |
366 | 139k | } \ |
367 | 91.6k | for (_i_ = 0; 40.7k _i_ < (destination_size); _i_++50.8k ) \ |
368 | 50.8k | { \ |
369 | 50.8k | assert((destinations)[_i_].graph == _graph); \ |
370 | 50.8k | /* tagging destination nodes. */ \ |
371 | 50.8k | _incomings_[(destinations)[_i_].d].d = 1; \ |
372 | 50.8k | } \ |
373 | 82.0k | for (_i_ = 0; 40.7k _i_ < (source_size); _i_++41.3k ) \ |
374 | 41.3k | { \ |
375 | 41.3k | assert((sources)[_i_].graph == _graph); \ |
376 | 41.3k | _exists_[0][_i_] = (sources)[_i_].d; \ |
377 | 41.3k | } \ |
378 | 40.7k | _p_ = 0; \ |
379 | 40.7k | _q_ = 1; \ |
380 | 40.7k | _exist_size_[0] = (source_size); \ |
381 | 40.7k | _exist_size_[1] = 0; \ |
382 | 40.7k | int _d_ = 0; \ |
383 | 40.7k | /* After we have that statistics, we can do topsort and run the command. */ \ |
384 | 100k | while (_exist_size_[_p_] > 0) \ |
385 | 60.2k | { \ |
386 | 60.2k | _exist_size_[_q_] = 0; \ |
387 | 251k | for (_i_ = 0; _i_ < _exist_size_[_p_];) \ |
388 | 191k | { \ |
389 | 191k | const int32_t _idx_ = _exists_[_p_][_i_]; \ |
390 | 191k | visitor(((nodes) + _idx_), (_idx_), (_incomings_[_idx_].d)); \ |
391 | 191k | /* mark as reached */ \ |
392 | 191k | if (_incomings_[_idx_].d) \ |
393 | 191k | { \ |
394 | 50.8k | ++_d_; \ |
395 | 50.8k | _incomings_[_idx_].r = 7; \ |
396 | 50.8k | } \ |
397 | 191k | if ((nodes)[_idx_].outgoings) \ |
398 | 191k | { \ |
399 | 140k | if ((nodes)[_idx_].outgoings->rnum == 1) \ |
400 | 140k | { \ |
401 | 111k | /* Optimizing for the case have only one child. Go through that directly. */ \ |
402 | 111k | const int d = *(int*)ccv_array_get((nodes)[_idx_].outgoings, 0); \ |
403 | 111k | --_incomings_[d].c; \ |
404 | 111k | if (_incomings_[d].c == 0 && _incomings_[d].r == 6107k && _d_ < (destination_size)107k ) \ |
405 | 111k | { \ |
406 | 107k | _exists_[_p_][_i_] = d; \ |
407 | 107k | continue; \ |
408 | 107k | } \ |
409 | 111k | } else \ |
410 | 140k | for (_j_ = 0; 29.7k _j_ < (nodes)[_idx_].outgoings->rnum107k ; _j_++77.3k ) \ |
411 | 77.3k | { \ |
412 | 77.3k | const int d = *(int*)ccv_array_get((nodes)[_idx_].outgoings, _j_); \ |
413 | 77.3k | --_incomings_[d].c; \ |
414 | 77.3k | /* If all incoming edges are consumed, and not all destination node are computed, push it into next round */ \ |
415 | 77.3k | if (_incomings_[d].c == 0 && _incomings_[d].r == 642.6k && _d_ < (destination_size)42.4k ) \ |
416 | 77.3k | { \ |
417 | 42.4k | assert(_exist_size_[_q_] < (node_size)); \ |
418 | 42.4k | _exists_[_q_][_exist_size_[_q_]] = d; \ |
419 | 42.4k | ++_exist_size_[_q_]; \ |
420 | 42.4k | } \ |
421 | 77.3k | } \ |
422 | 140k | } \ |
423 | 191k | ++_i_; \ |
424 | 83.7k | } \ |
425 | 60.2k | /* swap p and q. */ \ |
426 | 60.2k | CCV_SWAP(_p_, _q_, _i_ /* using i as temp holder */); \ |
427 | 60.2k | } \ |
428 | 91.6k | for (_i_ = 0; 40.7k _i_ < (destination_size); _i_++50.8k ) \ |
429 | 50.8k | { \ |
430 | 50.8k | assert((destinations)[_i_].graph == _graph); \ |
431 | 50.8k | /* skip if this is already reached. */ \ |
432 | 50.8k | if (_incomings_[(destinations)[_i_].d].r == 7) \ |
433 | 50.8k | continue50.8k ; \ |
434 | 50.8k | /* this destination node should have every incoming nodes consumed. */ \ |
435 | 50.8k | if (25 !(allow_subset)25 ) \ |
436 | 25 | { assert(_incomings_[(destinations)[_i_].d].c == 0); } \ |
437 | 25 | else if (0 _incomings_[(destinations)[_i_].d].c > 00 ) /* Otherwise if incoming is not satisfied, no need to execute (allow subset to get executed, that is). */ \ |
438 | 0 | continue; \ |
439 | 25 | /* fetch the info for destination node and exec current node. */ \ |
440 | 25 | visitor(((nodes) + (destinations)[_i_].d), ((destinations)[_i_].d), (_incomings_[(destinations)[_i_].d].d)); \ |
441 | 25 | } \ |
442 | 40.7k | if (_heap_mem_) \ |
443 | 40.7k | ccfree48 (_incomings_)48 ; \ |
444 | 40.7k | } while (0); |
445 | | |
446 | | typedef struct { |
447 | | int size; |
448 | | struct { |
449 | | int index; |
450 | | int term; |
451 | | } node[1]; |
452 | | } ccv_nnc_graph_visit_t; |
453 | | |
454 | | static inline void ccv_nnc_graph_visit_free(ccv_nnc_graph_visit_t* graph_visit) |
455 | 40.0k | { |
456 | 40.0k | ccfree(graph_visit); |
457 | 40.0k | } Unexecuted instantiation: mpsdnn.tests.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_cmd.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_tensor.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_tensor_io.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_stream.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_micro.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_micro_core.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_micro_interpret.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_micro_simplify.c:ccv_nnc_graph_visit_free ccv_nnc_graph.c:ccv_nnc_graph_visit_free Line | Count | Source | 455 | 6.68k | { | 456 | 6.68k | ccfree(graph_visit); | 457 | 6.68k | } |
ccv_nnc_symbolic_graph.c:ccv_nnc_graph_visit_free Line | Count | Source | 455 | 8.85k | { | 456 | 8.85k | ccfree(graph_visit); | 457 | 8.85k | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_io.c:ccv_nnc_graph_visit_free ccv_nnc_symbolic_graph_compile.c:ccv_nnc_graph_visit_free Line | Count | Source | 455 | 6.25k | { | 456 | 6.25k | ccfree(graph_visit); | 457 | 6.25k | } |
ccv_nnc_symbolic_graph_backward.c:ccv_nnc_graph_visit_free Line | Count | Source | 455 | 13.5k | { | 456 | 13.5k | ccfree(graph_visit); | 457 | 13.5k | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_while.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_graph_while.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_tensor_tape.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_symbolic_graph_case_of.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_graph_case_of.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_symbolic_graph_minimize.c:ccv_nnc_graph_visit_free ccv_nnc_symbolic_graph_parallel.c:ccv_nnc_graph_visit_free Line | Count | Source | 455 | 17 | { | 456 | 17 | ccfree(graph_visit); | 457 | 17 | } |
ccv_nnc_symbolic_graph_simplify.c:ccv_nnc_graph_visit_free Line | Count | Source | 455 | 4.61k | { | 456 | 4.61k | ccfree(graph_visit); | 457 | 4.61k | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_compression.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_symbolic_graph_memory_reduction.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_graph_run.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_xpu_alloc.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_dynamic_graph.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_dynamic_graph_alloc.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_dynamic_graph_backward.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_dynamic_graph_apply_gradients.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_dynamic_graph_minimize.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_dynamic_graph_evaluate.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_cnnp_dataframe.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_cnnp_dataframe_core.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_cnnp_dataframe_addons.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_cnnp_dataframe_csv.c:ccv_nnc_graph_visit_free ccv_cnnp_model.c:ccv_nnc_graph_visit_free Line | Count | Source | 455 | 96 | { | 456 | 96 | ccfree(graph_visit); | 457 | 96 | } |
Unexecuted instantiation: ccv_cnnp_model_io.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_cnnp_model_core.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_cnnp_model_addons.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_palettize.c:ccv_nnc_graph_visit_free ccv_cnnp_model_gradient_checkpointing.c:ccv_nnc_graph_visit_free Line | Count | Source | 455 | 2 | { | 456 | 2 | ccfree(graph_visit); | 457 | 2 | } |
Unexecuted instantiation: ccv_nnc_symbolic_graph_chain_decomposition.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_adam_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_adamw_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_gemm_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_gemm_cpu_opt.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_add_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_mul_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_cmul_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_segmented_gemm_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_min_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_max_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_lssc_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_conv_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_conv_cpu_opt.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_conv_transpose_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_dropout_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_ew_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_gelu_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_histogram_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_index_select_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_reduce_isnan_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_lamb_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_leaky_relu_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_binary_crossentropy_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_categorical_crossentropy_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_mse_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_smooth_l1_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_nms_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_batch_norm_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_layer_norm_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_group_norm_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_rmsnorm_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_pad_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_partition_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_max_pool_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_avg_pool_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_rand_uniform_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_rand_normal_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_reduce_sum_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_reduce_mean_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_reduce_max_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_reduce_min_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_reduce_norm2_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_argmax_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_argmin_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_relu_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_rmsprop_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_roi_align_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_scatter_add_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_sgd_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_sigmoid_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_softmax_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_softmax_crossentropy_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_sort_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_swish_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_tanh_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_unique_consecutive_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_upsample_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_util_cpu_ref.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_adam.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_blas.c:ccv_nnc_graph_visit_free Unexecuted instantiation: _ccv_nnc_gemm_cpu_opt.c:ccv_nnc_graph_visit_free Unexecuted instantiation: _ccv_nnc_gemm_cpu_sys.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_comm.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_cmp.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_compression.c:ccv_nnc_graph_visit_free Unexecuted instantiation: _ccv_nnc_conv_cpu_4x4_3x3_winograd.c:ccv_nnc_graph_visit_free Unexecuted instantiation: _ccv_nnc_conv_cpu_fft.c:ccv_nnc_graph_visit_free Unexecuted instantiation: _ccv_nnc_conv_cpu_gemm.c:ccv_nnc_graph_visit_free Unexecuted instantiation: _ccv_nnc_conv_cpu_opt.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_convolution.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_dropout.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_ew.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_gelu.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_histogram.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_index_select.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_reduce_isnan.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_lamb.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_leaky_relu.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_binary_crossentropy.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_categorical_crossentropy.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_mse.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_smooth_l1.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_nms.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_norm.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_pad.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_partition.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_pool.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_rand.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_reduce.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_relu.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_rmsprop.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_lstm.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_roi_align.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_scaled_dot_product_attention.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_scatter_add.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_sgd.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_sigmoid.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_sigmoid_binary_crossentropy.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_softmax.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_softmax_crossentropy.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_sort.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_swish.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_tanh.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_unique_consecutive.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_upsample.c:ccv_nnc_graph_visit_free Unexecuted instantiation: ccv_nnc_util.c:ccv_nnc_graph_visit_free |
458 | | |
459 | 179k | #define CCV_NNC_GRAPH_VISIT_FOR1(graph_visit, nodes, _node_, _index_, _term_, ...) { \ |
460 | 179k | int _i_; \ |
461 | 907k | for (_i_ = 0; _i_ < (graph_visit)->size; _i_++727k ) { \ |
462 | 727k | const int _index_ __attribute__((unused)) = (graph_visit)->node[_i_].index; \ |
463 | 727k | const int _term_ __attribute__((unused)) = (graph_visit)->node[_i_].term; \ |
464 | 727k | typeof ((nodes)) const _node_ __attribute__((unused)) = (nodes) + _index_; \ |
465 | | |
466 | | #define ccv_nnc_graph_visit_for(graph_visit, nodes, ...) \ |
467 | 179k | CCV_NNC_GRAPH_VISIT_FOR1(graph_visit, nodes, ##__VA_ARGS__, _node_unused_, _index_unused_, _term_unused_) |
468 | | |
469 | 2 | #define CCV_NNC_GRAPH_VISIT_FOR1_REVERSED(graph_visit, nodes, _node_, _index_, _term_, ...) { \ |
470 | 2 | int _i_; \ |
471 | 18 | for (_i_ = (graph_visit)->size - 1; _i_ >= 0; _i_--16 ) { \ |
472 | 16 | const int _index_ __attribute__((unused)) = (graph_visit)->node[_i_].index; \ |
473 | 16 | const int _term_ __attribute__((unused)) = (graph_visit)->node[_i_].term; \ |
474 | 16 | typeof ((nodes)) const _node_ __attribute__((unused)) = (nodes) + _index_; \ |
475 | | |
476 | | #define ccv_nnc_graph_visit_for_reversed(graph_visit, nodes, ...) \ |
477 | 2 | CCV_NNC_GRAPH_VISIT_FOR1_REVERSED(graph_visit, nodes, ##__VA_ARGS__, _node_unused_, _index_unused_, _term_unused_) |
478 | | |
479 | 708k | #define ccv_nnc_graph_visit_endfor } } |
480 | | |
481 | | #define CCV_NNC_GRAPH_VISIT_NEW_VISITOR1(_, _index_, _term_) \ |
482 | 182k | _visit_->node[_visit_->size].index = (_index_); \ |
483 | 182k | _visit_->node[_visit_->size].term = (_term_); \ |
484 | 182k | ++_visit_->size; |
485 | | |
486 | 40.0k | #define ccv_nnc_graph_visit_new(_graph, nodes, node_size, sources, source_size, destinations, destination_size, allow_subset) ({\ |
487 | 40.0k | ccv_nnc_graph_visit_t* _visit_ = (ccv_nnc_graph_visit_t*)ccmalloc(sizeof(ccv_nnc_graph_visit_t) + sizeof(_visit_->node[0]) * ((node_size) - 1)); \ |
488 | 40.0k | _visit_->size = 0; \ |
489 | 182k | CCV_NNC_GRAPH_VISIT40.0k (_graph, nodes, node_size, sources, source_size, destinations, destination_size, allow_subset, CCV_NNC_GRAPH_VISIT_NEW_VISITOR1); \ |
490 | 40.0k | assert(_visit_->size <= (node_size)); \ |
491 | 40.0k | _visit_; \ |
492 | 40.0k | }) |
493 | | |
494 | | #endif |