MCPcopy Create free account
hub / github.com/Arm-Examples/ML-examples / dry_run

Function dry_run

kleidiai-examples/audiogen-et/app/main.cpp:201–229  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

199}
200
201static void dry_run(std::unique_ptr<executorch::extension::Module>& module) {
202
203 // Dummy run for a module
204 // -------------------------
205 auto module_forward_meta_res = module->method_meta("forward");
206 AUDIOGEN_CHECK(module_forward_meta_res.ok());
207
208 auto module_forward_meta = module_forward_meta_res.get();
209 size_t module_num_inputs = module_forward_meta.num_inputs();
210
211 // To keep the created tensors inside the loop alive
212 std::vector<std::shared_ptr<Tensor>> allocated_tensors;
213
214 std::vector<executorch::runtime::EValue> module_inputs(module_num_inputs);
215 for (size_t i = 0; i < module_num_inputs; ++i) {
216 auto input_tensor_meta = module_forward_meta.input_tensor_meta(i).get();
217 auto input_tensor_dims = get_tensor_dims(input_tensor_meta);
218 auto input_tensor_scalar_type = input_tensor_meta.scalar_type();
219 auto input_tensor = input_tensor_scalar_type == ScalarType::Float ? randn(input_tensor_dims, input_tensor_scalar_type) : randint(1, 100, input_tensor_dims, input_tensor_scalar_type);
220 allocated_tensors.push_back(input_tensor);
221 module_inputs[i] = input_tensor;
222 }
223
224 auto module_output = module->forward(module_inputs);
225 if(!module_output.ok()) {
226 ET_LOG(Error, "Failed to run module forward");
227 exit(EXIT_FAILURE);
228 }
229}
230
231int main(int32_t argc, char** argv) {
232

Callers 1

mainFunction · 0.85

Calls 2

get_tensor_dimsFunction · 0.85
forwardMethod · 0.45

Tested by

no test coverage detected