| 885 | } |
| 886 | |
| 887 | std::string ComputingGraphImpl::get_mem_allocation_info() const { |
| 888 | #if MGB_ENABLE_JSON |
| 889 | auto make_var_json = [](VarNode* single_var) { |
| 890 | auto&& cur_mem_plan = single_var->mem_plan(); |
| 891 | if (cur_mem_plan.valid()) |
| 892 | return json::Object::make( |
| 893 | {{"name", json::String::make(single_var->name())}, |
| 894 | {"memory", json::Number::make(cur_mem_plan.chunk().size())}, |
| 895 | {"dev_ptr", json::NumberInt::make(reinterpret_cast<size_t>( |
| 896 | single_var->dev_tensor().raw_ptr()))}}); |
| 897 | else |
| 898 | return json::Object::make( |
| 899 | {{"name", json::String::make(single_var->name())}, |
| 900 | {"memory", json::Null::make()}, |
| 901 | {"dev_ptr", json::Null::make()}}); |
| 902 | }; |
| 903 | |
| 904 | auto objlist = json::Array::make(); |
| 905 | |
| 906 | for (auto& opri : m_opr_refkeeper) { |
| 907 | auto cur_opr = opri.get(); |
| 908 | |
| 909 | auto objptr = json::Object::make(); |
| 910 | auto&& objbody = *objptr; |
| 911 | |
| 912 | objbody["name"] = json::String::make(cur_opr->name()); |
| 913 | |
| 914 | auto jvars = json::Array::make(); |
| 915 | for (auto& outputi : cur_opr->output()) { |
| 916 | jvars->add(make_var_json(outputi)); |
| 917 | } |
| 918 | objbody["output"] = jvars; |
| 919 | |
| 920 | auto obj = json::Object::make({{std::to_string(cur_opr->id()), objptr}}); |
| 921 | |
| 922 | objlist->add(obj); |
| 923 | } |
| 924 | |
| 925 | return objlist->to_string(); |
| 926 | #endif // MGB_ENABLE_JSON |
| 927 | mgb_log_warn( |
| 928 | "target is not configured with JSON BUILD on," |
| 929 | "get_mem_allocation_info returns null string"); |
| 930 | return std::string(); |
| 931 | } |
| 932 | |
| 933 | // vim: syntax=cpp.doxygen foldmethod=marker foldmarker=f{{{,f}}} |
nothing calls this directly
no test coverage detected