Skip to content

Commit f882861

Browse files
committed
x64: conv: fix potential int overflow
1 parent 8303330 commit f882861

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/cpu/x64/jit_avx512_core_bf16_convolution.cpp

+9-5
Original file line numberDiff line numberDiff line change
@@ -1583,19 +1583,23 @@ void jit_avx512_core_bf16_convolution_bwd_weights_t ::compute_diff_weights(
15831583
g += ti->g_start;
15841584
ic_b += ti->ic_b_start;
15851585
icb_start = ic_b;
1586-
ic = is_src_layout_nxc ? g * jcp.ic + ic_b * jcp.ic_block
1587-
: g * jcp.nb_ic + ic_b;
1586+
ic = is_src_layout_nxc ? static_cast<dim_t>(g) * jcp.ic
1587+
+ static_cast<dim_t>(ic_b) * jcp.ic_block
1588+
: static_cast<dim_t>(g) * jcp.nb_ic + ic_b;
15881589
} else {
1589-
ic = is_src_layout_nxc ? g * jcp.ic + ic_b * jcp.ic_block
1590-
: g * jcp.nb_ic + ic_b;
1590+
ic = is_src_layout_nxc ? static_cast<dim_t>(g) * jcp.ic
1591+
+ static_cast<dim_t>(ic_b) * jcp.ic_block
1592+
: static_cast<dim_t>(g) * jcp.nb_ic + ic_b;
15911593
g = 0;
15921594
ic_b = 0;
15931595
}
15941596
const bool need_local_gwork = is_src_layout_nxc && jcp.global_transpose;
15951597
const auto local_gwork = need_local_gwork ? ti->g_work : 1;
15961598

15971599
for (int gg = g; gg < g + local_gwork; ++gg) {
1598-
if (need_local_gwork) ic = gg * jcp.ic + ic_b * jcp.ic_block;
1600+
if (need_local_gwork)
1601+
ic = static_cast<dim_t>(gg) * jcp.ic
1602+
+ static_cast<dim_t>(ic_b) * jcp.ic_block;
15991603
src_data_t *tr_src = (jcp.ndims == 5)
16001604
? &ti->tr_src[tr_src_off_3d(gg, ic_b, d, j)]
16011605
: &ti->tr_src[tr_src_off(gg, ic_b, j)];

0 commit comments

Comments
 (0)