From 04da8472b33f55cb6403ffa69fda03a489b42c87 Mon Sep 17 00:00:00 2001 From: w30052974 Date: Wed, 22 Jan 2025 15:48:46 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=9E=84=E5=9B=BE=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: w30052974 --- .../native/neural_network_runtime/hdi_prepared_model_v1_0.h | 2 ++ .../native/neural_network_runtime/hdi_prepared_model_v2_0.h | 2 ++ .../neural_network_runtime/hdi_prepared_model_v2_1.cpp | 6 ++++++ .../native/neural_network_runtime/hdi_prepared_model_v2_1.h | 2 ++ frameworks/native/neural_network_runtime/nncompiler.cpp | 6 ++++++ frameworks/native/neural_network_runtime/prepared_model.h | 2 ++ test/unittest/components/nn_compiler/nn_compiler_test.cpp | 1 + test/unittest/components/nn_executor/nn_executor_test.cpp | 1 + .../neural_network_runtime_test.cpp | 1 + .../unittest/components/v2_0/hdi_device/hdi_device_test.cpp | 1 + 10 files changed, 24 insertions(+) diff --git a/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.h b/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.h index 47da060..a1c2f23 100644 --- a/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.h +++ b/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.h @@ -49,6 +49,8 @@ public: OH_NN_ReturnCode GetModelID(uint32_t& modelId) const override; + OH_NN_ReturnCode ReleaseBuiltModel(); + private: // first: major version, second: minor version std::pair m_hdiVersion; diff --git a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.h b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.h index 8b900a0..000d3a9 100644 --- a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.h +++ b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.h @@ -53,6 +53,8 @@ public: OH_NN_ReturnCode GetInputDimRanges(std::vector>& minInputDims, std::vector>& maxInputDims) override; + OH_NN_ReturnCode ReleaseBuiltModel(); + private: // first: major version, second: minor version std::pair m_hdiVersion; diff --git a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.cpp b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.cpp index 122bce0..c568239 100644 --- a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.cpp +++ b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.cpp @@ -303,5 +303,11 @@ OH_NN_ReturnCode HDIPreparedModelV2_1::GetModelID(uint32_t& modelId) const LOGE("hdi preparedModel V2_1 not support get model ID."); return OH_NN_SUCCESS; } + +OH_NN_ReturnCode HDIPreparedModelV2_1::ReleaseBuiltModel() +{ + LOGE("hdi preparedModel V2_1 not support ReleaseBuiltModel."); + return OH_NN_SUCCESS; +} } // namespace NeuralNetworkRuntime } // OHOS diff --git a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.h b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.h index c8f5705..0070079 100644 --- a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.h +++ b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.h @@ -53,6 +53,8 @@ public: OH_NN_ReturnCode GetInputDimRanges(std::vector>& minInputDims, std::vector>& maxInputDims) override; + OH_NN_ReturnCode ReleaseBuiltModel(); + private: // first: major version, second: minor version std::pair m_hdiVersion; diff --git a/frameworks/native/neural_network_runtime/nncompiler.cpp b/frameworks/native/neural_network_runtime/nncompiler.cpp index 388f8d7..6d7edd3 100644 --- a/frameworks/native/neural_network_runtime/nncompiler.cpp +++ b/frameworks/native/neural_network_runtime/nncompiler.cpp @@ -575,6 +575,12 @@ OH_NN_ReturnCode NNCompiler::SaveToCacheFile() const } ReleaseBuffer(tensorBuffers); + ret = m_preparedModel->ReleaseBuiltModel(); + if (ret != OH_NN_SUCCESS) { + LOGE("[NNCompiler] ReleaseBuiltModel failed, error happened when release model cache."); + return ret; + } + LOGI("[NNCompiler] Export model cache successfully."); return OH_NN_SUCCESS; } diff --git a/frameworks/native/neural_network_runtime/prepared_model.h b/frameworks/native/neural_network_runtime/prepared_model.h index 1b1e74d..490c397 100644 --- a/frameworks/native/neural_network_runtime/prepared_model.h +++ b/frameworks/native/neural_network_runtime/prepared_model.h @@ -42,6 +42,8 @@ public: virtual OH_NN_ReturnCode GetModelID(uint32_t& modelId) const = 0; + virtual OH_NN_ReturnCode ReleaseBuiltModel() = 0; + virtual OH_NN_ReturnCode GetInputDimRanges(std::vector>& minInputDims, std::vector>& maxInputDims) { diff --git a/test/unittest/components/nn_compiler/nn_compiler_test.cpp b/test/unittest/components/nn_compiler/nn_compiler_test.cpp index 9944771..bec6830 100644 --- a/test/unittest/components/nn_compiler/nn_compiler_test.cpp +++ b/test/unittest/components/nn_compiler/nn_compiler_test.cpp @@ -86,6 +86,7 @@ public: MOCK_CONST_METHOD1(GetModelID, OH_NN_ReturnCode(uint32_t&)); MOCK_METHOD2(GetInputDimRanges, OH_NN_ReturnCode(std::vector>&, std::vector>&)); + MOCK_METHOD0(ReleaseBuiltModel, OH_NN_ReturnCode()); }; class MockInnerModel : public InnerModel { diff --git a/test/unittest/components/nn_executor/nn_executor_test.cpp b/test/unittest/components/nn_executor/nn_executor_test.cpp index aae1885..a6178eb 100644 --- a/test/unittest/components/nn_executor/nn_executor_test.cpp +++ b/test/unittest/components/nn_executor/nn_executor_test.cpp @@ -95,6 +95,7 @@ public: MOCK_CONST_METHOD1(GetModelID, OH_NN_ReturnCode(uint32_t&)); MOCK_METHOD2(GetInputDimRanges, OH_NN_ReturnCode(std::vector>&, std::vector>&)); + MOCK_METHOD0(ReleaseBuiltModel, OH_NN_ReturnCode()); }; class MockTensorDesc : public TensorDesc { diff --git a/test/unittest/components/v1_0/neural_network_runtime_test/neural_network_runtime_test.cpp b/test/unittest/components/v1_0/neural_network_runtime_test/neural_network_runtime_test.cpp index 94b27e2..9427e6f 100644 --- a/test/unittest/components/v1_0/neural_network_runtime_test/neural_network_runtime_test.cpp +++ b/test/unittest/components/v1_0/neural_network_runtime_test/neural_network_runtime_test.cpp @@ -260,6 +260,7 @@ public: MOCK_CONST_METHOD1(GetModelID, OH_NN_ReturnCode(uint32_t&)); MOCK_METHOD2(GetInputDimRanges, OH_NN_ReturnCode(std::vector>&, std::vector>&)); + MOCK_METHOD0(ReleaseBuiltModel, OH_NN_ReturnCode()); }; class MockIDevice : public Device { diff --git a/test/unittest/components/v2_0/hdi_device/hdi_device_test.cpp b/test/unittest/components/v2_0/hdi_device/hdi_device_test.cpp index ca73fff..c9fa6ff 100644 --- a/test/unittest/components/v2_0/hdi_device/hdi_device_test.cpp +++ b/test/unittest/components/v2_0/hdi_device/hdi_device_test.cpp @@ -246,6 +246,7 @@ public: MOCK_CONST_METHOD1(GetModelID, OH_NN_ReturnCode(uint32_t&)); MOCK_METHOD2(GetInputDimRanges, OH_NN_ReturnCode(std::vector>&, std::vector>&)); + MOCK_METHOD0(ReleaseBuiltModel, OH_NN_ReturnCode()); }; /* * -- Gitee From 1a086a4f4f3925915f3846f52040989895c300a8 Mon Sep 17 00:00:00 2001 From: w30052974 Date: Wed, 22 Jan 2025 15:51:37 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=9E=84=E5=9B=BE=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: w30052974 --- .../neural_network_runtime/hdi_prepared_model_v1_0.cpp | 6 ++++++ .../neural_network_runtime/hdi_prepared_model_v2_0.cpp | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.cpp b/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.cpp index f4b87c3..15b7548 100644 --- a/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.cpp +++ b/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.cpp @@ -286,5 +286,11 @@ OH_NN_ReturnCode HDIPreparedModelV1_0::GetModelID(uint32_t& modelId) const LOGE("hdi preparedModel V1_0 not support get model ID."); return OH_NN_SUCCESS; } + +OH_NN_ReturnCode HDIPreparedModelV1_0::ReleaseBuiltModel() +{ + LOGE("hdi preparedModel V1_0 not support ReleaseBuiltModel."); + return OH_NN_SUCCESS; +} } // namespace NeuralNetworkRuntime } // OHOS \ No newline at end of file diff --git a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.cpp b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.cpp index deb04ed..e4c2d68 100644 --- a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.cpp +++ b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.cpp @@ -303,5 +303,11 @@ OH_NN_ReturnCode HDIPreparedModelV2_0::GetModelID(uint32_t& modelId) const LOGE("hdi preparedModel V2_0 not support get model ID."); return OH_NN_SUCCESS; } + +OH_NN_ReturnCode HDIPreparedModelV2_0::ReleaseBuiltModel() +{ + LOGE("hdi preparedModel V2_0 not support ReleaseBuiltModel."); + return OH_NN_SUCCESS; +} } // namespace NeuralNetworkRuntime } // OHOS -- Gitee From 794b2834138a9b4d4f69331053de5397d80068f1 Mon Sep 17 00:00:00 2001 From: w30052974 Date: Wed, 22 Jan 2025 16:15:19 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=9E=84=E5=9B=BE=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: w30052974 --- .../native/neural_network_runtime/hdi_prepared_model_v1_0.h | 2 +- .../native/neural_network_runtime/hdi_prepared_model_v2_0.h | 2 +- .../native/neural_network_runtime/hdi_prepared_model_v2_1.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.h b/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.h index a1c2f23..f5ad59e 100644 --- a/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.h +++ b/frameworks/native/neural_network_runtime/hdi_prepared_model_v1_0.h @@ -49,7 +49,7 @@ public: OH_NN_ReturnCode GetModelID(uint32_t& modelId) const override; - OH_NN_ReturnCode ReleaseBuiltModel(); + OH_NN_ReturnCode ReleaseBuiltModel() override; private: // first: major version, second: minor version diff --git a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.h b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.h index 000d3a9..16bd7b5 100644 --- a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.h +++ b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_0.h @@ -53,7 +53,7 @@ public: OH_NN_ReturnCode GetInputDimRanges(std::vector>& minInputDims, std::vector>& maxInputDims) override; - OH_NN_ReturnCode ReleaseBuiltModel(); + OH_NN_ReturnCode ReleaseBuiltModel() override; private: // first: major version, second: minor version diff --git a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.h b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.h index 0070079..d68914c 100644 --- a/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.h +++ b/frameworks/native/neural_network_runtime/hdi_prepared_model_v2_1.h @@ -53,7 +53,7 @@ public: OH_NN_ReturnCode GetInputDimRanges(std::vector>& minInputDims, std::vector>& maxInputDims) override; - OH_NN_ReturnCode ReleaseBuiltModel(); + OH_NN_ReturnCode ReleaseBuiltModel() override; private: // first: major version, second: minor version -- Gitee