Skip to content

Commit ed4b08c

Browse files
author
Roman Dubtsov
committed
common: verbose: fix valgrind complaints and clean-up
1 parent 763513e commit ed4b08c

File tree

1 file changed

+39
-31
lines changed

1 file changed

+39
-31
lines changed

src/common/verbose.hpp

Lines changed: 39 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,36 @@ inline void verbose_templ(char *buffer, mkldnn_primitive_kind_t prim_kind,
5555
mkldnn_prop_kind2str(prop_kind), data_str, aux_str, prb_str);
5656
}
5757

58+
inline void format_mem_desc_str_generic(char *str, int len,
59+
const memory_desc_t *md) {
60+
auto ndims = md->ndims;
61+
auto dims = md->dims;
62+
int l = 0;
63+
for (int d = 0; d < ndims - 1; ++d)
64+
l += snprintf(str + l, len - l, "%dx", dims[d]);
65+
snprintf(str + l, len - l, "%d", dims[ndims - 1]);
66+
}
67+
68+
// XXX: Outputs strings corresponding to memory formats used for data tensors.
69+
inline void format_mem_desc_str(char *str, int len, const memory_desc_t *md) {
70+
auto ndims = md->ndims;
71+
auto dims = md->dims;
72+
if (ndims == 1)
73+
snprintf(str, len, "x%d", dims[0]);
74+
else if (ndims == 2)
75+
snprintf(str, len, "mb%dic%d", dims[0], dims[1]);
76+
else if (ndims == 3)
77+
snprintf(str, len, "mb%dic%diw%d", dims[0], dims[1], dims[2]);
78+
else if (ndims == 4)
79+
snprintf(str, len, "mb%dic%dih%diw%d",
80+
dims[0], dims[1], dims[2], dims[3]);
81+
else if (ndims == 5)
82+
snprintf(str, len, "mb%dic%did%dih%diw%d",
83+
dims[0], dims[1], dims[2], dims[3], dims[4]);
84+
else
85+
format_mem_desc_str_generic(str, len, md);
86+
}
87+
5888
template <typename pd_t> static void init_info_bnorm(pd_t *s, char *buffer) {
5989
DECL_DAT_AUX_PRB_STRS();
6090

@@ -66,17 +96,7 @@ template <typename pd_t> static void init_info_bnorm(pd_t *s, char *buffer) {
6696

6797
snprintf(aux_str, MKLDNN_VERBOSE_AUX_LEN, "flags:%u", s->desc()->flags);
6898

69-
if (s->ndims() == 5)
70-
{
71-
snprintf(prb_str, MKLDNN_VERBOSE_PRB_LEN,
72-
"mb%dic%did%dih%diw%d", s->MB(), s->C(), s->D(), s->H(), s->W());
73-
} else if (s->ndims() == 4) {
74-
snprintf(prb_str, MKLDNN_VERBOSE_PRB_LEN,
75-
"mb%dic%dih%diw%d", s->MB(), s->C(), s->H(), s->W());
76-
} else if (s->ndims() == 2) {
77-
snprintf(prb_str, MKLDNN_VERBOSE_PRB_LEN,
78-
"mb%dic%d", s->MB(), s->C());
79-
}
99+
format_mem_desc_str(prb_str, MKLDNN_VERBOSE_PRB_LEN, s->src_pd()->desc());
80100

81101
verbose_templ(buffer, s->kind(), s->name(), s->desc()->prop_kind, dat_str,
82102
aux_str, prb_str);
@@ -140,12 +160,7 @@ template <typename pd_t> static void init_info_shuffle(pd_t *s, char *buffer) {
140160
snprintf(aux_str, MKLDNN_VERBOSE_AUX_LEN, "axis:%d group_size:%d",
141161
s->axis(), s->group_size());
142162

143-
int l = 0;
144-
for (int d = 0; d < md->ndims - 1; ++d)
145-
l += snprintf(prb_str + l, MKLDNN_VERBOSE_PRB_LEN - l,
146-
"%dx", md->dims[d]);
147-
snprintf(prb_str + l, MKLDNN_VERBOSE_PRB_LEN - l,
148-
"%d", md->dims[md->ndims - 1]);
163+
format_mem_desc_str_generic(prb_str, MKLDNN_VERBOSE_PRB_LEN, md);
149164

150165
verbose_templ(buffer, s->kind(), s->name(), s->desc()->prop_kind, dat_str,
151166
aux_str, prb_str);
@@ -163,8 +178,7 @@ template <typename pd_t> static void init_info_eltwise(pd_t *s, char *buffer) {
163178
snprintf(aux_str, MKLDNN_VERBOSE_AUX_LEN,
164179
"alg:%s", mkldnn_alg_kind2str(s->desc()->alg_kind));
165180

166-
snprintf(prb_str, MKLDNN_VERBOSE_PRB_LEN,
167-
"mb%dic%dih%diw%d", s->MB(), s->C(), s->H(), s->W());
181+
format_mem_desc_str(prb_str, MKLDNN_VERBOSE_PRB_LEN, s->src_pd()->desc());
168182

169183
verbose_templ(buffer, s->kind(), s->name(), s->desc()->prop_kind, dat_str,
170184
aux_str, prb_str);
@@ -208,8 +222,7 @@ template <typename pd_t> static void init_info_lrn(pd_t *s, char *buffer) {
208222
snprintf(aux_str, MKLDNN_VERBOSE_AUX_LEN,
209223
"alg:%s", mkldnn_alg_kind2str(s->desc()->alg_kind));
210224

211-
snprintf(prb_str, MKLDNN_VERBOSE_PRB_LEN,
212-
"mb%dic%dih%diw%d", s->MB(), s->C(), s->H(), s->W());
225+
format_mem_desc_str(prb_str, MKLDNN_VERBOSE_PRB_LEN, s->src_pd()->desc());
213226

214227
verbose_templ(buffer, s->kind(), s->name(), s->desc()->prop_kind, dat_str,
215228
aux_str, prb_str);
@@ -227,12 +240,7 @@ template <typename pd_t> static void init_info_mem(pd_t *s, char *buffer) {
227240

228241
snprintf(aux_str, MKLDNN_VERBOSE_AUX_LEN, "num:%d", s->n_inputs());
229242

230-
int l = 0;
231-
for (int d = 0; d < o_md->ndims - 1; ++d)
232-
l += snprintf(prb_str + l, MKLDNN_VERBOSE_PRB_LEN - l,
233-
"%dx", o_md->dims[d]);
234-
snprintf(prb_str + l, MKLDNN_VERBOSE_PRB_LEN - l,
235-
"%d", o_md->dims[o_md->ndims - 1]);
243+
format_mem_desc_str_generic(prb_str, MKLDNN_VERBOSE_PRB_LEN, o_md);
236244

237245
verbose_templ(buffer, s->kind(), s->name(), prop_kind::undef, dat_str,
238246
aux_str, prb_str);
@@ -274,15 +282,15 @@ template <typename pd_t> static void init_info_pool(pd_t *s, char *buffer) {
274282
template <typename pd_t> static void init_info_softmax(pd_t *s, char *buffer) {
275283
DECL_DAT_AUX_PRB_STRS();
276284

277-
auto fmt_data = (s->desc()->prop_kind == prop_kind::backward_data
278-
? s->diff_src_pd() : s->src_pd())->desc()->format;
285+
auto md = (s->desc()->prop_kind == prop_kind::backward_data
286+
? s->diff_src_pd() : s->src_pd())->desc();
287+
auto fmt_data = md->format;
279288
auto fmt_diff = s->desc()->prop_kind == prop_kind::backward_data
280289
? s->diff_src_pd()->desc()->format : memory_format::undef;
281290
snprintf(dat_str, MKLDNN_VERBOSE_DAT_LEN, "fdata:%s fdiff:%s",
282291
mkldnn_fmt2str(fmt_data), mkldnn_fmt2str(fmt_diff));
283292

284-
snprintf(prb_str, MKLDNN_VERBOSE_PRB_LEN,
285-
"mb%dic%dih%diw%d", s->MB(), s->C(), s->H(), s->W());
293+
format_mem_desc_str(prb_str, MKLDNN_VERBOSE_PRB_LEN, md);
286294

287295
verbose_templ(buffer, s->kind(), s->name(), s->desc()->prop_kind, dat_str,
288296
aux_str, prb_str);

0 commit comments

Comments
 (0)