17
17
#ifndef CPU_X64_JIT_AVX512_CORE_BF16_DW_CONV_KERNEL_HPP
18
18
#define CPU_X64_JIT_AVX512_CORE_BF16_DW_CONV_KERNEL_HPP
19
19
20
+ #include < memory>
20
21
#include " common/c_types_map.hpp"
21
22
#include " common/memory_tracking.hpp"
22
23
@@ -133,12 +134,11 @@ struct jit_avx512_dw_conv_bwd_data_kernel_bf16 : public jit_generator {
133
134
: jit_generator(jit_name()), jcp(ajcp), bf16_emu_(nullptr ) {
134
135
135
136
if (!isa_has_bf16 (jcp.isa ))
136
- bf16_emu_ = new bf16_emulation_t (this , bf16_emu_reserv_1 ,
137
- bf16_emu_reserv_2, bf16_emu_reserv_3, bf16_emu_reserv_4 ,
138
- bf16_emu_reserv_5, bf16_emu_reserv_6);
137
+ bf16_emu_ = utils::make_unique< bf16_emulation_t > (this ,
138
+ bf16_emu_reserv_1, bf16_emu_reserv_2, bf16_emu_reserv_3 ,
139
+ bf16_emu_reserv_4, bf16_emu_reserv_5, bf16_emu_reserv_6);
139
140
}
140
-
141
- ~jit_avx512_dw_conv_bwd_data_kernel_bf16 () { delete bf16_emu_; }
141
+ ~jit_avx512_dw_conv_bwd_data_kernel_bf16 () = default ;
142
142
143
143
jit_conv_conf_t jcp;
144
144
@@ -183,7 +183,7 @@ struct jit_avx512_dw_conv_bwd_data_kernel_bf16 : public jit_generator {
183
183
Xbyak::Zmm bf16_emu_reserv_5 = Xbyak::Zmm(29 );
184
184
Xbyak::Zmm bf16_emu_reserv_6 = Xbyak::Zmm(30 );
185
185
186
- bf16_emulation_t * bf16_emu_;
186
+ std::unique_ptr< bf16_emulation_t > bf16_emu_;
187
187
188
188
inline void ch_loop_body (int ur_ch_blocks, int unroll_w);
189
189
inline void unroll_width_body (int ur_ch_blocks);
@@ -200,6 +200,8 @@ struct jit_avx512_dw_conv_bwd_data_kernel_bf16 : public jit_generator {
200
200
return utils::one_of (jcp.dst_tag , format_tag::ndhwc, format_tag::nhwc,
201
201
format_tag::nwc);
202
202
}
203
+
204
+ DNNL_DISALLOW_COPY_AND_ASSIGN (jit_avx512_dw_conv_bwd_data_kernel_bf16);
203
205
};
204
206
205
207
struct jit_avx512_dw_conv_bwd_weights_kernel_bf16 : public jit_generator {
@@ -210,12 +212,11 @@ struct jit_avx512_dw_conv_bwd_weights_kernel_bf16 : public jit_generator {
210
212
: jit_generator(jit_name()), jcp(ajcp), bf16_emu_(nullptr ) {
211
213
212
214
if (!isa_has_bf16 (jcp.isa ))
213
- bf16_emu_ = new bf16_emulation_t (this , bf16_emu_reserv_1 ,
214
- bf16_emu_reserv_2, bf16_emu_reserv_3, bf16_emu_reserv_4 ,
215
- bf16_emu_reserv_5, bf16_emu_reserv_6);
215
+ bf16_emu_ = utils::make_unique< bf16_emulation_t > (this ,
216
+ bf16_emu_reserv_1, bf16_emu_reserv_2, bf16_emu_reserv_3 ,
217
+ bf16_emu_reserv_4, bf16_emu_reserv_5, bf16_emu_reserv_6);
216
218
}
217
-
218
- ~jit_avx512_dw_conv_bwd_weights_kernel_bf16 () { delete bf16_emu_; }
219
+ ~jit_avx512_dw_conv_bwd_weights_kernel_bf16 () = default ;
219
220
220
221
jit_conv_conf_t jcp;
221
222
@@ -275,7 +276,9 @@ struct jit_avx512_dw_conv_bwd_weights_kernel_bf16 : public jit_generator {
275
276
Xbyak::Zmm bf16_emu_reserv_5 = Xbyak::Zmm(29 );
276
277
Xbyak::Zmm bf16_emu_reserv_6 = Xbyak::Zmm(30 );
277
278
278
- bf16_emulation_t *bf16_emu_;
279
+ std::unique_ptr<bf16_emulation_t > bf16_emu_;
280
+
281
+ DNNL_DISALLOW_COPY_AND_ASSIGN (jit_avx512_dw_conv_bwd_weights_kernel_bf16)
279
282
280
283
/* Micro-kernel JIT'ing, fusing 'kw' and 'ow_block' loops into unrolled FMAs
281
284
*/
0 commit comments