MCPcopy Create free account
hub / github.com/OAID/Tengine / PrepareTensors

Function PrepareTensors

executor/lib/custom_kernel.cpp:34–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32}
33
34bool PrepareTensors(Node* node, struct custom_kernel_tensor**& k_inputs, int input_num,
35 struct custom_kernel_tensor**& k_outputs, int output_num)
36{
37 k_inputs = nullptr;
38 k_outputs = nullptr;
39
40 /*prepare inputs and outputs */
41 if(input_num)
42 {
43 k_inputs = ( struct custom_kernel_tensor** )malloc(sizeof(void*) * input_num);
44
45 if(k_inputs == nullptr)
46 {
47 set_tengine_errno(ENOMEM);
48 return false;
49 }
50
51 memset(k_inputs, 0x0, sizeof(void*) * input_num);
52 }
53
54 if(output_num)
55 {
56 k_outputs = ( struct custom_kernel_tensor** )malloc(sizeof(void*) * output_num);
57
58 if(k_outputs == nullptr)
59 {
60 set_tengine_errno(ENOMEM);
61 return false;
62 }
63
64 memset(k_outputs, 0x0, sizeof(void*) * output_num);
65 }
66
67 for(int i = 0; i < input_num; i++)
68 {
69 struct custom_kernel_tensor* t = ( struct custom_kernel_tensor* )malloc(sizeof(struct custom_kernel_tensor));
70
71 if(t == nullptr)
72 {
73 set_tengine_errno(ENOMEM);
74 return false;
75 }
76
77 Tensor* tensor = node->GetInputTensor(i);
78
79 PrepareOneTensor(node, tensor, t);
80
81 k_inputs[i] = t;
82 }
83
84 for(int i = 0; i < output_num; i++)
85 {
86 struct custom_kernel_tensor* t = ( struct custom_kernel_tensor* )malloc(sizeof(struct custom_kernel_tensor));
87
88 if(t == nullptr)
89 {
90 set_tengine_errno(ENOMEM);
91 return false;

Callers 4

CheckBindFunction · 0.85
PrerunMethod · 0.85
ReshapeMethod · 0.85
PrepareTensorsMethod · 0.85

Calls 4

set_tengine_errnoFunction · 0.85
PrepareOneTensorFunction · 0.85
GetInputTensorMethod · 0.45
GetOutputTensorMethod · 0.45

Tested by

no test coverage detected