已合并
tilingkey裁剪回退 #7629
tilingkey裁剪回退 #7629
已合并
huafeng793创建于 7月17日
共 4 个文件变更+149-216
@@ -80,25 +80,16 @@ namespace ConvKey {
80#define CONV_BIG_KERNEL 180#define CONV_BIG_KERNEL 1
81 81 
82#if defined(FORMAT_FILTER) && (FORMAT_FILTER == FORMAT_FRACTAL_Z || FORMAT_FILTER == FORMAT_FRACTAL_Z_C04)82#if defined(FORMAT_FILTER) && (FORMAT_FILTER == FORMAT_FRACTAL_Z || FORMAT_FILTER == FORMAT_FRACTAL_Z_C04)
83-#define CONV2D_SCALAR_OPT_SEL(...) \83+#define CONV2D_SCALAR_OPT_SEL(...) \
84- ASCENDC_TPL_UINT_SEL(BatchOne, ASCENDC_TPL_UI_LIST, CONV_MULTI_BATCH, CONV_ONE_BATCH), \84+ , ASCENDC_TPL_UINT_SEL(BatchOne, ASCENDC_TPL_UI_LIST, CONV_MULTI_BATCH, CONV_ONE_BATCH), \
85- ASCENDC_TPL_UINT_SEL(NoPad, ASCENDC_TPL_UI_LIST, CONV_HAS_PAD, CONV_NO_PAD), \85+ ASCENDC_TPL_UINT_SEL(NoPad, ASCENDC_TPL_UI_LIST, CONV_HAS_PAD, CONV_NO_PAD), \
86- ASCENDC_TPL_UINT_SEL(SmallWeight, ASCENDC_TPL_UI_LIST, __VA_ARGS__), \86+ ASCENDC_TPL_UINT_SEL(SmallWeight, ASCENDC_TPL_UI_LIST, __VA_ARGS__) \
87- ASCENDC_TPL_UINT_SEL(SmallKernel, ASCENDC_TPL_UI_LIST, CONV_NOT_SMALL_KERNEL, CONV_SMALL_KERNEL)87+ ASCENDC_TPL_UINT_SEL(SmallKernel, ASCENDC_TPL_UI_LIST, CONV_NOT_SMALL_KERNEL, CONV_SMALL_KERNEL)
atomgit-bot
atomgit-botatomgit-bot7月17日

🟠 High Priority

在 conv_tilingkey.h 中,CONV2D_SCALAR_OPT_SEL 宏的定义在两个分支(FRACTAL_Z 分支和 #else 分支)中都缺少 SmallWeight 与 SmallKernel 之间的逗号分隔符。

旧代码(被删除的版本)在 __VA_ARGS__) 之后有逗号:

新代码在 __VA_ARGS__) 之后缺少逗号:

预处理器展开后,两个 ASCENDC_TPL_UINT_SEL(...) 宏调用之间只有空白而没有逗号,导致 C 预处理器层面的语法错误。该宏通过 ASCENDC_TPL_ARGS_SEL(...) 在 ASCENDC_TPL_SEL(...) 中被使用(见 conv2d_v2_tilingkey.h:391-461),最终影响所有引用该宏的 4 个文件中的所有 tilingkey SEL 宏。此缺陷存在于 #if 分支(第 86 行)和 #else 分支(第 91 行),两处均需修复。

改动建议
87
+ ASCENDC_TPL_UINT_SEL(SmallWeight, ASCENDC_TPL_UI_LIST, __VA_ARGS__), \
87
88
  ASCENDC_TPL_UINT_SEL(SmallKernel, ASCENDC_TPL_UI_LIST, CONV_NOT_SMALL_KERNEL, CONV_SMALL_KERNEL)
应用建议
likedislike
不准确?
88-#define CONV2D_SCALAR_OPT_SEL_NK(...) \
89- ASCENDC_TPL_UINT_SEL(BatchOne, ASCENDC_TPL_UI_LIST, CONV_MULTI_BATCH, CONV_ONE_BATCH), \
90- ASCENDC_TPL_UINT_SEL(NoPad, ASCENDC_TPL_UI_LIST, CONV_HAS_PAD, CONV_NO_PAD), \
91- ASCENDC_TPL_UINT_SEL(SmallWeight, ASCENDC_TPL_UI_LIST, __VA_ARGS__), \
92- ASCENDC_TPL_UINT_SEL(SmallKernel, ASCENDC_TPL_UI_LIST, CONV_NOT_SMALL_KERNEL)
93#else88#else
94-#define CONV2D_SCALAR_OPT_SEL(...) \89+#define CONV2D_SCALAR_OPT_SEL(...) \
95- ASCENDC_TPL_UINT_SEL(BatchOne, ASCENDC_TPL_UI_LIST, 0), ASCENDC_TPL_UINT_SEL(NoPad, ASCENDC_TPL_UI_LIST, 0), \90+ , ASCENDC_TPL_UINT_SEL(BatchOne, ASCENDC_TPL_UI_LIST, 0), ASCENDC_TPL_UINT_SEL(NoPad, ASCENDC_TPL_UI_LIST, 0), \
96- ASCENDC_TPL_UINT_SEL(SmallWeight, ASCENDC_TPL_UI_LIST, 0), \91+ ASCENDC_TPL_UINT_SEL(SmallWeight, ASCENDC_TPL_UI_LIST, 0) \
97- ASCENDC_TPL_UINT_SEL(SmallKernel, ASCENDC_TPL_UI_LIST, 0)92+ ASCENDC_TPL_UINT_SEL(SmallKernel, ASCENDC_TPL_UI_LIST, 0)
atomgit-bot
atomgit-botatomgit-bot7月17日

🟠 High Priority

与 #if 分支相同的问题,在 #else 分支(非 FRACTAL_Z 格式路径)中也存在:SmallWeight 与 SmallKernel 之间缺少逗号分隔符。

展开后结果为: 两个宏调用之间缺少逗号,同样导致语法错误。

建议:在 ASCENDC_TPL_UINT_SEL(SmallWeight, ASCENDC_TPL_UI_LIST, 0) 之后添加逗号:0) → 0),。

改动建议
92
+ ASCENDC_TPL_UINT_SEL(SmallWeight, ASCENDC_TPL_UI_LIST, 0), \
92
93
  ASCENDC_TPL_UINT_SEL(SmallKernel, ASCENDC_TPL_UI_LIST, 0)
