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

Method SaveModelIntoMem

serializer/tengine/v2/tm2_serializer.cpp:416–465  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

414}
415
416bool TmSerializer2::SaveModelIntoMem(void* start_ptr, Graph* graph, uint32_t* tm_model_size)
417{
418 bool tm_with_string = IsSaveString();
419
420 tm_uoffset_t cur_pos = sizeof(TM2_Header);
421
422 /* Define the TM2_Header object */
423 TM2_Header header;
424 header.ver_main = TM2_FILE_VER_MAIN;
425 header.ver_sub = TM2_FILE_VER_SUB;
426 header.ver_compile = TM2_FILE_VER_COMPILE;
427
428 /* Define the TM2_Model object */
429 TM2_Model tm_model;
430 tm_model.orig_format = graph->GetModelFormat();
431 tm_model.sub_format = 0;
432
433 if(tm_with_string)
434 {
435 const std::string& fname = graph->GetName();
436 TM2_String model_name;
437 model_name.size = fname.size() + 1; // including trailing \0
438 model_name.offset_data = WriteTmFileAlign1(start_ptr, &cur_pos, fname.c_str(), model_name.size);
439 tm_model.offset_s_mname = WriteTmObject(start_ptr, &cur_pos, &model_name, sizeof(TM2_String));
440 }
441 else
442 tm_model.offset_s_mname = TM2_NOT_SET;
443
444 /* Write the subgraphs */
445 /* Only 1 subgraph is supported currently */
446 size_t vector_size = sizeof(tm_size_t) + sizeof(tm_uoffset_t) * 1;
447 TM2_Vector_offsets* v_subgraphs = ( TM2_Vector_offsets* )malloc(vector_size);
448 v_subgraphs->v_num = 1;
449 v_subgraphs->offsets[0] = SaveTmSubgraph(start_ptr, &cur_pos, graph);
450
451 /* Write the vector of subgraphs */
452 tm_model.offset_vo_subgraphs = WriteTmObject(start_ptr, &cur_pos, v_subgraphs, vector_size);
453
454 /* Write the model */
455 header.offset_root = WriteTmObject(start_ptr, &cur_pos, &tm_model, sizeof(TM2_Model));
456 *tm_model_size = cur_pos;
457
458 /* Write the header */
459 cur_pos = 0;
460 WriteTmObject(start_ptr, &cur_pos, &header, sizeof(TM2_Header));
461
462 free(v_subgraphs);
463
464 return true;
465}
466
467bool TmSerializer2::LoadNode(StaticGraph* graph, StaticNode* node, const TM2_Node* tm_node, void* mmap_buf)
468{

Callers 1

SaveModelMethod · 0.45

Calls 6

WriteTmFileAlign1Function · 0.85
WriteTmObjectFunction · 0.85
GetModelFormatMethod · 0.80
GetNameMethod · 0.80
sizeMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected