Coverage Report

Created: 2025-05-31 15:19

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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
111k
{
113
111k
  int x;
114
111k
  const int nd = ccv_nnc_tensor_nd(dim);
115
111k
  if (nd < CCV_NNC_MAX_DIM_ALLOC)
116
111k
    stride[nd] = 0;
117
111k
  int cstride = 1;
118
291k
  for (x = nd - 1; x >= 0; 
x--179k
)
119
179k
  {
120
179k
    stride[x] = cstride;
121
179k
    cstride *= dim[x];
122
179k
  }
123
111k
}
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.08k
{
113
1.08k
  int x;
114
1.08k
  const int nd = ccv_nnc_tensor_nd(dim);
115
1.08k
  if (nd < CCV_NNC_MAX_DIM_ALLOC)
116
1.08k
    stride[nd] = 0;
117
1.08k
  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.08k
}
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
105k
{
113
105k
  int x;
114
105k
  const int nd = ccv_nnc_tensor_nd(dim);
115
105k
  if (nd < CCV_NNC_MAX_DIM_ALLOC)
116
105k
    stride[nd] = 0;
117
105k
  int cstride = 1;
118
276k
  for (x = nd - 1; x >= 0; 
x--170k
)
119
170k
  {
120
170k
    stride[x] = cstride;
121
170k
    cstride *= dim[x];
122
170k
  }
123
105k
}
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
31
{
113
31
  int x;
114
31
  const int nd = ccv_nnc_tensor_nd(dim);
115
31
  if (nd < CCV_NNC_MAX_DIM_ALLOC)
116
31
    stride[nd] = 0;
117
31
  int cstride = 1;
118
102
  for (x = nd - 1; x >= 0; 
x--71
)
119
71
  {
120
71
    stride[x] = cstride;
121
71
    cstride *= dim[x];
122
71
  }
123
31
}
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
4.91k
{
113
4.91k
  int x;
114
4.91k
  const int nd = ccv_nnc_tensor_nd(dim);
115
4.91k
  if (nd < CCV_NNC_MAX_DIM_ALLOC)
116
4.91k
    stride[nd] = 0;
117
4.91k
  int cstride = 1;
118
12.6k
  for (x = nd - 1; x >= 0; 
x--7.70k
)
119
7.70k
  {
120
7.70k
    stride[x] = cstride;
121
7.70k
    cstride *= dim[x];
122
7.70k
  }
123
4.91k
}
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.1k
{
177
87.1k
  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
382
{
177
382
  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
187
  ccv_array_push(ints, &idx);
182
187
}
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.74k
{
195
5.74k
  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.44k
  ccv_array_push(ints, &idx);
200
3.44k
}
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.74k
{
195
5.74k
  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.44k
  ccv_array_push(ints, &idx);
200
3.44k
}
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_++217k
) /* assuming it is all reached */ \
237
217k
      _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.9k
) \
334
50.9k
    { \
335
50.9k
      assert((destinations)[_i_].graph == _graph); \
336
50.9k
      _incomings_[(destinations)[_i_].d].r = 5; \
337
50.9k
      _exists_[0][_i_] = (destinations)[_i_].d; \
338
50.9k
    } \
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.9k
) \
368
50.9k
    { \
369
50.9k
      assert((destinations)[_i_].graph == _graph); \
370
50.9k
      /* tagging destination nodes. */ \
371
50.9k
      _incomings_[(destinations)[_i_].d].d = 1; \
372
50.9k
    } \
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
101k
    while (_exist_size_[_p_] > 0) \
385
60.3k
    { \
386
60.3k
      _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.4k
) \
411
77.4k
            { \
412
77.4k
              const int d = *(int*)ccv_array_get((nodes)[_idx_].outgoings, _j_); \
413
77.4k
              --_incomings_[d].c; \
414
77.4k
              /* If all incoming edges are consumed, and not all destination node are computed, push it into next round */ \
415
77.4k
              if (_incomings_[d].c == 0 && 
_incomings_[d].r == 642.6k
&&
_d_ < (destination_size)42.4k
) \
416
77.4k
              { \
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.4k
            } \
422
140k
        } \
423
191k
        ++_i_; \
424
83.7k
      } \
425
60.3k
      /* swap p and q. */ \
426
60.3k
      CCV_SWAP(_p_, _q_, _i_ /* using i as temp holder */); \
427
60.3k
    } \
428
91.6k
    
for (_i_ = 0; 40.7k
_i_ < (destination_size);
_i_++50.9k
) \
429
50.9k
    { \
430
50.9k
      assert((destinations)[_i_].graph == _graph); \
431
50.9k
      /* skip if this is already reached. */ \
432
50.9k
      if (_incomings_[(destinations)[_i_].d].r == 7) \
433
50.9k
        
continue50.8k
; \
434
50.9k
      /* this destination node should have every incoming nodes consumed. */ \
435
50.9k
      
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
99
{
456
99
  ccfree(graph_visit);
457
99
}
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
183k
  _visit_->node[_visit_->size].index = (_index_); \
483
183k
  _visit_->node[_visit_->size].term = (_term_); \
484
183k
  ++_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
183k
  
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