|
|
|
@ -53,6 +53,8 @@ int DeconvolutionDepthwiseFp16CPUKernel::InitSlideParam() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int DeconvolutionDepthwiseFp16CPUKernel::InitBuffer() {
|
|
|
|
|
if (conv_param_->input_channel_ % C8NUM != 0) {
|
|
|
|
|
need_align_ = true;
|
|
|
|
|
int C8 = UP_DIV(conv_param_->input_channel_, C8NUM);
|
|
|
|
|
int pack_input_size = conv_param_->input_batch_ * conv_param_->input_h_ * conv_param_->input_w_ * C8NUM * C8;
|
|
|
|
|
packed_input_ = reinterpret_cast<float16_t *>(context_->allocator->Malloc(pack_input_size * sizeof(float16_t)));
|
|
|
|
@ -68,6 +70,7 @@ int DeconvolutionDepthwiseFp16CPUKernel::InitBuffer() {
|
|
|
|
|
return RET_ERROR;
|
|
|
|
|
}
|
|
|
|
|
memset(packed_output_, 0, pack_output_size * sizeof(float16_t));
|
|
|
|
|
}
|
|
|
|
|
return RET_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|