未验证 提交 913c1caf 编写于 作者: H HappyAngel 提交者: GitHub

[arm]improve int8 3x3s1_diirect conv profile (#3451)

* improve 3x3s1 direct profile

* fix format, test=develop
上级 05ed6493
......@@ -109,6 +109,8 @@ void ConvCompute<PRECISION(kInt8), PRECISION(kFloat)>::PrepareForRun() {
int pw = paddings[2];
int sh = param.strides[1];
int sw = param.strides[0];
int hin = param.x->dims()[2];
int win = param.x->dims()[3];
bool pads_all_equal = (pads_equal && paddings[0] == paddings[2]);
bool kps_equal = (pw == ph) && (sh == sw) && (kw == kh);
......@@ -116,13 +118,12 @@ void ConvCompute<PRECISION(kInt8), PRECISION(kFloat)>::PrepareForRun() {
bool flag_dw_3x3 = (kw == 3 && kh == 3 && (sw == 1 || sw == 2));
bool flag_dw_5x5 = pads_all_equal && (kw == 5 && (sw == 1 || sw == 2));
bool flag_dw = flag_dw_3x3 || flag_dw_5x5;
if (param.groups == ic && ic == oc && kps_equal && pads_equal &&
no_dilation && flag_dw) {
impl_ = new DepthwiseConv<PRECISION(kInt8), PRECISION(kFloat)>;
// VLOG(3) << "Run DepthwiseConv Int8";
} else if (param.groups == 1 && kw == 3 && (sw == 1 || sw == 2) &&
kps_equal && no_dilation) {
ic * oc < 4 * hin * win && kps_equal && no_dilation) {
impl_ = new DirectConv<PRECISION(kInt8), PRECISION(kFloat)>;
// VLOG(3) << "Run DirectConv Int8";
} else {
......@@ -154,6 +155,8 @@ void ConvCompute<PRECISION(kInt8), PRECISION(kInt8)>::PrepareForRun() {
int pw = paddings[2];
int sh = param.strides[1];
int sw = param.strides[0];
int hin = param.x->dims()[2];
int win = param.x->dims()[3];
bool pads_all_equal = (pads_equal && paddings[0] == paddings[2]);
bool kps_equal = (pw == ph) && (sh == sw) && (kw == kh);
......@@ -167,7 +170,7 @@ void ConvCompute<PRECISION(kInt8), PRECISION(kInt8)>::PrepareForRun() {
impl_ = new DepthwiseConv<PRECISION(kInt8), PRECISION(kInt8)>;
// VLOG(3) << "Run DepthwiseConv Int8";
} else if (param.groups == 1 && kw == 3 && (sw == 1 || sw == 2) &&
kps_equal && no_dilation) {
ic * oc < 4 * hin * win && kps_equal && no_dilation) {
impl_ = new DirectConv<PRECISION(kInt8), PRECISION(kInt8)>;
// VLOG(3) << "Run DirectConv Int8";
} else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册