From 6d3e3be524a792b642981b311d65ca617c5439fe Mon Sep 17 00:00:00 2001 From: yangruoqi713 Date: Wed, 11 Nov 2020 15:35:32 +0800 Subject: [PATCH] [MSLITE][Develop] reopen arm cpu int8 deconv depthwise assembly --- mindspore/lite/nnacl/assembly/arm32/DeconvDwInt8Center.S | 6 +++--- mindspore/lite/nnacl/int8/common_func_int8.h | 6 +++--- mindspore/lite/nnacl/int8/conv_depthwise_int8.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mindspore/lite/nnacl/assembly/arm32/DeconvDwInt8Center.S b/mindspore/lite/nnacl/assembly/arm32/DeconvDwInt8Center.S index 02141904a5..68b23a01e5 100644 --- a/mindspore/lite/nnacl/assembly/arm32/DeconvDwInt8Center.S +++ b/mindspore/lite/nnacl/assembly/arm32/DeconvDwInt8Center.S @@ -1,4 +1,4 @@ -#if 0 +#ifdef __arm__ #ifndef __aarch64__ .text @@ -9,8 +9,8 @@ #endif // void DeconvDwInt8Center(int32_t *dst, const int16_t *src, const int16_t *weight, size_t height, size_t width, -// size_t kernel_h, size_t kernel_w, size_t out_h_step, size_t block_channel, size_t in_sh_step, -// size_t in_sw_step, size_t in_kh_step, size_t in_kw_step); +// size_t kernel_h, size_t kernel_w, size_t out_h_step, size_t block_channel, size_t in_sh_step, +// size_t in_sw_step, size_t in_kh_step, size_t in_kw_step); // r0: dst, r1: src, r2: weight, r3: height, r4: width, #52: kernel_h, #56: kernel_w, #60: out_h_step // #64: block_channel, #68: in_sh_step, #72: in_sw_step, #76: in_kh_step, #80: in_kw_step DeconvDwInt8Center: diff --git a/mindspore/lite/nnacl/int8/common_func_int8.h b/mindspore/lite/nnacl/int8/common_func_int8.h index d90045c20b..41ec57c7c2 100644 --- a/mindspore/lite/nnacl/int8/common_func_int8.h +++ b/mindspore/lite/nnacl/int8/common_func_int8.h @@ -50,6 +50,9 @@ void ConvDwInt8Center(int8_t *dst, const int8_t *src, const int16_t *weight, con size_t in_sh_step, size_t in_sw_step, size_t in_kh_step, size_t in_kw_step, int8_t *in_zp, int32_t *out_zp, int32_t *out_multiplier, int32_t *left_shift, int32_t *right_shift, int32_t *acc_min, int32_t *acc_max); +void DeconvDwInt8Center(int32_t *dst, const int16_t *src, const int16_t *weight, size_t height, size_t width, + size_t kernel_h, size_t kernel_w, size_t out_h_step, size_t block_channel, size_t in_sh_step, + size_t in_sw_step, size_t in_kh_step, size_t in_kw_step); void DeconvDwInt8Post(int8_t *dst, int32_t *output_buffer, const int32_t *bias, int block_channel, int pixel_nums, int out_multiplier, int left_shift, int right_shift, int32_t out_zp, int32_t acc_min, int32_t acc_max); @@ -76,9 +79,6 @@ void IndirectGemmInt8_4x4(int8_t *output, const int8_t *input, const int8_t *wei size_t ic4, size_t oc, size_t offset, const int32_t *input_sum, size_t act_min, size_t act_max, size_t out_zp, int32_t *out_multiplier, int32_t *shift_before, int32_t *shift_after, size_t asymmetric, size_t per_channel, size_t per_channel_offset); -void DeconvDwInt8Center(int32_t *dst, const int16_t *src, const int16_t *weight, size_t height, size_t width, - size_t kernel_h, size_t kernel_w, size_t out_h_step, size_t block_channel, size_t in_sh_step, - size_t in_sw_step, size_t in_kh_step, size_t in_kw_step); void ConvDw3x3Int8Neon64(int8_t *output, const int8_t *input, const int16_t *weight, const int32_t *bias, int input_col_size, int input_row_size, int channel, int output_h, int output_w, int8_t in_zp, int32_t out_zp, int out_multiplier, int left_shift, int right_shift, int32_t acc_min, diff --git a/mindspore/lite/nnacl/int8/conv_depthwise_int8.c b/mindspore/lite/nnacl/int8/conv_depthwise_int8.c index 4f96c630b4..bae17d965e 100644 --- a/mindspore/lite/nnacl/int8/conv_depthwise_int8.c +++ b/mindspore/lite/nnacl/int8/conv_depthwise_int8.c @@ -703,7 +703,7 @@ void DeconvDwInt8Border(int32_t *dst, const int16_t *src, const int16_t *weight, } // height loop } -#ifndef ENABLE_ARM64 +#ifndef ENABLE_ARM void DeconvDwInt8Center(int32_t *dst, const int16_t *src, const int16_t *weight, int height, int width, int kernel_h, int kernel_w, int out_h_step, int block_channel, int in_sh_step, int in_sw_step, int in_kh_step, int in_kw_step) { @@ -787,7 +787,7 @@ void DeconvDwInt8(int8_t *output_data, int32_t *output_buffer, const int16_t *in int32_t *out_t = output_buffer + oh_h_start * sliding->in_h_step_ + oh_w_start * sliding->block_channel_; const int16_t *in_t = src_data + sliding->top_ * sliding->out_h_step_ + sliding->left_ * sliding->block_channel_; -#ifdef ENABLE_ARM64 +#ifdef ENABLE_ARM DeconvDwInt8Center(out_t, in_t, weight, sliding->bottom_ - sliding->top_, sliding->right_ - sliding->left_, conv_param->kernel_h_, conv_param->kernel_w_, sliding->out_h_step_ * sizeof(int16_t), sliding->block_channel_ * sizeof(int16_t), sliding->in_sh_step_ * sizeof(int32_t),