Merged
修复CCE指令参数传输错误的问题 #4379
leozjrAdd on Jul 15
修复CCE指令参数传输错误的问题 #4379
Merged
leozjrAdd on Jul 15
Merged fromDeleted :fix/cce-param-9.1.0intocann/asc-devkit9.1.0
Total: 5 files changed+105-30
@@ -23,7 +23,7 @@ __aicore__ inline void asc_copy_gm2l1_impl(__cbuf__ void* dst, __gm__ void* src,
23 uint64_t src_stride, uint32_t dst_stride)23 uint64_t src_stride, uint32_t dst_stride)
24{24{
25 if ASC_IS_AIC {25 if ASC_IS_AIC {
26- copy_gm_to_cbuf_v2(dst, src, 0, n_burst, len_burst, pad_func_mode, src_stride, dst_stride);26+ copy_gm_to_cbuf_v2(dst, src, 0, n_burst, len_burst, pad_func_mode, 0, src_stride, dst_stride);
27 }27 }
28}28}
29 29 
@@ -28,9 +28,11 @@ __aicore__ inline void asc_copy_l0c2l1_impl(__cbuf__ half* dst, __cc__ float* sr
28 bool c0_pad_en)28 bool c0_pad_en)
29{29{
30 if ASC_IS_AIC {30 if ASC_IS_AIC {
31- copy_matrix_cc_to_cbuf(dst, src, 0, n_size, m_size, dst_stride, src_stride, clip_relu_pre, unit_flag_mode,31+ copy_matrix_cc_to_cbuf(
32- static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en, static_cast<QuantMode_post>(quant_post),32+ dst, src, 0, n_size, m_size, dst_stride, src_stride, 0, clip_relu_pre, unit_flag_mode,
33- relu_post, clip_relu_post, eltwise_op, eltwise_antq_en, c0_pad_en);33+ static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en,
34+ static_cast<QuantMode_post>(quant_post), relu_post, clip_relu_post, false, eltwise_op, eltwise_antq_en,
35+ false, c0_pad_en, false, false, false);
34 }36 }
35}37}
36 38 
@@ -44,9 +46,11 @@ __aicore__ inline void asc_copy_l0c2l1_impl(__cbuf__ int8_t* dst, __cc__ float*
44 bool c0_pad_en)46 bool c0_pad_en)
45{47{
46 if ASC_IS_AIC {48 if ASC_IS_AIC {
47- copy_matrix_cc_to_cbuf(dst, src, 0, n_size, m_size, dst_stride, src_stride, clip_relu_pre, unit_flag_mode,49+ copy_matrix_cc_to_cbuf(
48- static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en, static_cast<QuantMode_post>(quant_post),50+ dst, src, 0, n_size, m_size, dst_stride, src_stride, 0, clip_relu_pre, unit_flag_mode,
49- relu_post, clip_relu_post, eltwise_op, eltwise_antq_en, c0_pad_en);51+ static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en,
52+ static_cast<QuantMode_post>(quant_post), relu_post, clip_relu_post, false, eltwise_op, eltwise_antq_en,
53+ false, c0_pad_en, false, false, false);
50 }54 }
51}55}
52 56 
@@ -60,9 +64,11 @@ __aicore__ inline void asc_copy_l0c2l1_impl(__cbuf__ uint8_t* dst, __cc__ float*
60 bool c0_pad_en)64 bool c0_pad_en)
61{65{
62 if ASC_IS_AIC {66 if ASC_IS_AIC {
63- copy_matrix_cc_to_cbuf(dst, src, 0, n_size, m_size, dst_stride, src_stride, clip_relu_pre, unit_flag_mode,67+ copy_matrix_cc_to_cbuf(
64- static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en, static_cast<QuantMode_post>(quant_post),68+ dst, src, 0, n_size, m_size, dst_stride, src_stride, 0, clip_relu_pre, unit_flag_mode,
65- relu_post, clip_relu_post, eltwise_op, eltwise_antq_en, c0_pad_en);69+ static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en,
70+ static_cast<QuantMode_post>(quant_post), relu_post, clip_relu_post, false, eltwise_op, eltwise_antq_en,
71+ false, c0_pad_en, false, false, false);
66 }72 }
67}73}
68 74 
@@ -75,9 +81,11 @@ __aicore__ inline void asc_copy_l0c2l1_impl(__cbuf__ float* dst, __cc__ float* s
75 bool c0_pad_en)81 bool c0_pad_en)
76{82{
77 if ASC_IS_AIC {83 if ASC_IS_AIC {
78- copy_matrix_cc_to_cbuf(dst, src, 0, n_size, m_size, dst_stride, src_stride, clip_relu_pre, unit_flag_mode,84+ copy_matrix_cc_to_cbuf(
79- static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en, static_cast<QuantMode_post>(quant_post),85+ dst, src, 0, n_size, m_size, dst_stride, src_stride, 0, clip_relu_pre, unit_flag_mode,
80- relu_post, clip_relu_post, eltwise_op, eltwise_antq_en, c0_pad_en);86+ static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en,
87+ static_cast<QuantMode_post>(quant_post), relu_post, clip_relu_post, false, eltwise_op, eltwise_antq_en,
88+ false, c0_pad_en, false, false, false);
81 }89 }
82}90}
83 91 
@@ -90,9 +98,11 @@ __aicore__ inline void asc_copy_l0c2l1_impl(__cbuf__ half* dst, __cc__ int32_t*
90 bool c0_pad_en)98 bool c0_pad_en)
91{99{
92 if ASC_IS_AIC {100 if ASC_IS_AIC {
93- copy_matrix_cc_to_cbuf(dst, src, 0, n_size, m_size, dst_stride, src_stride, clip_relu_pre, unit_flag_mode,101+ copy_matrix_cc_to_cbuf(
94- static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en, static_cast<QuantMode_post>(quant_post),102+ dst, src, 0, n_size, m_size, dst_stride, src_stride, 0, clip_relu_pre, unit_flag_mode,
95- relu_post, clip_relu_post, eltwise_op, eltwise_antq_en, c0_pad_en);103+ static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en,
104+ static_cast<QuantMode_post>(quant_post), relu_post, clip_relu_post, false, eltwise_op, eltwise_antq_en,
105+ false, c0_pad_en, false, false, false);
96 }106 }
97}107}
98 108 
@@ -105,9 +115,11 @@ __aicore__ inline void asc_copy_l0c2l1_impl(__cbuf__ int8_t* dst, __cc__ int32_t
105 bool c0_pad_en)115 bool c0_pad_en)
106{116{
107 if ASC_IS_AIC {117 if ASC_IS_AIC {
108- copy_matrix_cc_to_cbuf(dst, src, 0, n_size, m_size, dst_stride, src_stride, clip_relu_pre, unit_flag_mode,118+ copy_matrix_cc_to_cbuf(
109- static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en, static_cast<QuantMode_post>(quant_post),119+ dst, src, 0, n_size, m_size, dst_stride, src_stride, 0, clip_relu_pre, unit_flag_mode,
110- relu_post, clip_relu_post, eltwise_op, eltwise_antq_en, c0_pad_en);120+ static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en,
121+ static_cast<QuantMode_post>(quant_post), relu_post, clip_relu_post, false, eltwise_op, eltwise_antq_en,
122+ false, c0_pad_en, false, false, false);
111 }123 }
112}124}
113 125 
@@ -120,9 +132,11 @@ __aicore__ inline void asc_copy_l0c2l1_impl(__cbuf__ uint8_t* dst, __cc__ int32_
120 bool c0_pad_en)132 bool c0_pad_en)
121{133{
122 if ASC_IS_AIC {134 if ASC_IS_AIC {
123- copy_matrix_cc_to_cbuf(dst, src, 0, n_size, m_size, dst_stride, src_stride, clip_relu_pre, unit_flag_mode,135+ copy_matrix_cc_to_cbuf(
124- static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en, static_cast<QuantMode_post>(quant_post),136+ dst, src, 0, n_size, m_size, dst_stride, src_stride, 0, clip_relu_pre, unit_flag_mode,
125- relu_post, clip_relu_post, eltwise_op, eltwise_antq_en, c0_pad_en);137+ static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en,
138+ static_cast<QuantMode_post>(quant_post), relu_post, clip_relu_post, false, eltwise_op, eltwise_antq_en,
139+ false, c0_pad_en, false, false, false);
126 }140 }
127}141}
128 142 
@@ -135,9 +149,11 @@ __aicore__ inline void asc_copy_l0c2l1_impl(__cbuf__ int32_t* dst, __cc__ int32_
135 bool c0_pad_en)149 bool c0_pad_en)
136{150{
137 if ASC_IS_AIC {151 if ASC_IS_AIC {
138- copy_matrix_cc_to_cbuf(dst, src, 0, n_size, m_size, dst_stride, src_stride, clip_relu_pre, unit_flag_mode,152+ copy_matrix_cc_to_cbuf(
139- static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en, static_cast<QuantMode_post>(quant_post),153+ dst, src, 0, n_size, m_size, dst_stride, src_stride, 0, clip_relu_pre, unit_flag_mode,
140- relu_post, clip_relu_post, eltwise_op, eltwise_antq_en, c0_pad_en);154+ static_cast<QuantMode_t>(quant_pre), relu_pre, channel_split, nz2nd_en,
155+ static_cast<QuantMode_post>(quant_post), relu_post, clip_relu_post, false, eltwise_op, eltwise_antq_en,
156+ false, c0_pad_en, false, false, false);
141 }157 }
142}158}
143 159 
@@ -91,13 +91,14 @@ TEST_CUBE_DATAMOVE_GM2L1(GM2L1, asc_copy_gm2l1, load_gm_to_cbuf_2dv2_s4, void);
91 91 
92 92 
93__aicore__ inline void copy_gm_to_cbuf_v2_stub(__cbuf__ void* dst, __gm__ void* src, uint8_t sid, uint32_t n_burst, uint32_t len_burst, uint8_t pad_func_mode,93__aicore__ inline void copy_gm_to_cbuf_v2_stub(__cbuf__ void* dst, __gm__ void* src, uint8_t sid, uint32_t n_burst, uint32_t len_burst, uint8_t pad_func_mode,
94- uint64_t src_stride, uint32_t dst_stride) {94+ uint8_t l2_cache_ctl, uint64_t src_stride, uint32_t dst_stride) {
95 EXPECT_EQ(dst, reinterpret_cast<__cbuf__ void *>(11));95 EXPECT_EQ(dst, reinterpret_cast<__cbuf__ void *>(11));
96 EXPECT_EQ(src, reinterpret_cast<__gm__ void *>(22));96 EXPECT_EQ(src, reinterpret_cast<__gm__ void *>(22));
97 EXPECT_EQ(sid, static_cast<uint8_t>(0));97 EXPECT_EQ(sid, static_cast<uint8_t>(0));
98 EXPECT_EQ(n_burst, static_cast<uint32_t>(33));98 EXPECT_EQ(n_burst, static_cast<uint32_t>(33));
99 EXPECT_EQ(len_burst, static_cast<uint32_t>(44));99 EXPECT_EQ(len_burst, static_cast<uint32_t>(44));
100 EXPECT_EQ(pad_func_mode, static_cast<uint8_t>(55));100 EXPECT_EQ(pad_func_mode, static_cast<uint8_t>(55));
101+ EXPECT_EQ(l2_cache_ctl, static_cast<uint8_t>(0));
101 EXPECT_EQ(src_stride, static_cast<uint64_t>(66));102 EXPECT_EQ(src_stride, static_cast<uint64_t>(66));
102 EXPECT_EQ(dst_stride, static_cast<uint64_t>(77));103 EXPECT_EQ(dst_stride, static_cast<uint64_t>(77));
103}104}
@@ -115,7 +116,7 @@ protected:
115TEST_F(TEST_COPY_GM_TO_L1, TEST_COPY_GM_TO_L1)116TEST_F(TEST_COPY_GM_TO_L1, TEST_COPY_GM_TO_L1)
116{117{
117 MOCKER_CPP(copy_gm_to_cbuf_v2, void(__cbuf__ void*, __gm__ void*, uint8_t, uint32_t, uint32_t, uint8_t,118 MOCKER_CPP(copy_gm_to_cbuf_v2, void(__cbuf__ void*, __gm__ void*, uint8_t, uint32_t, uint32_t, uint8_t,
118- uint64_t, uint32_t))119+ uint8_t, uint64_t, uint32_t))
119 .times(1)120 .times(1)
120 .will(invoke(copy_gm_to_cbuf_v2_stub));121 .will(invoke(copy_gm_to_cbuf_v2_stub));
121 122 
@@ -135,7 +136,7 @@ TEST_F(TEST_COPY_GM_TO_L1, TEST_COPY_GM_TO_L1)
135TEST_F(TEST_COPY_GM_TO_L1, TEST_COPY_GM_TO_L1_SYNC)136TEST_F(TEST_COPY_GM_TO_L1, TEST_COPY_GM_TO_L1_SYNC)
136{137{
137 MOCKER_CPP(copy_gm_to_cbuf_v2, void(__cbuf__ void*, __gm__ void*, uint8_t, uint32_t, uint32_t, uint8_t,138 MOCKER_CPP(copy_gm_to_cbuf_v2, void(__cbuf__ void*, __gm__ void*, uint8_t, uint32_t, uint32_t, uint8_t,
138- uint64_t, uint32_t))139+ uint8_t, uint64_t, uint32_t))
139 .times(1)140 .times(1)
140 .will(invoke(copy_gm_to_cbuf_v2_stub));141 .will(invoke(copy_gm_to_cbuf_v2_stub));
141 142 
@@ -66,6 +66,64 @@ using float8_e5m2_t = fp8_e5m2_t;
66using float4_e1m2x2_t = fp4x2_e1m2_t;66using float4_e1m2x2_t = fp4x2_e1m2_t;
67using float4_e2m1x2_t = fp4x2_e2m1_t;67using float4_e2m1x2_t = fp4x2_e2m1_t;
68 68 
69+// ==========copy_matrix_cc_to_cbuf (25 params)===========
70+inline void copy_matrix_cc_to_cbuf(
71+ __cbuf__ half* dst_addr, __cc__ float* src_addr, uint8_t sid, uint16_t n_size, uint16_t m_size,
72+ uint32_t loop_dst_stride, uint16_t loop_src_stride, uint8_t l2_cache_ctl, uint8_t clip_relu_pre,
73+ uint8_t unit_flag_ctl, uint64_t quant_pre, uint8_t relu_pre, bool split_en, bool NZ2ND_en, uint64_t quant_post,
74+ uint8_t relu_post, bool clip_relu_post, bool loop_enhance_en, uint8_t eltwise_op, bool eltwise_antq_en,
75+ bool loop_enhance_merge_en, bool C0_pad_en, bool wino_post_en, bool broadcast_en, bool NZ2DN_en)
76+{}
77+inline void copy_matrix_cc_to_cbuf(
78+ __cbuf__ int8_t* dst_addr, __cc__ float* src_addr, uint8_t sid, uint16_t n_size, uint16_t m_size,
79+ uint32_t loop_dst_stride, uint16_t loop_src_stride, uint8_t l2_cache_ctl, uint8_t clip_relu_pre,
80+ uint8_t unit_flag_ctl, uint64_t quant_pre, uint8_t relu_pre, bool split_en, bool NZ2ND_en, uint64_t quant_post,
81+ uint8_t relu_post, bool clip_relu_post, bool loop_enhance_en, uint8_t eltwise_op, bool eltwise_antq_en,
82+ bool loop_enhance_merge_en, bool C0_pad_en, bool wino_post_en, bool broadcast_en, bool NZ2DN_en)
83+{}
84+inline void copy_matrix_cc_to_cbuf(
85+ __cbuf__ uint8_t* dst_addr, __cc__ float* src_addr, uint8_t sid, uint16_t n_size, uint16_t m_size,
86+ uint32_t loop_dst_stride, uint16_t loop_src_stride, uint8_t l2_cache_ctl, uint8_t clip_relu_pre,
87+ uint8_t unit_flag_ctl, uint64_t quant_pre, uint8_t relu_pre, bool split_en, bool NZ2ND_en, uint64_t quant_post,
88+ uint8_t relu_post, bool clip_relu_post, bool loop_enhance_en, uint8_t eltwise_op, bool eltwise_antq_en,
89+ bool loop_enhance_merge_en, bool C0_pad_en, bool wino_post_en, bool broadcast_en, bool NZ2DN_en)
90+{}
91+inline void copy_matrix_cc_to_cbuf(
92+ __cbuf__ float* dst_addr, __cc__ float* src_addr, uint8_t sid, uint16_t n_size, uint16_t m_size,
93+ uint32_t loop_dst_stride, uint16_t loop_src_stride, uint8_t l2_cache_ctl, uint8_t clip_relu_pre,
94+ uint8_t unit_flag_ctl, uint64_t quant_pre, uint8_t relu_pre, bool split_en, bool NZ2ND_en, uint64_t quant_post,
95+ uint8_t relu_post, bool clip_relu_post, bool loop_enhance_en, uint8_t eltwise_op, bool eltwise_antq_en,
96+ bool loop_enhance_merge_en, bool C0_pad_en, bool wino_post_en, bool broadcast_en, bool NZ2DN_en)
97+{}
98+inline void copy_matrix_cc_to_cbuf(
99+ __cbuf__ half* dst_addr, __cc__ int32_t* src_addr, uint8_t sid, uint16_t n_size, uint16_t m_size,
100+ uint32_t loop_dst_stride, uint16_t loop_src_stride, uint8_t l2_cache_ctl, uint8_t clip_relu_pre,
101+ uint8_t unit_flag_ctl, uint64_t quant_pre, uint8_t relu_pre, bool split_en, bool NZ2ND_en, uint64_t quant_post,
102+ uint8_t relu_post, bool clip_relu_post, bool loop_enhance_en, uint8_t eltwise_op, bool eltwise_antq_en,
103+ bool loop_enhance_merge_en, bool C0_pad_en, bool wino_post_en, bool broadcast_en, bool NZ2DN_en)
104+{}
105+inline void copy_matrix_cc_to_cbuf(
106+ __cbuf__ int8_t* dst_addr, __cc__ int32_t* src_addr, uint8_t sid, uint16_t n_size, uint16_t m_size,
107+ uint32_t loop_dst_stride, uint16_t loop_src_stride, uint8_t l2_cache_ctl, uint8_t clip_relu_pre,
108+ uint8_t unit_flag_ctl, uint64_t quant_pre, uint8_t relu_pre, bool split_en, bool NZ2ND_en, uint64_t quant_post,
109+ uint8_t relu_post, bool clip_relu_post, bool loop_enhance_en, uint8_t eltwise_op, bool eltwise_antq_en,
110+ bool loop_enhance_merge_en, bool C0_pad_en, bool wino_post_en, bool broadcast_en, bool NZ2DN_en)
111+{}
112+inline void copy_matrix_cc_to_cbuf(
113+ __cbuf__ uint8_t* dst_addr, __cc__ int32_t* src_addr, uint8_t sid, uint16_t n_size, uint16_t m_size,
114+ uint32_t loop_dst_stride, uint16_t loop_src_stride, uint8_t l2_cache_ctl, uint8_t clip_relu_pre,
115+ uint8_t unit_flag_ctl, uint64_t quant_pre, uint8_t relu_pre, bool split_en, bool NZ2ND_en, uint64_t quant_post,
116+ uint8_t relu_post, bool clip_relu_post, bool loop_enhance_en, uint8_t eltwise_op, bool eltwise_antq_en,
117+ bool loop_enhance_merge_en, bool C0_pad_en, bool wino_post_en, bool broadcast_en, bool NZ2DN_en)
118+{}
119+inline void copy_matrix_cc_to_cbuf(
120+ __cbuf__ int32_t* dst_addr, __cc__ int32_t* src_addr, uint8_t sid, uint16_t n_size, uint16_t m_size,
121+ uint32_t loop_dst_stride, uint16_t loop_src_stride, uint8_t l2_cache_ctl, uint8_t clip_relu_pre,
122+ uint8_t unit_flag_ctl, uint64_t quant_pre, uint8_t relu_pre, bool split_en, bool NZ2ND_en, uint64_t quant_post,
123+ uint8_t relu_post, bool clip_relu_post, bool loop_enhance_en, uint8_t eltwise_op, bool eltwise_antq_en,
124+ bool loop_enhance_merge_en, bool C0_pad_en, bool wino_post_en, bool broadcast_en, bool NZ2DN_en)
125+{}
126+ 
69// ==========copy_matrix_cc_to_cbuf_s4===========127// ==========copy_matrix_cc_to_cbuf_s4===========
70inline void copy_matrix_cc_to_cbuf_s4(128inline void copy_matrix_cc_to_cbuf_s4(
71 __cbuf__ void* dst_addr, __cc__ float* src_addr, uint8_t sid, uint16_t n_size, uint16_t m_size,129 __cbuf__ void* dst_addr, __cc__ float* src_addr, uint8_t sid, uint16_t n_size, uint16_t m_size,
@@ -501,7 +559,7 @@ inline void vbr(vector_f8e8m0& dst, fp8_e8m0_t value) {}
501 559 
502inline void copy_gm_to_cbuf_v2(560inline void copy_gm_to_cbuf_v2(
503 __cbuf__ void* dst, __gm__ void* src, uint8_t sid, uint32_t n_burst, uint32_t len_burst, uint8_t pad_func_mode,561 __cbuf__ void* dst, __gm__ void* src, uint8_t sid, uint32_t n_burst, uint32_t len_burst, uint8_t pad_func_mode,
504- uint64_t src_stride, uint32_t dst_stride)562+ uint8_t l2_cache_ctl, uint64_t src_stride, uint32_t dst_stride)
505{}563{}
506inline void img2colv2_cbuf_to_ca(564inline void img2colv2_cbuf_to_ca(
507 __ca__ int16_t* dst, __cbuf__ int16_t* src, uint16_t step_k, uint16_t step_m, uint16_t pos_k, uint16_t pos_m,565 __ca__ int16_t* dst, __cbuf__ int16_t* src, uint16_t step_k, uint16_t step_m, uint16_t pos_k, uint16_t pos_m,
@@ -438,7 +438,7 @@ inline void vbr(vector_f8e4m3& dst, fp8_e4m3fn_t value) {}
438inline void vbr(vector_f8e5m2& dst, fp8_e5m2_t value) {}438inline void vbr(vector_f8e5m2& dst, fp8_e5m2_t value) {}
439inline void vbr(vector_f8e8m0& dst, fp8_e8m0_t value) {}439inline void vbr(vector_f8e8m0& dst, fp8_e8m0_t value) {}
440 440 
441-inline void copy_gm_to_cbuf_v2(__cbuf__ void* dst, __gm__ void* src, uint8_t sid, uint32_t n_burst, uint32_t len_burst, uint8_t pad_func_mode, uint64_t src_stride, uint32_t dst_stride) {}441+inline void copy_gm_to_cbuf_v2(__cbuf__ void* dst, __gm__ void* src, uint8_t sid, uint32_t n_burst, uint32_t len_burst, uint8_t pad_func_mode, uint8_t l2_cache_ctl, uint64_t src_stride, uint32_t dst_stride) {}
442inline void img2colv2_cbuf_to_ca(__ca__ int16_t* dst, __cbuf__ int16_t* src, uint16_t step_k, uint16_t step_m, uint16_t pos_k, uint16_t pos_m, uint8_t stride_w, uint8_t stride_h, uint8_t w_k,442inline void img2colv2_cbuf_to_ca(__ca__ int16_t* dst, __cbuf__ int16_t* src, uint16_t step_k, uint16_t step_m, uint16_t pos_k, uint16_t pos_m, uint8_t stride_w, uint8_t stride_h, uint8_t w_k,
443 uint8_t h_k, uint8_t dilation_w, uint8_t dilation_h, bool filter_w, bool filter_h, bool transpose, bool fmatrix_ctrl, uint16_t size_channel) {}443 uint8_t h_k, uint8_t dilation_w, uint8_t dilation_h, bool filter_w, bool filter_h, bool transpose, bool fmatrix_ctrl, uint16_t size_channel) {}
444inline void img2colv2_cbuf_to_ca(__ca__ uint16_t* dst, __cbuf__ uint16_t* src, uint16_t step_k, uint16_t step_m, uint16_t pos_k, uint16_t pos_m, uint8_t stride_w, uint8_t stride_h, uint8_t w_k,444inline void img2colv2_cbuf_to_ca(__ca__ uint16_t* dst, __cbuf__ uint16_t* src, uint16_t step_k, uint16_t step_m, uint16_t pos_k, uint16_t pos_m, uint8_t stride_w, uint8_t stride_h, uint8_t w_k,