Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
nihui committed Apr 8, 2024
1 parent b9a9c12 commit eaaba78
Show file tree
Hide file tree
Showing 47 changed files with 344 additions and 140 deletions.
6 changes: 4 additions & 2 deletions src/layer/arm/convolution1d_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,8 @@ int Convolution1D_arm::create_pipeline(const Option& opt)

convolution1d_transform_kernel_packed(weight_data, weight_data_tm, num_input, num_output, kernel_w);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -239,7 +240,8 @@ int Convolution1D_arm::create_pipeline_bf16s(const Option& /*opt*/)

convolution1d_transform_kernel_packed_bf16s(weight_data, weight_data_tm, num_input, num_output, kernel_w);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down
3 changes: 2 additions & 1 deletion src/layer/arm/convolution1d_arm_asimdhp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ int Convolution1D_arm::create_pipeline_fp16s(const Option& opt)

ncnn::cast_float32_to_float16(bias_data, bias_data_fp16, opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down
24 changes: 16 additions & 8 deletions src/layer/arm/convolution_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,8 @@ int Convolution_arm::create_pipeline(const Option& opt)

convolution_dilation1->create_pipeline(opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -224,7 +225,8 @@ int Convolution_arm::create_pipeline(const Option& opt)
else
conv3x3s1_winograd23_transform_kernel(weight_data, weight_winograd23_data, num_input, num_output, opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -270,7 +272,8 @@ int Convolution_arm::create_pipeline(const Option& opt)
{
convolution_im2col_gemm_transform_kernel(weight_data, weight_sgemm_data, num_input, num_output, kernel_w, kernel_h, opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -305,7 +308,8 @@ int Convolution_arm::create_pipeline(const Option& opt)
convolution_transform_kernel_packed(weight_data, weight_data_tm, num_input, num_output, kernel_w, kernel_h);
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -904,7 +908,8 @@ int Convolution_arm::create_pipeline_bf16s(const Option& opt)
else
conv3x3s1_winograd23_transform_kernel(weight_data, weight_winograd23_data, num_input, num_output, opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -950,7 +955,8 @@ int Convolution_arm::create_pipeline_bf16s(const Option& opt)
{
convolution_im2col_gemm_transform_kernel_bf16s(weight_data, weight_sgemm_data, num_input, num_output, kernel_w, kernel_h, opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand All @@ -971,7 +977,8 @@ int Convolution_arm::create_pipeline_bf16s(const Option& opt)
convolution_transform_kernel_packed_bf16s(weight_data, weight_data_tm, num_input, num_output, kernel_w, kernel_h);
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -1284,7 +1291,8 @@ int Convolution_arm::create_pipeline_int8_arm(const Option& opt)
scale_in_data[p] = scale_in;
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down
9 changes: 6 additions & 3 deletions src/layer/arm/convolution_arm_asimdhp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ int Convolution_arm::create_pipeline_fp16s(const Option& opt)
else
conv3x3s1_winograd23_transform_kernel_fp16sa(weight_data, weight_winograd23_data, num_input, num_output, opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

if (opt.use_fp16_arithmetic)
{
Expand Down Expand Up @@ -189,7 +190,8 @@ int Convolution_arm::create_pipeline_fp16s(const Option& opt)

ncnn::cast_float32_to_float16(bias_data, bias_data_fp16, opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -219,7 +221,8 @@ int Convolution_arm::create_pipeline_fp16s(const Option& opt)
ncnn::cast_float32_to_float16(bias_data, bias_data_fp16, opt);
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down
15 changes: 10 additions & 5 deletions src/layer/arm/convolutiondepthwise_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,8 @@ int ConvolutionDepthWise_arm::create_pipeline(const Option& opt)
ncnn::cast_float32_to_bfloat16(weight_data, weight_data_tm, opt);
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -161,15 +162,17 @@ int ConvolutionDepthWise_arm::create_pipeline(const Option& opt)
}
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}

// group convolution
create_group_ops(opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -1022,15 +1025,17 @@ int ConvolutionDepthWise_arm::create_pipeline_int8_arm(const Option& opt)
weight_data_tm = weight_data;
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}

// group convolution
create_group_ops(opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down
6 changes: 4 additions & 2 deletions src/layer/arm/convolutiondepthwise_arm_asimdhp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,17 @@ int ConvolutionDepthWise_arm::create_pipeline_fp16s(const Option& opt)

ncnn::cast_float32_to_float16(bias_data, bias_data_fp16, opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}

// group convolution
create_group_ops(opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down
6 changes: 4 additions & 2 deletions src/layer/arm/deconvolution_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,8 @@ int Deconvolution_arm::create_pipeline(const Option& opt)
}
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -954,7 +955,8 @@ int Deconvolution_arm::create_pipeline_bf16s(const Option& opt)
}
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down
3 changes: 2 additions & 1 deletion src/layer/arm/deconvolution_arm_asimdhp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,8 @@ int Deconvolution_arm::create_pipeline_fp16s(const Option& opt)

ncnn::cast_float32_to_float16(bias_data, bias_data_fp16, opt);

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down
6 changes: 4 additions & 2 deletions src/layer/arm/deconvolutiondepthwise_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ int DeconvolutionDepthWise_arm::create_pipeline(const Option& opt)
ncnn::cast_float32_to_bfloat16(weight_data_transposed, weight_data_tm, opt);
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down Expand Up @@ -190,7 +191,8 @@ int DeconvolutionDepthWise_arm::create_pipeline(const Option& opt)
}
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down
3 changes: 2 additions & 1 deletion src/layer/arm/deconvolutiondepthwise_arm_asimdhp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,8 @@ int DeconvolutionDepthWise_arm::create_pipeline_fp16s(const Option& opt)
}
}

weight_data.release();
if (opt.lightmode)
weight_data.release();

return 0;
}
Expand Down
18 changes: 12 additions & 6 deletions src/layer/arm/gemm_arm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4201,7 +4201,8 @@ int Gemm_arm::create_pipeline(const Option& opt)
}
}

A_data.release();
if (opt.lightmode)
A_data.release();
}

if (constantB)
Expand Down Expand Up @@ -4241,7 +4242,8 @@ int Gemm_arm::create_pipeline(const Option& opt)
}
}

