Skip to content

Commit c9116f0

Browse files
dmitry-gorokhovazhai219
authored andcommitted
[FORK][FEATURE] Added JIT AVX512/AVX2 FP32 Planar Convolution implementation
1 parent 4bd1241 commit c9116f0

6 files changed

+1207
-0
lines changed

src/cpu/cpu_convolution_list.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
#include "cpu/x64/jit_uni_fork_dw_convolution.hpp"
5656
#include "cpu/x64/jit_uni_x8s8s32x_1x1_convolution.hpp"
5757
#include "cpu/x64/jit_uni_x8s8s32x_convolution.hpp"
58+
#include "cpu/x64/jit_uni_planar_convolution.hpp"
5859
using namespace dnnl::impl::cpu::x64;
5960
#elif DNNL_AARCH64
6061
#include "cpu/aarch64/jit_brdgmm_dw_conv.hpp"
@@ -124,12 +125,14 @@ const std::map<pk_dt_impl_key_t, std::vector<impl_list_item_t>> &impl_list_map()
124125
CPU_INSTANCE_X64(ip_convolution_fwd_t)
125126
CPU_INSTANCE_AMX(brgemm_1x1_convolution_fwd_t<avx512_core_amx>)
126127
CPU_INSTANCE_AMX(brgemm_convolution_fwd_t<avx512_core_amx>)
128+
CPU_INSTANCE_AVX512(jit_avx512_common_planar_convolution_fwd_t)
127129
CPU_INSTANCE_AVX512(brgemm_1x1_convolution_fwd_t<avx512_core>)
128130
CPU_INSTANCE_AVX512(brgemm_convolution_fwd_t<avx512_core>)
129131
CPU_INSTANCE_AVX512(jit_avx512_common_dw_convolution_fwd_t)
130132
CPU_INSTANCE_AVX512(jit_avx512_common_fork_dw_convolution_fwd_t)
131133
CPU_INSTANCE_AVX512(jit_avx512_common_1x1_convolution_fwd_f32_t)
132134
CPU_INSTANCE_AVX512(jit_avx512_common_convolution_fwd_t<f32>)
135+
CPU_INSTANCE_AVX2(jit_avx2_planar_convolution_fwd_t)
133136
CPU_INSTANCE_AVX2(jit_avx2_dw_convolution_fwd_t)
134137
CPU_INSTANCE_AVX2(brgemm_1x1_convolution_fwd_t<avx2>)
135138
CPU_INSTANCE_AVX2(brgemm_convolution_fwd_t<avx2>)

src/cpu/x64/jit_primitive_conf.hpp

+5
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,10 @@ struct jit_conv_conf_t {
260260

261261
bool with_input_zp;
262262
bool with_weights_zp;
263+
264+
int oh_block;
265+
int oh_block_step;
266+
int nb_ow_blocking;
263267
};
264268

265269
// calculates filter size taking into account dilation
@@ -355,6 +359,7 @@ struct jit_conv_call_s {
355359
size_t oc_off;
356360
size_t ic_off;
357361
size_t oc_off_prf;
362+
size_t oh_blocks;
358363

359364
const void *input_zp;
360365
};

0 commit comments

Comments
 (0)