Skip to content

Commit bd504fb

Browse files
luo-cheng2021azhai219
authored andcommitted
[FIX] fork dw conv may overflow on width tail
1 parent 637eb68 commit bd504fb

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

src/cpu/x64/jit_uni_dw_convolution.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,9 @@ void jit_uni_dw_convolution_bwd_data_t<isa, diff_dst_type,
278278

279279
// main loop
280280
ur_str_w = (aux_w - iw) / jcp.stride_w;
281+
// may larger than the actual width and result crash
282+
while (iw + ur_str_w * jcp.stride_w > jcp.iw)
283+
ur_str_w--;
281284
if (ur_str_w > 0) {
282285
jit_conv_call_s par_conv = kernel_params(ur_str_w, iw, oh,
283286
ih, i_t_overflow, i_b_overflow, stride_off_h, ch, n,

src/cpu/x64/jit_uni_fork_dw_convolution.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,8 @@ void jit_uni_fork_dw_convolution_bwd_data_t<isa, diff_dst_type, diff_src_type>
306306
// main loop
307307
ur_str_w = nstl::min((jcp.iw - jcp.kw + jcp.r_pad - iw)
308308
/ jcp.stride_w, jcp.iw);
309+
while (iw + ur_str_w * jcp.stride_w > jcp.iw)
310+
ur_str_w--;
309311
if (ur_str_w > 0) {
310312
jit_conv_call_s par_conv = kernel_params(ur_str_w, iw, oh,
311313
ih, i_t_overflow, i_b_overflow,

0 commit comments

Comments
 (0)