diff --git a/mindspore/lite/src/delegate/npu/npu_delegate.cc b/mindspore/lite/src/delegate/npu/npu_delegate.cc index 093e43b5bcc..34aaaa58b14 100644 --- a/mindspore/lite/src/delegate/npu/npu_delegate.cc +++ b/mindspore/lite/src/delegate/npu/npu_delegate.cc @@ -69,7 +69,7 @@ NPUDelegate::~NPUDelegate() { } int NPUDelegate::Init() { - npu_manager_ = new (std::nothrow) NPUManager(); + npu_manager_ = new (std::nothrow) NPUManager(frequency_); if (npu_manager_ == nullptr) { MS_LOG(ERROR) << "New npu manager failed."; return RET_ERROR; diff --git a/mindspore/lite/src/delegate/npu/npu_manager.h b/mindspore/lite/src/delegate/npu/npu_manager.h index a90eaf50204..5ba2fa6213b 100644 --- a/mindspore/lite/src/delegate/npu/npu_manager.h +++ b/mindspore/lite/src/delegate/npu/npu_manager.h @@ -48,7 +48,7 @@ struct SubGraphModel { class NPUManager { public: - NPUManager() = default; + explicit NPUManager(int frequency) : frequency_(frequency) {} ~NPUManager() { Reset(); } @@ -70,6 +70,8 @@ class NPUManager { int LoadModel(const std::shared_ptr &client, std::vector> desc_list); + int GetFrequency() { return frequency_; } + private: bool IsKirinChip(); @@ -87,6 +89,7 @@ class NPUManager { bool is_support_ = false; std::unordered_map> models_; std::vector> clients_; + int frequency_ = 0; }; } // namespace mindspore diff --git a/mindspore/lite/src/delegate/npu/npu_subgraph.cc b/mindspore/lite/src/delegate/npu/npu_subgraph.cc index 3bbee48b46d..9d5eb674738 100644 --- a/mindspore/lite/src/delegate/npu/npu_subgraph.cc +++ b/mindspore/lite/src/delegate/npu/npu_subgraph.cc @@ -170,7 +170,6 @@ int NPUSubGraph::BuildNPUInputOp() { } bool is_weight_tensor = true; - // todo cpu in_ops can't be found auto pre_ops = FindPreOps(op); for (auto pre_op : pre_ops) { if (find(pre_op->outputs().begin(), pre_op->outputs().end(), in_tensor) != pre_op->outputs().end()) { @@ -276,8 +275,7 @@ int NPUSubGraph::Init() { } MS_ASSERT(npu_manager_ != nullptr); - // todo y00520784, get frequency - npu_manager_->AddModel(model_buffer_data, GetOMModelName(), 3); + npu_manager_->AddModel(model_buffer_data, GetOMModelName(), npu_manager_->GetFrequency()); executor_ = new (std::nothrow) NPUExecutor(GetOMModelName(), npu_manager_); diff --git a/mindspore/lite/src/delegate/npu/pass/npu_pass_utils.h b/mindspore/lite/src/delegate/npu/pass/npu_pass_utils.h index 842fb19daab..5f3c71aab07 100644 --- a/mindspore/lite/src/delegate/npu/pass/npu_pass_utils.h +++ b/mindspore/lite/src/delegate/npu/pass/npu_pass_utils.h @@ -57,7 +57,6 @@ class NPUPassUtils { static int MaskDataNHWC2NCHW(int mask); }; -// todo y00520784 : refactor the code of transform op class RuntimePass { public: RuntimePass(std::vector *ops, std::vector *tensors)