GitOrigin-RevId: ffd578b97b
tags/v1.7.0.m1
| @@ -39,7 +39,7 @@ void OutputDumper::write_to_file() { | |||||
| info.owner_inputs_info.c_str())); | info.owner_inputs_info.c_str())); | ||||
| mgb::debug::write_to_file( | mgb::debug::write_to_file( | ||||
| mgb::ssprintf( | mgb::ssprintf( | ||||
| "%s/run%zu-var %zd", dump_file.c_str(), m_run_id, info.id) | |||||
| "%s/run%zu-var%zd", dump_file.c_str(), m_run_id, info.id) | |||||
| .c_str(), | .c_str(), | ||||
| value); | value); | ||||
| } | } | ||||
| @@ -40,7 +40,7 @@ public: | |||||
| void wait() override; | void wait() override; | ||||
| //! get the network of lite model | //! get the network of lite model | ||||
| std::shared_ptr<lite::Network> get_lite_network() { return m_network; } | |||||
| std::shared_ptr<lite::Network>& get_lite_network() { return m_network; } | |||||
| //! get the config of lite model | //! get the config of lite model | ||||
| lite::Config& get_config() { return config; } | lite::Config& get_config() { return config; } | ||||
| @@ -67,13 +67,16 @@ public: | |||||
| //! get data parser | //! get data parser | ||||
| DataParser& get_input_parser() { return parser; } | DataParser& get_input_parser() { return parser; } | ||||
| uint32_t get_testcase_num() { return testcase_num; } | uint32_t get_testcase_num() { return testcase_num; } | ||||
| std::vector<std::pair<std::string, mgb::HostTensorND*>>& get_test_input() { | std::vector<std::pair<std::string, mgb::HostTensorND*>>& get_test_input() { | ||||
| return test_input_tensors; | return test_input_tensors; | ||||
| } | } | ||||
| //! get output specified configuration | //! get output specified configuration | ||||
| mgb::ComputingGraph::OutputSpec& get_output_spec() { return m_output_spec; } | mgb::ComputingGraph::OutputSpec& get_output_spec() { return m_output_spec; } | ||||
| std::unique_ptr<mgb::cg::AsyncExecutable>& get_async_func() { return m_asyc_exec; } | std::unique_ptr<mgb::cg::AsyncExecutable>& get_async_func() { return m_asyc_exec; } | ||||
| void set_output_callback(std::vector<mgb::ComputingGraph::Callback>& cb) { | void set_output_callback(std::vector<mgb::ComputingGraph::Callback>& cb) { | ||||
| @@ -84,6 +87,7 @@ public: | |||||
| m_callbacks[i] = cb[i]; | m_callbacks[i] = cb[i]; | ||||
| } | } | ||||
| } | } | ||||
| #if MGB_ENABLE_JSON | #if MGB_ENABLE_JSON | ||||
| std::unique_ptr<mgb::GraphProfiler>& get_profiler() { return m_profiler; } | std::unique_ptr<mgb::GraphProfiler>& get_profiler() { return m_profiler; } | ||||
| void set_profiler() { | void set_profiler() { | ||||
| @@ -91,6 +95,7 @@ public: | |||||
| std::make_unique<mgb::GraphProfiler>(m_load_config.comp_graph.get()); | std::make_unique<mgb::GraphProfiler>(m_load_config.comp_graph.get()); | ||||
| } | } | ||||
| #endif | #endif | ||||
| void set_num_range_checker(float range) { | void set_num_range_checker(float range) { | ||||
| m_num_range_checker = std::make_unique<mgb::NumRangeChecker>( | m_num_range_checker = std::make_unique<mgb::NumRangeChecker>( | ||||
| m_load_config.comp_graph.get(), range); | m_load_config.comp_graph.get(), range); | ||||
| @@ -37,7 +37,7 @@ void XPUDeviceOption::config_model_internel<ModelLite>( | |||||
| } | } | ||||
| #endif | #endif | ||||
| } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | ||||
| auto network = model->get_lite_network(); | |||||
| auto&& network = model->get_lite_network(); | |||||
| if (enable_cpu_default) { | if (enable_cpu_default) { | ||||
| LITE_WARN("using cpu default device\n"); | LITE_WARN("using cpu default device\n"); | ||||
| lite::Runtime::set_cpu_inplace_mode(network); | lite::Runtime::set_cpu_inplace_mode(network); | ||||
| @@ -55,8 +55,8 @@ void FastRunOption::config_model_internel<ModelLite>( | |||||
| auto lite_strategy = static_cast<Strategy>(strategy); | auto lite_strategy = static_cast<Strategy>(strategy); | ||||
| model->set_lite_strategy(lite_strategy); | model->set_lite_strategy(lite_strategy); | ||||
| } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | ||||
| auto lite_network = model->get_lite_network(); | |||||
| auto lite_strategy = model->get_lite_strategy(); | |||||
| auto&& lite_network = model->get_lite_network(); | |||||
| auto&& lite_strategy = model->get_lite_strategy(); | |||||
| //! set algo policy for model | //! set algo policy for model | ||||
| lite::Runtime::set_network_algo_policy( | lite::Runtime::set_network_algo_policy( | ||||
| lite_network, lite_strategy, share_batch_size, batch_binary_equal); | lite_network, lite_strategy, share_batch_size, batch_binary_equal); | ||||
| @@ -121,8 +121,8 @@ void FastRunOption::config_model_internel<ModelMdl>( | |||||
| .fast_run_config.shared_batch_size = share_batch_size; | .fast_run_config.shared_batch_size = share_batch_size; | ||||
| } | } | ||||
| } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | ||||
| auto vars = model->get_mdl_load_result().output_var_list; | |||||
| auto strategy = model->get_mdl_strategy(); | |||||
| auto& vars = model->get_mdl_load_result().output_var_list; | |||||
| auto&& strategy = model->get_mdl_strategy(); | |||||
| mgb::gopt::modify_opr_algo_strategy_inplace(vars, strategy); | mgb::gopt::modify_opr_algo_strategy_inplace(vars, strategy); | ||||
| // set algo cache path | // set algo cache path | ||||
| if (!m_fast_run_cache.empty()) { | if (!m_fast_run_cache.empty()) { | ||||
| @@ -20,8 +20,8 @@ template <> | |||||
| void InputOption::config_model_internel<ModelLite>( | void InputOption::config_model_internel<ModelLite>( | ||||
| RuntimeParam& runtime_param, std::shared_ptr<ModelLite> model) { | RuntimeParam& runtime_param, std::shared_ptr<ModelLite> model) { | ||||
| if (runtime_param.stage == RunStage::BEFORE_MODEL_LOAD) { | if (runtime_param.stage == RunStage::BEFORE_MODEL_LOAD) { | ||||
| auto parser = model->get_input_parser(); | |||||
| auto io = model->get_networkIO(); | |||||
| auto&& parser = model->get_input_parser(); | |||||
| auto&& io = model->get_networkIO(); | |||||
| for (size_t idx = 0; idx < data_path.size(); ++idx) { | for (size_t idx = 0; idx < data_path.size(); ++idx) { | ||||
| parser.feed(data_path[idx].c_str()); | parser.feed(data_path[idx].c_str()); | ||||
| } | } | ||||
| @@ -32,9 +32,8 @@ void InputOption::config_model_internel<ModelLite>( | |||||
| io.inputs.push_back({i.first, is_host}); | io.inputs.push_back({i.first, is_host}); | ||||
| } | } | ||||
| } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | ||||
| auto config = model->get_config(); | |||||
| auto parser = model->get_input_parser(); | |||||
| auto network = model->get_lite_network(); | |||||
| auto&& parser = model->get_input_parser(); | |||||
| auto&& network = model->get_lite_network(); | |||||
| //! datd type map from mgb data type to lite data type | //! datd type map from mgb data type to lite data type | ||||
| std::map<megdnn::DTypeEnum, LiteDataType> type_map = { | std::map<megdnn::DTypeEnum, LiteDataType> type_map = { | ||||
| @@ -75,8 +74,8 @@ void InputOption::config_model_internel<ModelMdl>( | |||||
| parser.feed(data_path[idx].c_str()); | parser.feed(data_path[idx].c_str()); | ||||
| } | } | ||||
| } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | ||||
| auto parser = model->get_input_parser(); | |||||
| auto network = model->get_mdl_load_result(); | |||||
| auto&& parser = model->get_input_parser(); | |||||
| auto&& network = model->get_mdl_load_result(); | |||||
| auto tensormap = network.tensor_map; | auto tensormap = network.tensor_map; | ||||
| for (auto& i : parser.inputs) { | for (auto& i : parser.inputs) { | ||||
| mgb_assert( | mgb_assert( | ||||
| @@ -156,7 +155,7 @@ void IOdumpOption::config_model_internel<ModelMdl>( | |||||
| } | } | ||||
| } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | } else if (runtime_param.stage == RunStage::AFTER_MODEL_LOAD) { | ||||
| if (enable_bin_out_dump) { | if (enable_bin_out_dump) { | ||||
| auto load_result = model->get_mdl_load_result(); | |||||
| auto&& load_result = model->get_mdl_load_result(); | |||||
| out_dumper->set(load_result.output_var_list); | out_dumper->set(load_result.output_var_list); | ||||
| std::vector<mgb::ComputingGraph::Callback> cb; | std::vector<mgb::ComputingGraph::Callback> cb; | ||||
| @@ -166,7 +165,7 @@ void IOdumpOption::config_model_internel<ModelMdl>( | |||||
| model->set_output_callback(cb); | model->set_output_callback(cb); | ||||
| } | } | ||||
| if (enable_copy_to_host) { | if (enable_copy_to_host) { | ||||
| auto load_result = model->get_mdl_load_result(); | |||||
| auto&& load_result = model->get_mdl_load_result(); | |||||
| std::vector<mgb::ComputingGraph::Callback> cb; | std::vector<mgb::ComputingGraph::Callback> cb; | ||||
| for (size_t i = 0; i < load_result.output_var_list.size(); i++) { | for (size_t i = 0; i < load_result.output_var_list.size(); i++) { | ||||
| @@ -365,7 +365,7 @@ void MemoryOptimizeOption::config_model_internel<ModelMdl>( | |||||
| } | } | ||||
| if (workspace_limit < SIZE_MAX) { | if (workspace_limit < SIZE_MAX) { | ||||
| mgb_log_warn("set workspace limit to %ld", workspace_limit); | mgb_log_warn("set workspace limit to %ld", workspace_limit); | ||||
| auto output_spec = model->get_output_spec(); | |||||
| auto&& output_spec = model->get_output_spec(); | |||||
| mgb::SymbolVarArray vars; | mgb::SymbolVarArray vars; | ||||
| for (auto i : output_spec) { | for (auto i : output_spec) { | ||||
| vars.push_back(i.first); | vars.push_back(i.first); | ||||
| @@ -46,7 +46,7 @@ template <> | |||||
| void PluginOption::config_model_internel<ModelMdl>( | void PluginOption::config_model_internel<ModelMdl>( | ||||
| RuntimeParam& runtime_param, std::shared_ptr<ModelMdl> model) { | RuntimeParam& runtime_param, std::shared_ptr<ModelMdl> model) { | ||||
| if (runtime_param.stage == RunStage::BEFORE_MODEL_LOAD) { | if (runtime_param.stage == RunStage::BEFORE_MODEL_LOAD) { | ||||
| auto config = model->get_mdl_config(); | |||||
| auto&& config = model->get_mdl_config(); | |||||
| if (range > 0) { | if (range > 0) { | ||||
| mgb_log_warn("enable number range check"); | mgb_log_warn("enable number range check"); | ||||
| model->set_num_range_checker(float(range)); | model->set_num_range_checker(float(range)); | ||||
| @@ -151,7 +151,7 @@ template <> | |||||
| void DebugOption::format_and_print( | void DebugOption::format_and_print( | ||||
| const std::string& tablename, std::shared_ptr<ModelLite> model) { | const std::string& tablename, std::shared_ptr<ModelLite> model) { | ||||
| auto table = mgb::TextTable(tablename); | auto table = mgb::TextTable(tablename); | ||||
| auto network = model->get_lite_network(); | |||||
| auto&& network = model->get_lite_network(); | |||||
| table.padding(1); | table.padding(1); | ||||
| table.align(mgb::TextTable::Align::Mid).add("type").add("name").add("shape").eor(); | table.align(mgb::TextTable::Align::Mid).add("type").add("name").add("shape").eor(); | ||||
| @@ -259,7 +259,6 @@ template <> | |||||
| void DebugOption::config_model_internel<ModelMdl>( | void DebugOption::config_model_internel<ModelMdl>( | ||||
| RuntimeParam& runtime_param, std::shared_ptr<ModelMdl> model) { | RuntimeParam& runtime_param, std::shared_ptr<ModelMdl> model) { | ||||
| if (runtime_param.stage == RunStage::BEFORE_MODEL_LOAD) { | if (runtime_param.stage == RunStage::BEFORE_MODEL_LOAD) { | ||||
| auto config = model->get_mdl_config(); | |||||
| if (enable_verbose) { | if (enable_verbose) { | ||||
| mgb_log_warn("enable verbose"); | mgb_log_warn("enable verbose"); | ||||
| mgb::set_log_level(mgb::LogLevel::DEBUG); | mgb::set_log_level(mgb::LogLevel::DEBUG); | ||||