B_data.release();
if (opt.lightmode)
B_data.release();
}

if (constantC && constant_broadcast_type_C != -1)
Expand Down Expand Up @@ -4271,7 +4273,8 @@ int Gemm_arm::create_pipeline(const Option& opt)
CT_data = C2;
}

C_data.release();
if (opt.lightmode)
C_data.release();
}

if (constantA || constantB || constantC)
Expand Down Expand Up @@ -4889,7 +4892,8 @@ int Gemm_arm::create_pipeline_bf16s(const Option& opt)
}
}

A_data.release();
if (opt.lightmode)
A_data.release();
}

if (constantB)
Expand Down Expand Up @@ -4929,7 +4933,8 @@ int Gemm_arm::create_pipeline_bf16s(const Option& opt)
}
}

B_data.release();
if (opt.lightmode)
B_data.release();
}

if (constantC && constant_broadcast_type_C != -1)
Expand Down Expand Up @@ -4959,7 +4964,8 @@ int Gemm_arm::create_pipeline_bf16s(const Option& opt)
CT_data = C2;
}

C_data.release();
if (opt.lightmode)
C_data.release();
}

if (constantA || constantB || constantC)
Expand Down
9 changes: 6 additions & 3 deletions src/layer/arm/gemm_arm_asimdhp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2736,7 +2736,8 @@ int Gemm_arm::create_pipeline_fp16sa(const Option& opt)
}
}

A_data.release();
if (opt.lightmode)
A_data.release();
}

if (constantB)
Expand Down Expand Up @@ -2776,7 +2777,8 @@ int Gemm_arm::create_pipeline_fp16sa(const Option& opt)
}
}

B_data.release();
if (opt.lightmode)
B_data.release();
}

if (constantC && constant_broadcast_type_C != -1)
Expand All @@ -2802,7 +2804,8 @@ int Gemm_arm::create_pipeline_fp16sa(const Option& opt)
}
}

C_data.release();
if (opt.lightmode)
C_data.release();
}

if (constantA || constantB || constantC)
Expand Down
9 changes: 6 additions & 3 deletions src/layer/arm/gemm_arm_vfpv4.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,8 @@ int Gemm_arm::create_pipeline_fp16s(const Option& opt)
}
}

A_data.release();
if (opt.lightmode)
A_data.release();
}

if (constantB)
Expand Down Expand Up @@ -467,7 +468,8 @@ int Gemm_arm::create_pipeline_fp16s(const Option& opt)
}
}

B_data.release();
if (opt.lightmode)
B_data.release();
}

if (constantC && constant_broadcast_type_C != -1)
Expand Down Expand Up @@ -497,7 +499,8 @@ int Gemm_arm::create_pipeline_fp16s(const Option& opt)
CT_data = C2;
}

C_data.release();
if (opt.lightmode)
C_data.release();
}

if (constantA || constantB || constantC)
Expand Down
Loading

0 comments on commit eaaba78

Please sign in to comment.