应用建议
likedislike
不准确?
98-#define CONV2D_SCALAR_OPT_SEL_NK(...) \
99- ASCENDC_TPL_UINT_SEL(BatchOne, ASCENDC_TPL_UI_LIST, 0), ASCENDC_TPL_UINT_SEL(NoPad, ASCENDC_TPL_UI_LIST, 0), \
100- ASCENDC_TPL_UINT_SEL(SmallWeight, ASCENDC_TPL_UI_LIST, 0), \
101- ASCENDC_TPL_UINT_SEL(SmallKernel, ASCENDC_TPL_UI_LIST, 0)
102#endif93#endif
103 94 
104#define CONV_COMMON_ONLY_MN_FULLLOAD_SEL() \95#define CONV_COMMON_ONLY_MN_FULLLOAD_SEL() \
@@ -46,7 +46,7 @@ using namespace ConvKey;
46 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \46 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
47 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \47 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \
48 CONV_ITER_ORDER_NITER_FIRST), \48 CONV_ITER_ORDER_NITER_FIRST), \
49- CONV2D_COMMON_INNER_BATCH_WEIGHT_UB_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)49+ CONV2D_COMMON_INNER_BATCH_WEIGHT_UB_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
50 50 
51#define CONV2D_INNER_BATCH_WEIGHT_UB_ONLY_AL1_FULLLOAD_SEL() \51#define CONV2D_INNER_BATCH_WEIGHT_UB_ONLY_AL1_FULLLOAD_SEL() \
52 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \52 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -56,7 +56,7 @@ using namespace ConvKey;
56 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \56 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \
57 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \57 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \
58 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \58 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
59- CONV2D_COMMON_INNER_BATCH_WEIGHT_UB_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)59+ CONV2D_COMMON_INNER_BATCH_WEIGHT_UB_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
60 60 
61#define CONV2D_INNER_BATCH_WEIGHT_UB_NO_FULLLOAD_AL0_OPEN_SEL() \61#define CONV2D_INNER_BATCH_WEIGHT_UB_NO_FULLLOAD_AL0_OPEN_SEL() \
62 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \62 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -66,7 +66,7 @@ using namespace ConvKey;
66 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_AL0_OPEN), \66 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_AL0_OPEN), \
67 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \67 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \
68 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \68 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \
69- CONV2D_COMMON_INNER_BATCH_WEIGHT_UB_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)69+ CONV2D_COMMON_INNER_BATCH_WEIGHT_UB_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
70 70 
71#define CONV2D_INNER_BATCH_WEIGHT_UB_NO_FULLLOAD_BL0_OPEN_SEL() \71#define CONV2D_INNER_BATCH_WEIGHT_UB_NO_FULLLOAD_BL0_OPEN_SEL() \
72 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \72 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -76,7 +76,7 @@ using namespace ConvKey;
76 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN), \76 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN), \
77 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \77 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \
78 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \78 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
79- CONV2D_COMMON_INNER_BATCH_WEIGHT_UB_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)79+ CONV2D_COMMON_INNER_BATCH_WEIGHT_UB_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
80 80 
81#define CONV2D_INNER_BATCH_WEIGHT_UB_NO_FULLLOAD_ALL_OPEN_SEL() \81#define CONV2D_INNER_BATCH_WEIGHT_UB_NO_FULLLOAD_ALL_OPEN_SEL() \
82 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \82 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -87,7 +87,7 @@ using namespace ConvKey;
87 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \87 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \
88 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \88 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \
89 CONV_ITER_ORDER_NITER_FIRST), \89 CONV_ITER_ORDER_NITER_FIRST), \
90- CONV2D_COMMON_INNER_BATCH_WEIGHT_UB_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)90+ CONV2D_COMMON_INNER_BATCH_WEIGHT_UB_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
91 91 
92#else92#else
93#define CONV2D_INNER_BATCH_WEIGHT_UB_ONLY_MN_FULLLOAD_SEL()93#define CONV2D_INNER_BATCH_WEIGHT_UB_ONLY_MN_FULLLOAD_SEL()
@@ -115,7 +115,8 @@ using namespace ConvKey;
115 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \115 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
116 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \116 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \
117 CONV_ITER_ORDER_NITER_FIRST), \117 CONV_ITER_ORDER_NITER_FIRST), \
118- CONV_COMMON_INNER_BATCH_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)118+ CONV_COMMON_INNER_BATCH_SEL() \
119+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
119 120 
120#define CONV_INNER_BATCH_NO_FULLLOAD_AL0_OPEN_SEL() \121#define CONV_INNER_BATCH_NO_FULLLOAD_AL0_OPEN_SEL() \
121 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \122 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \
@@ -125,7 +126,7 @@ using namespace ConvKey;
125 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_AL0_OPEN), \126 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_AL0_OPEN), \
126 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \127 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
127 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \128 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \
128- CONV_COMMON_INNER_BATCH_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)129+ CONV_COMMON_INNER_BATCH_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
129 130 
130#define CONV_INNER_BATCH_NO_FULLLOAD_BL0_OPEN_SEL() \131#define CONV_INNER_BATCH_NO_FULLLOAD_BL0_OPEN_SEL() \
131 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \132 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \
@@ -135,7 +136,7 @@ using namespace ConvKey;
135 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN), \136 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN), \
136 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \137 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
137 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \138 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
138- CONV_COMMON_INNER_BATCH_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)139+ CONV_COMMON_INNER_BATCH_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
139 140 
140#define CONV_INNER_BATCH_NO_FULLLOAD_ALL_OPEN_SEL() \141#define CONV_INNER_BATCH_NO_FULLLOAD_ALL_OPEN_SEL() \
141 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \142 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \
@@ -146,7 +147,7 @@ using namespace ConvKey;
146 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \147 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
147 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \148 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \
148 CONV_ITER_ORDER_NITER_FIRST), \149 CONV_ITER_ORDER_NITER_FIRST), \
149- CONV_COMMON_INNER_BATCH_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)150+ CONV_COMMON_INNER_BATCH_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
150 151 
151#define CONV_INNER_BATCH_ONLY_AL1_FULLLOAD_SEL() \152#define CONV_INNER_BATCH_ONLY_AL1_FULLLOAD_SEL() \
152 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \153 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \
@@ -155,7 +156,7 @@ using namespace ConvKey;
155 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \156 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \
156 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \157 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
157 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \158 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
158- CONV_COMMON_INNER_BATCH_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)159+ CONV_COMMON_INNER_BATCH_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0)
159 160 
160#define CONV_INNER_BATCH_ONLY_BL1_FULLLOAD_SEL() \161#define CONV_INNER_BATCH_ONLY_BL1_FULLLOAD_SEL() \
161 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \162 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \
@@ -165,8 +166,8 @@ using namespace ConvKey;
165 CONV_L0_PINGPONG_ALL_OPEN), \166 CONV_L0_PINGPONG_ALL_OPEN), \
166 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \167 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
167 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \168 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \
168- CONV_COMMON_INNER_BATCH_SEL(), \169+ CONV_COMMON_INNER_BATCH_SEL() \
169- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)170+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
170 171 
171#define CONV_INNER_BATCH_ABL1_FULLLOAD_M_FIRST_SEL() \172#define CONV_INNER_BATCH_ABL1_FULLLOAD_M_FIRST_SEL() \
172 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \173 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \
@@ -176,8 +177,8 @@ using namespace ConvKey;
176 CONV_L0_PINGPONG_ALL_OPEN), \177 CONV_L0_PINGPONG_ALL_OPEN), \
177 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \178 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
178 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \179 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \
179- CONV_COMMON_INNER_BATCH_SEL(), \180+ CONV_COMMON_INNER_BATCH_SEL() \
180- CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)181+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
181 182 
182#define CONV_INNER_BATCH_ABL1_FULLLOAD_N_FIRST_SEL() \183#define CONV_INNER_BATCH_ABL1_FULLLOAD_N_FIRST_SEL() \
183 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \184 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \
@@ -186,14 +187,50 @@ using namespace ConvKey;
186 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \187 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \
187 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \188 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
188 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \189 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
189- CONV_COMMON_INNER_BATCH_SEL(), \190+ CONV_COMMON_INNER_BATCH_SEL() \
190- CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)191+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
191 192 
192// C04 with innerbatch193// C04 with innerbatch
193#if (!defined(ASCENDC_TPL_PRE) && !defined(ASCENDC_TPL_KERNEL)) || \194#if (!defined(ASCENDC_TPL_PRE) && !defined(ASCENDC_TPL_KERNEL)) || \
194 (defined(ORIG_DTYPE_X) && \195 (defined(ORIG_DTYPE_X) && \
195 ((ORIG_DTYPE_X == DT_FLOAT16) || (ORIG_DTYPE_X == DT_BF16) || (ORIG_DTYPE_X == DT_FLOAT)))196 ((ORIG_DTYPE_X == DT_FLOAT16) || (ORIG_DTYPE_X == DT_BF16) || (ORIG_DTYPE_X == DT_FLOAT)))
196 197 
198+#define CONV_INNER_BATCH_ONLY_WEIGHT_FULLLOAD_L0_ALLCLOSE_ENABLE_C04_SEL() \
199+ ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
200+ ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \
201+ ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_FULLLOAD_BL1), \
202+ ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE, CONV_L1_PINGPONG_AL1_OPEN), \
203+ ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_ALL_CLOSE), \
204+ ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
205+ ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \
206+ ASCENDC_TPL_UINT_SEL(GroupType, ASCENDC_TPL_UI_LIST, CONV_GROUP_TYPE_NORMAL_CONV), \
207+ ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_OPEN), \
208+ ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
209+ ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
210+ ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
211+ CONV_INNER_BATCH_MULTI), \
212+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
213+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
214+ 
215+#define CONV_INNER_BATCH_ONLY_MN_FULLLOAD_ENABLE_C04_SEL() \
216+ ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
217+ ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_ONLY_M_FULLLOAD_AL1_AL0), \
218+ ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_ONLY_N_FULLLOAD_BL1_BL0), \
219+ ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE, CONV_L1_PINGPONG_AL1_OPEN, \
220+ CONV_L1_PINGPONG_BL1_OPEN, CONV_L1_PINGPONG_ALL_OPEN), \
221+ ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_ALL_OPEN), \
222+ ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
223+ ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \
224+ CONV_ITER_ORDER_NITER_FIRST), \
225+ ASCENDC_TPL_UINT_SEL(GroupType, ASCENDC_TPL_UI_LIST, CONV_GROUP_TYPE_NORMAL_CONV), \
226+ ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_OPEN), \
227+ ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
228+ ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
229+ ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
230+ CONV_INNER_BATCH_MULTI), \
231+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
232+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
233+ 
197#define CONV_INNER_BATCH_NO_FULLLOAD_AL0_OPEN_ENABLE_C04_SEL() \234#define CONV_INNER_BATCH_NO_FULLLOAD_AL0_OPEN_ENABLE_C04_SEL() \
198 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \235 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
199 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \236 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \
@@ -209,8 +246,8 @@ using namespace ConvKey;
209 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \246 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
210 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \247 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
211 CONV_INNER_BATCH_MULTI), \248 CONV_INNER_BATCH_MULTI), \
212- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \249+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
213- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)250+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
214 251 
215#define CONV_INNER_BATCH_NO_FULLLOAD_BL0_OPEN_ENABLE_C04_SEL() \252#define CONV_INNER_BATCH_NO_FULLLOAD_BL0_OPEN_ENABLE_C04_SEL() \
216 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \253 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -227,8 +264,8 @@ using namespace ConvKey;
227 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \264 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
228 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \265 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
229 CONV_INNER_BATCH_MULTI), \266 CONV_INNER_BATCH_MULTI), \
230- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \267+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
231- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)268+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
232 269 
233#define CONV_INNER_BATCH_NO_FULLLOAD_ALL_OPEN_ENABLE_C04_SEL() \270#define CONV_INNER_BATCH_NO_FULLLOAD_ALL_OPEN_ENABLE_C04_SEL() \
234 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \271 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -246,8 +283,8 @@ using namespace ConvKey;
246 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \283 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
247 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \284 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
248 CONV_INNER_BATCH_MULTI), \285 CONV_INNER_BATCH_MULTI), \
249- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \286+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
250- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)287+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
251 288 
252#define CONV_INNER_BATCH_ONLY_AL1_FULLLOAD_ENABLE_C04_SEL() \289#define CONV_INNER_BATCH_ONLY_AL1_FULLLOAD_ENABLE_C04_SEL() \
253 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \290 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -263,8 +300,8 @@ using namespace ConvKey;
263 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \300 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
264 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \301 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
265 CONV_INNER_BATCH_MULTI), \302 CONV_INNER_BATCH_MULTI), \
266- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \303+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
267- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)304+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
268 305 
269#define CONV_INNER_BATCH_ONLY_BL1_FULLLOAD_ENABLE_C04_SEL() \306#define CONV_INNER_BATCH_ONLY_BL1_FULLLOAD_ENABLE_C04_SEL() \
270 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \307 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -280,8 +317,8 @@ using namespace ConvKey;
280 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \317 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
281 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \318 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
282 CONV_INNER_BATCH_MULTI), \319 CONV_INNER_BATCH_MULTI), \
283- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \320+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
284- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)321+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
285 322 
286#define CONV_INNER_BATCH_ABL1_FULLLOAD_M_FIRST_ENABLE_C04_SEL() \323#define CONV_INNER_BATCH_ABL1_FULLLOAD_M_FIRST_ENABLE_C04_SEL() \
287 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \324 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -298,8 +335,8 @@ using namespace ConvKey;
298 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \335 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
299 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \336 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
300 CONV_INNER_BATCH_MULTI), \337 CONV_INNER_BATCH_MULTI), \
301- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \338+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
302- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)339+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
303 340 
304#define CONV_INNER_BATCH_ABL1_FULLLOAD_N_FIRST_ENABLE_C04_SEL() \341#define CONV_INNER_BATCH_ABL1_FULLLOAD_N_FIRST_ENABLE_C04_SEL() \
305 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \342 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -315,10 +352,12 @@ using namespace ConvKey;
315 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \352 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
316 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \353 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
317 CONV_INNER_BATCH_MULTI), \354 CONV_INNER_BATCH_MULTI), \
318- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \355+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
319- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)356+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
320 357 
321#else358#else
359+#define CONV_INNER_BATCH_ONLY_WEIGHT_FULLLOAD_L0_ALLCLOSE_ENABLE_C04_SEL()
360+#define CONV_INNER_BATCH_ONLY_MN_FULLLOAD_ENABLE_C04_SEL()
322#define CONV_INNER_BATCH_NO_FULLLOAD_AL0_OPEN_ENABLE_C04_SEL()361#define CONV_INNER_BATCH_NO_FULLLOAD_AL0_OPEN_ENABLE_C04_SEL()
323#define CONV_INNER_BATCH_NO_FULLLOAD_BL0_OPEN_ENABLE_C04_SEL()362#define CONV_INNER_BATCH_NO_FULLLOAD_BL0_OPEN_ENABLE_C04_SEL()
324#define CONV_INNER_BATCH_NO_FULLLOAD_ALL_OPEN_ENABLE_C04_SEL()363#define CONV_INNER_BATCH_NO_FULLLOAD_ALL_OPEN_ENABLE_C04_SEL()
@@ -32,20 +32,12 @@ using namespace ConvKey;
32 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \32 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
33 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \33 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
34 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \34 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
35- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_INPUT_HWNC), \35+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_INPUT_HWNC) \
36- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)36+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
37- 
38-#define CONV2D_COMMON_INPUT_HWNC_NO_SMALL_WEIGHT_TPL_UINT_SEL() \
39- ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_CLOSE), \
40- ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
41- ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
42- ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
43- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_INPUT_HWNC), \
44- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)
45 37 
46#define CONV2D_INPUT_HWNC_ONLY_MN_FULLLOAD_SEL() \38#define CONV2D_INPUT_HWNC_ONLY_MN_FULLLOAD_SEL() \
47 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_MN_FULLLOAD_SEL(), \39 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_MN_FULLLOAD_SEL(), \
48- CONV2D_COMMON_INPUT_HWNC_NO_SMALL_WEIGHT_TPL_UINT_SEL()40+ CONV2D_COMMON_INPUT_HWNC_TPL_UINT_SEL()
49 41 
50#define CONV2D_INPUT_HWNC_NO_FULLLOAD_AL0_OPEN_SEL() \42#define CONV2D_INPUT_HWNC_NO_FULLLOAD_AL0_OPEN_SEL() \
51 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_NO_FULLLOAD_AL0_OPEN_SEL(), \43 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_NO_FULLLOAD_AL0_OPEN_SEL(), \
@@ -61,7 +53,7 @@ using namespace ConvKey;
61 53 
62#define CONV2D_INPUT_HWNC_ONLY_AL1_FULLLOAD_SEL() \54#define CONV2D_INPUT_HWNC_ONLY_AL1_FULLLOAD_SEL() \
63 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_AL1_FULLLOAD_SEL(), \55 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_AL1_FULLLOAD_SEL(), \
64- CONV2D_COMMON_INPUT_HWNC_NO_SMALL_WEIGHT_TPL_UINT_SEL()56+ CONV2D_COMMON_INPUT_HWNC_TPL_UINT_SEL()
65 57 
66#define CONV2D_INPUT_HWNC_ONLY_BL1_FULLLOAD_SEL() \58#define CONV2D_INPUT_HWNC_ONLY_BL1_FULLLOAD_SEL() \
67 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_BL1_FULLLOAD_SEL(), \59 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_BL1_FULLLOAD_SEL(), \
@@ -83,19 +75,8 @@ using namespace ConvKey;
83 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \75 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
84 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \76 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
85 CONV_INNER_BATCH_MULTI), \77 CONV_INNER_BATCH_MULTI), \
86- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_INPUT_HWNC), \78+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_INPUT_HWNC) \
87- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)79+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
88- 
89-#define CONV2D_COMMON_INNER_BATCH_INPUT_HWNC_NO_SMALL_WEIGHT_SEL() \
90- ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), \
91- ASCENDC_TPL_UINT_SEL(GroupType, ASCENDC_TPL_UI_LIST, CONV_GROUP_TYPE_NORMAL_CONV), \
92- ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_CLOSE), \
93- ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
94- ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
95- ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_KERNEL_1X1_MULTI, \
96- CONV_INNER_BATCH_MULTI), \
97- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_INPUT_HWNC), \
98- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)
99 80 
100#define CONV2D_INNER_BATCH_INPUT_HWNC_ONLY_MN_FULLLOAD_SEL() \81#define CONV2D_INNER_BATCH_INPUT_HWNC_ONLY_MN_FULLLOAD_SEL() \
101 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), \82 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), \
@@ -107,7 +88,7 @@ using namespace ConvKey;
107 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \88 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
108 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \89 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \
109 CONV_ITER_ORDER_NITER_FIRST), \90 CONV_ITER_ORDER_NITER_FIRST), \
110- CONV2D_COMMON_INNER_BATCH_INPUT_HWNC_NO_SMALL_WEIGHT_SEL()91+ CONV2D_COMMON_INNER_BATCH_INPUT_HWNC_SEL()
111 92 
112#define CONV2D_INNER_BATCH_INPUT_HWNC_NO_FULLLOAD_AL0_OPEN_SEL() \93#define CONV2D_INNER_BATCH_INPUT_HWNC_NO_FULLLOAD_AL0_OPEN_SEL() \
113 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), \94 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), \
@@ -151,7 +132,7 @@ using namespace ConvKey;
151 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \132 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \
152 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \133 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
153 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \134 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
154- CONV2D_COMMON_INNER_BATCH_INPUT_HWNC_NO_SMALL_WEIGHT_SEL()135+ CONV2D_COMMON_INNER_BATCH_INPUT_HWNC_SEL()
155 136 
156#define CONV2D_INNER_BATCH_INPUT_HWNC_ONLY_BL1_FULLLOAD_SEL() \137#define CONV2D_INNER_BATCH_INPUT_HWNC_ONLY_BL1_FULLLOAD_SEL() \
157 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), \138 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), \
@@ -87,24 +87,8 @@ ASCENDC_TPL_ARGS_DECL(
87 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \87 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
88 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \88 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
89 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \89 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
90- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \90+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
91- CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)91+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
92- 
93-#define CONV2D_COMMON_C04_NK_TPL_UINT_SEL() \
94- ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_CLOSE), \
95- ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
96- ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
97- ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
98- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \
99- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
100- 
101-#define CONV2D_COMMON_C04_NO_SMALL_WEIGHT_TPL_UINT_SEL() \
102- ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_CLOSE), \
103- ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
104- ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
105- ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
106- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \
107- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)
108 92 
109#define CONV2D_COMMON_C04_MIXCORE_TPL_UINT_SEL() \93#define CONV2D_COMMON_C04_MIXCORE_TPL_UINT_SEL() \
110 ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_OPEN), \94 ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_OPEN), \
@@ -112,41 +96,32 @@ ASCENDC_TPL_ARGS_DECL(
112 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \96 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
113 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \97 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
114 ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE, \98 ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE, \
115- CONV_DIS_CONTINUOUS_INPUT_HWNC), \99+ CONV_DIS_CONTINUOUS_INPUT_HWNC) \
116- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)100+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
117- 
118-#define CONV2D_COMMON_C04_MIXCORE_NO_SMALL_WEIGHT_TPL_UINT_SEL() \
119- ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_OPEN), \
120- ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
121- ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
122- ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
123- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE, \
124- CONV_DIS_CONTINUOUS_INPUT_HWNC), \
125- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)
126 101 
127#define CONV2D_ONLY_MN_FULLLOAD_SEL() \102#define CONV2D_ONLY_MN_FULLLOAD_SEL() \
128 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_MN_FULLLOAD_SEL(), \103 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_MN_FULLLOAD_SEL(), \
129- CONV2D_COMMON_C04_NO_SMALL_WEIGHT_TPL_UINT_SEL()104+ CONV2D_COMMON_C04_TPL_UINT_SEL()
130 105 
131#define CONV2D_NO_FULLLOAD_AL0_OPEN_SEL() \106#define CONV2D_NO_FULLLOAD_AL0_OPEN_SEL() \
132 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_NO_FULLLOAD_AL0_OPEN_SEL(), \107 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_NO_FULLLOAD_AL0_OPEN_SEL(), \
133- CONV2D_COMMON_C04_NO_SMALL_WEIGHT_TPL_UINT_SEL()108+ CONV2D_COMMON_C04_TPL_UINT_SEL()
134 109 
135#define CONV2D_NO_FULLLOAD_BL0_OPEN_SEL() \110#define CONV2D_NO_FULLLOAD_BL0_OPEN_SEL() \
136 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_NO_FULLLOAD_BL0_OPEN_SEL(), \111 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_NO_FULLLOAD_BL0_OPEN_SEL(), \
137- CONV2D_COMMON_C04_NO_SMALL_WEIGHT_TPL_UINT_SEL()112+ CONV2D_COMMON_C04_TPL_UINT_SEL()
138 113 
139#define CONV2D_NO_FULLLOAD_ALL_OPEN_SEL() \114#define CONV2D_NO_FULLLOAD_ALL_OPEN_SEL() \
140 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_NO_FULLLOAD_ALL_OPEN_SEL(), \115 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_NO_FULLLOAD_ALL_OPEN_SEL(), \
141- CONV2D_COMMON_C04_NO_SMALL_WEIGHT_TPL_UINT_SEL()116+ CONV2D_COMMON_C04_TPL_UINT_SEL()
142 117 
143#define CONV2D_ONLY_AL1_FULLLOAD_SEL() \118#define CONV2D_ONLY_AL1_FULLLOAD_SEL() \
144 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_AL1_FULLLOAD_SEL(), \119 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_AL1_FULLLOAD_SEL(), \
145- CONV2D_COMMON_C04_NO_SMALL_WEIGHT_TPL_UINT_SEL()120+ CONV2D_COMMON_C04_TPL_UINT_SEL()
146 121 
147#define CONV2D_ONLY_BL1_FULLLOAD_SEL() \122#define CONV2D_ONLY_BL1_FULLLOAD_SEL() \
148 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_BL1_FULLLOAD_SEL(), \123 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ONLY_BL1_FULLLOAD_SEL(), \
149- CONV2D_COMMON_C04_NK_TPL_UINT_SEL()124+ CONV2D_COMMON_C04_TPL_UINT_SEL()
150 125 
151#define CONV2D_ABL1_FULLLOAD_M_FIRST_SEL() \126#define CONV2D_ABL1_FULLLOAD_M_FIRST_SEL() \
152 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ABL1_FULLLOAD_M_FIRST_SEL(), \127 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), CONV_COMMON_ABL1_FULLLOAD_M_FIRST_SEL(), \
@@ -159,21 +134,25 @@ ASCENDC_TPL_ARGS_DECL(
159#if (!defined(ASCENDC_TPL_PRE) && !defined(ASCENDC_TPL_KERNEL)) || \134#if (!defined(ASCENDC_TPL_PRE) && !defined(ASCENDC_TPL_KERNEL)) || \
160 (defined(ORIG_DTYPE_X) && \135 (defined(ORIG_DTYPE_X) && \
161 ((ORIG_DTYPE_X == DT_FLOAT16) || (ORIG_DTYPE_X == DT_BF16) || (ORIG_DTYPE_X == DT_FLOAT)))136 ((ORIG_DTYPE_X == DT_FLOAT16) || (ORIG_DTYPE_X == DT_BF16) || (ORIG_DTYPE_X == DT_FLOAT)))
137+#define CONV2D_ONLY_MN_FULLLOAD_MIXCORE_SEL() \
138+ ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_ONLY_MN_FULLLOAD_SEL(), \
139+ CONV2D_COMMON_C04_MIXCORE_TPL_UINT_SEL()
140+ 
162#define CONV2D_NO_FULLLOAD_AL0_OPEN_MIXCORE_SEL() \141#define CONV2D_NO_FULLLOAD_AL0_OPEN_MIXCORE_SEL() \
163 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_NO_FULLLOAD_AL0_OPEN_SEL(), \142 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_NO_FULLLOAD_AL0_OPEN_SEL(), \
164- CONV2D_COMMON_C04_MIXCORE_NO_SMALL_WEIGHT_TPL_UINT_SEL()143+ CONV2D_COMMON_C04_MIXCORE_TPL_UINT_SEL()
165 144 
166#define CONV2D_NO_FULLLOAD_BL0_OPEN_MIXCORE_SEL() \145#define CONV2D_NO_FULLLOAD_BL0_OPEN_MIXCORE_SEL() \
167 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_NO_FULLLOAD_BL0_OPEN_SEL(), \146 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_NO_FULLLOAD_BL0_OPEN_SEL(), \
168- CONV2D_COMMON_C04_MIXCORE_NO_SMALL_WEIGHT_TPL_UINT_SEL()147+ CONV2D_COMMON_C04_MIXCORE_TPL_UINT_SEL()
169 148 
170#define CONV2D_NO_FULLLOAD_ALL_OPEN_MIXCORE_SEL() \149#define CONV2D_NO_FULLLOAD_ALL_OPEN_MIXCORE_SEL() \
171 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_NO_FULLLOAD_ALL_OPEN_SEL(), \150 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_NO_FULLLOAD_ALL_OPEN_SEL(), \
172- CONV2D_COMMON_C04_MIXCORE_NO_SMALL_WEIGHT_TPL_UINT_SEL()151+ CONV2D_COMMON_C04_MIXCORE_TPL_UINT_SEL()
173 152 
174#define CONV2D_ONLY_AL1_FULLLOAD_MIXCORE_SEL() \153#define CONV2D_ONLY_AL1_FULLLOAD_MIXCORE_SEL() \
175 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_ONLY_AL1_FULLLOAD_SEL(), \154 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_ONLY_AL1_FULLLOAD_SEL(), \
176- CONV2D_COMMON_C04_MIXCORE_NO_SMALL_WEIGHT_TPL_UINT_SEL()155+ CONV2D_COMMON_C04_MIXCORE_TPL_UINT_SEL()
177 156 
178#define CONV2D_ONLY_BL1_FULLLOAD_MIXCORE_SEL() \157#define CONV2D_ONLY_BL1_FULLLOAD_MIXCORE_SEL() \
179 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_ONLY_BL1_FULLLOAD_SEL(), \158 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_ONLY_BL1_FULLLOAD_SEL(), \
@@ -187,6 +166,7 @@ ASCENDC_TPL_ARGS_DECL(
187 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_ABL1_FULLLOAD_N_FIRST_SEL(), \166 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), CONV_COMMON_ABL1_FULLLOAD_N_FIRST_SEL(), \
188 CONV2D_COMMON_C04_MIXCORE_TPL_UINT_SEL()167 CONV2D_COMMON_C04_MIXCORE_TPL_UINT_SEL()
189#else168#else
169+#define CONV2D_ONLY_MN_FULLLOAD_MIXCORE_SEL()
190#define CONV2D_NO_FULLLOAD_AL0_OPEN_MIXCORE_SEL()170#define CONV2D_NO_FULLLOAD_AL0_OPEN_MIXCORE_SEL()
191#define CONV2D_NO_FULLLOAD_BL0_OPEN_MIXCORE_SEL()171#define CONV2D_NO_FULLLOAD_BL0_OPEN_MIXCORE_SEL()
192#define CONV2D_NO_FULLLOAD_ALL_OPEN_MIXCORE_SEL()172#define CONV2D_NO_FULLLOAD_ALL_OPEN_MIXCORE_SEL()
@@ -202,8 +182,8 @@ ASCENDC_TPL_ARGS_DECL(
202 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \182 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
203 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \183 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
204 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \184 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
205- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \185+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
206- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)186+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
207 187 
208// simplified depthwise conv2d tilingKey SEL188// simplified depthwise conv2d tilingKey SEL
209#if (!defined(ASCENDC_TPL_PRE) && !defined(ASCENDC_TPL_KERNEL)) || \189#if (!defined(ASCENDC_TPL_PRE) && !defined(ASCENDC_TPL_KERNEL)) || \
@@ -224,8 +204,8 @@ ASCENDC_TPL_ARGS_DECL(
224 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \204 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
225 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \205 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
226 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \206 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
227- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \207+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
228- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)208+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
229 209 
230#else210#else
231#define CONV2D_OPT_GROUP_SIMPLIFIED_SEL()211#define CONV2D_OPT_GROUP_SIMPLIFIED_SEL()
@@ -236,8 +216,8 @@ ASCENDC_TPL_ARGS_DECL(
236 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \216 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
237 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \217 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
238 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \218 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
239- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \219+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
240- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)220+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
241 221 
242#define CONV2D_OPT_GROUP_PRELOAD_SEL() \222#define CONV2D_OPT_GROUP_PRELOAD_SEL() \
243 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \223 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -253,8 +233,8 @@ ASCENDC_TPL_ARGS_DECL(
253 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \233 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
254 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \234 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
255 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \235 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
256- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \236+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
257- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)237+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
258 238 
259// Weight Ub Trans Mode TilingKey SEL239// Weight Ub Trans Mode TilingKey SEL
260#if (!defined(ASCENDC_TPL_PRE) && !defined(ASCENDC_TPL_KERNEL)) || \240#if (!defined(ASCENDC_TPL_PRE) && !defined(ASCENDC_TPL_KERNEL)) || \
@@ -279,7 +259,8 @@ ASCENDC_TPL_ARGS_DECL(
279 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \259 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_M_MODE), \
280 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \260 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \
281 CONV_ITER_ORDER_NITER_FIRST), \261 CONV_ITER_ORDER_NITER_FIRST), \
282- CONV2D_COMMON_WEIGHT_UB_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)262+ CONV2D_COMMON_WEIGHT_UB_SEL() \
263+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
283 264 
284#define CONV2D_WEIGHT_UB_ONLY_AL1_FULLLOAD_SEL() \265#define CONV2D_WEIGHT_UB_ONLY_AL1_FULLLOAD_SEL() \
285 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \266 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -289,7 +270,7 @@ ASCENDC_TPL_ARGS_DECL(
289 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \270 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \
290 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \271 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \
291 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \272 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
292- CONV2D_COMMON_WEIGHT_UB_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)273+ CONV2D_COMMON_WEIGHT_UB_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
293 274 
294#define CONV2D_WEIGHT_UB_NO_FULLLOAD_AL0_OPEN_SEL() \275#define CONV2D_WEIGHT_UB_NO_FULLLOAD_AL0_OPEN_SEL() \
295 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \276 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -299,7 +280,7 @@ ASCENDC_TPL_ARGS_DECL(
299 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_AL0_OPEN), \280 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_AL0_OPEN), \
300 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \281 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \
301 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \282 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \
302- CONV2D_COMMON_WEIGHT_UB_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)283+ CONV2D_COMMON_WEIGHT_UB_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
303 284 
304#define CONV2D_WEIGHT_UB_NO_FULLLOAD_BL0_OPEN_SEL() \285#define CONV2D_WEIGHT_UB_NO_FULLLOAD_BL0_OPEN_SEL() \
305 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \286 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -309,7 +290,7 @@ ASCENDC_TPL_ARGS_DECL(
309 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN), \290 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN), \
310 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \291 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \
311 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \292 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
312- CONV2D_COMMON_WEIGHT_UB_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)293+ CONV2D_COMMON_WEIGHT_UB_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
313 294 
314#define CONV2D_WEIGHT_UB_NO_FULLLOAD_ALL_OPEN_SEL() \295#define CONV2D_WEIGHT_UB_NO_FULLLOAD_ALL_OPEN_SEL() \
315 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \296 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2), \
@@ -320,7 +301,7 @@ ASCENDC_TPL_ARGS_DECL(
320 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \301 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE, CONV_OUTPUT_ORDER_M_MODE), \
321 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \302 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \
322 CONV_ITER_ORDER_NITER_FIRST), \303 CONV_ITER_ORDER_NITER_FIRST), \
323- CONV2D_COMMON_WEIGHT_UB_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)304+ CONV2D_COMMON_WEIGHT_UB_SEL() CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT)
324 305 
325#else306#else
326#define CONV2D_WEIGHT_UB_ONLY_MN_FULLLOAD_SEL()307#define CONV2D_WEIGHT_UB_ONLY_MN_FULLLOAD_SEL()
@@ -331,20 +312,12 @@ ASCENDC_TPL_ARGS_DECL(
331#endif312#endif
332 313 
333// Fmap DMA Mode TilingKey SEL314// Fmap DMA Mode TilingKey SEL
334-#define CONV2D_COMMON_DMA_SEL() \315+#define CONV2D_COMMON_DMA_SEL() \
335- ASCENDC_TPL_UINT_SEL(GroupType, ASCENDC_TPL_UI_LIST, CONV_GROUP_TYPE_NORMAL_CONV), \316+ ASCENDC_TPL_UINT_SEL(GroupType, ASCENDC_TPL_UI_LIST, CONV_GROUP_TYPE_NORMAL_CONV, CONV_GROUP_TYPE_ORI_GROUP_CONV), \
336- ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_CLOSE), \317+ ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_CLOSE), \
337- ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \318+ ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
338- ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_DMA_MODE), \319+ ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_DMA_MODE), \
339- ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \320+ ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
340- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE)
341- 
342-#define CONV2D_COMMON_DMA_ORI_GROUP_SEL() \
343- ASCENDC_TPL_UINT_SEL(GroupType, ASCENDC_TPL_UI_LIST, CONV_GROUP_TYPE_ORI_GROUP_CONV), \
344- ASCENDC_TPL_UINT_SEL(EnableSmallChannel, ASCENDC_TPL_UI_LIST, CONV_ENABLE_SMALL_CHANNEL_CLOSE), \
345- ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
346- ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_DMA_MODE), \
347- ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
348 ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE)321 ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE)
349 322 
350#define CONV2D_DMA_L1_FULLLOAD_L0B_CLOSE_SEL() \323#define CONV2D_DMA_L1_FULLLOAD_L0B_CLOSE_SEL() \
@@ -353,17 +326,19 @@ ASCENDC_TPL_ARGS_DECL(
353 ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \326 ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \
354 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_ALL_CLOSE, CONV_L0_PINGPONG_AL0_OPEN), \327 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_ALL_CLOSE, CONV_L0_PINGPONG_AL0_OPEN), \
355 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \328 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \
356- ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), CONV2D_COMMON_DMA_SEL(), \329+ ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \
357- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)330+ CONV2D_COMMON_DMA_SEL() \
331+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
358 332 
359-#define CONV2D_DMA_L1_FULLLOAD_ONLY_L0B_OPEN_SEL() \333+#define CONV2D_DMA_L1_FULLLOAD_ONLY_L0B_OPEN_SEL() \
360- ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \334+ ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \
361- ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_FULLLOAD_BL1), \335+ ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_FULLLOAD_BL1), \
362- ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \336+ ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \
363- ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN), \337+ ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN), \
364- ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \338+ ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \
365- ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), CONV2D_COMMON_DMA_SEL(), \339+ ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
366- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)340+ CONV2D_COMMON_DMA_SEL() \
341+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
367 342 
368#define CONV2D_DMA_L1_FULLLOAD_ALL_OPEN_SEL() \343#define CONV2D_DMA_L1_FULLLOAD_ALL_OPEN_SEL() \
369 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \344 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \
@@ -373,8 +348,8 @@ ASCENDC_TPL_ARGS_DECL(
373 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \348 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \
374 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \349 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \
375 CONV_ITER_ORDER_NITER_FIRST), \350 CONV_ITER_ORDER_NITER_FIRST), \
376- CONV2D_COMMON_DMA_SEL(), \351+ CONV2D_COMMON_DMA_SEL() \
377- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)352+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
378 353 
379#define CONV2D_DMA_AL1_NO_FULLLOAD_M_FIRST_SEL() \354#define CONV2D_DMA_AL1_NO_FULLLOAD_M_FIRST_SEL() \
380 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \355 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \
@@ -383,64 +358,19 @@ ASCENDC_TPL_ARGS_DECL(
383 ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \358 ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \
384 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_AL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \359 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_AL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \
385 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \360 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \
386- ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), CONV2D_COMMON_DMA_SEL(), \361+ ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \
387- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)362+ CONV2D_COMMON_DMA_SEL() \
363+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
388 364 
389#define CONV2D_DMA_BL1_NO_FULLLOAD_N_FIRST_SEL() \365#define CONV2D_DMA_BL1_NO_FULLLOAD_N_FIRST_SEL() \
390- ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1, CONV_FMAP_TILING_OTHER), \
391- ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_OTHER), \
392- ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \
393- ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \
394- ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \
395- ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), CONV2D_COMMON_DMA_SEL(), \
396- CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)
397- 
398-#define CONV2D_DMA_ORI_GROUP_L1_FULLLOAD_L0B_CLOSE_SEL() \
399- ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \
400- ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_FULLLOAD_BL1), \
401- ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \
402- ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_ALL_CLOSE, CONV_L0_PINGPONG_AL0_OPEN), \
403- ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \
404- ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \
405- CONV2D_COMMON_DMA_ORI_GROUP_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)
406- 
407-#define CONV2D_DMA_ORI_GROUP_L1_FULLLOAD_ONLY_L0B_OPEN_SEL() \
408- ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \
409- ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_FULLLOAD_BL1), \
410- ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \
411- ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN), \
412- ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \
413- ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
414- CONV2D_COMMON_DMA_ORI_GROUP_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)
415- 
416-#define CONV2D_DMA_ORI_GROUP_L1_FULLLOAD_ALL_OPEN_SEL() \
417- ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1), \
418- ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_FULLLOAD_BL1), \
419- ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \
420- ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_ALL_OPEN), \
421- ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \
422- ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST, \
423- CONV_ITER_ORDER_NITER_FIRST), \
424- CONV2D_COMMON_DMA_ORI_GROUP_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)
425- 
426-#define CONV2D_DMA_ORI_GROUP_AL1_NO_FULLLOAD_M_FIRST_SEL() \
427- ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_OTHER), \
428- ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_FULLLOAD_BL1, \
429- CONV_WEIGHT_TILING_OTHER), \
430- ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \
431- ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_AL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \
432- ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \
433- ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_MITER_FIRST), \
434- CONV2D_COMMON_DMA_ORI_GROUP_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)
435- 
436-#define CONV2D_DMA_ORI_GROUP_BL1_NO_FULLLOAD_N_FIRST_SEL() \
437 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1, CONV_FMAP_TILING_OTHER), \366 ASCENDC_TPL_UINT_SEL(FmapTiling, ASCENDC_TPL_UI_LIST, CONV_FMAP_TILING_FULLLOAD_AL1, CONV_FMAP_TILING_OTHER), \
438 ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_OTHER), \367 ASCENDC_TPL_UINT_SEL(WeightTiling, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_TILING_OTHER), \
439 ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \368 ASCENDC_TPL_UINT_SEL(L1PingPong, ASCENDC_TPL_UI_LIST, CONV_L1_PINGPONG_ALL_CLOSE), \
440 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \369 ASCENDC_TPL_UINT_SEL(L0PingPong, ASCENDC_TPL_UI_LIST, CONV_L0_PINGPONG_BL0_OPEN, CONV_L0_PINGPONG_ALL_OPEN), \
441 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \370 ASCENDC_TPL_UINT_SEL(OutputOrder, ASCENDC_TPL_UI_LIST, CONV_OUTPUT_ORDER_HW_MODE), \
442 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \371 ASCENDC_TPL_UINT_SEL(IterOrder, ASCENDC_TPL_UI_LIST, CONV_ITER_ORDER_NITER_FIRST), \
443- CONV2D_COMMON_DMA_ORI_GROUP_SEL(), CONV2D_SCALAR_OPT_SEL_NK(CONV_NOT_SMALL_WEIGHT)372+ CONV2D_COMMON_DMA_SEL() \
373+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
444 374 
445#define CONV2D_ABL1_FULLLOAD_DB_OPEN_SEL() \375#define CONV2D_ABL1_FULLLOAD_DB_OPEN_SEL() \
446 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), \376 ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_AIC_ONLY), \
@@ -455,15 +385,15 @@ ASCENDC_TPL_ARGS_DECL(
455 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \385 ASCENDC_TPL_UINT_SEL(WeightUbTrans, ASCENDC_TPL_UI_LIST, CONV_WEIGHT_UB_TRANS_CLOSE), \
456 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \386 ASCENDC_TPL_UINT_SEL(FmapCopyMode, ASCENDC_TPL_UI_LIST, CONV_FMAP_LOAD3D_MODE), \
457 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \387 ASCENDC_TPL_UINT_SEL(InnerBatch, ASCENDC_TPL_UI_LIST, CONV_INNER_BATCH_SINGLE), \
458- ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE), \388+ ASCENDC_TPL_UINT_SEL(DisContinuous, ASCENDC_TPL_UI_LIST, CONV_DIS_CONTINUOUS_CLOSE) \
459- CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)389+ CONV2D_SCALAR_OPT_SEL(CONV_NOT_SMALL_WEIGHT, CONV_FULLLOAD_KL1_NL0, CONV_WEIGHT_SMALLER_THAN_BL0)
460 390 
461ASCENDC_TPL_SEL(391ASCENDC_TPL_SEL(
462 ASCENDC_TPL_ARGS_SEL(CONV2D_ONLY_MN_FULLLOAD_SEL()), ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_AL0_OPEN_SEL()),392 ASCENDC_TPL_ARGS_SEL(CONV2D_ONLY_MN_FULLLOAD_SEL()), ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_AL0_OPEN_SEL()),
463 ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_BL0_OPEN_SEL()), ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_ALL_OPEN_SEL()),393 ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_BL0_OPEN_SEL()), ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_ALL_OPEN_SEL()),
464 ASCENDC_TPL_ARGS_SEL(CONV2D_ONLY_AL1_FULLLOAD_SEL()), ASCENDC_TPL_ARGS_SEL(CONV2D_ONLY_BL1_FULLLOAD_SEL()),394 ASCENDC_TPL_ARGS_SEL(CONV2D_ONLY_AL1_FULLLOAD_SEL()), ASCENDC_TPL_ARGS_SEL(CONV2D_ONLY_BL1_FULLLOAD_SEL()),
465 ASCENDC_TPL_ARGS_SEL(CONV2D_ABL1_FULLLOAD_M_FIRST_SEL()), ASCENDC_TPL_ARGS_SEL(CONV2D_ABL1_FULLLOAD_N_FIRST_SEL()),395 ASCENDC_TPL_ARGS_SEL(CONV2D_ABL1_FULLLOAD_M_FIRST_SEL()), ASCENDC_TPL_ARGS_SEL(CONV2D_ABL1_FULLLOAD_N_FIRST_SEL()),
466- ASCENDC_TPL_ARGS_SEL(CONV2D_SMALL_KERNEL_NCHW_SEL()),396+ ASCENDC_TPL_ARGS_SEL(CONV2D_SMALL_KERNEL_NCHW_SEL()), ASCENDC_TPL_ARGS_SEL(CONV2D_ONLY_MN_FULLLOAD_MIXCORE_SEL()),
467 ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_AL0_OPEN_MIXCORE_SEL()),397 ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_AL0_OPEN_MIXCORE_SEL()),
468 ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_BL0_OPEN_MIXCORE_SEL()),398 ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_BL0_OPEN_MIXCORE_SEL()),
469 ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_ALL_OPEN_MIXCORE_SEL()),399 ASCENDC_TPL_ARGS_SEL(CONV2D_NO_FULLLOAD_ALL_OPEN_MIXCORE_SEL()),
@@ -486,16 +416,6 @@ ASCENDC_TPL_SEL(
486 CONV2D_DMA_AL1_NO_FULLLOAD_M_FIRST_SEL()),416 CONV2D_DMA_AL1_NO_FULLLOAD_M_FIRST_SEL()),
487 ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2),417 ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2),
488 CONV2D_DMA_BL1_NO_FULLLOAD_N_FIRST_SEL()),418 CONV2D_DMA_BL1_NO_FULLLOAD_N_FIRST_SEL()),
489- ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2),
490- CONV2D_DMA_ORI_GROUP_L1_FULLLOAD_L0B_CLOSE_SEL()),
491- ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2),
492- CONV2D_DMA_ORI_GROUP_L1_FULLLOAD_ONLY_L0B_OPEN_SEL()),
493- ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2),
494- CONV2D_DMA_ORI_GROUP_L1_FULLLOAD_ALL_OPEN_SEL()),
495- ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2),
496- CONV2D_DMA_ORI_GROUP_AL1_NO_FULLLOAD_M_FIRST_SEL()),
497- ASCENDC_TPL_ARGS_SEL(ASCENDC_TPL_KERNEL_TYPE_SEL(ASCENDC_TPL_MIX_AIC_1_2),
498- CONV2D_DMA_ORI_GROUP_BL1_NO_FULLLOAD_N_FIRST_SEL()),
499 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_WEIGHT_UB_ONLY_MN_FULLLOAD_SEL()),419 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_WEIGHT_UB_ONLY_MN_FULLLOAD_SEL()),
500 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_WEIGHT_UB_ONLY_AL1_FULLLOAD_SEL()),420 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_WEIGHT_UB_ONLY_AL1_FULLLOAD_SEL()),
501 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_WEIGHT_UB_NO_FULLLOAD_AL0_OPEN_SEL()),421 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_WEIGHT_UB_NO_FULLLOAD_AL0_OPEN_SEL()),
@@ -530,6 +450,8 @@ ASCENDC_TPL_SEL(
530 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_INPUT_HWNC_ONLY_BL1_FULLLOAD_SEL()),450 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_INPUT_HWNC_ONLY_BL1_FULLLOAD_SEL()),
531 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_INPUT_HWNC_ABL1_FULLLOAD_M_FIRST_SEL()),451 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_INPUT_HWNC_ABL1_FULLLOAD_M_FIRST_SEL()),
532 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_INPUT_HWNC_ABL1_FULLLOAD_N_FIRST_SEL()),452 ASCENDC_TPL_ARGS_SEL(CONV2D_INNER_BATCH_INPUT_HWNC_ABL1_FULLLOAD_N_FIRST_SEL()),
453+ ASCENDC_TPL_ARGS_SEL(CONV_INNER_BATCH_ONLY_WEIGHT_FULLLOAD_L0_ALLCLOSE_ENABLE_C04_SEL()),
454+ ASCENDC_TPL_ARGS_SEL(CONV_INNER_BATCH_ONLY_MN_FULLLOAD_ENABLE_C04_SEL()),
533 ASCENDC_TPL_ARGS_SEL(CONV_INNER_BATCH_NO_FULLLOAD_AL0_OPEN_ENABLE_C04_SEL()),455 ASCENDC_TPL_ARGS_SEL(CONV_INNER_BATCH_NO_FULLLOAD_AL0_OPEN_ENABLE_C04_SEL()),
534 ASCENDC_TPL_ARGS_SEL(CONV_INNER_BATCH_NO_FULLLOAD_BL0_OPEN_ENABLE_C04_SEL()),456 ASCENDC_TPL_ARGS_SEL(CONV_INNER_BATCH_NO_FULLLOAD_BL0_OPEN_ENABLE_C04_SEL()),
535 ASCENDC_TPL_ARGS_SEL(CONV_INNER_BATCH_NO_FULLLOAD_ALL_OPEN_ENABLE_C04_SEL()),457 ASCENDC_TPL_ARGS_SEL(CONV_INNER_BATCH_NO_FULLLOAD_ALL_OPEN_ENABLE_C04_SEL()),