diff --git a/mindspore/lite/nnacl/batch_to_space.c b/mindspore/lite/nnacl/base/batch_to_space_base.c similarity index 98% rename from mindspore/lite/nnacl/batch_to_space.c rename to mindspore/lite/nnacl/base/batch_to_space_base.c index 16ebbaf5ee..fe6bb74906 100644 --- a/mindspore/lite/nnacl/batch_to_space.c +++ b/mindspore/lite/nnacl/base/batch_to_space_base.c @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "nnacl/batch_to_space.h" +#include "nnacl/base/batch_to_space_base.h" void BatchToSpaceNoCropForNHWC(const void *input, void *output, const int *in_shape, int out_n, const int *block, int data_size) { diff --git a/mindspore/lite/nnacl/squeeze.h b/mindspore/lite/nnacl/base/batch_to_space_base.h similarity index 58% rename from mindspore/lite/nnacl/squeeze.h rename to mindspore/lite/nnacl/base/batch_to_space_base.h index dd86cd2cb6..a4fd9548a7 100644 --- a/mindspore/lite/nnacl/squeeze.h +++ b/mindspore/lite/nnacl/base/batch_to_space_base.h @@ -13,25 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#ifndef MINDSPORE_LITE_NNACL_BATCH_TO_SPACE_BASE_H_ +#define MINDSPORE_LITE_NNACL_BATCH_TO_SPACE_BASE_H_ -#ifndef MINDSPORE_LITE_NNACL_SQUEEZE_H_ -#define MINDSPORE_LITE_NNACL_SQUEEZE_H_ - +#include #include "nnacl/op_base.h" -typedef struct SqueezeParameter { - // primitive parameter - OpParameter op_parameter_; - int axes_[8]; -} SqueezeParameter; - #ifdef __cplusplus extern "C" { #endif -int DoSqueeze(const float *input_ptr, float *output_ptr, size_t data_size); -int DoSqueezeInt32(int32_t *in_data, int32_t *out_data, size_t data_size); +void BatchToSpaceNoCropForNHWC(const void *input, void *output, const int *in_shape, int out_n, const int *block, + int data_size); +void BatchToSpaceForNHWC(const void *input, void *output, const int *in_shape, int out_n, const int *block, + const int *crops, int data_size); #ifdef __cplusplus } #endif -#endif // MINDSPORE_LITE_NNACL_SQUEEZE_H_ +#endif // MINDSPORE_LITE_NNACL_BATCH_TO_SPACE_BASE_H_ diff --git a/mindspore/lite/nnacl/clip.c b/mindspore/lite/nnacl/base/squeeze_base.h similarity index 63% rename from mindspore/lite/nnacl/clip.c rename to mindspore/lite/nnacl/base/squeeze_base.h index 473637ab03..4932bb5609 100644 --- a/mindspore/lite/nnacl/clip.c +++ b/mindspore/lite/nnacl/base/squeeze_base.h @@ -14,16 +14,25 @@ * limitations under the License. */ -#include "nnacl/clip.h" +#ifndef MINDSPORE_LITE_NNACL_SQUEEZE_BASE_H_ +#define MINDSPORE_LITE_NNACL_SQUEEZE_BASE_H_ + #include "nnacl/errorcode.h" -int ClipFp32(const float *src, int length, float *dst, float min_val, float max_val) { - if (max_val <= min_val) { +#ifdef __cplusplus +extern "C" { +#endif + +inline int DoSqueeze(const void *input_ptr, void *output_ptr, size_t data_size) { + if (input_ptr == NULL || output_ptr == NULL) { return NNACL_ERR; } - int i = 0; - for (; i < length; ++i) { - dst[i] = src[i] < min_val ? min_val : (src[i] > max_val ? max_val : src[i]); - } + (void)memcpy(output_ptr, input_ptr, data_size); return NNACL_OK; } + +#ifdef __cplusplus +} +#endif + +#endif // MINDSPORE_LITE_NNACL_SQUEEZE_BASE_H_ diff --git a/mindspore/lite/nnacl/unstack.c b/mindspore/lite/nnacl/base/unstack_base.c similarity index 72% rename from mindspore/lite/nnacl/unstack.c rename to mindspore/lite/nnacl/base/unstack_base.c index dac3463659..d0e5a25fb7 100644 --- a/mindspore/lite/nnacl/unstack.c +++ b/mindspore/lite/nnacl/base/unstack_base.c @@ -14,16 +14,16 @@ * limitations under the License. */ -#include "nnacl/unstack.h" -#include +#include "nnacl/base/unstack_base.h" -void Unistack(const float *input, float **output, UnstackParameter *para) { +void Unstack(const void *input, void **output, UnstackParameter *para, int data_size) { + const int8_t *in_addr = (int8_t *)input; for (int j = 0; j < para->num_; j++) { - float *out_addr = output[j]; + int8_t *out_addr = (int8_t *)output[j]; int out_offset = 0; for (int i = 0; i < para->pre_dims_; i++) { int in_offset = i * para->axis_dim_ * para->after_dims_ + j * para->after_dims_; - (void)memcpy(out_addr + out_offset, input + in_offset, para->after_dims_ * sizeof(float)); + (void)memcpy(out_addr + out_offset * data_size, in_addr + in_offset * data_size, para->after_dims_ * data_size); out_offset += para->after_dims_; } } diff --git a/mindspore/lite/nnacl/zeroslike.h b/mindspore/lite/nnacl/base/unstack_base.h similarity index 72% rename from mindspore/lite/nnacl/zeroslike.h rename to mindspore/lite/nnacl/base/unstack_base.h index b3faa49ab9..ffc4637a99 100644 --- a/mindspore/lite/nnacl/zeroslike.h +++ b/mindspore/lite/nnacl/base/unstack_base.h @@ -13,17 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef MINDSPORE_LITE_NNACL_ZEROSLIKE_H_ -#define MINDSPORE_LITE_NNACL_ZEROSLIKE_H_ +#ifndef MINDSPORE_LITE_NNACL_UNSTACK_H_ +#define MINDSPORE_LITE_NNACL_UNSTACK_H_ + +#include #include "nnacl/op_base.h" +#include "nnacl/unstack_parameter.h" #ifdef __cplusplus extern "C" { #endif -void ApproximateZerosLike(float *output, int number); +void Unstack(const void *input, void **output, UnstackParameter *para, int data_size); #ifdef __cplusplus } #endif -#endif // MINDSPORE_LITE_NNACL_ZEROSLIKE_H_ +#endif // MINDSPORE_LITE_NNACL_UNSTACK_H_ diff --git a/mindspore/lite/nnacl/clip.h b/mindspore/lite/nnacl/base/zeroslike_base.h similarity index 64% rename from mindspore/lite/nnacl/clip.h rename to mindspore/lite/nnacl/base/zeroslike_base.h index 23eec2d970..a778b9ae95 100644 --- a/mindspore/lite/nnacl/clip.h +++ b/mindspore/lite/nnacl/base/zeroslike_base.h @@ -13,24 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef MINDSPORE_LITE_NNACL_CLIP_H_ -#define MINDSPORE_LITE_NNACL_CLIP_H_ +#ifndef MINDSPORE_LITE_NNACL_ZEROSLIKE_BASE_H_ +#define MINDSPORE_LITE_NNACL_ZEROSLIKE_BASE_H_ -#include #include "nnacl/op_base.h" -#include "mindspore/lite/nnacl/int8/fixed_point.h" - -typedef struct ClipParameter { - OpParameter op_parameter_; - float min_val_; - float max_val_; -} ClipParameter; #ifdef __cplusplus extern "C" { #endif -int ClipFp32(const float *src, int length, float *dst, float min_val, float max_val); + +static inline void ApproximateZerosLike(void *output, int number, int data_size) { + memset(output, 0.0, number * data_size); + return; +} + #ifdef __cplusplus } #endif -#endif // MINDSPORE_LITE_NNACL_CLIP_H_ + +#endif // MINDSPORE_LITE_NNACL_ZEROSLIKE_BASE_H_ diff --git a/mindspore/lite/nnacl/batch_to_space.h b/mindspore/lite/nnacl/batch_to_space.h index 2098aad52a..c42463970b 100644 --- a/mindspore/lite/nnacl/batch_to_space.h +++ b/mindspore/lite/nnacl/batch_to_space.h @@ -29,15 +29,4 @@ typedef struct BatchToSpaceParameter { bool no_crop_; } BatchToSpaceParameter; -#ifdef __cplusplus -extern "C" { -#endif -void BatchToSpaceNoCropForNHWC(const void *input, void *output, const int *in_shape, int out_n, const int *block, - int data_size); -void BatchToSpaceForNHWC(const void *input, void *output, const int *in_shape, int out_n, const int *block, - const int *crops, int data_size); -#ifdef __cplusplus -} -#endif - #endif // MINDSPORE_LITE_NNACL_FP32_BATCH_TO_SPACE_H_ diff --git a/mindspore/lite/nnacl/fp32/topk_fp32.c b/mindspore/lite/nnacl/fp32/topk_fp32.c index 9c48f7a431..ad7d492a51 100644 --- a/mindspore/lite/nnacl/fp32/topk_fp32.c +++ b/mindspore/lite/nnacl/fp32/topk_fp32.c @@ -30,7 +30,7 @@ int DescendCmp(const void *a, const void *b) { } } -int AscendCmp(const void *a, const void *b) { +int IndexSortCmp(const void *a, const void *b) { if (((const TopkNode *)a)->index > ((const TopkNode *)b)->index) { return 1; } else { @@ -54,7 +54,7 @@ void Topk(float *input_data, float *output_data, int32_t *output_index, TopkPara } qsort(top_map, last_dim_size, sizeof(top_map[0]), DescendCmp); if (!parameter->sorted_) { - qsort(top_map, k, sizeof(top_map[0]), AscendCmp); + qsort(top_map, k, sizeof(top_map[0]), IndexSortCmp); } for (int m = 0; m < k; m++) { cur_output_data[m] = top_map[m].element; diff --git a/mindspore/lite/nnacl/int8/squeeze_int8.c b/mindspore/lite/nnacl/int8/squeeze_int8.c index 5f6870fc69..6af4c843fe 100644 --- a/mindspore/lite/nnacl/int8/squeeze_int8.c +++ b/mindspore/lite/nnacl/int8/squeeze_int8.c @@ -13,19 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#include "nnacl/squeeze_parameter.h" + #include "nnacl/int8/squeeze_int8.h" -#include -void SqueezeInt8(const int8_t *input_ptr, int8_t *output_ptr, int task_id, SqueezeQuantArg *quant_Squeeze_parm, - SqueezeParameter *para_, const int num) { +void SqueezeInt8(const int8_t *input_ptr, int8_t *output_ptr, const SqueezeQuantArg *quant_Squeeze_parm, int num, + int task_id, int thread_count) { float output_scale = quant_Squeeze_parm->out_quant_args_->scale_; const float output_inverse_scale = 1.f / output_scale; QuantArg *input_quant = quant_Squeeze_parm->in_quant_args_; int output_zp = quant_Squeeze_parm->out_quant_args_->zp_; const int i = 0; - for (int j = task_id; j < num; j += para_->op_parameter_.thread_num_) { + for (int j = task_id; j < num; j += thread_count) { float scale = input_quant[i].scale_ * output_inverse_scale; float bias = -input_quant[i].zp_ * scale; int32_t output_tmp = round(input_ptr[j] * scale + bias) + output_zp; diff --git a/mindspore/lite/nnacl/int8/squeeze_int8.h b/mindspore/lite/nnacl/int8/squeeze_int8.h index e7312ae6a4..8e1a3505ae 100644 --- a/mindspore/lite/nnacl/int8/squeeze_int8.h +++ b/mindspore/lite/nnacl/int8/squeeze_int8.h @@ -17,14 +17,14 @@ #ifndef MINDSPORE_LITE_SRC_RUNTIME_KERNEL_ARM_OPCLIB_INT8_SQUEEZE_INT8_H_ #define MINDSPORE_LITE_SRC_RUNTIME_KERNEL_ARM_OPCLIB_INT8_SQUEEZE_INT8_H_ -#include "nnacl/int8/quantize.h" #include "nnacl/squeeze_parameter.h" +#include "nnacl/int8/quantize.h" #ifdef __cplusplus extern "C" { #endif -void SqueezeInt8(const int8_t *input_ptr, int8_t *output_ptr, int task_id, SqueezeQuantArg *quant_Squeeze_parm, - SqueezeParameter *para_, const int num); +void SqueezeInt8(const int8_t *input_ptr, int8_t *output_ptr, const SqueezeQuantArg *quant_Squeeze_parm, int num, + int task_id, int thread_count); #ifdef __cplusplus } #endif diff --git a/mindspore/lite/nnacl/squeeze.c b/mindspore/lite/nnacl/squeeze.c deleted file mode 100644 index f038631202..0000000000 --- a/mindspore/lite/nnacl/squeeze.c +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright 2020 Huawei Technologies Co., Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "nnacl/squeeze.h" -#include -#include "nnacl/errorcode.h" - -int DoSqueeze(const float *in_data, float *out_data, size_t data_size) { - if (in_data == NULL || out_data == NULL) { - return NNACL_ERR; - } - (void)memcpy(out_data, in_data, data_size); - return NNACL_OK; -} - -int DoSqueezeInt32(int32_t *in_data, int32_t *out_data, size_t data_size) { - if (in_data == NULL || out_data == NULL) { - return NNACL_ERR; - } - (void)memcpy(out_data, in_data, data_size); - return NNACL_OK; -} diff --git a/mindspore/lite/nnacl/squeeze_parameter.h b/mindspore/lite/nnacl/squeeze_parameter.h index a1634e43db..44cadaae2c 100644 --- a/mindspore/lite/nnacl/squeeze_parameter.h +++ b/mindspore/lite/nnacl/squeeze_parameter.h @@ -19,30 +19,9 @@ #include "nnacl/op_base.h" -#define SQUEEZE_OFFSET_MAX_SIZE 4 - typedef struct SqueezeQuantArg { QuantArg *in_quant_args_; QuantArg *out_quant_args_; } SqueezeQuantArg; -typedef struct SqueezeParameter { - // primitive parameter - OpParameter op_parameter_; - int64_t axis_; - - // shape correlative - const int *in_shape_; - const int *out_shape_; - int offset_size_; - int64_t offset_[SQUEEZE_OFFSET_MAX_SIZE]; - int64_t in_offset_[SQUEEZE_OFFSET_MAX_SIZE]; - int input_dim_; - - // other parameter - SqueezeQuantArg quant_arg; - int thread_count_; - int thread_id_; -} SqueezeParameter; - #endif // MINDSPORE_LITE_NNACL_SQUEEZE_PARAMETER_H_ diff --git a/mindspore/lite/nnacl/unstack.h b/mindspore/lite/nnacl/unstack_parameter.h similarity index 76% rename from mindspore/lite/nnacl/unstack.h rename to mindspore/lite/nnacl/unstack_parameter.h index 7c044be914..09471839f6 100644 --- a/mindspore/lite/nnacl/unstack.h +++ b/mindspore/lite/nnacl/unstack_parameter.h @@ -14,8 +14,8 @@ * limitations under the License. */ -#ifndef MINDSPORE_LITE_NNACL_UNSTACK_H_ -#define MINDSPORE_LITE_NNACL_UNSTACK_H_ +#ifndef MINDSPORE_LITE_NNACL_UNSTACK_PARAMETER_H_ +#define MINDSPORE_LITE_NNACL_UNSTACK_PARAMETER_H_ #include "nnacl/op_base.h" @@ -31,12 +31,4 @@ typedef struct UnstackParameter { int after_dims_; } UnstackParameter; -#ifdef __cplusplus -extern "C" { -#endif -void Unistack(const float *input, float **output, UnstackParameter *para); -#ifdef __cplusplus -} -#endif - -#endif // MINDSPORE_LITE_NNACL_UNSTACK_H_ +#endif // MINDSPORE_LITE_NNACL_UNSTACK_PARAMETER_H_ diff --git a/mindspore/lite/nnacl/zeroslike.c b/mindspore/lite/nnacl/zeroslike.c deleted file mode 100644 index 6e8e725673..0000000000 --- a/mindspore/lite/nnacl/zeroslike.c +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright 2020 Huawei Technologies Co., Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "nnacl/zeroslike.h" -#include - -void ApproximateZerosLike(float *output, int number) { memset(output, 0.0, number * sizeof(float)); } diff --git a/mindspore/lite/src/ops/clip.cc b/mindspore/lite/src/ops/clip.cc index a5fd8e9616..9d545f871e 100644 --- a/mindspore/lite/src/ops/clip.cc +++ b/mindspore/lite/src/ops/clip.cc @@ -19,7 +19,6 @@ #ifndef PRIMITIVE_WRITEABLE #include "src/ops/ops_register.h" #endif -#include "nnacl/clip.h" namespace mindspore { namespace lite { diff --git a/mindspore/lite/src/ops/populate/clip_populate.cc b/mindspore/lite/src/ops/populate/clip_populate.cc deleted file mode 100644 index 75aa4994d8..0000000000 --- a/mindspore/lite/src/ops/populate/clip_populate.cc +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Copyright 2019-2020 Huawei Technologies Co., Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "src/ops/clip.h" -#include "src/ops/primitive_c.h" -#include "src/ops/populate/populate_register.h" -#include "nnacl/clip.h" - -namespace mindspore { -namespace lite { - -OpParameter *PopulateClipParameter(const mindspore::lite::PrimitiveC *primitive) { - ClipParameter *act_param = reinterpret_cast(malloc(sizeof(ClipParameter))); - if (act_param == nullptr) { - MS_LOG(ERROR) << "malloc ClipParameter failed."; - return nullptr; - } - memset(act_param, 0, sizeof(ClipParameter)); - act_param->op_parameter_.type_ = primitive->Type(); - auto activation = reinterpret_cast(const_cast(primitive)); - act_param->min_val_ = activation->GetMin(); - act_param->max_val_ = activation->GetMax(); - return reinterpret_cast(act_param); -} - -Registry ClipParameterRegistry(schema::PrimitiveType_Clip, PopulateClipParameter); - -} // namespace lite -} // namespace mindspore diff --git a/mindspore/lite/src/ops/populate/squeeze_populate.cc b/mindspore/lite/src/ops/populate/squeeze_populate.cc index fe2c3fd32c..c589483e44 100644 --- a/mindspore/lite/src/ops/populate/squeeze_populate.cc +++ b/mindspore/lite/src/ops/populate/squeeze_populate.cc @@ -14,14 +14,11 @@ * limitations under the License. */ -#include "src/ops/squeeze.h" #include "src/ops/primitive_c.h" #include "src/ops/populate/populate_register.h" -#include "nnacl/squeeze.h" namespace mindspore { namespace lite { - OpParameter *PopulateSqueezeParameter(const mindspore::lite::PrimitiveC *primitive) { OpParameter *squeeze_param = reinterpret_cast(malloc(sizeof(OpParameter))); if (squeeze_param == nullptr) { diff --git a/mindspore/lite/src/ops/populate/unstack_populate.cc b/mindspore/lite/src/ops/populate/unstack_populate.cc index c2b7647003..a6e5b6e749 100644 --- a/mindspore/lite/src/ops/populate/unstack_populate.cc +++ b/mindspore/lite/src/ops/populate/unstack_populate.cc @@ -17,7 +17,7 @@ #include "src/ops/unstack.h" #include "src/ops/primitive_c.h" #include "src/ops/populate/populate_register.h" -#include "nnacl/unstack.h" +#include "nnacl/unstack_parameter.h" namespace mindspore { namespace lite { diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/batch_to_space_fp32.h b/mindspore/lite/src/runtime/kernel/arm/fp32/batch_to_space_fp32.h index 6feeb4e627..f3aa4d027b 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/batch_to_space_fp32.h +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/batch_to_space_fp32.h @@ -19,6 +19,7 @@ #include #include "include/errorcode.h" #include "nnacl/batch_to_space.h" +#include "nnacl/base/batch_to_space_base.h" #include "src/lite_kernel.h" namespace mindspore::kernel { diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/pad_fp32.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/pad_fp32.cc index 55648b68a0..849fe85f5e 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/pad_fp32.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/pad_fp32.cc @@ -149,7 +149,7 @@ void PadCPUKernel::InitMirrorPadBlock() { } MirrorPadBlock block; - int size_offset = DEFAULT_PAD_NDIMS - static_cast(pad_region.size()); + const int size_offset = DEFAULT_PAD_NDIMS - static_cast(pad_region.size()); for (size_t i = 0; i < pad_region.size(); ++i) { int di = size_offset + i; int si = remain_dim_offset + i; diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/squeeze_fp32.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/squeeze_fp32.cc index f68c26796b..c5c3da59ba 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/squeeze_fp32.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/squeeze_fp32.cc @@ -15,8 +15,6 @@ */ #include "src/runtime/kernel/arm/fp32/squeeze_fp32.h" -#include -#include "nnacl/squeeze.h" #include "schema/model_generated.h" #include "src/kernel_registry.h" #include "include/errorcode.h" @@ -32,22 +30,8 @@ int SqueezeCPUKernel::Init() { return RET_OK; } int SqueezeCPUKernel::ReSize() { return RET_OK; } int SqueezeCPUKernel::Run() { - mindspore::lite::STATUS ret = RET_ERROR; size_t data_size = in_tensors_.front()->Size(); - - if (in_tensors_.front()->data_type() == kNumberTypeInt32) { - auto input_ptr = reinterpret_cast(in_tensors_.front()->MutableData()); - auto output_ptr = reinterpret_cast(out_tensors_.front()->MutableData()); - MS_ASSERT(input_ptr); - MS_ASSERT(output_ptr); - ret = DoSqueezeInt32(input_ptr, output_ptr, data_size); - } else { - auto input_ptr = reinterpret_cast(in_tensors_.front()->MutableData()); - auto output_ptr = reinterpret_cast(out_tensors_.front()->MutableData()); - MS_ASSERT(input_ptr); - MS_ASSERT(output_ptr); - ret = DoSqueeze(input_ptr, output_ptr, data_size); - } + int ret = DoSqueeze(in_tensors_.front()->data_c(), out_tensors_.front()->data_c(), data_size); if (ret != RET_OK) { MS_LOG(ERROR) << "Do squeeze fail!ret: " << ret; diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/squeeze_fp32.h b/mindspore/lite/src/runtime/kernel/arm/fp32/squeeze_fp32.h index 149b5de16d..5940d5c6e7 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/squeeze_fp32.h +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/squeeze_fp32.h @@ -19,6 +19,7 @@ #include #include "src/lite_kernel.h" +#include "nnacl/base/squeeze_base.h" namespace mindspore::kernel { @@ -33,9 +34,6 @@ class SqueezeCPUKernel : public LiteKernel { int Init() override; int ReSize() override; int Run() override; - - private: - std::vector axes_; }; } // namespace mindspore::kernel diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/unstack_fp32.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/unstack_fp32.cc index 2a6f7a1a58..af8ed3aabb 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/unstack_fp32.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/unstack_fp32.cc @@ -56,7 +56,7 @@ int UnstackCPUKernel::ReSize() { free(output_addr_array_); output_addr_array_ = nullptr; } - output_addr_array_ = reinterpret_cast(malloc(sizeof(float *) * out_tensors_.size())); + output_addr_array_ = reinterpret_cast(malloc(sizeof(void *) * out_tensors_.size())); if (output_addr_array_ == nullptr) { MS_LOG(ERROR) << "Failed to malloc memory"; return lite::RET_ERROR; @@ -69,12 +69,12 @@ int UnstackCPUKernel::Run() { MS_ASSERT(input); size_t out_num = out_tensors_.size(); for (size_t i = 0; i < out_num; i++) { - output_addr_array_[i] = reinterpret_cast(out_tensors_.at(i)->MutableData()); + output_addr_array_[i] = out_tensors_.at(i)->data_c(); } MS_ASSERT(output_addr_array_); auto para = reinterpret_cast(op_parameter_); para->num_ = out_num; - Unistack(input, output_addr_array_, para); + Unstack(input, output_addr_array_, para, sizeof(float)); return RET_OK; } diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/unstack_fp32.h b/mindspore/lite/src/runtime/kernel/arm/fp32/unstack_fp32.h index f2f4fc0ab5..f363b25b06 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/unstack_fp32.h +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/unstack_fp32.h @@ -18,7 +18,7 @@ #include #include "src/lite_kernel.h" -#include "nnacl/unstack.h" +#include "nnacl/base/unstack_base.h" namespace mindspore::kernel { class UnstackCPUKernel : public LiteKernel { @@ -34,7 +34,7 @@ class UnstackCPUKernel : public LiteKernel { int Run() override; private: - float **output_addr_array_ = nullptr; + void **output_addr_array_ = nullptr; }; } // namespace mindspore::kernel diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/zeroslike_fp32.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/zeroslike_fp32.cc index 7375375b32..abee296f3d 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/zeroslike_fp32.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/zeroslike_fp32.cc @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + #include "src/runtime/kernel/arm/fp32/zeroslike_fp32.h" -#include #include "schema/model_generated.h" -#include "nnacl/zeroslike.h" +#include "mindspore/lite/nnacl/base/zeroslike_base.h" #include "src/kernel_registry.h" #include "include/errorcode.h" @@ -31,7 +31,7 @@ int ZerosLikeCPUKernel::Init() { return RET_OK; } int ZerosLikeCPUKernel::Run() { auto output_data = reinterpret_cast(out_tensors_.at(0)->MutableData()); - ApproximateZerosLike(output_data, in_tensors_.at(0)->ElementsNum()); + ApproximateZerosLike(output_data, in_tensors_.at(0)->ElementsNum(), sizeof(float)); return RET_OK; } diff --git a/mindspore/lite/src/runtime/kernel/arm/int8/batch_to_space_int8.h b/mindspore/lite/src/runtime/kernel/arm/int8/batch_to_space_int8.h index 7d4838b2e9..2e2b4ac7ab 100644 --- a/mindspore/lite/src/runtime/kernel/arm/int8/batch_to_space_int8.h +++ b/mindspore/lite/src/runtime/kernel/arm/int8/batch_to_space_int8.h @@ -19,6 +19,7 @@ #include #include "include/errorcode.h" #include "nnacl/batch_to_space.h" +#include "nnacl/base/batch_to_space_base.h" #include "nnacl/int8/batch_to_space_int8.h" #include "src/lite_kernel.h" diff --git a/mindspore/lite/src/runtime/kernel/arm/int8/squeeze_int8.cc b/mindspore/lite/src/runtime/kernel/arm/int8/squeeze_int8.cc index 53a7acfab9..36653b6a62 100644 --- a/mindspore/lite/src/runtime/kernel/arm/int8/squeeze_int8.cc +++ b/mindspore/lite/src/runtime/kernel/arm/int8/squeeze_int8.cc @@ -14,12 +14,8 @@ * limitations under the License. */ -#include "nnacl/int8/squeeze_int8.h" #include "src/runtime/kernel/arm/int8/squeeze_int8.h" -#include "nnacl/squeeze_parameter.h" #include "schema/model_generated.h" -#include "src/runtime/runtime_api.h" -#include "include/errorcode.h" #include "src/kernel_registry.h" using mindspore::kernel::KERNEL_ARCH::kCPU; @@ -116,7 +112,7 @@ int SqueezeInt8CPUKernel::DoExecute(int task_id) { MS_ASSERT(output_data); int num = input_tensor->ElementsNum(); - SqueezeInt8(input_data, output_data, task_id, quant_squeeze_param_, para_, num); + SqueezeInt8(input_data, output_data, quant_squeeze_param_, num, task_id, op_parameter_->thread_num_); return RET_OK; } diff --git a/mindspore/lite/src/runtime/kernel/arm/int8/squeeze_int8.h b/mindspore/lite/src/runtime/kernel/arm/int8/squeeze_int8.h index 0001fad685..acde5d5368 100644 --- a/mindspore/lite/src/runtime/kernel/arm/int8/squeeze_int8.h +++ b/mindspore/lite/src/runtime/kernel/arm/int8/squeeze_int8.h @@ -18,9 +18,12 @@ #define MINDSPORE_LITE_SRC_RUNTIME_KERNEL_ARM_INT8_SQUEEZE_INT8_H_ #include -#include "src/lite_kernel.h" #include "include/context.h" +#include "include/errorcode.h" +#include "src/lite_kernel.h" #include "src/runtime/runtime_api.h" +#include "nnacl/int8/squeeze_int8.h" +#include "nnacl/squeeze_parameter.h" using mindspore::lite::InnerContext; namespace mindspore::kernel { @@ -29,9 +32,7 @@ class SqueezeInt8CPUKernel : public LiteKernel { SqueezeInt8CPUKernel(OpParameter *parameter, const std::vector &inputs, const std::vector &outputs, const InnerContext *ctx, const mindspore::lite::PrimitiveC *primitive) - : LiteKernel(parameter, inputs, outputs, ctx, primitive) { - para_ = reinterpret_cast(parameter); - } + : LiteKernel(parameter, inputs, outputs, ctx, primitive) {} ~SqueezeInt8CPUKernel() override; int Init() override; @@ -40,7 +41,6 @@ class SqueezeInt8CPUKernel : public LiteKernel { int DoExecute(int tId); private: - SqueezeParameter *para_; SqueezeQuantArg *quant_squeeze_param_; }; diff --git a/mindspore/lite/test/ut/src/runtime/kernel/arm/fp32/batch_to_space_fp32_test.cc b/mindspore/lite/test/ut/src/runtime/kernel/arm/fp32/batch_to_space_fp32_test.cc index 4e52063652..fefb471f93 100644 --- a/mindspore/lite/test/ut/src/runtime/kernel/arm/fp32/batch_to_space_fp32_test.cc +++ b/mindspore/lite/test/ut/src/runtime/kernel/arm/fp32/batch_to_space_fp32_test.cc @@ -15,6 +15,7 @@ */ #include "src/common/log_adapter.h" #include "common/common_test.h" +#include "mindspore/lite/nnacl/base/batch_to_space_base.h" #include "mindspore/lite/nnacl/batch_to_space.h" #include "mindspore/lite/nnacl/common_func.h" diff --git a/mindspore/lite/test/ut/src/runtime/kernel/arm/fp32/unstack_fp32_tests.cc b/mindspore/lite/test/ut/src/runtime/kernel/arm/fp32/unstack_fp32_tests.cc index d1f7c5cfca..c77e05eeda 100644 --- a/mindspore/lite/test/ut/src/runtime/kernel/arm/fp32/unstack_fp32_tests.cc +++ b/mindspore/lite/test/ut/src/runtime/kernel/arm/fp32/unstack_fp32_tests.cc @@ -17,7 +17,7 @@ #include #include #include "common/common_test.h" -#include "mindspore/lite/nnacl/unstack.h" +#include "mindspore/lite/nnacl/base/unstack_base.h" #include "mindspore/lite/src/kernel_registry.h" namespace mindspore { diff --git a/mindspore/lite/test/ut/src/runtime/kernel/arm/int8/squeeze_int8_tests.cc b/mindspore/lite/test/ut/src/runtime/kernel/arm/int8/squeeze_int8_tests.cc index 053946e7e7..6092b26cdf 100644 --- a/mindspore/lite/test/ut/src/runtime/kernel/arm/int8/squeeze_int8_tests.cc +++ b/mindspore/lite/test/ut/src/runtime/kernel/arm/int8/squeeze_int8_tests.cc @@ -64,14 +64,10 @@ TEST_F(TestSqueezeInt8, Squeeze_1d_axis0_offset0_quant0_thread2) { output0_tensor->set_data_type(tid_int8); outputs_tensor[0] = output0_tensor; - SqueezeParameter op_param; - op_param.op_parameter_.type_ = schema::PrimitiveType_Squeeze; + OpParameter op_param; + op_param.type_ = schema::PrimitiveType_Squeeze; lite::InnerContext *ctx = new lite::InnerContext; ctx->thread_num_ = 2; - ASSERT_EQ(lite::RET_OK, ctx->Init()); - op_param.axis_ = 0; - op_param.offset_[0] = 1; - op_param.offset_size_ = 1; kernel::KernelKey desc = {kernel::KERNEL_ARCH::kCPU, kNumberTypeInt8, schema::PrimitiveType_Squeeze}; auto creator = lite::KernelRegistry::GetInstance()->GetCreator(desc); ASSERT_NE(creator, nullptr); @@ -93,5 +89,4 @@ TEST_F(TestSqueezeInt8, Squeeze_1d_axis0_offset0_quant0_thread2) { delete output0_tensor; delete ctx; } - } // namespace mindspore