From 754a2499acaa776f4e77ba8f1912687a57f71908 Mon Sep 17 00:00:00 2001 From: xuanyue Date: Fri, 14 Aug 2020 11:27:50 +0800 Subject: [PATCH] fix cppcheck --- mindspore/lite/src/ops/power.cc | 2 +- .../runtime/kernel/arm/base/matmul_base.cc | 2 +- .../kernel/arm/fp16/convolution_3x3_fp16.cc | 4 +- .../runtime/kernel/arm/fp32/convolution.cc | 2 +- .../kernel/arm/fp32/convolution_3x3.cc | 4 +- .../kernel/arm/fp32/convolution_winograd.cc | 4 + .../lite/src/runtime/kernel/arm/fp32/lstm.cc | 2 +- .../lite/src/runtime/kernel/arm/fp32/power.cc | 2 +- .../runtime/kernel/arm/int8/squeeze_int8.cc | 2 +- .../runtime/kernel/arm/nnacl/fp16/conv_fp16.c | 8 +- .../arm/nnacl/fp16/winograd_transform_fp16.c | 10 +- .../kernel/arm/nnacl/fp32/common_func.c | 3 + .../src/runtime/kernel/arm/nnacl/fp32/conv.c | 2 +- .../kernel/arm/nnacl/fp32/conv_depthwise.c | 36 +- .../runtime/kernel/arm/nnacl/fp32/resize.c | 4 +- .../kernel/arm/nnacl/fp32/roi_pooling.c | 2 +- .../kernel/arm/nnacl/fp32/space_to_batch.c | 2 +- .../kernel/arm/nnacl/fp32_grad/pooling_grad.c | 4 +- .../kernel/arm/nnacl/int8/arg_min_max_int8.c | 2 +- .../arm/nnacl/int8/batch_to_space_int8.c | 4 +- .../kernel/arm/nnacl/int8/concat_int8.c | 2 +- .../runtime/kernel/arm/nnacl/int8/conv_int8.c | 2 +- .../arm/nnacl/int8/depth_to_space_int8.c | 2 +- .../kernel/arm/nnacl/int8/pooling_int8.c | 8 +- .../kernel/arm/nnacl/int8/prelu_int8.c | 2 +- .../kernel/arm/nnacl/int8/reshape_int8.c | 2 +- .../runtime/kernel/arm/nnacl/int8/resize.c | 6 + .../kernel/arm/nnacl/int8/squeeze_int8.c | 4 +- .../lite/src/runtime/kernel/arm/nnacl/pack.c | 5 +- .../src/runtime/kernel/arm/nnacl/prior_box.c | 3 + .../src/runtime/kernel/arm/nnacl/unique.c | 2 +- .../kernel/arm/nnacl/winograd_transform.c | 69 +- .../runtime/kernel/arm/nnacl/winograd_utils.c | 897 +++++++++--------- .../opencl/cl/fp32/arithmetic_image2d.cl | 3 + .../kernel/opencl/kernel/convolution.cc | 4 + .../lite/src/runtime/kernel/opencl/utils.cc | 4 + .../src/runtime/opencl/opencl_allocator.cc | 3 + mindspore/lite/src/scheduler.cc | 2 +- mindspore/lite/src/train/import.hpp | 4 + mindspore/lite/tools/benchmark/benchmark.cc | 2 +- .../onnx/onnx_arithmetic_operation_parser.cc | 4 +- .../optimizer/fusion/conv_transform_fusion.cc | 1 + 42 files changed, 596 insertions(+), 536 deletions(-) diff --git a/mindspore/lite/src/ops/power.cc b/mindspore/lite/src/ops/power.cc index ba17b9524a..91630b7edc 100644 --- a/mindspore/lite/src/ops/power.cc +++ b/mindspore/lite/src/ops/power.cc @@ -31,7 +31,7 @@ int Power::InferShape(std::vector inputs, std::vectorshape() != x_tensor->shape() || exp_tensor->data_type() != x_tensor->data_type()) { MS_LOG(ERROR) << "Power inputs shape or type is not equal!"; return RET_INPUT_TENSOR_ERROR; diff --git a/mindspore/lite/src/runtime/kernel/arm/base/matmul_base.cc b/mindspore/lite/src/runtime/kernel/arm/base/matmul_base.cc index af7ba4afab..4d0eb57420 100644 --- a/mindspore/lite/src/runtime/kernel/arm/base/matmul_base.cc +++ b/mindspore/lite/src/runtime/kernel/arm/base/matmul_base.cc @@ -48,7 +48,7 @@ kernel::LiteKernel *CpuMatmulKernelCreator(const std::vectorinput_channel_, C4NUM); int oC8 = UP_DIV(conv_param_->output_channel_, C8NUM); diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/convolution.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/convolution.cc index 1e9fe2bc57..bc83e435e6 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/convolution.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/convolution.cc @@ -261,7 +261,7 @@ kernel::LiteKernel *CpuConvFp32KernelCreator(const std::vectorinput_w_ = inputs.front()->Width(); conv_param->output_h_ = outputs.front()->Height(); conv_param->output_w_ = outputs.front()->Width(); - bool use_winograd; + bool use_winograd = false; int out_unit; InputTransformUnitFunc input_trans_func = nullptr; OutputTransformUnitFunc output_trans_func = nullptr; diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_3x3.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_3x3.cc index f676a9fd62..91f302e102 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_3x3.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_3x3.cc @@ -61,7 +61,7 @@ int Convolution3x3CPUKernel::InitWeightBias() { oc_block = C8NUM; oc_block_num = UP_DIV(output_channel, C8NUM); #endif - int k_plane = 16; + const int k_plane = 16; // init weight size_t transformed_size = iC4 * C4NUM * oc_block_num * oc_block * k_plane * sizeof(float); transformed_filter_addr_ = reinterpret_cast(malloc(transformed_size)); @@ -93,7 +93,7 @@ int Convolution3x3CPUKernel::InitWeightBias() { int Convolution3x3CPUKernel::InitTmpBuffer() { int iC4 = UP_DIV(conv_param_->input_channel_, C4NUM); int oC4 = UP_DIV(conv_param_->output_channel_, C4NUM); - int k_plane = 16; + const int k_plane = 16; /*=============================tile_buffer_============================*/ size_t tile_buffer_size = thread_count_ * TILE_NUM * k_plane * iC4 * C4NUM * sizeof(float); diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_winograd.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_winograd.cc index d72a3b4dad..3d7be4f2a1 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_winograd.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/convolution_winograd.cc @@ -52,6 +52,10 @@ void WinogradFilterTransform(const float *weight_data, Matrix *trans_weight, int std::vector strides = trans_weight->GetStride(); int kernel_plane_stride = channel_in; + if (oc_block == 0) { + MS_LOG(ERROR) << "Divide by zero"; + return; + } for (int i = 0; i < channel_out; i++) { int out_c_block = i / oc_block; int out_c_res = i % oc_block; diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/lstm.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/lstm.cc index a5b800b671..4d3b2a58e0 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/lstm.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/lstm.cc @@ -84,7 +84,7 @@ int LstmCPUKernel::InitWeightBias() { } auto bias_data = reinterpret_cast(in_tensors_.at(3)->Data()); - int state_bias_offset = 4 * lstm_parm_->hidden_size_; + const int state_bias_offset = 4 * lstm_parm_->hidden_size_; for (int i = 0; i < state_bias_offset; i++) { bias_ptr_[i] = bias_data[i] + bias_data[i + state_bias_offset]; } diff --git a/mindspore/lite/src/runtime/kernel/arm/fp32/power.cc b/mindspore/lite/src/runtime/kernel/arm/fp32/power.cc index ab881b96bd..b708eb0901 100644 --- a/mindspore/lite/src/runtime/kernel/arm/fp32/power.cc +++ b/mindspore/lite/src/runtime/kernel/arm/fp32/power.cc @@ -66,7 +66,7 @@ int PowerCPUKernel::RunImpl(int task_id) { exp_addr = reinterpret_cast(in_tensors_[1]->Data()); broadcast = false; } - float *cur_exp; + float *cur_exp = nullptr; if (broadcast) { cur_exp = &power_; } else { 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 fdec4d0947..29993956c4 100644 --- a/mindspore/lite/src/runtime/kernel/arm/int8/squeeze_int8.cc +++ b/mindspore/lite/src/runtime/kernel/arm/int8/squeeze_int8.cc @@ -161,7 +161,7 @@ int SqueezeInt8CPUKernel::Run() { if (ret != RET_OK) { MS_LOG(ERROR) << "RunSqueezeParam failed. errorcode: "; } - return RET_OK; + return ret; } int SqueezeInt8Run(int task_id, LiteParallelGroupEnv *penv, void *cdata) { diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp16/conv_fp16.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp16/conv_fp16.c index 7816812c15..09e19c040d 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp16/conv_fp16.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp16/conv_fp16.c @@ -35,7 +35,7 @@ void IndirectGemmFp16_16x8(float16_t *output, float16_t *input, float16_t *weigh void IndirectGemmFp16_16x8(float16_t *output, float16_t *input, float16_t *weight, float16_t *bias, size_t step, size_t ic4, size_t out_channel, size_t offset, size_t mode, size_t writeC4, size_t relu, size_t relu6) { - int tile_n = 16; + const int tile_n = 16; for (int i = 0; i < out_channel; i++) { int oc8_block = i / 8; int oc8_res = i % 8; @@ -76,7 +76,7 @@ void IndirectGemmFp16_16x8(float16_t *output, float16_t *input, float16_t *weigh void IndirectGemmFp16_16x8_tmp(float16_t *output, float16_t *input, float16_t *weight, const float16_t *bias, size_t step, size_t ic4, size_t output_channel, size_t offset, size_t mode, size_t writeC4, size_t relu, size_t relu6) { - int tile_num = 16; + const int tile_num = 16; if (mode) { for (int i = 0; i < tile_num; i++) { int input_tile_offset = i * C4NUM; @@ -175,8 +175,8 @@ void Conv3x3Fp16(float16_t *input_data, float16_t *transed_weight, const float16 // todo int thread_count = conv_param->thread_num_; int tile_num = 16; - int output_unit = 4; - int k_plane = 36; + const int output_unit = 4; + const int k_plane = 36; int ic4 = UP_DIV(conv_param->input_channel_, C4NUM); int oc8 = UP_DIV(conv_param->output_channel_, C8NUM); diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp16/winograd_transform_fp16.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp16/winograd_transform_fp16.c index 074653532d..29a111103e 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp16/winograd_transform_fp16.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp16/winograd_transform_fp16.c @@ -190,14 +190,16 @@ void Conv3x3Fp16InputUnit(float16_t *tmp_data, float16_t *trans_input_data, size void Conv3x3Fp16InputTransform(const float16_t *input_data, float16_t *trans_input, float16_t *tmp_data, int start_index, int real_cal_num, int out_w_block, ConvParameter *conv_param) { // input data format : nhwc - int output_unit = 4; + const int output_unit = 4; int input_channel = conv_param->input_channel_; int input_width = conv_param->input_w_; int input_height = conv_param->input_h_; int pad_w = conv_param->pad_w_; int pad_h = conv_param->pad_h_; int ic4 = UP_DIV(input_channel, C4NUM); - + if (out_w_block == 0) { + return; + } for (int cal_id = 0; cal_id < real_cal_num; cal_id++) { int x_id = start_index + cal_id; int origin_x = (x_id % out_w_block) * output_unit - pad_w; @@ -511,7 +513,9 @@ void Conv3x3Fp16OutputTransform(const float16_t *gemm_out, float16_t *out_data, int output_h = conv_param->output_h_; int out_h_block = UP_DIV(output_h, C4NUM); int oc8 = UP_DIV(output_channel, C8NUM); - + if (out_w_block == 0) { + return; + } for (int i = 0; i < real_cal_num; i++) { int out_w_index = (start_index + i) % out_w_block; int out_h_index = (start_index + i) / out_w_block; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/common_func.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/common_func.c index ded8dd297d..2e77ce0df5 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/common_func.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/common_func.c @@ -65,6 +65,9 @@ void MatrixMultiAdd(float *c11, float *c12, float *c21, float *c22, float *x_ptr void PostConvFuncComm(const float *src_ptr_, float *out_ptr, const float *bias_ptr, size_t output_channel, size_t plane_size, size_t stride, bool is_relu, bool is_relu6, int size) { + if (size == 0) { + return; + } for (int oc = 0; oc < output_channel; oc++) { int oc_div = oc / size, oc_mod = oc % size; for (int hw = 0; hw < plane_size; hw++) { diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/conv.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/conv.c index 0543935b4b..54eeeb48de 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/conv.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/conv.c @@ -142,7 +142,7 @@ void ConvSWFp32(const float *input_data, const float *packed_weight, const float int ic4 = slidingWindow_param->ic4_channel_ / C4NUM; int oc4_res = conv_param->output_channel_ % C4NUM; const float *src = input_data; - float *dst; + float *dst = NULL; if (oc4_res == 0) { dst = output_data; } else { diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/conv_depthwise.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/conv_depthwise.c index 3f543a1d38..f689c28b6f 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/conv_depthwise.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/conv_depthwise.c @@ -328,36 +328,36 @@ void ConvDw3x3Fp32FilterTrans(float *trans_weight, float *weight, int oc4) { float dst01 = (local_ptr + 4)[0]; float dst02 = (local_ptr + 8)[0]; - float dst10 = 0.5f * local_ptr[0] + 0.5f * (local_ptr + 12)[0] + 0.5f * (local_ptr + 24)[0]; - float dst11 = 0.5f * (local_ptr + 4)[0] + 0.5f * (local_ptr + 16)[0] + 0.5f * (local_ptr + 28)[0]; - float dst12 = 0.5f * (local_ptr + 8)[0] + 0.5f * (local_ptr + 20)[0] + 0.5f * (local_ptr + 32)[0]; + const float dst10 = 0.5f * local_ptr[0] + 0.5f * (local_ptr + 12)[0] + 0.5f * (local_ptr + 24)[0]; + const float dst11 = 0.5f * (local_ptr + 4)[0] + 0.5f * (local_ptr + 16)[0] + 0.5f * (local_ptr + 28)[0]; + const float dst12 = 0.5f * (local_ptr + 8)[0] + 0.5f * (local_ptr + 20)[0] + 0.5f * (local_ptr + 32)[0]; - float dst20 = 0.5f * local_ptr[0] - 0.5f * (local_ptr + 12)[0] + 0.5f * (local_ptr + 24)[0]; - float dst21 = 0.5f * (local_ptr + 4)[0] - 0.5f * (local_ptr + 16)[0] + 0.5f * (local_ptr + 28)[0]; - float dst22 = 0.5f * (local_ptr + 8)[0] - 0.5f * (local_ptr + 20)[0] + 0.5f * (local_ptr + 32)[0]; + const float dst20 = 0.5f * local_ptr[0] - 0.5f * (local_ptr + 12)[0] + 0.5f * (local_ptr + 24)[0]; + const float dst21 = 0.5f * (local_ptr + 4)[0] - 0.5f * (local_ptr + 16)[0] + 0.5f * (local_ptr + 28)[0]; + const float dst22 = 0.5f * (local_ptr + 8)[0] - 0.5f * (local_ptr + 20)[0] + 0.5f * (local_ptr + 32)[0]; float dst30 = (local_ptr + 24)[0]; float dst31 = (local_ptr + 28)[0]; float dst32 = (local_ptr + 32)[0]; float m00 = dst00; - float m01 = 0.5f * dst00 + 0.5f * dst01 + 0.5f * dst02; - float m02 = 0.5f * dst00 - 0.5f * dst01 + 0.5f * dst02; + const float m01 = 0.5f * dst00 + 0.5f * dst01 + 0.5f * dst02; + const float m02 = 0.5f * dst00 - 0.5f * dst01 + 0.5f * dst02; float m03 = dst02; float m10 = dst10; - float m11 = 0.5f * dst10 + 0.5f * dst11 + 0.5f * dst12; - float m12 = 0.5f * dst10 - 0.5f * dst11 + 0.5f * dst12; + const float m11 = 0.5f * dst10 + 0.5f * dst11 + 0.5f * dst12; + const float m12 = 0.5f * dst10 - 0.5f * dst11 + 0.5f * dst12; float m13 = dst12; float m20 = dst20; - float m21 = 0.5f * dst20 + 0.5f * dst21 + 0.5f * dst22; - float m22 = 0.5f * dst20 - 0.5f * dst21 + 0.5f * dst22; + const float m21 = 0.5f * dst20 + 0.5f * dst21 + 0.5f * dst22; + const float m22 = 0.5f * dst20 - 0.5f * dst21 + 0.5f * dst22; float m23 = dst22; float m30 = dst30; - float m31 = 0.5f * dst30 + 0.5f * dst31 + 0.5f * dst32; - float m32 = 0.5f * dst30 - 0.5f * dst31 + 0.5f * dst32; + const float m31 = 0.5f * dst30 + 0.5f * dst31 + 0.5f * dst32; + const float m32 = 0.5f * dst30 - 0.5f * dst31 + 0.5f * dst32; float m33 = dst32; *(dst + j) = m00; @@ -387,7 +387,7 @@ void ConvDw3x3Fp32FilterTrans(float *trans_weight, float *weight, int oc4) { void ConvDw3x3Fp32InputTrans(const float *input_data, float *trans_input, float *block_buffer, int out_h_block, int out_w_block, const ConvParameter *conv_param) { int ic4 = UP_DIV(conv_param->input_channel_, C4NUM); - int input_unit = 4; + const int input_unit = 4; memset(trans_input, 0, out_h_block * out_h_block * 16 * C4NUM * sizeof(float)); for (int oh = 0; oh < out_h_block; oh++) { @@ -426,7 +426,7 @@ void ConvDw3x3Fp32InputTrans(const float *input_data, float *trans_input, float // todo yangruoqi: implement assembly void ConvDw3x3Fp32Winograd(float *trans_buffer, const float *weight, int out_h_block, int out_w_block) { - int unit = 4; + const int unit = 4; for (int oh = 0; oh < out_h_block; oh++) { float *buf_oh = trans_buffer + oh * out_w_block * 16 * C4NUM; for (int ow = 0; ow < out_w_block; ow++) { @@ -583,7 +583,7 @@ void ConvDw3x3Fp32OutputTrans(float *trans_buffer, float *output_data, const flo int oc4 = UP_DIV(conv_param->output_channel_, C4NUM); bool h_in_range = true; for (int oh = 0; oh < out_h_block; oh++) { - int real_oh = 2 * oh; + const int real_oh = 2 * oh; if ((oh + 1) * 2 > conv_param->output_h_) { h_in_range = false; } @@ -592,7 +592,7 @@ void ConvDw3x3Fp32OutputTrans(float *trans_buffer, float *output_data, const flo float *output_oh = output_data + real_oh * conv_param->output_w_ * oc4 * C4NUM; for (int ow = 0; ow < out_w_block; ow++) { - int real_ow = 2 * ow; + const int real_ow = 2 * ow; if ((ow + 1) * 2 > conv_param->output_w_) { w_in_range = false; } diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/resize.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/resize.c index c0f1588333..2dce46ed62 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/resize.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/resize.c @@ -47,13 +47,13 @@ int ResizeBilinear(const float *input_data, float *output_data, const int *input int y_bottom = (int)(floor(actual_y)); int y_top = y_bottom + 1 < in_h ? (y_bottom + 1) : (in_h - 1); float y_top_weight = actual_y - (float)(y_bottom); - float y_bottom_weight = 1.0f - y_top_weight; + const float y_bottom_weight = 1.0f - y_top_weight; for (w = 0; w < new_width; w++) { float actual_x = (float)(w)*width_scale; int x_left = (int)(floor(actual_x)); int x_right = x_left + 1 < in_w ? (x_left + 1) : (in_w - 1); float x_right_weight = actual_x - (float)(x_left); - float x_left_weight = 1.0f - x_right_weight; + const float x_left_weight = 1.0f - x_right_weight; c = 0; #ifdef ENABLE_NEON for (; c <= in_c - 4; c += 4) { diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/roi_pooling.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/roi_pooling.c index 1fe856a3a4..12a1ba7ffb 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/roi_pooling.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/roi_pooling.c @@ -30,7 +30,7 @@ int ROIPooling(float *in_ptr, float *out_ptr, float *roi, const int *in_shape, c int pooled_width = param->pooledW_; int in_stride[DIMENSION_4D]; int out_stride[DIMENSION_4D]; - int roi_stride = 5; + const int roi_stride = 5; in_stride[DIMENSION_4D - 1] = 1; out_stride[DIMENSION_4D - 1] = 1; for (int i = dim - 2; i >= 0; --i) { diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/space_to_batch.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/space_to_batch.c index 5f38a161f0..793e70934f 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/space_to_batch.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32/space_to_batch.c @@ -138,7 +138,7 @@ void DoPadding(const float *input, float *padded_input, SpaceToBatchParameter pa } int SpaceToBatch(const float *input, float *output, SpaceToBatchParameter param, float *tmp_space[3]) { - float *padded_input; + float *padded_input = NULL; int ret; if (param.need_paddings_) { if (tmp_space[0] == NULL || tmp_space[1] == NULL || tmp_space[2] == NULL) { diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32_grad/pooling_grad.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32_grad/pooling_grad.c index f2eb250300..d841f02967 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32_grad/pooling_grad.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/fp32_grad/pooling_grad.c @@ -30,7 +30,7 @@ void AvgPoolingGrad(const float *input_ptr, float *output_ptr, PoolingParameter int output_h = pooling_param->output_h_; int output_batch = pooling_param->output_batch_; - const float *inPtr; + const float *inPtr = NULL; for (int i = 0; i < output_h * output_w * channel * output_batch; i++) output_ptr[i] = 0.0; // int pad_top = padding[2]; @@ -119,7 +119,7 @@ void MaxPoolingGrad(const float *dy, const int *indices, float *output_ptr, Pool const float *yt = (const float *)(dy); const int *pos = (const int *)(indices); - float *out; + float *out = NULL; if (1) { // grads->layout() == Tensor::nhwc) for (int ib = 0; ib < output_batch; ib++) { diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/arg_min_max_int8.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/arg_min_max_int8.c index 634ed966d7..72fdc18597 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/arg_min_max_int8.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/arg_min_max_int8.c @@ -34,7 +34,7 @@ void CalcParameter(const int *shape, int dims_number, int axis, int *pre_axis_co void DoArgMinMaxQuant(const int8_t *input, int8_t *output, ArgMinMaxParameter *param, int pre_axis_count, int axis_count, int after_axis_count, QuantArg *in_quant_arg, QuantArg *out_quant_arg) { bool out_value = param->out_value_; - float output_inverse_scale = 1.f / out_quant_arg->scale_; + const float output_inverse_scale = 1.f / out_quant_arg->scale_; float bias = -in_quant_arg->zp_ * in_quant_arg->scale_; int32_t output_zp = out_quant_arg->zp_; for (int i = 0; i < pre_axis_count; ++i) { diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/batch_to_space_int8.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/batch_to_space_int8.c index 5914047078..7388c539be 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/batch_to_space_int8.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/batch_to_space_int8.c @@ -28,7 +28,7 @@ void BatchToSpaceNoCropForNHWCInt8(const int8_t *input, int8_t *output, const in size_t output_offset = 0; size_t in_stride_h = in_w * in_c; size_t in_stride_n = in_stride_h * in_h; - float output_inverse_scale = 1.f / out_quant_arg->scale_; + const float output_inverse_scale = 1.f / out_quant_arg->scale_; float scale = in_quant_arg->scale_ * output_inverse_scale; float bias = -in_quant_arg->zp_ * scale; int32_t output_zp = out_quant_arg->zp_; @@ -76,7 +76,7 @@ void BatchToSpaceForNHWCInt8(const int8_t *input, int8_t *output, const int *in_ size_t in_stride_h = in_w * in_c; size_t in_stride_n = in_stride_h * in_h; - float output_inverse_scale = 1.f / out_quant_arg->scale_; + const float output_inverse_scale = 1.f / out_quant_arg->scale_; float scale = in_quant_arg->scale_ * output_inverse_scale; float bias = -in_quant_arg->zp_ * scale; int32_t output_zp = out_quant_arg->zp_; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/concat_int8.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/concat_int8.c index 0a385a3885..6ee3a8c691 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/concat_int8.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/concat_int8.c @@ -20,7 +20,7 @@ void Int8Concat(int8_t **inputs, int8_t *output, ConcatParameter *para, int axis, int64_t real_dst_count, int task_id) { float output_scale = para->quant_arg_.out_args_.scale_; - float output_inverse_scale = 1.f / output_scale; + const float output_inverse_scale = 1.f / output_scale; int input_num = para->input_num_; int count_unit_ = para->count_unit_; int after_axis_size = para->after_axis_size; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/conv_int8.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/conv_int8.c index b88a708240..c75f739cc4 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/conv_int8.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/conv_int8.c @@ -201,7 +201,7 @@ void Conv3x3Uint8Gemm(int32_t *dst, const int16_t *src, const int16_t *weight, i #ifdef ENABLE_ARM IndirectGemmInt16to32_8x4(dst, src, weight, 16, ic8, oc4, oc4 * 4 * 16 * sizeof(int32_t)); #else - int input_unit_square = 16; + const int input_unit_square = 16; for (int c = 0; c < oc4; c++) { int filter_oc_offset = c * input_unit_square * ic8 * C8NUM * C4NUM; int dst_oc_offset = c * input_unit_square * C4NUM; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/depth_to_space_int8.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/depth_to_space_int8.c index f840c8521a..5b19d02ec1 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/depth_to_space_int8.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/depth_to_space_int8.c @@ -22,7 +22,7 @@ void DepthToSpaceForNHWCInt8(const int8_t *input, int8_t *output, int *in_shape, int32_t in_shape_dim2 = in_shape[2]; int32_t in_shape_dim1 = in_shape[1]; size_t copy_size = block_size * param->out_stride_dim2_; - float output_inverse_scale = 1.f / out_quant_arg->scale_; + const float output_inverse_scale = 1.f / out_quant_arg->scale_; float scale = in_quant_arg->scale_ * output_inverse_scale; float bias = -in_quant_arg->zp_ * scale; int32_t output_zp = out_quant_arg->zp_; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/pooling_int8.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/pooling_int8.c index 45245df425..540d43deed 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/pooling_int8.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/pooling_int8.c @@ -36,8 +36,8 @@ void AvgPoolingInt8(const int8_t *input_ptr, int8_t *output_ptr, PoolingParamete float output_scale = pooling_param->quant_args_[1][0].scale_; int output_zp = pooling_param->quant_args_[1][0].zp_; double real_multiplier = input_scale / output_scale; - int8_t out_min = INT8_MIN; - int8_t out_max = INT8_MAX; + const int8_t out_min = INT8_MIN; + const int8_t out_max = INT8_MAX; for (int batch = 0; batch < output_batch; batch++) { int in_batch_offset = batch * in_h * in_w * channel; @@ -91,8 +91,8 @@ void AvgPoolingOptInt8(const int8_t *input_ptr, int8_t *output_ptr, PoolingParam int out_tile_count = UP_DIV(out_plane, TILE_NUM); int thread_num = pooling_param->thread_num_; int c8 = UP_DIV(channel, C8NUM); - int8_t out_min = INT8_MIN; - int8_t out_max = INT8_MAX; + const int8_t out_min = INT8_MIN; + const int8_t out_max = INT8_MAX; for (int batch = 0; batch < output_batch; batch++) { int in_batch_offset = batch * in_h * in_w * channel; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/prelu_int8.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/prelu_int8.c index a77d4c6346..7489a09f34 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/prelu_int8.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/prelu_int8.c @@ -20,7 +20,7 @@ void prelu(int8_t *inputs, int8_t *output_ptr, PreluParameter *quant_prelu_parm, int task_id) { float output_scale = quant_prelu_parm->quant_arg.out_args_.scale_; int output_zp = quant_prelu_parm->quant_arg.out_args_.zp_; - float output_inverse_scale = 1.f / output_scale; + const float output_inverse_scale = 1.f / output_scale; int output_dim = quant_prelu_parm->input_dim_; QuantArg *input_quant = NULL; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/reshape_int8.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/reshape_int8.c index d4736e092d..1375be6302 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/reshape_int8.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/reshape_int8.c @@ -22,7 +22,7 @@ void Int8Reshape(int8_t *input_ptr, int8_t *output_ptr, int64_t real_dst_count, if (para.in_args_.scale_ == para.out_args_.scale_ && para.in_args_.zp_ == para.out_args_.zp_) { memcpy(output_ptr, input_ptr, real_dst_count); } else { - float output_inverse_scale = 1.f / para.out_args_.scale_; + const float output_inverse_scale = 1.f / para.out_args_.scale_; float scale = para.in_args_.scale_ * output_inverse_scale; float bias = -para.in_args_.zp_ * scale; int32_t output_zp = para.out_args_.zp_; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/resize.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/resize.c index 564fc35a3e..44b6b87e86 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/resize.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/resize.c @@ -115,6 +115,9 @@ int ResizeNearestNeighborInt8Simple(const int8_t *input_data, int8_t *output_dat } void ComputeScale(const int32_t in_value, const int32_t out_value, const bool align_corners, int32_t *scale) { + if (out_value == 0) { + return; + } *scale = (in_value * (1 << 10) + out_value / 2) / out_value; if (align_corners && out_value > 1) { *scale = ((in_value - 1) * (1 << 10) + (out_value - 1) / 2) / (out_value - 1); @@ -133,6 +136,9 @@ void ComputeInterpolationArgs(const int32_t pos, const int32_t scale, const int3 void ComputeNearestNeighborInt(const int32_t pos, const int in_size, const int32_t new_size, const bool align_corners, int32_t *nearest) { + if (new_size == 0) { + return; + } *nearest = (in_size * pos) / new_size; if (align_corners) { *nearest = ((in_size - 1) * pos + (new_size - 1) / 2) / (new_size - 1); diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/squeeze_int8.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/squeeze_int8.c index e0ac5885bf..bbf7b91728 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/squeeze_int8.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/int8/squeeze_int8.c @@ -20,11 +20,11 @@ void Squeeze(int8_t **inputs, int8_t *output_ptr, int task_id, SqueezeQuantArg *quant_Squeeze_parm, SqueezeParameter *para_, size_t osize) { float output_scale = quant_Squeeze_parm->out_quant_args_.scale_; - float output_inverse_scale = 1.f / output_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_; - int i = 0; + const int i = 0; int8_t *input_ptr = inputs[0]; for (int j = task_id; j < osize; j += para_->op_parameter_.thread_num_) { float scale = input_quant[i].scale_ * output_inverse_scale; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/pack.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/pack.c index dbc713dde6..32a867fe95 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/pack.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/pack.c @@ -21,6 +21,9 @@ void PackWeightFp32(float *weight_data, ConvParameter *conv_param, float *packed_weight, int oc_block, int oc_block_num) { // original weight format : ohwi + if (oc_block_num == 0) { + return; + } int kernel_h = conv_param->kernel_h_; int kernel_w = conv_param->kernel_w_; int in_channel = conv_param->input_channel_; @@ -30,7 +33,7 @@ void PackWeightFp32(float *weight_data, ConvParameter *conv_param, float *packed int pack_weight_size = oc_block * oc_block_num * ic4 * C4NUM * kernel_plane; int unit_size = oc_block * C4NUM; - int block_size = pack_weight_size / oc_block_num; + const int block_size = pack_weight_size / oc_block_num; for (int m = 0; m < kernel_plane; m++) { int kernel_plane_stride = m * in_channel; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/prior_box.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/prior_box.c index 7fd1c0bdef..0f0375035f 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/prior_box.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/prior_box.c @@ -19,6 +19,9 @@ #include "nnacl/prior_box.h" int PriorBox(const float *input_data, float *output_data, const size_t size, const int tid, const int thread_num) { + if (thread_num == 0) { + return NNACL_ERR; + } size_t unit_size = size / thread_num; if (tid == thread_num - 1) { size_t tail_size = size - unit_size * tid; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/unique.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/unique.c index dd1744e325..ec7a66987a 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/unique.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/unique.c @@ -26,7 +26,7 @@ int Find(float *array, int len, float target) { } void Unique(float *input, int input_len, float *output0, int *output0_len, int *output1) { - output0_len = 0; + *output0_len = 0; for (int i = 0; i < input_len; i++) { int idx = Find(output0, *output0_len, input[i]); if (idx != -1) { diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/winograd_transform.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/winograd_transform.c index 87e330e446..0f7a28970f 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/winograd_transform.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/winograd_transform.c @@ -28,7 +28,9 @@ void WinogradInputTransform(const float *input_data, float *trans_input, float * int pad_w = conv_param->pad_w_; int input_h = conv_param->input_h_; int input_w = conv_param->input_w_; - + if (out_w_block_num == 0) { + return; + } for (int c = 0; c < cal_num; c++) { // actual tiled number int src_x_s = (out_tile_index % out_w_block_num) * output_unit - pad_w; int src_y_s = (out_tile_index / out_w_block_num) * output_unit - pad_h; @@ -83,7 +85,9 @@ void WinogradOutputTransform(const float *gemm_out, float *tmp_out_data, const f int output_channel = conv_param->output_channel_; int oc4 = UP_DIV(output_channel, C4NUM); int input_unit = conv_param->input_unit_; - + if (output_unit_num == 0) { + return; + } for (int i = 0; i < cal_num; i++) { int dst_x_s = out_tile_index % output_unit_num; int dst_y_s = out_tile_index / output_unit_num; @@ -281,7 +285,9 @@ void Conv3x3Fp32InputTransform(const float *input_data, float *trans_input, floa int pad_h = conv_param->pad_h_; int ic4 = UP_DIV(input_channel, C4NUM); int input_unit = 4; - + if (out_w_block == 0) { + return; + } for (int cal_id = 0; cal_id < real_cal_num; cal_id++) { int x_id = start_index + cal_id; int origin_x = (x_id % out_w_block) * OUPUT_UNIT - pad_w; @@ -328,8 +334,11 @@ void Conv3x3Fp32InputTransform(const float *input_data, float *trans_input, floa void Conv3x3Fp32FilterTransform(float *weight_data, float *trans_weight, int iC4, int output_channel, int kernel_plane, int oc_block) { - int input_unit = 4; + const int input_unit = 4; int dst_step = iC4 * C4NUM * oc_block; + if (oc_block == 0) { + return; + } for (int o = 0; o < output_channel; o++) { int oc_block_num = o / oc_block; int oc_block_rem = o % oc_block; @@ -485,36 +494,36 @@ void Conv3x3Fp32FilterTransform(float *weight_data, float *trans_weight, int iC4 float dst01 = (local_ptr + 4)[0]; float dst02 = (local_ptr + 8)[0]; - float dst10 = 0.5f * local_ptr[0] + 0.5f * (local_ptr + 12)[0] + 0.5f * (local_ptr + 24)[0]; - float dst11 = 0.5f * (local_ptr + 4)[0] + 0.5f * (local_ptr + 16)[0] + 0.5f * (local_ptr + 28)[0]; - float dst12 = 0.5f * (local_ptr + 8)[0] + 0.5f * (local_ptr + 20)[0] + 0.5f * (local_ptr + 32)[0]; + const float dst10 = 0.5f * local_ptr[0] + 0.5f * (local_ptr + 12)[0] + 0.5f * (local_ptr + 24)[0]; + const float dst11 = 0.5f * (local_ptr + 4)[0] + 0.5f * (local_ptr + 16)[0] + 0.5f * (local_ptr + 28)[0]; + const float dst12 = 0.5f * (local_ptr + 8)[0] + 0.5f * (local_ptr + 20)[0] + 0.5f * (local_ptr + 32)[0]; - float dst20 = 0.5f * local_ptr[0] - 0.5f * (local_ptr + 12)[0] + 0.5f * (local_ptr + 24)[0]; - float dst21 = 0.5f * (local_ptr + 4)[0] - 0.5f * (local_ptr + 16)[0] + 0.5f * (local_ptr + 28)[0]; - float dst22 = 0.5f * (local_ptr + 8)[0] - 0.5f * (local_ptr + 20)[0] + 0.5f * (local_ptr + 32)[0]; + const float dst20 = 0.5f * local_ptr[0] - 0.5f * (local_ptr + 12)[0] + 0.5f * (local_ptr + 24)[0]; + const float dst21 = 0.5f * (local_ptr + 4)[0] - 0.5f * (local_ptr + 16)[0] + 0.5f * (local_ptr + 28)[0]; + const float dst22 = 0.5f * (local_ptr + 8)[0] - 0.5f * (local_ptr + 20)[0] + 0.5f * (local_ptr + 32)[0]; float dst30 = (local_ptr + 24)[0]; float dst31 = (local_ptr + 28)[0]; float dst32 = (local_ptr + 32)[0]; float m00 = dst00; - float m01 = 0.5f * dst00 + 0.5f * dst01 + 0.5f * dst02; - float m02 = 0.5f * dst00 - 0.5f * dst01 + 0.5f * dst02; + const float m01 = 0.5f * dst00 + 0.5f * dst01 + 0.5f * dst02; + const float m02 = 0.5f * dst00 - 0.5f * dst01 + 0.5f * dst02; float m03 = dst02; float m10 = dst10; - float m11 = 0.5f * dst10 + 0.5f * dst11 + 0.5f * dst12; - float m12 = 0.5f * dst10 - 0.5f * dst11 + 0.5f * dst12; + const float m11 = 0.5f * dst10 + 0.5f * dst11 + 0.5f * dst12; + const float m12 = 0.5f * dst10 - 0.5f * dst11 + 0.5f * dst12; float m13 = dst12; float m20 = dst20; - float m21 = 0.5f * dst20 + 0.5f * dst21 + 0.5f * dst22; - float m22 = 0.5f * dst20 - 0.5f * dst21 + 0.5f * dst22; + const float m21 = 0.5f * dst20 + 0.5f * dst21 + 0.5f * dst22; + const float m22 = 0.5f * dst20 - 0.5f * dst21 + 0.5f * dst22; float m23 = dst22; float m30 = dst30; - float m31 = 0.5f * dst30 + 0.5f * dst31 + 0.5f * dst32; - float m32 = 0.5f * dst30 - 0.5f * dst31 + 0.5f * dst32; + const float m31 = 0.5f * dst30 + 0.5f * dst31 + 0.5f * dst32; + const float m32 = 0.5f * dst30 - 0.5f * dst31 + 0.5f * dst32; float m33 = dst32; *(dst_ic4_ptr + j * 8) = m00; @@ -652,8 +661,10 @@ void Conv3x3Fp32OutputTransform(const float *gemm_out, float *out_data, const fl int output_w = conv_param->output_w_; int output_h = conv_param->output_h_; int oc4 = UP_DIV(output_channel, C4NUM); - int input_unit = 4; - + const int input_unit = 4; + if (out_w_block == 0) { + return; + } for (int i = 0; i < real_cal_num; i++) { int out_w_index = (start_index + i) % out_w_block; int out_h_index = (start_index + i) / out_w_block; @@ -855,9 +866,11 @@ void Conv3x3Uint8InputTransform(const int16_t *input_data, int16_t *trans_input, int pad_h = conv_param->pad_h_; ConvQuantArg quant_arg = conv_param->conv_quant_arg_; int input_zp = quant_arg.input_quant_args_[0].zp_; - int ic8 = UP_DIV(input_channel, C8NUM); - int input_unit = 4; - + const int ic8 = UP_DIV(input_channel, C8NUM); + const int input_unit = 4; + if (out_w_block == 0) { + return; + } for (int cal_id = 0; cal_id < real_cal_num; cal_id++) { int x_id = start_index + cal_id; int origin_x = (x_id % out_w_block) * OUPUT_UNIT - pad_w; @@ -890,7 +903,7 @@ void Conv3x3Uint8InputTransform(const int16_t *input_data, int16_t *trans_input, void Conv3x3Int8FilterTransform(const int16_t *weight_data, int16_t *trans_weight, int iC8, int output_channel, int kernel_plane) { - int input_unit = 4; + const int input_unit = 4; int dst_step = iC8 * C8NUM * C4NUM; for (int o = 0; o < output_channel; o++) { int oc4_block_num = o / C4NUM; @@ -1441,9 +1454,11 @@ void Conv3x3Uint8OutputTransform(const int32_t *gemm_out, int8_t *out_data, cons int output_channel = conv_param->output_channel_; int output_w = conv_param->output_w_; int output_h = conv_param->output_h_; - int oc4 = UP_DIV(output_channel, C4NUM); - int input_unit = 4; - + const int oc4 = UP_DIV(output_channel, C4NUM); + const int input_unit = 4; + if (out_w_block == 0) { + return; + } for (int i = 0; i < real_cal_num; i++) { int out_w_index = (start_index + i) % out_w_block; int out_h_index = (start_index + i) / out_w_block; diff --git a/mindspore/lite/src/runtime/kernel/arm/nnacl/winograd_utils.c b/mindspore/lite/src/runtime/kernel/arm/nnacl/winograd_utils.c index bc4e8fd2bc..33244f29c9 100644 --- a/mindspore/lite/src/runtime/kernel/arm/nnacl/winograd_utils.c +++ b/mindspore/lite/src/runtime/kernel/arm/nnacl/winograd_utils.c @@ -135,10 +135,10 @@ void InputTransform4x4Unit(const float *src_data, float *dst_data, int src_step, float t12 = src_data_12 + 2 * src_data_22; float t13 = src_data_13 + 2 * src_data_23; - float t20 = 2 * src_data_20 - src_data_10; - float t21 = 2 * src_data_21 - src_data_11; - float t22 = 2 * src_data_22 - src_data_12; - float t23 = 2 * src_data_23 - src_data_13; + const float t20 = 2 * src_data_20 - src_data_10; + const float t21 = 2 * src_data_21 - src_data_11; + const float t22 = 2 * src_data_22 - src_data_12; + const float t23 = 2 * src_data_23 - src_data_13; float t30 = src_data_30 - 0.25f * src_data_10; float t31 = src_data_31 - 0.25f * src_data_11; @@ -147,17 +147,17 @@ void InputTransform4x4Unit(const float *src_data, float *dst_data, int src_step, float m00 = t00 - 4 * t02; float m01 = t01 + 2 * t02; - float m02 = 2 * t02 - t01; + const float m02 = 2 * t02 - t01; float m03 = t03 - 0.25f * t01; float m10 = t10 - 4 * t12; float m11 = t11 + 2 * t12; - float m12 = 2 * t12 - t11; + const float m12 = 2 * t12 - t11; float m13 = t13 - 0.25f * t11; float m20 = t20 - 4 * t22; float m21 = t21 + 2 * t22; - float m22 = 2 * t22 - t21; + const float m22 = 2 * t22 - t21; float m23 = t23 - 0.25f * t21; float m30 = t30 - 4 * t32; @@ -987,236 +987,239 @@ void InputTransform8x8Unit(const float *src_data, float *dst_data, int src_step, float t07 = src_data_07 - 5.444444444444444445125f * src_data_27 + 6.222222222222222222223f * src_data_47 - 1.77777777777777778f * src_data_67; - float t10 = 1.5f * src_data_10 + 3.0f * src_data_20 - 2.1666666666666667f * src_data_30 - + const float t10 = 1.5f * src_data_10 + 3.0f * src_data_20 - 2.1666666666666667f * src_data_30 - 4.333333333333333333f * src_data_40 + 0.66666666666666667f * src_data_50 + 1.333333333333333f * src_data_60; - float t11 = 1.5f * src_data_11 + 3.0f * src_data_21 - 2.1666666666666667f * src_data_31 - + const float t11 = 1.5f * src_data_11 + 3.0f * src_data_21 - 2.1666666666666667f * src_data_31 - 4.333333333333333333f * src_data_41 + 0.66666666666666667f * src_data_51 + 1.333333333333333f * src_data_61; - float t12 = 1.5f * src_data_12 + 3.0f * src_data_22 - 2.1666666666666667f * src_data_32 - + const float t12 = 1.5f * src_data_12 + 3.0f * src_data_22 - 2.1666666666666667f * src_data_32 - 4.333333333333333333f * src_data_42 + 0.66666666666666667f * src_data_52 + 1.333333333333333f * src_data_62; - float t13 = 1.5f * src_data_13 + 3.0f * src_data_23 - 2.1666666666666667f * src_data_33 - + const float t13 = 1.5f * src_data_13 + 3.0f * src_data_23 - 2.1666666666666667f * src_data_33 - 4.333333333333333333f * src_data_43 + 0.66666666666666667f * src_data_53 + 1.333333333333333f * src_data_63; - float t14 = 1.5f * src_data_14 + 3.0f * src_data_24 - 2.1666666666666667f * src_data_34 - + const float t14 = 1.5f * src_data_14 + 3.0f * src_data_24 - 2.1666666666666667f * src_data_34 - 4.333333333333333333f * src_data_44 + 0.66666666666666667f * src_data_54 + 1.333333333333333f * src_data_64; - float t15 = 1.5f * src_data_15 + 3.0f * src_data_25 - 2.1666666666666667f * src_data_35 - + const float t15 = 1.5f * src_data_15 + 3.0f * src_data_25 - 2.1666666666666667f * src_data_35 - 4.333333333333333333f * src_data_45 + 0.66666666666666667f * src_data_55 + 1.333333333333333f * src_data_65; - float t16 = 1.5f * src_data_16 + 3.0f * src_data_26 - 2.1666666666666667f * src_data_36 - + const float t16 = 1.5f * src_data_16 + 3.0f * src_data_26 - 2.1666666666666667f * src_data_36 - 4.333333333333333333f * src_data_46 + 0.66666666666666667f * src_data_56 + 1.333333333333333f * src_data_66; - float t17 = 1.5f * src_data_17 + 3.0f * src_data_27 - 2.1666666666666667f * src_data_37 - + const float t17 = 1.5f * src_data_17 + 3.0f * src_data_27 - 2.1666666666666667f * src_data_37 - 4.333333333333333333f * src_data_47 + 0.66666666666666667f * src_data_57 + 1.333333333333333f * src_data_67; - float t20 = -1.5f * src_data_10 + 3.0f * src_data_20 + 2.1666666666666667f * src_data_30 - + const float t20 = -1.5f * src_data_10 + 3.0f * src_data_20 + 2.1666666666666667f * src_data_30 - 4.333333333333333333f * src_data_40 - 0.66666666666666667f * src_data_50 + 1.333333333333333f * src_data_60; - float t21 = -1.5f * src_data_11 + 3.0f * src_data_21 + 2.1666666666666667f * src_data_31 - + const float t21 = -1.5f * src_data_11 + 3.0f * src_data_21 + 2.1666666666666667f * src_data_31 - 4.333333333333333333f * src_data_41 - 0.66666666666666667f * src_data_51 + 1.333333333333333f * src_data_61; - float t22 = -1.5f * src_data_12 + 3.0f * src_data_22 + 2.1666666666666667f * src_data_32 - + const float t22 = -1.5f * src_data_12 + 3.0f * src_data_22 + 2.1666666666666667f * src_data_32 - 4.333333333333333333f * src_data_42 - 0.66666666666666667f * src_data_52 + 1.333333333333333f * src_data_62; - float t23 = -1.5f * src_data_13 + 3.0f * src_data_23 + 2.1666666666666667f * src_data_33 - + const float t23 = -1.5f * src_data_13 + 3.0f * src_data_23 + 2.1666666666666667f * src_data_33 - 4.333333333333333333f * src_data_43 - 0.66666666666666667f * src_data_53 + 1.333333333333333f * src_data_63; - float t24 = -1.5f * src_data_14 + 3.0f * src_data_24 + 2.1666666666666667f * src_data_34 - + const float t24 = -1.5f * src_data_14 + 3.0f * src_data_24 + 2.1666666666666667f * src_data_34 - 4.333333333333333333f * src_data_44 - 0.66666666666666667f * src_data_54 + 1.333333333333333f * src_data_64; - float t25 = -1.5f * src_data_15 + 3.0f * src_data_25 + 2.1666666666666667f * src_data_35 - + const float t25 = -1.5f * src_data_15 + 3.0f * src_data_25 + 2.1666666666666667f * src_data_35 - 4.333333333333333333f * src_data_45 - 0.66666666666666667f * src_data_55 + 1.333333333333333f * src_data_65; - float t26 = -1.5f * src_data_16 + 3.0f * src_data_26 + 2.1666666666666667f * src_data_36 - + const float t26 = -1.5f * src_data_16 + 3.0f * src_data_26 + 2.1666666666666667f * src_data_36 - 4.333333333333333333f * src_data_46 - 0.66666666666666667f * src_data_56 + 1.333333333333333f * src_data_66; - float t27 = -1.5f * src_data_17 + 3.0f * src_data_27 + 2.1666666666666667f * src_data_37 - + const float t27 = -1.5f * src_data_17 + 3.0f * src_data_27 + 2.1666666666666667f * src_data_37 - 4.333333333333333333f * src_data_47 - 0.66666666666666667f * src_data_57 + 1.333333333333333f * src_data_67; - float t30 = -0.3f * (src_data_10 + src_data_20) + 1.33333333333333f * (src_data_30 + src_data_40) - + const float t30 = -0.3f * (src_data_10 + src_data_20) + 1.33333333333333f * (src_data_30 + src_data_40) - 0.53333333333f * (src_data_50 + src_data_60); - float t31 = -0.3f * (src_data_11 + src_data_21) + 1.33333333333333f * (src_data_31 + src_data_41) - + const float t31 = -0.3f * (src_data_11 + src_data_21) + 1.33333333333333f * (src_data_31 + src_data_41) - 0.53333333333f * (src_data_51 + src_data_61); - float t32 = -0.3f * (src_data_12 + src_data_22) + 1.33333333333333f * (src_data_32 + src_data_42) - + const float t32 = -0.3f * (src_data_12 + src_data_22) + 1.33333333333333f * (src_data_32 + src_data_42) - 0.53333333333f * (src_data_52 + src_data_62); - float t33 = -0.3f * (src_data_13 + src_data_23) + 1.33333333333333f * (src_data_33 + src_data_43) - + const float t33 = -0.3f * (src_data_13 + src_data_23) + 1.33333333333333f * (src_data_33 + src_data_43) - 0.53333333333f * (src_data_53 + src_data_63); - float t34 = -0.3f * (src_data_14 + src_data_24) + 1.33333333333333f * (src_data_34 + src_data_44) - + const float t34 = -0.3f * (src_data_14 + src_data_24) + 1.33333333333333f * (src_data_34 + src_data_44) - 0.53333333333f * (src_data_54 + src_data_64); - float t35 = -0.3f * (src_data_15 + src_data_25) + 1.33333333333333f * (src_data_35 + src_data_45) - + const float t35 = -0.3f * (src_data_15 + src_data_25) + 1.33333333333333f * (src_data_35 + src_data_45) - 0.53333333333f * (src_data_55 + src_data_65); - float t36 = -0.3f * (src_data_16 + src_data_26) + 1.33333333333333f * (src_data_36 + src_data_46) - + const const float t36 = -0.3f * (src_data_16 + src_data_26) + 1.33333333333333f * (src_data_36 + src_data_46) - 0.53333333333f * (src_data_56 + src_data_66); - float t37 = -0.3f * (src_data_17 + src_data_27) + 1.33333333333333f * (src_data_37 + src_data_47) - + const const float t37 = -0.3f * (src_data_17 + src_data_27) + 1.33333333333333f * (src_data_37 + src_data_47) - 0.53333333333f * (src_data_57 + src_data_67); - float t40 = 0.3f * (src_data_10 - src_data_20) + 1.33333333333333f * (src_data_40 - src_data_30) + + const float t40 = 0.3f * (src_data_10 - src_data_20) + 1.33333333333333f * (src_data_40 - src_data_30) + 0.53333333333f * (src_data_50 - src_data_60); - float t41 = 0.3f * (src_data_11 - src_data_21) + 1.33333333333333f * (src_data_41 - src_data_31) + + const float t41 = 0.3f * (src_data_11 - src_data_21) + 1.33333333333333f * (src_data_41 - src_data_31) + 0.53333333333f * (src_data_51 - src_data_61); - float t42 = 0.3f * (src_data_12 - src_data_22) + 1.33333333333333f * (src_data_42 - src_data_32) + + const float t42 = 0.3f * (src_data_12 - src_data_22) + 1.33333333333333f * (src_data_42 - src_data_32) + 0.53333333333f * (src_data_52 - src_data_62); - float t43 = 0.3f * (src_data_13 - src_data_23) + 1.33333333333333f * (src_data_43 - src_data_33) + + const float t43 = 0.3f * (src_data_13 - src_data_23) + 1.33333333333333f * (src_data_43 - src_data_33) + 0.53333333333f * (src_data_53 - src_data_63); - float t44 = 0.3f * (src_data_14 - src_data_24) + 1.33333333333333f * (src_data_44 - src_data_34) + + const float t44 = 0.3f * (src_data_14 - src_data_24) + 1.33333333333333f * (src_data_44 - src_data_34) + 0.53333333333f * (src_data_54 - src_data_64); - float t45 = 0.3f * (src_data_15 - src_data_25) + 1.33333333333333f * (src_data_45 - src_data_35) + + const float t45 = 0.3f * (src_data_15 - src_data_25) + 1.33333333333333f * (src_data_45 - src_data_35) + 0.53333333333f * (src_data_55 - src_data_65); - float t46 = 0.3f * (src_data_16 - src_data_26) + 1.33333333333333f * (src_data_46 - src_data_36) + + const float t46 = 0.3f * (src_data_16 - src_data_26) + 1.33333333333333f * (src_data_46 - src_data_36) + 0.53333333333f * (src_data_56 - src_data_66); - float t47 = 0.3f * (src_data_17 - src_data_27) + 1.33333333333333f * (src_data_47 - src_data_37) + + const float t47 = 0.3f * (src_data_17 - src_data_27) + 1.33333333333333f * (src_data_47 - src_data_37) + 0.53333333333f * (src_data_57 - src_data_67); - float t50 = 0.0333333333f * src_data_10 + 0.02222222f * src_data_20 - 0.1666666666f * src_data_30 - + const float t50 = 0.0333333333f * src_data_10 + 0.02222222f * src_data_20 - 0.1666666666f * src_data_30 - 0.1111111111f * src_data_40 + 0.1333333f * src_data_50 + 0.0888888f * src_data_60; - float t51 = 0.0333333333f * src_data_11 + 0.02222222f * src_data_21 - 0.1666666666f * src_data_31 - + const float t51 = 0.0333333333f * src_data_11 + 0.02222222f * src_data_21 - 0.1666666666f * src_data_31 - 0.1111111111f * src_data_41 + 0.1333333f * src_data_51 + 0.0888888f * src_data_61; - float t52 = 0.0333333333f * src_data_12 + 0.02222222f * src_data_22 - 0.1666666666f * src_data_32 - + const float t52 = 0.0333333333f * src_data_12 + 0.02222222f * src_data_22 - 0.1666666666f * src_data_32 - 0.1111111111f * src_data_42 + 0.1333333f * src_data_52 + 0.0888888f * src_data_62; - float t53 = 0.0333333333f * src_data_13 + 0.02222222f * src_data_23 - 0.1666666666f * src_data_33 - + const float t53 = 0.0333333333f * src_data_13 + 0.02222222f * src_data_23 - 0.1666666666f * src_data_33 - 0.1111111111f * src_data_43 + 0.1333333f * src_data_53 + 0.0888888f * src_data_63; - float t54 = 0.0333333333f * src_data_14 + 0.02222222f * src_data_24 - 0.1666666666f * src_data_34 - + const float t54 = 0.0333333333f * src_data_14 + 0.02222222f * src_data_24 - 0.1666666666f * src_data_34 - 0.1111111111f * src_data_44 + 0.1333333f * src_data_54 + 0.0888888f * src_data_64; - float t55 = 0.0333333333f * src_data_15 + 0.02222222f * src_data_25 - 0.1666666666f * src_data_35 - + const float t55 = 0.0333333333f * src_data_15 + 0.02222222f * src_data_25 - 0.1666666666f * src_data_35 - 0.1111111111f * src_data_45 + 0.1333333f * src_data_55 + 0.0888888f * src_data_65; - float t56 = 0.0333333333f * src_data_16 + 0.02222222f * src_data_26 - 0.1666666666f * src_data_36 - + const float t56 = 0.0333333333f * src_data_16 + 0.02222222f * src_data_26 - 0.1666666666f * src_data_36 - 0.1111111111f * src_data_46 + 0.1333333f * src_data_56 + 0.0888888f * src_data_66; - float t57 = 0.0333333333f * src_data_17 + 0.02222222f * src_data_27 - 0.1666666666f * src_data_37 - + const float t57 = 0.0333333333f * src_data_17 + 0.02222222f * src_data_27 - 0.1666666666f * src_data_37 - 0.1111111111f * src_data_47 + 0.1333333f * src_data_57 + 0.0888888f * src_data_67; - float t60 = -0.0333333333f * src_data_10 + 0.02222222f * src_data_20 + 0.1666666666f * src_data_30 - + const float t60 = -0.0333333333f * src_data_10 + 0.02222222f * src_data_20 + 0.1666666666f * src_data_30 - 0.1111111111f * src_data_40 - 0.1333333f * src_data_50 + 0.0888888f * src_data_60; - float t61 = -0.0333333333f * src_data_11 + 0.02222222f * src_data_21 + 0.1666666666f * src_data_31 - + const float t61 = -0.0333333333f * src_data_11 + 0.02222222f * src_data_21 + 0.1666666666f * src_data_31 - 0.1111111111f * src_data_41 - 0.1333333f * src_data_51 + 0.0888888f * src_data_61; - float t62 = -0.0333333333f * src_data_12 + 0.02222222f * src_data_22 + 0.1666666666f * src_data_32 - + const float t62 = -0.0333333333f * src_data_12 + 0.02222222f * src_data_22 + 0.1666666666f * src_data_32 - 0.1111111111f * src_data_42 - 0.1333333f * src_data_52 + 0.0888888f * src_data_62; - float t63 = -0.0333333333f * src_data_13 + 0.02222222f * src_data_23 + 0.1666666666f * src_data_33 - + const float t63 = -0.0333333333f * src_data_13 + 0.02222222f * src_data_23 + 0.1666666666f * src_data_33 - 0.1111111111f * src_data_43 - 0.1333333f * src_data_53 + 0.0888888f * src_data_63; - float t64 = -0.0333333333f * src_data_14 + 0.02222222f * src_data_24 + 0.1666666666f * src_data_34 - + const float t64 = -0.0333333333f * src_data_14 + 0.02222222f * src_data_24 + 0.1666666666f * src_data_34 - 0.1111111111f * src_data_44 - 0.1333333f * src_data_54 + 0.0888888f * src_data_64; - float t65 = -0.0333333333f * src_data_15 + 0.02222222f * src_data_25 + 0.1666666666f * src_data_35 - + const float t65 = -0.0333333333f * src_data_15 + 0.02222222f * src_data_25 + 0.1666666666f * src_data_35 - 0.1111111111f * src_data_45 - 0.1333333f * src_data_55 + 0.0888888f * src_data_65; - float t66 = -0.0333333333f * src_data_16 + 0.02222222f * src_data_26 + 0.1666666666f * src_data_36 - + const float t66 = -0.0333333333f * src_data_16 + 0.02222222f * src_data_26 + 0.1666666666f * src_data_36 - 0.1111111111f * src_data_46 - 0.1333333f * src_data_56 + 0.0888888f * src_data_66; - float t67 = -0.0333333333f * src_data_17 + 0.02222222f * src_data_27 + 0.1666666666f * src_data_37 - + const float t67 = -0.0333333333f * src_data_17 + 0.02222222f * src_data_27 + 0.1666666666f * src_data_37 - 0.1111111111f * src_data_47 - 0.1333333f * src_data_57 + 0.0888888f * src_data_67; - float t70 = -0.5625f * src_data_10 + 3.0625f * src_data_30 - 3.5f * src_data_50 + src_data_70; - float t71 = -0.5625f * src_data_11 + 3.0625f * src_data_31 - 3.5f * src_data_51 + src_data_71; - float t72 = -0.5625f * src_data_12 + 3.0625f * src_data_32 - 3.5f * src_data_52 + src_data_72; - float t73 = -0.5625f * src_data_13 + 3.0625f * src_data_33 - 3.5f * src_data_53 + src_data_73; - float t74 = -0.5625f * src_data_14 + 3.0625f * src_data_34 - 3.5f * src_data_54 + src_data_74; - float t75 = -0.5625f * src_data_15 + 3.0625f * src_data_35 - 3.5f * src_data_55 + src_data_75; - float t76 = -0.5625f * src_data_16 + 3.0625f * src_data_36 - 3.5f * src_data_56 + src_data_76; - float t77 = -0.5625f * src_data_17 + 3.0625f * src_data_37 - 3.5f * src_data_57 + src_data_77; - - float m00 = t00 - 5.444444444444444445125f * t02 + 6.222222222222222222223f * t04 - 1.77777777777777778f * t06; - float m01 = 1.5f * t01 + 3.0f * t02 - 2.1666666666666667f * t03 - 4.333333333333333333f * t04 + + const float t70 = -0.5625f * src_data_10 + 3.0625f * src_data_30 - 3.5f * src_data_50 + src_data_70; + const float t71 = -0.5625f * src_data_11 + 3.0625f * src_data_31 - 3.5f * src_data_51 + src_data_71; + const float t72 = -0.5625f * src_data_12 + 3.0625f * src_data_32 - 3.5f * src_data_52 + src_data_72; + const float t73 = -0.5625f * src_data_13 + 3.0625f * src_data_33 - 3.5f * src_data_53 + src_data_73; + const float t74 = -0.5625f * src_data_14 + 3.0625f * src_data_34 - 3.5f * src_data_54 + src_data_74; + const float t75 = -0.5625f * src_data_15 + 3.0625f * src_data_35 - 3.5f * src_data_55 + src_data_75; + const float t76 = -0.5625f * src_data_16 + 3.0625f * src_data_36 - 3.5f * src_data_56 + src_data_76; + const float t77 = -0.5625f * src_data_17 + 3.0625f * src_data_37 - 3.5f * src_data_57 + src_data_77; + + const float m00 = t00 - 5.444444444444444445125f * t02 + 6.222222222222222222223f * t04 - + 1.77777777777777778f * t06; + const float m01 = 1.5f * t01 + 3.0f * t02 - 2.1666666666666667f * t03 - 4.333333333333333333f * t04 + 0.66666666666666667f * t05 + 1.333333333333333f * t06; - float m02 = -1.5f * t01 + 3.0f * t02 + 2.1666666666666667f * t03 - 4.333333333333333333f * t04 - + const float m02 = -1.5f * t01 + 3.0f * t02 + 2.1666666666666667f * t03 - 4.333333333333333333f * t04 - 0.66666666666666667f * t05 + 1.333333333333333f * t06; - float m03 = -0.3f * (t01 + t02) + 1.33333333333333f * (t03 + t04) - 0.53333333333f * (t05 + t06); - float m04 = 0.3f * (t01 - t02) + 1.33333333333333f * (t04 - t03) + 0.53333333333f * (t05 - t06); - float m05 = 0.0333333333f * t01 + 0.02222222f * t02 - 0.1666666666f * t03 - 0.1111111111f * t04 + 0.1333333f * t05 + - 0.0888888f * t06; - float m06 = -0.0333333333f * t01 + 0.02222222f * t02 + 0.1666666666f * t03 - 0.1111111111f * t04 - + const float m03 = -0.3f * (t01 + t02) + 1.33333333333333f * (t03 + t04) - 0.53333333333f * (t05 + t06); + const float m04 = 0.3f * (t01 - t02) + 1.33333333333333f * (t04 - t03) + 0.53333333333f * (t05 - t06); + const float m05 = 0.0333333333f * t01 + 0.02222222f * t02 - 0.1666666666f * t03 - 0.1111111111f * t04 + + 0.1333333f * t05 + 0.0888888f * t06; + const float m06 = -0.0333333333f * t01 + 0.02222222f * t02 + 0.1666666666f * t03 - 0.1111111111f * t04 - 0.1333333f * t05 + 0.0888888f * t06; - float m07 = -0.5625f * t01 + 3.0625f * t03 - 3.5f * t05 + t07; + const float m07 = -0.5625f * t01 + 3.0625f * t03 - 3.5f * t05 + t07; float m10 = t10 - 5.444444444444444445125f * t12 + 6.222222222222222222223f * t14 - 1.77777777777777778f * t16; - float m11 = 1.5f * t11 + 3.0f * t12 - 2.1666666666666667f * t13 - 4.333333333333333333f * t14 + + const float m11 = 1.5f * t11 + 3.0f * t12 - 2.1666666666666667f * t13 - 4.333333333333333333f * t14 + 0.66666666666666667f * t15 + 1.333333333333333f * t16; - float m12 = -1.5f * t11 + 3.0f * t12 + 2.1666666666666667f * t13 - 4.333333333333333333f * t14 - + const float m12 = -1.5f * t11 + 3.0f * t12 + 2.1666666666666667f * t13 - 4.333333333333333333f * t14 - 0.66666666666666667f * t15 + 1.333333333333333f * t16; - float m13 = -0.3f * (t11 + t12) + 1.33333333333333f * (t13 + t14) - 0.53333333333f * (t15 + t16); - float m14 = 0.3f * (t11 - t12) + 1.33333333333333f * (t14 - t13) + 0.53333333333f * (t15 - t16); - float m15 = 0.0333333333f * t11 + 0.02222222f * t12 - 0.1666666666f * t13 - 0.1111111111f * t14 + 0.1333333f * t15 + - 0.0888888f * t16; - float m16 = -0.0333333333f * t11 + 0.02222222f * t12 + 0.1666666666f * t13 - 0.1111111111f * t14 - + const float m13 = -0.3f * (t11 + t12) + 1.33333333333333f * (t13 + t14) - 0.53333333333f * (t15 + t16); + const float m14 = 0.3f * (t11 - t12) + 1.33333333333333f * (t14 - t13) + 0.53333333333f * (t15 - t16); + const float m15 = 0.0333333333f * t11 + 0.02222222f * t12 - 0.1666666666f * t13 - 0.1111111111f * t14 + + 0.1333333f * t15 + 0.0888888f * t16; + const float m16 = -0.0333333333f * t11 + 0.02222222f * t12 + 0.1666666666f * t13 - 0.1111111111f * t14 - 0.1333333f * t15 + 0.0888888f * t16; - float m17 = -0.5625f * t11 + 3.0625f * t13 - 3.5f * t15 + t17; + const float m17 = -0.5625f * t11 + 3.0625f * t13 - 3.5f * t15 + t17; - float m20 = t20 - 5.444444444444444445125f * t22 + 6.222222222222222222223f * t24 - 1.77777777777777778f * t26; - float m21 = 1.5f * t21 + 3.0f * t22 - 2.1666666666666667f * t23 - 4.333333333333333333f * t24 + + const float m20 = t20 - 5.444444444444444445125f * t22 + 6.222222222222222222223f * t24 - + 1.77777777777777778f * t26; + const float m21 = 1.5f * t21 + 3.0f * t22 - 2.1666666666666667f * t23 - 4.333333333333333333f * t24 + 0.66666666666666667f * t25 + 1.333333333333333f * t26; - float m22 = -1.5f * t21 + 3.0f * t22 + 2.1666666666666667f * t23 - 4.333333333333333333f * t24 - + const float m22 = -1.5f * t21 + 3.0f * t22 + 2.1666666666666667f * t23 - 4.333333333333333333f * t24 - 0.66666666666666667f * t25 + 1.333333333333333f * t26; - float m23 = -0.3f * (t21 + t22) + 1.33333333333333f * (t23 + t24) - 0.53333333333f * (t25 + t26); - float m24 = 0.3f * (t21 - t22) + 1.33333333333333f * (t24 - t23) + 0.53333333333f * (t25 - t26); - float m25 = 0.0333333333f * t21 + 0.02222222f * t22 - 0.1666666666f * t23 - 0.1111111111f * t24 + 0.1333333f * t25 + - 0.0888888f * t26; - float m26 = -0.0333333333f * t21 + 0.02222222f * t22 + 0.1666666666f * t23 - 0.1111111111f * t24 - + const float m23 = -0.3f * (t21 + t22) + 1.33333333333333f * (t23 + t24) - 0.53333333333f * (t25 + t26); + const float m24 = 0.3f * (t21 - t22) + 1.33333333333333f * (t24 - t23) + 0.53333333333f * (t25 - t26); + const float m25 = 0.0333333333f * t21 + 0.02222222f * t22 - 0.1666666666f * t23 - 0.1111111111f * t24 + + 0.1333333f * t25 + 0.0888888f * t26; + const float m26 = -0.0333333333f * t21 + 0.02222222f * t22 + 0.1666666666f * t23 - 0.1111111111f * t24 - 0.1333333f * t25 + 0.0888888f * t26; - float m27 = -0.5625f * t21 + 3.0625f * t23 - 3.5f * t25 + t27; + const float m27 = -0.5625f * t21 + 3.0625f * t23 - 3.5f * t25 + t27; float m30 = t30 - 5.444444444444444445125f * t32 + 6.222222222222222222223f * t34 - 1.77777777777777778f * t36; - float m31 = 1.5f * t31 + 3.0f * t32 - 2.1666666666666667f * t33 - 4.333333333333333333f * t34 + + const float m31 = 1.5f * t31 + 3.0f * t32 - 2.1666666666666667f * t33 - 4.333333333333333333f * t34 + 0.66666666666666667f * t35 + 1.333333333333333f * t36; - float m32 = -1.5f * t31 + 3.0f * t32 + 2.1666666666666667f * t33 - 4.333333333333333333f * t34 - + const float m32 = -1.5f * t31 + 3.0f * t32 + 2.1666666666666667f * t33 - 4.333333333333333333f * t34 - 0.66666666666666667f * t35 + 1.333333333333333f * t36; - float m33 = -0.3f * (t31 + t32) + 1.33333333333333f * (t33 + t34) - 0.53333333333f * (t35 + t36); - float m34 = 0.3f * (t31 - t32) + 1.33333333333333f * (t34 - t33) + 0.53333333333f * (t35 - t36); - float m35 = 0.0333333333f * t31 + 0.02222222f * t32 - 0.1666666666f * t33 - 0.1111111111f * t34 + 0.1333333f * t35 + - 0.0888888f * t36; - float m36 = -0.0333333333f * t31 + 0.02222222f * t32 + 0.1666666666f * t33 - 0.1111111111f * t34 - + const float m33 = -0.3f * (t31 + t32) + 1.33333333333333f * (t33 + t34) - 0.53333333333f * (t35 + t36); + const float m34 = 0.3f * (t31 - t32) + 1.33333333333333f * (t34 - t33) + 0.53333333333f * (t35 - t36); + const float m35 = 0.0333333333f * t31 + 0.02222222f * t32 - 0.1666666666f * t33 - 0.1111111111f * t34 + + 0.1333333f * t35 + 0.0888888f * t36; + const float m36 = -0.0333333333f * t31 + 0.02222222f * t32 + 0.1666666666f * t33 - 0.1111111111f * t34 - 0.1333333f * t35 + 0.0888888f * t36; - float m37 = -0.5625f * t31 + 3.0625f * t33 - 3.5f * t35 + t37; + const float m37 = -0.5625f * t31 + 3.0625f * t33 - 3.5f * t35 + t37; - float m40 = t40 - 5.444444444444444445125f * t42 + 6.222222222222222222223f * t44 - 1.77777777777777778f * t46; - float m41 = 1.5f * t41 + 3.0f * t42 - 2.1666666666666667f * t43 - 4.333333333333333333f * t44 + + const float m40 = t40 - 5.444444444444444445125f * t42 + 6.222222222222222222223f * t44 - + 1.77777777777777778f * t46; + const float m41 = 1.5f * t41 + 3.0f * t42 - 2.1666666666666667f * t43 - 4.333333333333333333f * t44 + 0.66666666666666667f * t45 + 1.333333333333333f * t46; - float m42 = -1.5f * t41 + 3.0f * t42 + 2.1666666666666667f * t43 - 4.333333333333333333f * t44 - + const float m42 = -1.5f * t41 + 3.0f * t42 + 2.1666666666666667f * t43 - 4.333333333333333333f * t44 - 0.66666666666666667f * t45 + 1.333333333333333f * t46; - float m43 = -0.3f * (t41 + t42) + 1.33333333333333f * (t43 + t44) - 0.53333333333f * (t45 + t46); - float m44 = 0.3f * (t41 - t42) + 1.33333333333333f * (t44 - t43) + 0.53333333333f * (t45 - t46); - float m45 = 0.0333333333f * t41 + 0.02222222f * t42 - 0.1666666666f * t43 - 0.1111111111f * t44 + 0.1333333f * t45 + - 0.0888888f * t46; - float m46 = -0.0333333333f * t41 + 0.02222222f * t42 + 0.1666666666f * t43 - 0.1111111111f * t44 - + const float m43 = -0.3f * (t41 + t42) + 1.33333333333333f * (t43 + t44) - 0.53333333333f * (t45 + t46); + const float m44 = 0.3f * (t41 - t42) + 1.33333333333333f * (t44 - t43) + 0.53333333333f * (t45 - t46); + const float m45 = 0.0333333333f * t41 + 0.02222222f * t42 - 0.1666666666f * t43 - 0.1111111111f * t44 + + 0.1333333f * t45 + 0.0888888f * t46; + const float m46 = -0.0333333333f * t41 + 0.02222222f * t42 + 0.1666666666f * t43 - 0.1111111111f * t44 - 0.1333333f * t45 + 0.0888888f * t46; - float m47 = -0.5625f * t41 + 3.0625f * t43 - 3.5f * t45 + t47; + const float m47 = -0.5625f * t41 + 3.0625f * t43 - 3.5f * t45 + t47; float m50 = t50 - 5.444444444444444445125f * t52 + 6.222222222222222222223f * t54 - 1.77777777777777778f * t56; - float m51 = 1.5f * t51 + 3.0f * t52 - 2.1666666666666667f * t53 - 4.333333333333333333f * t54 + + const float m51 = 1.5f * t51 + 3.0f * t52 - 2.1666666666666667f * t53 - 4.333333333333333333f * t54 + 0.66666666666666667f * t55 + 1.333333333333333f * t56; - float m52 = -1.5f * t51 + 3.0f * t52 + 2.1666666666666667f * t53 - 4.333333333333333333f * t54 - + const float m52 = -1.5f * t51 + 3.0f * t52 + 2.1666666666666667f * t53 - 4.333333333333333333f * t54 - 0.66666666666666667f * t55 + 1.333333333333333f * t56; - float m53 = -0.3f * (t51 + t52) + 1.33333333333333f * (t53 + t54) - 0.53333333333f * (t55 + t56); - float m54 = 0.3f * (t51 - t52) + 1.33333333333333f * (t54 - t53) + 0.53333333333f * (t55 - t56); - float m55 = 0.0333333333f * t51 + 0.02222222f * t52 - 0.1666666666f * t53 - 0.1111111111f * t54 + 0.1333333f * t55 + - 0.0888888f * t56; - float m56 = -0.0333333333f * t51 + 0.02222222f * t52 + 0.1666666666f * t53 - 0.1111111111f * t54 - + const float m53 = -0.3f * (t51 + t52) + 1.33333333333333f * (t53 + t54) - 0.53333333333f * (t55 + t56); + const float m54 = 0.3f * (t51 - t52) + 1.33333333333333f * (t54 - t53) + 0.53333333333f * (t55 - t56); + const float m55 = 0.0333333333f * t51 + 0.02222222f * t52 - 0.1666666666f * t53 - 0.1111111111f * t54 + + 0.1333333f * t55 + 0.0888888f * t56; + const float m56 = -0.0333333333f * t51 + 0.02222222f * t52 + 0.1666666666f * t53 - 0.1111111111f * t54 - 0.1333333f * t55 + 0.0888888f * t56; - float m57 = -0.5625f * t51 + 3.0625f * t53 - 3.5f * t55 + t57; + const float m57 = -0.5625f * t51 + 3.0625f * t53 - 3.5f * t55 + t57; float m60 = t60 - 5.444444444444444445125f * t62 + 6.222222222222222222223f * t64 - 1.77777777777777778f * t66; - float m61 = 1.5f * t61 + 3.0f * t62 - 2.1666666666666667f * t63 - 4.333333333333333333f * t64 + + const float m61 = 1.5f * t61 + 3.0f * t62 - 2.1666666666666667f * t63 - 4.333333333333333333f * t64 + 0.66666666666666667f * t65 + 1.333333333333333f * t66; - float m62 = -1.5f * t61 + 3.0f * t62 + 2.1666666666666667f * t63 - 4.333333333333333333f * t64 - + const float m62 = -1.5f * t61 + 3.0f * t62 + 2.1666666666666667f * t63 - 4.333333333333333333f * t64 - 0.66666666666666667f * t65 + 1.333333333333333f * t66; - float m63 = -0.3f * (t61 + t62) + 1.33333333333333f * (t63 + t64) - 0.53333333333f * (t65 + t66); - float m64 = 0.3f * (t61 - t62) + 1.33333333333333f * (t64 - t63) + 0.53333333333f * (t65 - t66); - float m65 = 0.0333333333f * t61 + 0.02222222f * t62 - 0.1666666666f * t63 - 0.1111111111f * t64 + 0.1333333f * t65 + - 0.0888888f * t66; - float m66 = -0.0333333333f * t61 + 0.02222222f * t62 + 0.1666666666f * t63 - 0.1111111111f * t64 - + const float m63 = -0.3f * (t61 + t62) + 1.33333333333333f * (t63 + t64) - 0.53333333333f * (t65 + t66); + const float m64 = 0.3f * (t61 - t62) + 1.33333333333333f * (t64 - t63) + 0.53333333333f * (t65 - t66); + const float m65 = 0.0333333333f * t61 + 0.02222222f * t62 - 0.1666666666f * t63 - 0.1111111111f * t64 + + 0.1333333f * t65 + 0.0888888f * t66; + const float m66 = -0.0333333333f * t61 + 0.02222222f * t62 + 0.1666666666f * t63 - 0.1111111111f * t64 - 0.1333333f * t65 + 0.0888888f * t66; - float m67 = -0.5625f * t61 + 3.0625f * t63 - 3.5f * t65 + t67; + const float m67 = -0.5625f * t61 + 3.0625f * t63 - 3.5f * t65 + t67; float m70 = t70 - 5.444444444444444445125f * t72 + 6.222222222222222222223f * t74 - 1.77777777777777778f * t76; - float m71 = 1.5f * t71 + 3.0f * t72 - 2.1666666666666667f * t73 - 4.333333333333333333f * t74 + + const float m71 = 1.5f * t71 + 3.0f * t72 - 2.1666666666666667f * t73 - 4.333333333333333333f * t74 + 0.66666666666666667f * t75 + 1.333333333333333f * t76; - float m72 = -1.5f * t71 + 3.0f * t72 + 2.1666666666666667f * t73 - 4.333333333333333333f * t74 - + const float m72 = -1.5f * t71 + 3.0f * t72 + 2.1666666666666667f * t73 - 4.333333333333333333f * t74 - 0.66666666666666667f * t75 + 1.333333333333333f * t76; - float m73 = -0.3f * (t71 + t72) + 1.33333333333333f * (t73 + t74) - 0.53333333333f * (t75 + t76); - float m74 = 0.3f * (t71 - t72) + 1.33333333333333f * (t74 - t73) + 0.53333333333f * (t75 - t76); - float m75 = 0.0333333333f * t71 + 0.02222222f * t72 - 0.1666666666f * t73 - 0.1111111111f * t74 + 0.1333333f * t75 + - 0.0888888f * t76; - float m76 = -0.0333333333f * t71 + 0.02222222f * t72 + 0.1666666666f * t73 - 0.1111111111f * t74 - + const float m73 = -0.3f * (t71 + t72) + 1.33333333333333f * (t73 + t74) - 0.53333333333f * (t75 + t76); + const float m74 = 0.3f * (t71 - t72) + 1.33333333333333f * (t74 - t73) + 0.53333333333f * (t75 - t76); + const float m75 = 0.0333333333f * t71 + 0.02222222f * t72 - 0.1666666666f * t73 - 0.1111111111f * t74 + + 0.1333333f * t75 + 0.0888888f * t76; + const float m76 = -0.0333333333f * t71 + 0.02222222f * t72 + 0.1666666666f * t73 - 0.1111111111f * t74 - 0.1333333f * t75 + 0.0888888f * t76; - float m77 = -0.5625f * t71 + 3.0625f * t73 - 3.5f * t75 + t77; + const float m77 = -0.5625f * t71 + 3.0625f * t73 - 3.5f * t75 + t77; (dst_data + i)[0] = m00; (dst_data + i + dst_step)[0] = m01; @@ -1357,15 +1360,15 @@ void OutputTransform4x2Unit(const float *src_data, float *dst_data, const float float t02 = src_data_02 + src_data_12 + src_data_22; float t03 = src_data_03 + src_data_13 + src_data_23; - float t10 = 0.5f * (src_data_10 - src_data_20) + src_data_30; - float t11 = 0.5f * (src_data_11 - src_data_21) + src_data_31; - float t12 = 0.5f * (src_data_12 - src_data_22) + src_data_32; - float t13 = 0.5f * (src_data_13 - src_data_23) + src_data_33; + const float t10 = 0.5f * (src_data_10 - src_data_20) + src_data_30; + const float t11 = 0.5f * (src_data_11 - src_data_21) + src_data_31; + const float t12 = 0.5f * (src_data_12 - src_data_22) + src_data_32; + const float t13 = 0.5f * (src_data_13 - src_data_23) + src_data_33; float m00 = t00 + t01 + t02 + bias_data[i]; - float m01 = 0.5f * (t01 - t02) + t03 + bias_data[i]; + const float m01 = 0.5f * (t01 - t02) + t03 + bias_data[i]; float m10 = t10 + t11 + t12 + bias_data[i]; - float m11 = 0.5f * (t11 - t12) + t13 + bias_data[i]; + const float m11 = 0.5f * (t11 - t12) + t13 + bias_data[i]; (dst_data + i)[0] = m00; (dst_data + i + C4NUM)[0] = m01; @@ -1454,27 +1457,27 @@ void OutputTransform4x3Unit(const float *src_data, float *dst_data, const float float t02 = src_data_02 + src_data_12 + src_data_22; float t03 = src_data_03 + src_data_13 + src_data_23; - float t10 = 0.5f * (src_data_10 - src_data_20); - float t11 = 0.5f * (src_data_11 - src_data_21); - float t12 = 0.5f * (src_data_12 - src_data_22); - float t13 = 0.5f * (src_data_13 - src_data_23); + const float t10 = 0.5f * (src_data_10 - src_data_20); + const float t11 = 0.5f * (src_data_11 - src_data_21); + const float t12 = 0.5f * (src_data_12 - src_data_22); + const const float t13 = 0.5f * (src_data_13 - src_data_23); - float t20 = 0.25f * (src_data_10 + src_data_20) + src_data_30; - float t21 = 0.25f * (src_data_11 + src_data_21) + src_data_31; - float t22 = 0.25f * (src_data_12 + src_data_22) + src_data_32; - float t23 = 0.25f * (src_data_13 + src_data_23) + src_data_33; + const float t20 = 0.25f * (src_data_10 + src_data_20) + src_data_30; + const float t21 = 0.25f * (src_data_11 + src_data_21) + src_data_31; + const float t22 = 0.25f * (src_data_12 + src_data_22) + src_data_32; + const float t23 = 0.25f * (src_data_13 + src_data_23) + src_data_33; float m00 = t00 + t01 + t02 + bias_data[i]; - float m01 = 0.5f * (t01 - t02) + bias_data[i]; - float m02 = 0.25f * (t01 + t02) + t03 + bias_data[i]; + const float m01 = 0.5f * (t01 - t02) + bias_data[i]; + const float m02 = 0.25f * (t01 + t02) + t03 + bias_data[i]; float m10 = t10 + t11 + t12 + bias_data[i]; - float m11 = 0.5f * (t11 - t12) + bias_data[i]; - float m12 = 0.25f * (t11 + t12) + t13 + bias_data[i]; + const float m11 = 0.5f * (t11 - t12) + bias_data[i]; + const float m12 = 0.25f * (t11 + t12) + t13 + bias_data[i]; float m20 = t20 + t21 + t22 + bias_data[i]; - float m21 = 0.5f * (t21 - t22) + bias_data[i]; - float m22 = 0.25f * (t21 + t22) + t23 + bias_data[i]; + const float m21 = 0.5f * (t21 - t22) + bias_data[i]; + const float m22 = 0.25f * (t21 + t22) + t23 + bias_data[i]; (dst_data + i)[0] = m00; (dst_data + i + C4NUM)[0] = m01; @@ -1760,14 +1763,14 @@ void OutputTransform8x2Unit(const float *src_data, float *dst_data, const float float t06 = src_data_06 + src_data_16 + src_data_26 + src_data_36 + src_data_46 + src_data_56 + src_data_66; float t07 = src_data_07 + src_data_17 + src_data_27 + src_data_37 + src_data_47 + src_data_57 + src_data_67; - float t10 = 0.5f * d01 + d11 + 1.5f * d21 + src_data_70; - float t11 = 0.5f * d02 + d12 + 1.5f * d22 + src_data_71; - float t12 = 0.5f * d03 + d13 + 1.5f * d23 + src_data_72; - float t13 = 0.5f * d04 + d14 + 1.5f * d24 + src_data_73; - float t14 = 0.5f * d05 + d15 + 1.5f * d25 + src_data_74; - float t15 = 0.5f * d06 + d16 + 1.5f * d26 + src_data_75; - float t16 = 0.5f * d07 + d17 + 1.5f * d27 + src_data_76; - float t17 = 0.5f * d08 + d18 + 1.5f * d28 + src_data_77; + const float t10 = 0.5f * d01 + d11 + 1.5f * d21 + src_data_70; + const float t11 = 0.5f * d02 + d12 + 1.5f * d22 + src_data_71; + const float t12 = 0.5f * d03 + d13 + 1.5f * d23 + src_data_72; + const float t13 = 0.5f * d04 + d14 + 1.5f * d24 + src_data_73; + const float t14 = 0.5f * d05 + d15 + 1.5f * d25 + src_data_74; + const float t15 = 0.5f * d06 + d16 + 1.5f * d26 + src_data_75; + const float t16 = 0.5f * d07 + d17 + 1.5f * d27 + src_data_76; + const float t17 = 0.5f * d08 + d18 + 1.5f * d28 + src_data_77; float s11 = t01 - t02; float s12 = t11 - t12; @@ -1777,9 +1780,9 @@ void OutputTransform8x2Unit(const float *src_data, float *dst_data, const float float s32 = t15 - t16; float m00 = t00 + t01 + t02 + t03 + t04 + t05 + t06; - float m01 = 0.5f * s11 + s21 + 1.5f * s31 + t07; + const float m01 = 0.5f * s11 + s21 + 1.5f * s31 + t07; float m10 = t10 + t11 + t12 + t13 + t14 + t15 + t16; - float m11 = 0.5f * s12 + s22 + 1.5f * s32 + t17; + const float m11 = 0.5f * s12 + s22 + 1.5f * s32 + t17; (dst_data + i)[0] = m00 + bias_data[i]; (dst_data + i + C4NUM)[0] = m01 + bias_data[i]; @@ -2148,23 +2151,23 @@ void OutputTransform8x3Unit(const float *src_data, float *dst_data, const float float t06 = src_data_06 + src_data_16 + src_data_26 + src_data_36 + src_data_46 + src_data_56 + src_data_66; float t07 = src_data_07 + src_data_17 + src_data_27 + src_data_37 + src_data_47 + src_data_57 + src_data_67; - float t10 = 0.5f * d01 + d11 + 1.5f * d21; - float t11 = 0.5f * d02 + d12 + 1.5f * d22; - float t12 = 0.5f * d03 + d13 + 1.5f * d23; - float t13 = 0.5f * d04 + d14 + 1.5f * d24; - float t14 = 0.5f * d05 + d15 + 1.5f * d25; - float t15 = 0.5f * d06 + d16 + 1.5f * d26; - float t16 = 0.5f * d07 + d17 + 1.5f * d27; - float t17 = 0.5f * d08 + d18 + 1.5f * d28; - - float t20 = 0.25f * d31 + d41 + 2.25f * d51 + src_data_70; - float t21 = 0.25f * d32 + d42 + 2.25f * d52 + src_data_71; - float t22 = 0.25f * d33 + d43 + 2.25f * d53 + src_data_72; - float t23 = 0.25f * d34 + d44 + 2.25f * d54 + src_data_73; - float t24 = 0.25f * d35 + d45 + 2.25f * d55 + src_data_74; - float t25 = 0.25f * d36 + d46 + 2.25f * d56 + src_data_75; - float t26 = 0.25f * d37 + d47 + 2.25f * d57 + src_data_76; - float t27 = 0.25f * d38 + d48 + 2.25f * d58 + src_data_77; + const float t10 = 0.5f * d01 + d11 + 1.5f * d21; + const float t11 = 0.5f * d02 + d12 + 1.5f * d22; + const float t12 = 0.5f * d03 + d13 + 1.5f * d23; + const float t13 = 0.5f * d04 + d14 + 1.5f * d24; + const float t14 = 0.5f * d05 + d15 + 1.5f * d25; + const float t15 = 0.5f * d06 + d16 + 1.5f * d26; + const float t16 = 0.5f * d07 + d17 + 1.5f * d27; + const float t17 = 0.5f * d08 + d18 + 1.5f * d28; + + const float t20 = 0.25f * d31 + d41 + 2.25f * d51 + src_data_70; + const float t21 = 0.25f * d32 + d42 + 2.25f * d52 + src_data_71; + const float t22 = 0.25f * d33 + d43 + 2.25f * d53 + src_data_72; + const float t23 = 0.25f * d34 + d44 + 2.25f * d54 + src_data_73; + const float t24 = 0.25f * d35 + d45 + 2.25f * d55 + src_data_74; + const float t25 = 0.25f * d36 + d46 + 2.25f * d56 + src_data_75; + const float t26 = 0.25f * d37 + d47 + 2.25f * d57 + src_data_76; + const float t27 = 0.25f * d38 + d48 + 2.25f * d58 + src_data_77; float s11 = t01 - t02; float s12 = t11 - t12; @@ -2191,16 +2194,16 @@ void OutputTransform8x3Unit(const float *src_data, float *dst_data, const float float s63 = t25 + t26; float m00 = t00 + t01 + t02 + t03 + t04 + t05 + t06; - float m01 = 0.5f * s11 + s21 + 1.5f * s31; - float m02 = 0.25f * s41 + s51 + 2.25f * s61 + t07; + const float m01 = 0.5f * s11 + s21 + 1.5f * s31; + const float m02 = 0.25f * s41 + s51 + 2.25f * s61 + t07; float m10 = t10 + t11 + t12 + t13 + t14 + t15 + t16; - float m11 = 0.5f * s12 + s22 + 1.5f * s32; - float m12 = 0.25f * s42 + s52 + 2.25f * s62 + t17; + const float m11 = 0.5f * s12 + s22 + 1.5f * s32; + const float m12 = 0.25f * s42 + s52 + 2.25f * s62 + t17; float m20 = t20 + t21 + t22 + t23 + t24 + t25 + t26; - float m21 = 0.5f * s13 + s23 + 1.5f * s33; - float m22 = 0.25f * s43 + s53 + 2.25f * s63 + t27; + const float m21 = 0.5f * s13 + s23 + 1.5f * s33; + const float m22 = 0.25f * s43 + s53 + 2.25f * s63 + t27; (dst_data + i)[0] = m00 + bias_data[i]; (dst_data + i + C4NUM)[0] = m01 + bias_data[i]; @@ -2607,32 +2610,32 @@ void OutputTransform8x4Unit(const float *src_data, float *dst_data, const float float t06 = src_data_06 + src_data_16 + src_data_26 + src_data_36 + src_data_46 + src_data_56 + src_data_66; float t07 = src_data_07 + src_data_17 + src_data_27 + src_data_37 + src_data_47 + src_data_57 + src_data_67; - float t10 = 0.5f * d01 + d11 + 1.5f * d21; - float t11 = 0.5f * d02 + d12 + 1.5f * d22; - float t12 = 0.5f * d03 + d13 + 1.5f * d23; - float t13 = 0.5f * d04 + d14 + 1.5f * d24; - float t14 = 0.5f * d05 + d15 + 1.5f * d25; - float t15 = 0.5f * d06 + d16 + 1.5f * d26; - float t16 = 0.5f * d07 + d17 + 1.5f * d27; - float t17 = 0.5f * d08 + d18 + 1.5f * d28; - - float t20 = 0.25f * d31 + d41 + 2.25f * d51; - float t21 = 0.25f * d32 + d42 + 2.25f * d52; - float t22 = 0.25f * d33 + d43 + 2.25f * d53; - float t23 = 0.25f * d34 + d44 + 2.25f * d54; - float t24 = 0.25f * d35 + d45 + 2.25f * d55; - float t25 = 0.25f * d36 + d46 + 2.25f * d56; - float t26 = 0.25f * d37 + d47 + 2.25f * d57; - float t27 = 0.25f * d38 + d48 + 2.25f * d58; - - float t30 = 0.125f * d01 + d11 + 3.375f * d21 + src_data_70; - float t31 = 0.125f * d02 + d12 + 3.375f * d22 + src_data_71; - float t32 = 0.125f * d03 + d13 + 3.375f * d23 + src_data_72; - float t33 = 0.125f * d04 + d14 + 3.375f * d24 + src_data_73; - float t34 = 0.125f * d05 + d15 + 3.375f * d25 + src_data_74; - float t35 = 0.125f * d06 + d16 + 3.375f * d26 + src_data_75; - float t36 = 0.125f * d07 + d17 + 3.375f * d27 + src_data_76; - float t37 = 0.125f * d08 + d18 + 3.375f * d28 + src_data_77; + const float t10 = 0.5f * d01 + d11 + 1.5f * d21; + const float t11 = 0.5f * d02 + d12 + 1.5f * d22; + const float t12 = 0.5f * d03 + d13 + 1.5f * d23; + const float t13 = 0.5f * d04 + d14 + 1.5f * d24; + const float t14 = 0.5f * d05 + d15 + 1.5f * d25; + const float t15 = 0.5f * d06 + d16 + 1.5f * d26; + const float t16 = 0.5f * d07 + d17 + 1.5f * d27; + const float t17 = 0.5f * d08 + d18 + 1.5f * d28; + + const float t20 = 0.25f * d31 + d41 + 2.25f * d51; + const float t21 = 0.25f * d32 + d42 + 2.25f * d52; + const float t22 = 0.25f * d33 + d43 + 2.25f * d53; + const float t23 = 0.25f * d34 + d44 + 2.25f * d54; + const float t24 = 0.25f * d35 + d45 + 2.25f * d55; + const float t25 = 0.25f * d36 + d46 + 2.25f * d56; + const float t26 = 0.25f * d37 + d47 + 2.25f * d57; + const const float t27 = 0.25f * d38 + d48 + 2.25f * d58; + + const float t30 = 0.125f * d01 + d11 + 3.375f * d21 + src_data_70; + const float t31 = 0.125f * d02 + d12 + 3.375f * d22 + src_data_71; + const float t32 = 0.125f * d03 + d13 + 3.375f * d23 + src_data_72; + const float t33 = 0.125f * d04 + d14 + 3.375f * d24 + src_data_73; + const float t34 = 0.125f * d05 + d15 + 3.375f * d25 + src_data_74; + const float t35 = 0.125f * d06 + d16 + 3.375f * d26 + src_data_75; + const float t36 = 0.125f * d07 + d17 + 3.375f * d27 + src_data_76; + const float t37 = 0.125f * d08 + d18 + 3.375f * d28 + src_data_77; float s11 = t01 - t02; float s12 = t11 - t12; @@ -2665,24 +2668,24 @@ void OutputTransform8x4Unit(const float *src_data, float *dst_data, const float float s64 = t35 + t36; float m00 = t00 + t01 + t02 + t03 + t04 + t05 + t06; - float m01 = 0.5f * s11 + s21 + 1.5f * s31; - float m02 = 0.25f * s41 + s51 + 2.25f * s61; - float m03 = 0.125f * s11 + s21 + 3.375f * s31 + t07; + const float m01 = 0.5f * s11 + s21 + 1.5f * s31; + const float m02 = 0.25f * s41 + s51 + 2.25f * s61; + const float m03 = 0.125f * s11 + s21 + 3.375f * s31 + t07; float m10 = t10 + t11 + t12 + t13 + t14 + t15 + t16; - float m11 = 0.5f * s12 + s22 + 1.5f * s32; - float m12 = 0.25f * s42 + s52 + 2.25f * s62; - float m13 = 0.125f * s12 + s22 + 3.375f * s32 + t17; + const float m11 = 0.5f * s12 + s22 + 1.5f * s32; + const float m12 = 0.25f * s42 + s52 + 2.25f * s62; + const float m13 = 0.125f * s12 + s22 + 3.375f * s32 + t17; float m20 = t20 + t21 + t22 + t23 + t24 + t25 + t26; - float m21 = 0.5f * s13 + s23 + 1.5f * s33; - float m22 = 0.25f * s43 + s53 + 2.25f * s63; - float m23 = 0.125f * s13 + s23 + 3.375f * s33 + t27; + const float m21 = 0.5f * s13 + s23 + 1.5f * s33; + const float m22 = 0.25f * s43 + s53 + 2.25f * s63; + const float m23 = 0.125f * s13 + s23 + 3.375f * s33 + t27; float m30 = t30 + t31 + t32 + t33 + t34 + t35 + t36; - float m31 = 0.5f * s14 + s24 + 1.5f * s34; - float m32 = 0.25f * s44 + s54 + 2.25f * s64; - float m33 = 0.125f * s14 + s24 + 3.375f * s34 + t37; + const float m31 = 0.5f * s14 + s24 + 1.5f * s34; + const float m32 = 0.25f * s44 + s54 + 2.25f * s64; + const float m33 = 0.125f * s14 + s24 + 3.375f * s34 + t37; (dst_data + i)[0] = m00 + bias_data[i]; (dst_data + i + C4NUM)[0] = m01 + bias_data[i]; @@ -3140,41 +3143,41 @@ void OutputTransform8x5Unit(const float *src_data, float *dst_data, const float float t06 = src_data_06 + src_data_16 + src_data_26 + src_data_36 + src_data_46 + src_data_56 + src_data_66; float t07 = src_data_07 + src_data_17 + src_data_27 + src_data_37 + src_data_47 + src_data_57 + src_data_67; - float t10 = 0.5f * d01 + d11 + 1.5f * d21; - float t11 = 0.5f * d02 + d12 + 1.5f * d22; - float t12 = 0.5f * d03 + d13 + 1.5f * d23; - float t13 = 0.5f * d04 + d14 + 1.5f * d24; - float t14 = 0.5f * d05 + d15 + 1.5f * d25; - float t15 = 0.5f * d06 + d16 + 1.5f * d26; - float t16 = 0.5f * d07 + d17 + 1.5f * d27; - float t17 = 0.5f * d08 + d18 + 1.5f * d28; - - float t20 = 0.25f * d31 + d41 + 2.25f * d51; - float t21 = 0.25f * d32 + d42 + 2.25f * d52; - float t22 = 0.25f * d33 + d43 + 2.25f * d53; - float t23 = 0.25f * d34 + d44 + 2.25f * d54; - float t24 = 0.25f * d35 + d45 + 2.25f * d55; - float t25 = 0.25f * d36 + d46 + 2.25f * d56; - float t26 = 0.25f * d37 + d47 + 2.25f * d57; - float t27 = 0.25f * d38 + d48 + 2.25f * d58; - - float t30 = 0.125f * d01 + d11 + 3.375f * d21; - float t31 = 0.125f * d02 + d12 + 3.375f * d22; - float t32 = 0.125f * d03 + d13 + 3.375f * d23; - float t33 = 0.125f * d04 + d14 + 3.375f * d24; - float t34 = 0.125f * d05 + d15 + 3.375f * d25; - float t35 = 0.125f * d06 + d16 + 3.375f * d26; - float t36 = 0.125f * d07 + d17 + 3.375f * d27; - float t37 = 0.125f * d08 + d18 + 3.375f * d28; - - float t40 = 0.0625f * d31 + d41 + 5.0625f * d51 + src_data_70; - float t41 = 0.0625f * d32 + d42 + 5.0625f * d52 + src_data_71; - float t42 = 0.0625f * d33 + d43 + 5.0625f * d53 + src_data_72; - float t43 = 0.0625f * d34 + d44 + 5.0625f * d54 + src_data_73; - float t44 = 0.0625f * d35 + d45 + 5.0625f * d55 + src_data_74; - float t45 = 0.0625f * d36 + d46 + 5.0625f * d56 + src_data_75; - float t46 = 0.0625f * d37 + d47 + 5.0625f * d57 + src_data_76; - float t47 = 0.0625f * d38 + d48 + 5.0625f * d58 + src_data_77; + const float t10 = 0.5f * d01 + d11 + 1.5f * d21; + const float t11 = 0.5f * d02 + d12 + 1.5f * d22; + const float t12 = 0.5f * d03 + d13 + 1.5f * d23; + const float t13 = 0.5f * d04 + d14 + 1.5f * d24; + const float t14 = 0.5f * d05 + d15 + 1.5f * d25; + const float t15 = 0.5f * d06 + d16 + 1.5f * d26; + const float t16 = 0.5f * d07 + d17 + 1.5f * d27; + const float t17 = 0.5f * d08 + d18 + 1.5f * d28; + + const float t20 = 0.25f * d31 + d41 + 2.25f * d51; + const float t21 = 0.25f * d32 + d42 + 2.25f * d52; + const float t22 = 0.25f * d33 + d43 + 2.25f * d53; + const float t23 = 0.25f * d34 + d44 + 2.25f * d54; + const float t24 = 0.25f * d35 + d45 + 2.25f * d55; + const float t25 = 0.25f * d36 + d46 + 2.25f * d56; + const float t26 = 0.25f * d37 + d47 + 2.25f * d57; + const float t27 = 0.25f * d38 + d48 + 2.25f * d58; + + const float t30 = 0.125f * d01 + d11 + 3.375f * d21; + const float t31 = 0.125f * d02 + d12 + 3.375f * d22; + const float t32 = 0.125f * d03 + d13 + 3.375f * d23; + const float t33 = 0.125f * d04 + d14 + 3.375f * d24; + const float t34 = 0.125f * d05 + d15 + 3.375f * d25; + const float t35 = 0.125f * d06 + d16 + 3.375f * d26; + const float t36 = 0.125f * d07 + d17 + 3.375f * d27; + const float t37 = 0.125f * d08 + d18 + 3.375f * d28; + + const float t40 = 0.0625f * d31 + d41 + 5.0625f * d51 + src_data_70; + const float t41 = 0.0625f * d32 + d42 + 5.0625f * d52 + src_data_71; + const float t42 = 0.0625f * d33 + d43 + 5.0625f * d53 + src_data_72; + const float t43 = 0.0625f * d34 + d44 + 5.0625f * d54 + src_data_73; + const float t44 = 0.0625f * d35 + d45 + 5.0625f * d55 + src_data_74; + const float t45 = 0.0625f * d36 + d46 + 5.0625f * d56 + src_data_75; + const float t46 = 0.0625f * d37 + d47 + 5.0625f * d57 + src_data_76; + const float t47 = 0.0625f * d38 + d48 + 5.0625f * d58 + src_data_77; float s11 = t01 - t02; float s12 = t11 - t12; @@ -3213,34 +3216,34 @@ void OutputTransform8x5Unit(const float *src_data, float *dst_data, const float float s65 = t45 + t46; float m00 = t00 + t01 + t02 + t03 + t04 + t05 + t06; - float m01 = 0.5f * s11 + s21 + 1.5f * s31; - float m02 = 0.25f * s41 + s51 + 2.25f * s61; - float m03 = 0.125f * s11 + s21 + 3.375f * s31; - float m04 = 0.0625f * s41 + s51 + 5.0625f * s61 + t07; + const float m01 = 0.5f * s11 + s21 + 1.5f * s31; + const float m02 = 0.25f * s41 + s51 + 2.25f * s61; + const float m03 = 0.125f * s11 + s21 + 3.375f * s31; + const float m04 = 0.0625f * s41 + s51 + 5.0625f * s61 + t07; float m10 = t10 + t11 + t12 + t13 + t14 + t15 + t16; - float m11 = 0.5f * s12 + s22 + 1.5f * s32; - float m12 = 0.25f * s42 + s52 + 2.25f * s62; - float m13 = 0.125f * s12 + s22 + 3.375f * s32; - float m14 = 0.0625f * s42 + s52 + 5.0625f * s62 + t17; + const float m11 = 0.5f * s12 + s22 + 1.5f * s32; + const float m12 = 0.25f * s42 + s52 + 2.25f * s62; + const float m13 = 0.125f * s12 + s22 + 3.375f * s32; + const float m14 = 0.0625f * s42 + s52 + 5.0625f * s62 + t17; float m20 = t20 + t21 + t22 + t23 + t24 + t25 + t26; - float m21 = 0.5f * s13 + s23 + 1.5f * s33; - float m22 = 0.25f * s43 + s53 + 2.25f * s63; - float m23 = 0.125f * s13 + s23 + 3.375f * s33; - float m24 = 0.0625f * s43 + s53 + 5.0625f * s63 + t27; + const float m21 = 0.5f * s13 + s23 + 1.5f * s33; + const float m22 = 0.25f * s43 + s53 + 2.25f * s63; + const float m23 = 0.125f * s13 + s23 + 3.375f * s33; + const float m24 = 0.0625f * s43 + s53 + 5.0625f * s63 + t27; float m30 = t30 + t31 + t32 + t33 + t34 + t35 + t36; - float m31 = 0.5f * s14 + s24 + 1.5f * s34; - float m32 = 0.25f * s44 + s54 + 2.25f * s64; - float m33 = 0.125f * s14 + s24 + 3.375f * s34; - float m34 = 0.0625f * s44 + s54 + 5.0625f * s64 + t37; + const float m31 = 0.5f * s14 + s24 + 1.5f * s34; + const float m32 = 0.25f * s44 + s54 + 2.25f * s64; + const float m33 = 0.125f * s14 + s24 + 3.375f * s34; + const float m34 = 0.0625f * s44 + s54 + 5.0625f * s64 + t37; float m40 = t40 + t41 + t42 + t43 + t44 + t45 + t46; - float m41 = 0.5f * s15 + s25 + 1.5f * s35; - float m42 = 0.25f * s45 + s55 + 2.25f * s65; - float m43 = 0.125f * s15 + s25 + 3.375f * s35; - float m44 = 0.0625f * s45 + s55 + 5.0625f * s65 + t47; + const float m41 = 0.5f * s15 + s25 + 1.5f * s35; + const float m42 = 0.25f * s45 + s55 + 2.25f * s65; + const float m43 = 0.125f * s15 + s25 + 3.375f * s35; + const float m44 = 0.0625f * s45 + s55 + 5.0625f * s65 + t47; (dst_data + i)[0] = m00 + bias_data[i]; (dst_data + i + C4NUM)[0] = m01 + bias_data[i]; @@ -3742,50 +3745,50 @@ void OutputTransform8x6Unit(const float *src_data, float *dst_data, const float float t06 = src_data_06 + src_data_16 + src_data_26 + src_data_36 + src_data_46 + src_data_56 + src_data_66; float t07 = src_data_07 + src_data_17 + src_data_27 + src_data_37 + src_data_47 + src_data_57 + src_data_67; - float t10 = 0.5f * d01 + d11 + 1.5f * d21; - float t11 = 0.5f * d02 + d12 + 1.5f * d22; - float t12 = 0.5f * d03 + d13 + 1.5f * d23; - float t13 = 0.5f * d04 + d14 + 1.5f * d24; - float t14 = 0.5f * d05 + d15 + 1.5f * d25; - float t15 = 0.5f * d06 + d16 + 1.5f * d26; - float t16 = 0.5f * d07 + d17 + 1.5f * d27; - float t17 = 0.5f * d08 + d18 + 1.5f * d28; - - float t20 = 0.25f * d31 + d41 + 2.25f * d51; - float t21 = 0.25f * d32 + d42 + 2.25f * d52; - float t22 = 0.25f * d33 + d43 + 2.25f * d53; - float t23 = 0.25f * d34 + d44 + 2.25f * d54; - float t24 = 0.25f * d35 + d45 + 2.25f * d55; - float t25 = 0.25f * d36 + d46 + 2.25f * d56; - float t26 = 0.25f * d37 + d47 + 2.25f * d57; - float t27 = 0.25f * d38 + d48 + 2.25f * d58; - - float t30 = 0.125f * d01 + d11 + 3.375f * d21; - float t31 = 0.125f * d02 + d12 + 3.375f * d22; - float t32 = 0.125f * d03 + d13 + 3.375f * d23; - float t33 = 0.125f * d04 + d14 + 3.375f * d24; - float t34 = 0.125f * d05 + d15 + 3.375f * d25; - float t35 = 0.125f * d06 + d16 + 3.375f * d26; - float t36 = 0.125f * d07 + d17 + 3.375f * d27; - float t37 = 0.125f * d08 + d18 + 3.375f * d28; - - float t40 = 0.0625f * d31 + d41 + 5.0625f * d51; - float t41 = 0.0625f * d32 + d42 + 5.0625f * d52; - float t42 = 0.0625f * d33 + d43 + 5.0625f * d53; - float t43 = 0.0625f * d34 + d44 + 5.0625f * d54; - float t44 = 0.0625f * d35 + d45 + 5.0625f * d55; - float t45 = 0.0625f * d36 + d46 + 5.0625f * d56; - float t46 = 0.0625f * d37 + d47 + 5.0625f * d57; - float t47 = 0.0625f * d38 + d48 + 5.0625f * d58; - - float t50 = 0.03125f * d01 + d11 + 7.59375f * d21 + src_data_70; - float t51 = 0.03125f * d02 + d12 + 7.59375f * d22 + src_data_71; - float t52 = 0.03125f * d03 + d13 + 7.59375f * d23 + src_data_72; - float t53 = 0.03125f * d04 + d14 + 7.59375f * d24 + src_data_73; - float t54 = 0.03125f * d05 + d15 + 7.59375f * d25 + src_data_74; - float t55 = 0.03125f * d06 + d16 + 7.59375f * d26 + src_data_75; - float t56 = 0.03125f * d07 + d17 + 7.59375f * d27 + src_data_76; - float t57 = 0.03125f * d08 + d18 + 7.59375f * d28 + src_data_77; + const float t10 = 0.5f * d01 + d11 + 1.5f * d21; + const float t11 = 0.5f * d02 + d12 + 1.5f * d22; + const float t12 = 0.5f * d03 + d13 + 1.5f * d23; + const float t13 = 0.5f * d04 + d14 + 1.5f * d24; + const float t14 = 0.5f * d05 + d15 + 1.5f * d25; + const float t15 = 0.5f * d06 + d16 + 1.5f * d26; + const float t16 = 0.5f * d07 + d17 + 1.5f * d27; + const float t17 = 0.5f * d08 + d18 + 1.5f * d28; + + const float t20 = 0.25f * d31 + d41 + 2.25f * d51; + const float t21 = 0.25f * d32 + d42 + 2.25f * d52; + const float t22 = 0.25f * d33 + d43 + 2.25f * d53; + const float t23 = 0.25f * d34 + d44 + 2.25f * d54; + const float t24 = 0.25f * d35 + d45 + 2.25f * d55; + const float t25 = 0.25f * d36 + d46 + 2.25f * d56; + const float t26 = 0.25f * d37 + d47 + 2.25f * d57; + const float t27 = 0.25f * d38 + d48 + 2.25f * d58; + + const float t30 = 0.125f * d01 + d11 + 3.375f * d21; + const float t31 = 0.125f * d02 + d12 + 3.375f * d22; + const float t32 = 0.125f * d03 + d13 + 3.375f * d23; + const float t33 = 0.125f * d04 + d14 + 3.375f * d24; + const float t34 = 0.125f * d05 + d15 + 3.375f * d25; + const float t35 = 0.125f * d06 + d16 + 3.375f * d26; + const float t36 = 0.125f * d07 + d17 + 3.375f * d27; + const float t37 = 0.125f * d08 + d18 + 3.375f * d28; + + const float t40 = 0.0625f * d31 + d41 + 5.0625f * d51; + const float t41 = 0.0625f * d32 + d42 + 5.0625f * d52; + const float t42 = 0.0625f * d33 + d43 + 5.0625f * d53; + const float t43 = 0.0625f * d34 + d44 + 5.0625f * d54; + const float t44 = 0.0625f * d35 + d45 + 5.0625f * d55; + const float t45 = 0.0625f * d36 + d46 + 5.0625f * d56; + const float t46 = 0.0625f * d37 + d47 + 5.0625f * d57; + const float t47 = 0.0625f * d38 + d48 + 5.0625f * d58; + + const float t50 = 0.03125f * d01 + d11 + 7.59375f * d21 + src_data_70; + const float t51 = 0.03125f * d02 + d12 + 7.59375f * d22 + src_data_71; + const float t52 = 0.03125f * d03 + d13 + 7.59375f * d23 + src_data_72; + const float t53 = 0.03125f * d04 + d14 + 7.59375f * d24 + src_data_73; + const float t54 = 0.03125f * d05 + d15 + 7.59375f * d25 + src_data_74; + const const float t55 = 0.03125f * d06 + d16 + 7.59375f * d26 + src_data_75; + const float t56 = 0.03125f * d07 + d17 + 7.59375f * d27 + src_data_76; + const float t57 = 0.03125f * d08 + d18 + 7.59375f * d28 + src_data_77; float s11 = t01 - t02; float s12 = t11 - t12; @@ -3830,46 +3833,46 @@ void OutputTransform8x6Unit(const float *src_data, float *dst_data, const float float s66 = t55 + t56; float m00 = t00 + t01 + t02 + t03 + t04 + t05 + t06; - float m01 = 0.5f * s11 + s21 + 1.5f * s31; - float m02 = 0.25f * s41 + s51 + 2.25f * s61; - float m03 = 0.125f * s11 + s21 + 3.375f * s31; - float m04 = 0.0625f * s41 + s51 + 5.0625f * s61; - float m05 = 0.03125f * s11 + s21 + 7.59375f * s31 + t07; + const float m01 = 0.5f * s11 + s21 + 1.5f * s31; + const float m02 = 0.25f * s41 + s51 + 2.25f * s61; + const float m03 = 0.125f * s11 + s21 + 3.375f * s31; + const float m04 = 0.0625f * s41 + s51 + 5.0625f * s61; + const float m05 = 0.03125f * s11 + s21 + 7.59375f * s31 + t07; float m10 = t10 + t11 + t12 + t13 + t14 + t15 + t16; - float m11 = 0.5f * s12 + s22 + 1.5f * s32; - float m12 = 0.25f * s42 + s52 + 2.25f * s62; - float m13 = 0.125f * s12 + s22 + 3.375f * s32; - float m14 = 0.0625f * s42 + s52 + 5.0625f * s62; - float m15 = 0.03125f * s12 + s22 + 7.59375f * s32 + t17; + const float m11 = 0.5f * s12 + s22 + 1.5f * s32; + const float m12 = 0.25f * s42 + s52 + 2.25f * s62; + const float m13 = 0.125f * s12 + s22 + 3.375f * s32; + const float m14 = 0.0625f * s42 + s52 + 5.0625f * s62; + const float m15 = 0.03125f * s12 + s22 + 7.59375f * s32 + t17; float m20 = t20 + t21 + t22 + t23 + t24 + t25 + t26; - float m21 = 0.5f * s13 + s23 + 1.5f * s33; - float m22 = 0.25f * s43 + s53 + 2.25f * s63; - float m23 = 0.125f * s13 + s23 + 3.375f * s33; - float m24 = 0.0625f * s43 + s53 + 5.0625f * s63; - float m25 = 0.03125f * s13 + s23 + 7.59375f * s33 + t27; + const float m21 = 0.5f * s13 + s23 + 1.5f * s33; + const float m22 = 0.25f * s43 + s53 + 2.25f * s63; + const float m23 = 0.125f * s13 + s23 + 3.375f * s33; + const float m24 = 0.0625f * s43 + s53 + 5.0625f * s63; + const float m25 = 0.03125f * s13 + s23 + 7.59375f * s33 + t27; float m30 = t30 + t31 + t32 + t33 + t34 + t35 + t36; - float m31 = 0.5f * s14 + s24 + 1.5f * s34; - float m32 = 0.25f * s44 + s54 + 2.25f * s64; - float m33 = 0.125f * s14 + s24 + 3.375f * s34; - float m34 = 0.0625f * s44 + s54 + 5.0625f * s64; - float m35 = 0.03125f * s14 + s24 + 7.59375f * s34 + t37; + const float m31 = 0.5f * s14 + s24 + 1.5f * s34; + const float m32 = 0.25f * s44 + s54 + 2.25f * s64; + const float m33 = 0.125f * s14 + s24 + 3.375f * s34; + const float m34 = 0.0625f * s44 + s54 + 5.0625f * s64; + const float m35 = 0.03125f * s14 + s24 + 7.59375f * s34 + t37; float m40 = t40 + t41 + t42 + t43 + t44 + t45 + t46; - float m41 = 0.5f * s15 + s25 + 1.5f * s35; - float m42 = 0.25f * s45 + s55 + 2.25f * s65; - float m43 = 0.125f * s15 + s25 + 3.375f * s35; - float m44 = 0.0625f * s45 + s55 + 5.0625f * s65; - float m45 = 0.03125f * s15 + s25 + 7.59375f * s35 + t47; + const float m41 = 0.5f * s15 + s25 + 1.5f * s35; + const float m42 = 0.25f * s45 + s55 + 2.25f * s65; + const float m43 = 0.125f * s15 + s25 + 3.375f * s35; + const float m44 = 0.0625f * s45 + s55 + 5.0625f * s65; + const float m45 = 0.03125f * s15 + s25 + 7.59375f * s35 + t47; float m50 = t50 + t51 + t52 + t53 + t54 + t55 + t56; - float m51 = 0.5f * s16 + s26 + 1.5f * s36; - float m52 = 0.25f * s46 + s56 + 2.25f * s66; - float m53 = 0.125f * s16 + s26 + 3.375f * s36; - float m54 = 0.0625f * s46 + s56 + 5.0625f * s66; - float m55 = 0.03125f * s16 + s26 + 7.59375f * s36 + t57; + const float m51 = 0.5f * s16 + s26 + 1.5f * s36; + const float m52 = 0.25f * s46 + s56 + 2.25f * s66; + const float m53 = 0.125f * s16 + s26 + 3.375f * s36; + const float m54 = 0.0625f * s46 + s56 + 5.0625f * s66; + const float m55 = 0.03125f * s16 + s26 + 7.59375f * s36 + t57; (dst_data + i)[0] = m00 + bias_data[i]; (dst_data + i + C4NUM)[0] = m01 + bias_data[i]; @@ -4425,59 +4428,59 @@ void OutputTransform8x7Unit(const float *src_data, float *dst_data, const float float t06 = src_data_06 + src_data_16 + src_data_26 + src_data_36 + src_data_46 + src_data_56 + src_data_66; float t07 = src_data_07 + src_data_17 + src_data_27 + src_data_37 + src_data_47 + src_data_57 + src_data_67; - float t10 = 0.5f * d01 + d11 + 1.5f * d21; - float t11 = 0.5f * d02 + d12 + 1.5f * d22; - float t12 = 0.5f * d03 + d13 + 1.5f * d23; - float t13 = 0.5f * d04 + d14 + 1.5f * d24; - float t14 = 0.5f * d05 + d15 + 1.5f * d25; - float t15 = 0.5f * d06 + d16 + 1.5f * d26; - float t16 = 0.5f * d07 + d17 + 1.5f * d27; - float t17 = 0.5f * d08 + d18 + 1.5f * d28; - - float t20 = 0.25f * d31 + d41 + 2.25f * d51; - float t21 = 0.25f * d32 + d42 + 2.25f * d52; - float t22 = 0.25f * d33 + d43 + 2.25f * d53; - float t23 = 0.25f * d34 + d44 + 2.25f * d54; - float t24 = 0.25f * d35 + d45 + 2.25f * d55; - float t25 = 0.25f * d36 + d46 + 2.25f * d56; - float t26 = 0.25f * d37 + d47 + 2.25f * d57; - float t27 = 0.25f * d38 + d48 + 2.25f * d58; - - float t30 = 0.125f * d01 + d11 + 3.375f * d21; - float t31 = 0.125f * d02 + d12 + 3.375f * d22; - float t32 = 0.125f * d03 + d13 + 3.375f * d23; - float t33 = 0.125f * d04 + d14 + 3.375f * d24; - float t34 = 0.125f * d05 + d15 + 3.375f * d25; - float t35 = 0.125f * d06 + d16 + 3.375f * d26; - float t36 = 0.125f * d07 + d17 + 3.375f * d27; - float t37 = 0.125f * d08 + d18 + 3.375f * d28; - - float t40 = 0.0625f * d31 + d41 + 5.0625f * d51; - float t41 = 0.0625f * d32 + d42 + 5.0625f * d52; - float t42 = 0.0625f * d33 + d43 + 5.0625f * d53; - float t43 = 0.0625f * d34 + d44 + 5.0625f * d54; - float t44 = 0.0625f * d35 + d45 + 5.0625f * d55; - float t45 = 0.0625f * d36 + d46 + 5.0625f * d56; - float t46 = 0.0625f * d37 + d47 + 5.0625f * d57; - float t47 = 0.0625f * d38 + d48 + 5.0625f * d58; - - float t50 = 0.03125f * d01 + d11 + 7.59375f * d21; - float t51 = 0.03125f * d02 + d12 + 7.59375f * d22; - float t52 = 0.03125f * d03 + d13 + 7.59375f * d23; - float t53 = 0.03125f * d04 + d14 + 7.59375f * d24; - float t54 = 0.03125f * d05 + d15 + 7.59375f * d25; - float t55 = 0.03125f * d06 + d16 + 7.59375f * d26; - float t56 = 0.03125f * d07 + d17 + 7.59375f * d27; - float t57 = 0.03125f * d08 + d18 + 7.59375f * d28; - - float t60 = 0.015625f * d31 + d41 + 11.390625f * d51 + src_data_70; - float t61 = 0.015625f * d32 + d42 + 11.390625f * d52 + src_data_71; - float t62 = 0.015625f * d33 + d43 + 11.390625f * d53 + src_data_72; - float t63 = 0.015625f * d34 + d44 + 11.390625f * d54 + src_data_73; - float t64 = 0.015625f * d35 + d45 + 11.390625f * d55 + src_data_74; - float t65 = 0.015625f * d36 + d46 + 11.390625f * d56 + src_data_75; - float t66 = 0.015625f * d37 + d47 + 11.390625f * d57 + src_data_76; - float t67 = 0.015625f * d38 + d48 + 11.390625f * d58 + src_data_77; + const float t10 = 0.5f * d01 + d11 + 1.5f * d21; + const float t11 = 0.5f * d02 + d12 + 1.5f * d22; + const float t12 = 0.5f * d03 + d13 + 1.5f * d23; + const float t13 = 0.5f * d04 + d14 + 1.5f * d24; + const float t14 = 0.5f * d05 + d15 + 1.5f * d25; + const float t15 = 0.5f * d06 + d16 + 1.5f * d26; + const float t16 = 0.5f * d07 + d17 + 1.5f * d27; + const float t17 = 0.5f * d08 + d18 + 1.5f * d28; + + const float t20 = 0.25f * d31 + d41 + 2.25f * d51; + const float t21 = 0.25f * d32 + d42 + 2.25f * d52; + const float t22 = 0.25f * d33 + d43 + 2.25f * d53; + const float t23 = 0.25f * d34 + d44 + 2.25f * d54; + const float t24 = 0.25f * d35 + d45 + 2.25f * d55; + const float t25 = 0.25f * d36 + d46 + 2.25f * d56; + const float t26 = 0.25f * d37 + d47 + 2.25f * d57; + const float t27 = 0.25f * d38 + d48 + 2.25f * d58; + + const float t30 = 0.125f * d01 + d11 + 3.375f * d21; + const float t31 = 0.125f * d02 + d12 + 3.375f * d22; + const float t32 = 0.125f * d03 + d13 + 3.375f * d23; + const float t33 = 0.125f * d04 + d14 + 3.375f * d24; + const float t34 = 0.125f * d05 + d15 + 3.375f * d25; + const float t35 = 0.125f * d06 + d16 + 3.375f * d26; + const float t36 = 0.125f * d07 + d17 + 3.375f * d27; + const float t37 = 0.125f * d08 + d18 + 3.375f * d28; + + const float t40 = 0.0625f * d31 + d41 + 5.0625f * d51; + const float t41 = 0.0625f * d32 + d42 + 5.0625f * d52; + const float t42 = 0.0625f * d33 + d43 + 5.0625f * d53; + const float t43 = 0.0625f * d34 + d44 + 5.0625f * d54; + const float t44 = 0.0625f * d35 + d45 + 5.0625f * d55; + const float t45 = 0.0625f * d36 + d46 + 5.0625f * d56; + const float t46 = 0.0625f * d37 + d47 + 5.0625f * d57; + const float t47 = 0.0625f * d38 + d48 + 5.0625f * d58; + + const float t50 = 0.03125f * d01 + d11 + 7.59375f * d21; + const float t51 = 0.03125f * d02 + d12 + 7.59375f * d22; + const float t52 = 0.03125f * d03 + d13 + 7.59375f * d23; + const float t53 = 0.03125f * d04 + d14 + 7.59375f * d24; + const float t54 = 0.03125f * d05 + d15 + 7.59375f * d25; + const float t55 = 0.03125f * d06 + d16 + 7.59375f * d26; + const float t56 = 0.03125f * d07 + d17 + 7.59375f * d27; + const float t57 = 0.03125f * d08 + d18 + 7.59375f * d28; + + const float t60 = 0.015625f * d31 + d41 + 11.390625f * d51 + src_data_70; + const float t61 = 0.015625f * d32 + d42 + 11.390625f * d52 + src_data_71; + const float t62 = 0.015625f * d33 + d43 + 11.390625f * d53 + src_data_72; + const float t63 = 0.015625f * d34 + d44 + 11.390625f * d54 + src_data_73; + const float t64 = 0.015625f * d35 + d45 + 11.390625f * d55 + src_data_74; + const float t65 = 0.015625f * d36 + d46 + 11.390625f * d56 + src_data_75; + const float t66 = 0.015625f * d37 + d47 + 11.390625f * d57 + src_data_76; + const float t67 = 0.015625f * d38 + d48 + 11.390625f * d58 + src_data_77; float s11 = t01 - t02; float s12 = t11 - t12; @@ -4528,60 +4531,60 @@ void OutputTransform8x7Unit(const float *src_data, float *dst_data, const float float s67 = t65 + t66; float m00 = t00 + t01 + t02 + t03 + t04 + t05 + t06; - float m01 = 0.5f * s11 + s21 + 1.5f * s31; - float m02 = 0.25f * s41 + s51 + 2.25f * s61; - float m03 = 0.125f * s11 + s21 + 3.375f * s31; - float m04 = 0.0625f * s41 + s51 + 5.0625f * s61; - float m05 = 0.03125f * s11 + s21 + 7.59375f * s31; - float m06 = 0.015625f * s41 + s51 + 11.390625f * s61 + t07; + const float m01 = 0.5f * s11 + s21 + 1.5f * s31; + const float m02 = 0.25f * s41 + s51 + 2.25f * s61; + const float m03 = 0.125f * s11 + s21 + 3.375f * s31; + const float m04 = 0.0625f * s41 + s51 + 5.0625f * s61; + const float m05 = 0.03125f * s11 + s21 + 7.59375f * s31; + const float m06 = 0.015625f * s41 + s51 + 11.390625f * s61 + t07; float m10 = t10 + t11 + t12 + t13 + t14 + t15 + t16; - float m11 = 0.5f * s12 + s22 + 1.5f * s32; - float m12 = 0.25f * s42 + s52 + 2.25f * s62; - float m13 = 0.125f * s12 + s22 + 3.375f * s32; - float m14 = 0.0625f * s42 + s52 + 5.0625f * s62; - float m15 = 0.03125f * s12 + s22 + 7.59375f * s32; - float m16 = 0.015625f * s42 + s52 + 11.390625f * s62 + t17; + const float m11 = 0.5f * s12 + s22 + 1.5f * s32; + const float m12 = 0.25f * s42 + s52 + 2.25f * s62; + const float m13 = 0.125f * s12 + s22 + 3.375f * s32; + const float m14 = 0.0625f * s42 + s52 + 5.0625f * s62; + const float m15 = 0.03125f * s12 + s22 + 7.59375f * s32; + const float m16 = 0.015625f * s42 + s52 + 11.390625f * s62 + t17; float m20 = t20 + t21 + t22 + t23 + t24 + t25 + t26; - float m21 = 0.5f * s13 + s23 + 1.5f * s33; - float m22 = 0.25f * s43 + s53 + 2.25f * s63; - float m23 = 0.125f * s13 + s23 + 3.375f * s33; - float m24 = 0.0625f * s43 + s53 + 5.0625f * s63; - float m25 = 0.03125f * s13 + s23 + 7.59375f * s33; - float m26 = 0.015625f * s43 + s53 + 11.390625f * s63 + t27; + const float m21 = 0.5f * s13 + s23 + 1.5f * s33; + const float m22 = 0.25f * s43 + s53 + 2.25f * s63; + const float m23 = 0.125f * s13 + s23 + 3.375f * s33; + const float m24 = 0.0625f * s43 + s53 + 5.0625f * s63; + const float m25 = 0.03125f * s13 + s23 + 7.59375f * s33; + const float m26 = 0.015625f * s43 + s53 + 11.390625f * s63 + t27; float m30 = t30 + t31 + t32 + t33 + t34 + t35 + t36; - float m31 = 0.5f * s14 + s24 + 1.5f * s34; - float m32 = 0.25f * s44 + s54 + 2.25f * s64; - float m33 = 0.125f * s14 + s24 + 3.375f * s34; - float m34 = 0.0625f * s44 + s54 + 5.0625f * s64; - float m35 = 0.03125f * s14 + s24 + 7.59375f * s34; - float m36 = 0.015625f * s44 + s54 + 11.390625f * s64 + t37; + const float m31 = 0.5f * s14 + s24 + 1.5f * s34; + const float m32 = 0.25f * s44 + s54 + 2.25f * s64; + const float m33 = 0.125f * s14 + s24 + 3.375f * s34; + const float m34 = 0.0625f * s44 + s54 + 5.0625f * s64; + const float m35 = 0.03125f * s14 + s24 + 7.59375f * s34; + const float m36 = 0.015625f * s44 + s54 + 11.390625f * s64 + t37; float m40 = t40 + t41 + t42 + t43 + t44 + t45 + t46; - float m41 = 0.5f * s15 + s25 + 1.5f * s35; - float m42 = 0.25f * s45 + s55 + 2.25f * s65; - float m43 = 0.125f * s15 + s25 + 3.375f * s35; - float m44 = 0.0625f * s45 + s55 + 5.0625f * s65; - float m45 = 0.03125f * s15 + s25 + 7.59375f * s35; - float m46 = 0.015625f * s45 + s55 + 11.390625f * s65 + t47; + const float m41 = 0.5f * s15 + s25 + 1.5f * s35; + const float m42 = 0.25f * s45 + s55 + 2.25f * s65; + const float m43 = 0.125f * s15 + s25 + 3.375f * s35; + const float m44 = 0.0625f * s45 + s55 + 5.0625f * s65; + const float m45 = 0.03125f * s15 + s25 + 7.59375f * s35; + const float m46 = 0.015625f * s45 + s55 + 11.390625f * s65 + t47; float m50 = t50 + t51 + t52 + t53 + t54 + t55 + t56; - float m51 = 0.5f * s16 + s26 + 1.5f * s36; - float m52 = 0.25f * s46 + s56 + 2.25f * s66; - float m53 = 0.125f * s16 + s26 + 3.375f * s36; - float m54 = 0.0625f * s46 + s56 + 5.0625f * s66; - float m55 = 0.03125f * s16 + s26 + 7.59375f * s36; - float m56 = 0.015625f * s46 + s56 + 11.390625f * s66 + t57; + const float m51 = 0.5f * s16 + s26 + 1.5f * s36; + const float m52 = 0.25f * s46 + s56 + 2.25f * s66; + const float m53 = 0.125f * s16 + s26 + 3.375f * s36; + const float m54 = 0.0625f * s46 + s56 + 5.0625f * s66; + const float m55 = 0.03125f * s16 + s26 + 7.59375f * s36; + const float m56 = 0.015625f * s46 + s56 + 11.390625f * s66 + t57; float m60 = t60 + t61 + t62 + t63 + t64 + t65 + t66; - float m61 = 0.5f * s17 + s27 + 1.5f * s37; - float m62 = 0.25f * s47 + s57 + 2.25f * s67; - float m63 = 0.125f * s17 + s27 + 3.375f * s37; - float m64 = 0.0625f * s47 + s57 + 5.0625f * s67; - float m65 = 0.03125f * s17 + s27 + 7.59375f * s37; - float m66 = 0.015625f * s47 + s57 + 11.390625f * s67 + t67; + const float m61 = 0.5f * s17 + s27 + 1.5f * s37; + const float m62 = 0.25f * s47 + s57 + 2.25f * s67; + const float m63 = 0.125f * s17 + s27 + 3.375f * s37; + const float m64 = 0.0625f * s47 + s57 + 5.0625f * s67; + const float m65 = 0.03125f * s17 + s27 + 7.59375f * s37; + const float m66 = 0.015625f * s47 + s57 + 11.390625f * s67 + t67; (dst_data + i)[0] = m00 + bias_data[i]; (dst_data + i + C4NUM)[0] = m01 + bias_data[i]; @@ -4669,7 +4672,7 @@ int SelectOutputUnit(ConvParameter *conv_param) { continue; } // don't count filter transform cost, because it can be processed once offline. - float input_trans_unit_cost = 2 * input_unit * input_unit * input_unit * in_channel; + const float input_trans_unit_cost = 2 * input_unit * input_unit * input_unit * in_channel; float gemm_unit_cost = input_unit * input_unit * in_channel * out_channel; float output_trans_unit_cost = input_unit * u * (u + input_unit) * out_channel; // equation (23) in papar diff --git a/mindspore/lite/src/runtime/kernel/opencl/cl/fp32/arithmetic_image2d.cl b/mindspore/lite/src/runtime/kernel/opencl/cl/fp32/arithmetic_image2d.cl index 33d6143f9d..6438f24e6b 100644 --- a/mindspore/lite/src/runtime/kernel/opencl/cl/fp32/arithmetic_image2d.cl +++ b/mindspore/lite/src/runtime/kernel/opencl/cl/fp32/arithmetic_image2d.cl @@ -49,6 +49,9 @@ __kernel void ElementDiv(__read_only image2d_t input_a, __read_only image2d_t in float4 a = read_imagef(input_a, smp_none, (int2)(X, Y)); float4 b = read_imagef(input_b, smp_none, (int2)(X, Y)); + if (b == 0) { + return; + } write_imagef(output, (int2)(X, Y), a / b); } diff --git a/mindspore/lite/src/runtime/kernel/opencl/kernel/convolution.cc b/mindspore/lite/src/runtime/kernel/opencl/kernel/convolution.cc index 45f1e86caf..daddfe73a9 100644 --- a/mindspore/lite/src/runtime/kernel/opencl/kernel/convolution.cc +++ b/mindspore/lite/src/runtime/kernel/opencl/kernel/convolution.cc @@ -249,6 +249,10 @@ int ConvolutionOpenCLKernel::GetGlobalLocal(std::vector *global, std::ve size_t global_c = UP_DIV(UP_DIV(param->output_channel_, C4NUM), work_group_size[2]) * work_group_size[2]; size_t local_c = GetBiggestDivider(global_c, max_z_size); + if (local_c == 0) { + MS_LOG(ERROR) << "Divide by zero"; + return RET_ERROR; + } size_t local_hw_size = std::min(256, max_work_group_size) / local_c; size_t local_w = std::min(global_w, local_hw_size); size_t local_h = std::min(local_hw_size / local_w, global_h); diff --git a/mindspore/lite/src/runtime/kernel/opencl/utils.cc b/mindspore/lite/src/runtime/kernel/opencl/utils.cc index 1ce176ca22..9f725d62e2 100644 --- a/mindspore/lite/src/runtime/kernel/opencl/utils.cc +++ b/mindspore/lite/src/runtime/kernel/opencl/utils.cc @@ -32,6 +32,10 @@ std::vector GetCommonGlobalSize(const std::vector &local, const std::vector GetCommonLocalSize(const std::vector &global, int max_size) { size_t wg_z = GetBiggestDividerWithPriority(global[2], 8); + if (wg_z == 0) { + MS_LOG(ERROR) << "Divide by zero"; + return {}; + } size_t wg_xy_size = max_size / wg_z; size_t wg_x = std::min(DivideRoundUp(global[0], 2), wg_xy_size); size_t wg_y = std::min(wg_xy_size / wg_x, global[1]); diff --git a/mindspore/lite/src/runtime/opencl/opencl_allocator.cc b/mindspore/lite/src/runtime/opencl/opencl_allocator.cc index 649446cbf4..9e94ee89c8 100644 --- a/mindspore/lite/src/runtime/opencl/opencl_allocator.cc +++ b/mindspore/lite/src/runtime/opencl/opencl_allocator.cc @@ -130,6 +130,7 @@ void *OpenCLAllocator::Malloc(size_t size, const std::vector& img_size) if (ret != CL_SUCCESS) { MS_LOG(ERROR) << "Create OpenCL Image2D failed! (ERROR CODE: " << ret << ")"; UnLock(); + delete buffer; return nullptr; } device_ptr = static_cast(buffer); @@ -138,6 +139,7 @@ void *OpenCLAllocator::Malloc(size_t size, const std::vector& img_size) if (host_ptr == nullptr) { MS_LOG(ERROR) << "Map buffer failed, can not found buffer :" << device_ptr << ", host_ptr=" << host_ptr; UnLock(); + return nullptr; } cl::Memory *mem = buffer; @@ -187,6 +189,7 @@ void *OpenCLAllocator::CreateImageFromHost(void *data, size_t size, const std::v if (ret != CL_SUCCESS) { MS_LOG(ERROR) << "Create OpenCL Image2D failed! (ERROR CODE: " << ret << ")"; UnLock(); + delete buffer; return nullptr; } device_ptr = static_cast(buffer); diff --git a/mindspore/lite/src/scheduler.cc b/mindspore/lite/src/scheduler.cc index 39917b91a6..1e4570f326 100644 --- a/mindspore/lite/src/scheduler.cc +++ b/mindspore/lite/src/scheduler.cc @@ -195,7 +195,7 @@ kernel::LiteKernel *Scheduler::ScheduleNode(const std::vector } desc.arch = kernel::KERNEL_ARCH::kCPU; - kernel::LiteKernel *kernel; + kernel::LiteKernel *kernel = nullptr; if (data_type == kNumberTypeFloat32) { // check if support fp16 kernel::KernelKey key{desc.arch, kNumberTypeFloat16, desc.type}; diff --git a/mindspore/lite/src/train/import.hpp b/mindspore/lite/src/train/import.hpp index e8153beacb..12a8bf1244 100644 --- a/mindspore/lite/src/train/import.hpp +++ b/mindspore/lite/src/train/import.hpp @@ -25,6 +25,10 @@ std::shared_ptr Import(const char *model_buf, size_t size) { return nullptr; } // todo hangangqiang remove when copy primitive done + if (size <= 0) { + MS_LOG(ERROR) << "size is zero"; + return nullptr; + } auto *inner_buf = new char[size]; memcpy(inner_buf, model_buf, size); auto meta_graph = schema::GetMetaGraph(inner_buf); diff --git a/mindspore/lite/tools/benchmark/benchmark.cc b/mindspore/lite/tools/benchmark/benchmark.cc index 57f2ed1e5a..ad03643fcd 100644 --- a/mindspore/lite/tools/benchmark/benchmark.cc +++ b/mindspore/lite/tools/benchmark/benchmark.cc @@ -462,7 +462,7 @@ void BenchmarkFlags::InitInputDataList() { char *cur_input; const char *split_c = ","; cur_input = strtok(input_list, split_c); - while (cur_input) { + while (cur_input != nullptr) { input_data_list.emplace_back(cur_input); cur_input = strtok(nullptr, split_c); } diff --git a/mindspore/lite/tools/converter/parser/onnx/onnx_arithmetic_operation_parser.cc b/mindspore/lite/tools/converter/parser/onnx/onnx_arithmetic_operation_parser.cc index 44ee34f8fe..548ba97938 100644 --- a/mindspore/lite/tools/converter/parser/onnx/onnx_arithmetic_operation_parser.cc +++ b/mindspore/lite/tools/converter/parser/onnx/onnx_arithmetic_operation_parser.cc @@ -117,9 +117,9 @@ STATUS OnnxEltwiseParser::Parse(const onnx::GraphProto &onnx_graph, std::unique_ptr attr(new schema::EltwiseT()); if (onnx_node.op_type() == "Prod") { attr->mode = schema::EltwiseMode_PROD; - } else if (onnx_node.op_type() == "Prod") { - attr->mode = schema::EltwiseMode_SUM; } else if (onnx_node.op_type() == "Sum") { + attr->mode = schema::EltwiseMode_SUM; + } else if (onnx_node.op_type() == "Maximum") { attr->mode = schema::EltwiseMode_MAXIMUM; } diff --git a/mindspore/lite/tools/optimizer/fusion/conv_transform_fusion.cc b/mindspore/lite/tools/optimizer/fusion/conv_transform_fusion.cc index e4f346e0cf..3132618377 100644 --- a/mindspore/lite/tools/optimizer/fusion/conv_transform_fusion.cc +++ b/mindspore/lite/tools/optimizer/fusion/conv_transform_fusion.cc @@ -166,6 +166,7 @@ const void ConvTransformFusion::CalNewWeightTensor(float *weight_data, int kerne auto data_size = kernel_num * kernel_size * sizeof(float); if (0 != memset_s(tmp_weight_data, data_size, 0, data_size)) { MS_LOG(EXCEPTION) << "memset newWeightData failed"; + delete[] tmp_weight_data; return; }