1be168c0dSopenharmony_ciFrom e9a9786e9619b6fcb8637eaf1331829793ccc351 Mon Sep 17 00:00:00 2001
2be168c0dSopenharmony_ciFrom: chengfeng27 <chengfeng27@huawei.com>
3be168c0dSopenharmony_ciDate: Thu, 12 Sep 2024 10:38:08 +0800
4be168c0dSopenharmony_ciSubject: [PATCH] context nullptr return, remote std::cout
5be168c0dSopenharmony_ci
6be168c0dSopenharmony_ci---
7be168c0dSopenharmony_ci .../nnacl/infer/sparse_segment_sum_infer.c    |  1 -
8be168c0dSopenharmony_ci .../src/common/hi_app_event/handler_thread.cc |  5 ++--
9be168c0dSopenharmony_ci mindspore/lite/src/litert/c_api/context_c.cc  |  5 ++--
10be168c0dSopenharmony_ci .../delegate/nnrt/extension_options_parser.cc |  3 ++-
11be168c0dSopenharmony_ci mindspore/lite/src/litert/inner_allocator.cc  |  2 +-
12be168c0dSopenharmony_ci .../kernel/cpu/base/scatter_nd_binary.cc      | 24 +++++++++++++++++--
13be168c0dSopenharmony_ci mindspore/lite/src/litert/lite_session.cc     |  1 -
14be168c0dSopenharmony_ci 7 files changed, 31 insertions(+), 10 deletions(-)
15be168c0dSopenharmony_ci
16be168c0dSopenharmony_cidiff --git a/mindspore/ccsrc/plugin/device/cpu/kernel/nnacl/infer/sparse_segment_sum_infer.c b/mindspore/ccsrc/plugin/device/cpu/kernel/nnacl/infer/sparse_segment_sum_infer.c
17be168c0dSopenharmony_ciindex 34069304..c8160bf6 100644
18be168c0dSopenharmony_ci--- a/mindspore/ccsrc/plugin/device/cpu/kernel/nnacl/infer/sparse_segment_sum_infer.c
19be168c0dSopenharmony_ci+++ b/mindspore/ccsrc/plugin/device/cpu/kernel/nnacl/infer/sparse_segment_sum_infer.c
20be168c0dSopenharmony_ci@@ -32,7 +32,6 @@ int SparseSegmentSumInferShape(const TensorC *const *inputs, size_t inputs_size,
21be168c0dSopenharmony_ci   }
22be168c0dSopenharmony_ci 
23be168c0dSopenharmony_ci   return NNACL_INFER_INVALID;
24be168c0dSopenharmony_ci-  // return NNACL_OK;
25be168c0dSopenharmony_ci }
26be168c0dSopenharmony_ci 
27be168c0dSopenharmony_ci REG_INFER(SparseSegmentSum, PrimType_SparseSegmentSum, SparseSegmentSumInferShape)
28be168c0dSopenharmony_cidiff --git a/mindspore/lite/src/common/hi_app_event/handler_thread.cc b/mindspore/lite/src/common/hi_app_event/handler_thread.cc
29be168c0dSopenharmony_ciindex a84504c0..1cf32bca 100644
30be168c0dSopenharmony_ci--- a/mindspore/lite/src/common/hi_app_event/handler_thread.cc
31be168c0dSopenharmony_ci+++ b/mindspore/lite/src/common/hi_app_event/handler_thread.cc
32be168c0dSopenharmony_ci@@ -15,6 +15,7 @@
33be168c0dSopenharmony_ci  */
34be168c0dSopenharmony_ci 
35be168c0dSopenharmony_ci #include "handler_thread.h"
36be168c0dSopenharmony_ci+#include "src/common/log.h"
37be168c0dSopenharmony_ci 
38be168c0dSopenharmony_ci namespace mindspore {
39be168c0dSopenharmony_ci namespace lite {
40be168c0dSopenharmony_ci@@ -121,8 +122,8 @@ public:
41be168c0dSopenharmony_ci 
42be168c0dSopenharmony_ci bool HandlerThread::Post(std::string key, Runnable && aRunnable)
43be168c0dSopenharmony_ci {
44be168c0dSopenharmony_ci-  if (not Running()) {
45be168c0dSopenharmony_ci-    std::cout << "Denying insertion, as the looper is not running.\n";
46be168c0dSopenharmony_ci+  if (!Running()) {
47be168c0dSopenharmony_ci+    MS_LOG(ERROR) << "Denying insertion, as the looper is not running.";
48be168c0dSopenharmony_ci     return false;
49be168c0dSopenharmony_ci   }
50be168c0dSopenharmony_ci 
51be168c0dSopenharmony_cidiff --git a/mindspore/lite/src/litert/c_api/context_c.cc b/mindspore/lite/src/litert/c_api/context_c.cc
52be168c0dSopenharmony_ciindex 5418c46a..92085960 100644
53be168c0dSopenharmony_ci--- a/mindspore/lite/src/litert/c_api/context_c.cc
54be168c0dSopenharmony_ci+++ b/mindspore/lite/src/litert/c_api/context_c.cc
55be168c0dSopenharmony_ci@@ -41,6 +41,7 @@ OH_AI_ContextHandle OH_AI_ContextCreate() {
56be168c0dSopenharmony_ci   if (impl->context_ == nullptr) {
57be168c0dSopenharmony_ci     MS_LOG(ERROR) << "memory allocation failed.";
58be168c0dSopenharmony_ci     delete impl;
59be168c0dSopenharmony_ci+    return nullptr;
60be168c0dSopenharmony_ci   }
61be168c0dSopenharmony_ci   impl->owned_by_model_ = false;
62be168c0dSopenharmony_ci   return static_cast<OH_AI_ContextHandle>(impl);
63be168c0dSopenharmony_ci@@ -536,8 +537,8 @@ OH_AI_API OH_AI_Status OH_AI_DeviceInfoAddExtension(OH_AI_DeviceInfoHandle devic
64be168c0dSopenharmony_ci     return OH_AI_STATUS_LITE_ERROR;
65be168c0dSopenharmony_ci   }
66be168c0dSopenharmony_ci   static std::vector<std::string> extension_keys = {"CachePath", "CacheVersion", "ModelName", "QuantBuffer",
67be168c0dSopenharmony_ci-                                                     "isProfiling", "opLayout", "InputDims", "DynamicDims", "BandMode",
68be168c0dSopenharmony_ci-                                                     "NPU_FM_SHARED"};
69be168c0dSopenharmony_ci+                                                    "QuantConfigData", "isProfiling", "opLayout", "InputDims",
70be168c0dSopenharmony_ci+                                                    "DynamicDims", "BandMode", "NPU_FM_SHARED"};
71be168c0dSopenharmony_ci   auto it = std::find(extension_keys.begin(), extension_keys.end(), std::string(name));
72be168c0dSopenharmony_ci   if (it == extension_keys.end()) {
73be168c0dSopenharmony_ci     MS_LOG(ERROR) << "The name of the extension is not allowable, only can be one of {CachePath, CacheVersion,"
74be168c0dSopenharmony_cidiff --git a/mindspore/lite/src/litert/delegate/nnrt/extension_options_parser.cc b/mindspore/lite/src/litert/delegate/nnrt/extension_options_parser.cc
75be168c0dSopenharmony_ciindex 6e4c57a4..b2a01592 100644
76be168c0dSopenharmony_ci--- a/mindspore/lite/src/litert/delegate/nnrt/extension_options_parser.cc
77be168c0dSopenharmony_ci+++ b/mindspore/lite/src/litert/delegate/nnrt/extension_options_parser.cc
78be168c0dSopenharmony_ci@@ -30,6 +30,7 @@ const std::string kCachePath = "CachePath";
79be168c0dSopenharmony_ci const std::string kCacheVersion = "CacheVersion";
80be168c0dSopenharmony_ci const std::string kBandMode = "BandMode";
81be168c0dSopenharmony_ci const std::string kQuantBuffer = "QuantBuffer";
82be168c0dSopenharmony_ci+const std::string kQuantConfigData = "QuantConfigData";
83be168c0dSopenharmony_ci const std::string kModelName = "ModelName";
84be168c0dSopenharmony_ci }  // namespace
85be168c0dSopenharmony_ci 
86be168c0dSopenharmony_ci@@ -83,7 +84,7 @@ void ExtensionOptionsParser::DoParseQuantConfig(const std::vector<Extension> &ex
87be168c0dSopenharmony_ci   MS_CHECK_TRUE_RET_VOID(quant_config != nullptr);
88be168c0dSopenharmony_ci   MS_CHECK_TRUE_RET_VOID(num != nullptr);
89be168c0dSopenharmony_ci   auto iter_config = std::find_if(extensions.begin(), extensions.end(), [](const Extension &extension) {
90be168c0dSopenharmony_ci-    return extension.name == kQuantBuffer;
91be168c0dSopenharmony_ci+    return extension.name == kQuantBuffer || extension.name == kQuantConfigData;
92be168c0dSopenharmony_ci   });
93be168c0dSopenharmony_ci   if (iter_config != extensions.end()) {
94be168c0dSopenharmony_ci     *quant_config = static_cast<void *>(const_cast<uint8_t *>(iter_config->value.data()));
95be168c0dSopenharmony_cidiff --git a/mindspore/lite/src/litert/inner_allocator.cc b/mindspore/lite/src/litert/inner_allocator.cc
96be168c0dSopenharmony_ciindex 9bd0c017..c80c7de9 100644
97be168c0dSopenharmony_ci--- a/mindspore/lite/src/litert/inner_allocator.cc
98be168c0dSopenharmony_ci+++ b/mindspore/lite/src/litert/inner_allocator.cc
99be168c0dSopenharmony_ci@@ -54,11 +54,11 @@ void *DefaultAllocator::Malloc(size_t size) {
100be168c0dSopenharmony_ci     MS_LOG(ERROR) << "MallocData out of max_size, size: " << size;
101be168c0dSopenharmony_ci     return nullptr;
102be168c0dSopenharmony_ci   }
103be168c0dSopenharmony_ci+  Lock();
104be168c0dSopenharmony_ci   if (this->total_size_ >= max_malloc_size_) {
105be168c0dSopenharmony_ci     MS_LOG(ERROR) << "Memory pool is exhausted";
106be168c0dSopenharmony_ci     return nullptr;
107be168c0dSopenharmony_ci   }
108be168c0dSopenharmony_ci-  Lock();
109be168c0dSopenharmony_ci   auto iter = freeList_.lower_bound(size);
110be168c0dSopenharmony_ci   if (iter != freeList_.end() && ReuseMemory(iter->second->size, size)) {
111be168c0dSopenharmony_ci     auto membuf = iter->second;
112be168c0dSopenharmony_cidiff --git a/mindspore/lite/src/litert/kernel/cpu/base/scatter_nd_binary.cc b/mindspore/lite/src/litert/kernel/cpu/base/scatter_nd_binary.cc
113be168c0dSopenharmony_ciindex 0c98fedc..23e6b4cd 100644
114be168c0dSopenharmony_ci--- a/mindspore/lite/src/litert/kernel/cpu/base/scatter_nd_binary.cc
115be168c0dSopenharmony_ci+++ b/mindspore/lite/src/litert/kernel/cpu/base/scatter_nd_binary.cc
116be168c0dSopenharmony_ci@@ -31,6 +31,14 @@ int ScatterNDBinaryCPUKernel::Prepare() {
117be168c0dSopenharmony_ci   return ReSize();
118be168c0dSopenharmony_ci }
119be168c0dSopenharmony_ci 
120be168c0dSopenharmony_ci+/**
121be168c0dSopenharmony_ci+ * ScatterND equation is like follows:
122be168c0dSopenharmony_ci+ *
123be168c0dSopenharmony_ci+ *    output = np.copy(input)
124be168c0dSopenharmony_ci+ *    update_indices = indices.shape[:-1]
125be168c0dSopenharmony_ci+ *    for idx in np.ndindex(update_indices):
126be168c0dSopenharmony_ci+ *        output[indices[idx]] = updates[idx]
127be168c0dSopenharmony_ci+ */
128be168c0dSopenharmony_ci int ScatterNDBinaryCPUKernel::ReSize() {
129be168c0dSopenharmony_ci   auto input = in_tensors_.at(kScatterUpdateInputIndex);
130be168c0dSopenharmony_ci   auto indices = in_tensors_.at(kScatterIndicesIndex);
131be168c0dSopenharmony_ci@@ -90,7 +98,13 @@ int ScatterNDBinaryCPUKernel::ReSize() {
132be168c0dSopenharmony_ci     for (int i = 0; i < param_->num_unit; i++) {
133be168c0dSopenharmony_ci       int tmp_stride = 0;
134be168c0dSopenharmony_ci       for (int j = 0; j < indices_unit_rank; j++) {
135be168c0dSopenharmony_ci-        tmp_stride += indices_data[i * indices_unit_rank + j] * out_strides.at(j) * param_->unit_size;
136be168c0dSopenharmony_ci+        int index = indices_data[i * indices_unit_rank + j];
137be168c0dSopenharmony_ci+        if ((index < -input_shape[j]) || (index >= input_shape[j])) {
138be168c0dSopenharmony_ci+          MS_LOG(ERROR) << "illegal index: " << index << ", should in [" << -input_shape[j] << ", " << input_shape[j]
139be168c0dSopenharmony_ci+                        << ")";
140be168c0dSopenharmony_ci+          return RET_ERROR;
141be168c0dSopenharmony_ci+        }
142be168c0dSopenharmony_ci+        tmp_stride += index * out_strides.at(j) * param_->unit_size;
143be168c0dSopenharmony_ci       }
144be168c0dSopenharmony_ci       output_unit_offsets_.push_back(tmp_stride);
145be168c0dSopenharmony_ci     }
146be168c0dSopenharmony_ci@@ -99,7 +113,13 @@ int ScatterNDBinaryCPUKernel::ReSize() {
147be168c0dSopenharmony_ci     for (int i = 0; i < param_->num_unit; i++) {
148be168c0dSopenharmony_ci       int tmp_stride = 0;
149be168c0dSopenharmony_ci       for (int j = 0; j < indices_unit_rank; j++) {
150be168c0dSopenharmony_ci-        tmp_stride += indices_data[i * indices_unit_rank + j] * out_strides.at(j) * param_->unit_size;
151be168c0dSopenharmony_ci+        int64_t index = indices_data[i * indices_unit_rank + j];
152be168c0dSopenharmony_ci+        if ((index < -input_shape[j]) || (index >= input_shape[j])) {
153be168c0dSopenharmony_ci+          MS_LOG(ERROR) << "illegal index: " << index << ", should in [" << -input_shape[j] << ", " << input_shape[j]
154be168c0dSopenharmony_ci+                        << ")";
155be168c0dSopenharmony_ci+          return RET_ERROR;
156be168c0dSopenharmony_ci+        }
157be168c0dSopenharmony_ci+        tmp_stride += index * out_strides.at(j) * param_->unit_size;
158be168c0dSopenharmony_ci       }
159be168c0dSopenharmony_ci       output_unit_offsets_.push_back(tmp_stride);
160be168c0dSopenharmony_ci     }
161be168c0dSopenharmony_cidiff --git a/mindspore/lite/src/litert/lite_session.cc b/mindspore/lite/src/litert/lite_session.cc
162be168c0dSopenharmony_ciindex 7502ec27..69c292e9 100644
163be168c0dSopenharmony_ci--- a/mindspore/lite/src/litert/lite_session.cc
164be168c0dSopenharmony_ci+++ b/mindspore/lite/src/litert/lite_session.cc
165be168c0dSopenharmony_ci@@ -1104,7 +1104,6 @@ int LiteSession::CreateNNRTDelegate() {
166be168c0dSopenharmony_ci     MS_LOG(ERROR) << "New NNRT delegate failed";
167be168c0dSopenharmony_ci     return RET_ERROR;
168be168c0dSopenharmony_ci   }
169be168c0dSopenharmony_ci-//  ((NNRTDelegate *)(delegate_.get()))->SetMetaGraph(this->model_->buf);
170be168c0dSopenharmony_ci   delegate_device_type_ = DT_NNRT;
171be168c0dSopenharmony_ci   this->context_->delegate = delegate_;
172be168c0dSopenharmony_ci #endif
173be168c0dSopenharmony_ci-- 
174be168c0dSopenharmony_ci2.17.1
175be168c0dSopenharmony_ci
176