diff --git a/include/oneapi/dnnl/dnnl_debug.h b/include/oneapi/dnnl/dnnl_debug.h index 14b7fb596e4..9d1040485d2 100644 --- a/include/oneapi/dnnl/dnnl_debug.h +++ b/include/oneapi/dnnl/dnnl_debug.h @@ -37,14 +37,13 @@ const char DNNL_API *dnnl_dt2str(dnnl_data_type_t v); const char DNNL_API *dnnl_fpmath_mode2str(dnnl_fpmath_mode_t v); const char DNNL_API *dnnl_accumulation_mode2str(dnnl_accumulation_mode_t v); const char DNNL_API *dnnl_engine_kind2str(dnnl_engine_kind_t v); -#ifdef DNNL_EXPERIMENTAL_SPARSE -const char DNNL_API *dnnl_sparse_encoding2str(dnnl_sparse_encoding_t v); -#endif const char DNNL_API *dnnl_fmt_tag2str(dnnl_format_tag_t v); const char DNNL_API *dnnl_prop_kind2str(dnnl_prop_kind_t v); const char DNNL_API *dnnl_prim_kind2str(dnnl_primitive_kind_t v); const char DNNL_API *dnnl_alg_kind2str(dnnl_alg_kind_t v); +#ifdef DNNL_EXPERIMENTAL_SPARSE const char DNNL_API *dnnl_sparse_encoding2str(dnnl_sparse_encoding_t v); +#endif const char DNNL_API *dnnl_rnn_flags2str(dnnl_rnn_flags_t v); const char DNNL_API *dnnl_rnn_direction2str(dnnl_rnn_direction_t v); const char DNNL_API *dnnl_scratchpad_mode2str(dnnl_scratchpad_mode_t v); diff --git a/src/common/dnnl_debug_autogenerated.cpp b/src/common/dnnl_debug_autogenerated.cpp index 1cbad069cd3..2b1a4acb22d 100644 --- a/src/common/dnnl_debug_autogenerated.cpp +++ b/src/common/dnnl_debug_autogenerated.cpp @@ -60,10 +60,9 @@ const char *dnnl_dt2str(dnnl_data_type_t v) { if (v == dnnl_e8m0) return "e8m0"; if (v == dnnl_f4_e2m1) return "f4_e2m1"; if (v == dnnl_f4_e3m0) return "f4_e3m0"; - if (v == dnnl_bin) return "bin"; if (v == dnnl_nf4) return "nf4"; - if (v == dnnl_s4) return "s4"; - if (v == dnnl_u4) return "u4"; + if (v == dnnl_bin) return "bin"; + if (v == dnnl_u2) return "u2"; if (v == dnnl_data_type_max) return "data_type_max"; assert(!"unknown dt"); return "unknown dt"; @@ -98,17 +97,6 @@ const char *dnnl_engine_kind2str(dnnl_engine_kind_t v) { return "unknown engine_kind"; } -#ifdef DNNL_EXPERIMENTAL_SPARSE -const char *dnnl_sparse_encoding2str(dnnl_sparse_encoding_t v) { - if (v == dnnl_sparse_encoding_undef) return "undef"; - if (v == dnnl_csr) return "csr"; - if (v == dnnl_packed) return "packed"; - if (v == dnnl_coo) return "coo"; - assert(!"unknown sparse_encoding"); - return "unknown sparse_encoding"; -} - -#endif const char *dnnl_fmt_tag2str(dnnl_format_tag_t v) { if (v == dnnl_format_tag_undef) return "undef"; if (v == dnnl_format_tag_any) return "any"; @@ -212,7 +200,6 @@ const char *dnnl_fmt_tag2str(dnnl_format_tag_t v) { if (v == dnnl_ABcd2b8a4b) return "ABcd2b8a4b"; if (v == dnnl_ABcd8a8b) return "ABcd8a8b"; if (v == dnnl_ABcd8a32b) return "ABcd8a32b"; - if (v == dnnl_ABcd16a32b) return "ABcd16a32b"; if (v == dnnl_ABcd8a4b) return "ABcd8a4b"; if (v == dnnl_aBcd8b) return "aBcd8b"; if (v == dnnl_aBCd4c8b2c) return "aBCd4c8b2c"; @@ -639,6 +626,19 @@ const char *dnnl_fmt_tag2str(dnnl_format_tag_t v) { if (v == dnnl_aCB16b32c) return "aCB16b32c"; if (v == dnnl_aCB16b48c) return "aCB16b48c"; if (v == dnnl_aCB16b64c) return "aCB16b64c"; + if (v == dnnl_aBC8c8b2c) return "aBC8c8b2c"; + if (v == dnnl_aBC8c16b2c) return "aBC8c16b2c"; + if (v == dnnl_aBC8c24b2c) return "aBC8c24b2c"; + if (v == dnnl_aBC8c32b2c) return "aBC8c32b2c"; + if (v == dnnl_aBC8c64b2c) return "aBC8c64b2c"; + if (v == dnnl_aBC16c16b2c) return "aBC16c16b2c"; + if (v == dnnl_aBC16c32b2c) return "aBC16c32b2c"; + if (v == dnnl_aBC16c48b2c) return "aBC16c48b2c"; + if (v == dnnl_aBC16c64b2c) return "aBC16c64b2c"; + if (v == dnnl_aBC16c16b4c) return "aBC16c16b4c"; + if (v == dnnl_aBC16c32b4c) return "aBC16c32b4c"; + if (v == dnnl_aBC16c48b4c) return "aBC16c48b4c"; + if (v == dnnl_aBC16c64b4c) return "aBC16c64b4c"; if (v == dnnl_aCB16b16c2b) return "aCB16b16c2b"; if (v == dnnl_aCB16b32c2b) return "aCB16b32c2b"; if (v == dnnl_aCB16b48c2b) return "aCB16b48c2b"; @@ -1201,9 +1201,9 @@ const char *dnnl_fmt_tag2str(dnnl_format_tag_t v) { if (v == dnnl_OIhw8o16i2o) return "OIhw8o16i2o"; if (v == dnnl_OIhw2i8o4i) return "OIhw2i8o4i"; if (v == dnnl_IOhw8o16i2o) return "IOhw8o16i2o"; - if (v == dnnl_OIhw8o32i) return "OIhw8o23i"; - if (v == dnnl_OIhw16o32i) return "OIhw16o23i"; if (v == dnnl_OIhw8o8i) return "OIhw8o8i"; + if (v == dnnl_OIhw8o32i) return "OIhw8o32i"; + if (v == dnnl_OIhw16o32i) return "OIhw16o32i"; if (v == dnnl_OIhw8o4i) return "OIhw8o4i"; if (v == dnnl_Owhi16o) return "Owhi16o"; if (v == dnnl_OIhw8i32o) return "OIhw8i32o"; @@ -1773,6 +1773,9 @@ const char *dnnl_prim_kind2str(dnnl_primitive_kind_t v) { if (v == dnnl_convolution) return "convolution"; if (v == dnnl_deconvolution) return "deconvolution"; if (v == dnnl_eltwise) return "eltwise"; + if (v == dnnl_depthwise) return "depthwise"; + if (v == dnnl_quantization) return "quantization"; + if (v == dnnl_binarization) return "binarization"; if (v == dnnl_lrn) return "lrn"; if (v == dnnl_batch_normalization) return "batch_normalization"; if (v == dnnl_inner_product) return "inner_product"; @@ -1787,8 +1790,6 @@ const char *dnnl_prim_kind2str(dnnl_primitive_kind_t v) { if (v == dnnl_softmax) return "softmax"; if (v == dnnl_layer_normalization) return "layer_normalization"; if (v == dnnl_group_normalization) return "group_normalization"; - if (v == dnnl_depthwise) return "depthwise"; - if (v == dnnl_quantization) return "quantization"; if (v == dnnl_primitive_kind_max) return "primitive_kind_max"; if (v == dnnl::impl::primitive_kind::sdpa) return "sdpa"; assert(!"unknown prim_kind"); @@ -1880,14 +1881,21 @@ const char *dnnl_alg_kind2str(dnnl_alg_kind_t v) { return "unknown alg_kind"; } +#ifdef DNNL_EXPERIMENTAL_SPARSE const char *dnnl_sparse_encoding2str(dnnl_sparse_encoding_t v) { if (v == dnnl_sparse_encoding_undef) return "undef"; if (v == dnnl_sparse_encoding_any) return "any"; if (v == dnnl_sparse_encoding_packed) return "sparse_encoding_packed"; + if (v == dnnl_sparse_encoding_csr) return "sparse_encoding_csr"; + if (v == dnnl_sparse_encoding_coo) return "sparse_encoding_coo"; + if (v == dnnl_packed) return "packed"; + if (v == dnnl_csr) return "csr"; + if (v == dnnl_coo) return "coo"; assert(!"unknown sparse_encoding"); return "unknown sparse_encoding"; } +#endif const char *dnnl_rnn_flags2str(dnnl_rnn_flags_t v) { if (v == dnnl_rnn_flags_undef) return "undef"; if (v == dnnl_rnn_flags_diff_weights_overwrite) return "rnn_flags_diff_weights_overwrite"; @@ -1935,6 +1943,7 @@ const char *dnnl_cpu_isa2str(dnnl_cpu_isa_t v) { if (v == dnnl_cpu_isa_avx512_core_amx) return "cpu_isa_avx512_core_amx"; if (v == dnnl_cpu_isa_avx10_1_512_amx_fp16) return "cpu_isa_avx10_1_512_amx_fp16"; if (v == dnnl_cpu_isa_avx512_core_amx_fp16) return "cpu_isa_avx512_core_amx_fp16"; + if (v == dnnl_cpu_isa_avx512_vpopcnt) return "cpu_isa_avx512_vpopcnt"; assert(!"unknown cpu_isa"); return "unknown cpu_isa"; } diff --git a/tests/benchdnn/dnnl_debug.hpp b/tests/benchdnn/dnnl_debug.hpp index 448ca4c9f36..868bfc89bfd 100644 --- a/tests/benchdnn/dnnl_debug.hpp +++ b/tests/benchdnn/dnnl_debug.hpp @@ -25,10 +25,10 @@ #include "oneapi/dnnl/dnnl.h" dnnl_data_type_t str2dt(const char *str); +dnnl_format_tag_t str2fmt_tag(const char *str); #ifdef DNNL_EXPERIMENTAL_SPARSE dnnl_sparse_encoding_t str2sparse_encoding(const char *str); #endif -dnnl_format_tag_t str2fmt_tag(const char *str); /* status */ const char *status2str(dnnl_status_t status); @@ -43,6 +43,7 @@ const char *fmt_tag2str(dnnl_format_tag_t tag); #ifdef DNNL_EXPERIMENTAL_SPARSE const char *sparse_encoding2str(dnnl_sparse_encoding_t encoding); #endif +const char *sparse_encoding2str(dnnl_sparse_encoding_t encoding); /* engine kind */ const char *engine_kind2str(dnnl_engine_kind_t kind); diff --git a/tests/benchdnn/dnnl_debug_autogenerated.cpp b/tests/benchdnn/dnnl_debug_autogenerated.cpp index ba5968e33a3..1b5f2ab0972 100644 --- a/tests/benchdnn/dnnl_debug_autogenerated.cpp +++ b/tests/benchdnn/dnnl_debug_autogenerated.cpp @@ -51,6 +51,9 @@ dnnl_data_type_t str2dt(const char *str) { CASE(e8m0); CASE(f4_e2m1); CASE(f4_e3m0); + CASE(nf4); + CASE(bin); + CASE(u2); CASE(data_type_max); #undef CASE if (!strcmp("undef", str) || !strcmp("dnnl_data_type_undef", str)) @@ -60,25 +63,6 @@ dnnl_data_type_t str2dt(const char *str) { return dnnl_data_type_undef; } -#ifdef DNNL_EXPERIMENTAL_SPARSE -dnnl_sparse_encoding_t str2sparse_encoding(const char *str) { -#define CASE(_case) do { \ - if (!strcmp(STRINGIFY(_case), str) \ - || !strcmp("dnnl_" STRINGIFY(_case), str)) \ - return CONCAT2(dnnl_, _case); \ -} while (0) - CASE(csr); - CASE(packed); - CASE(coo); -#undef CASE - if (!strcmp("undef", str) || !strcmp("dnnl_sparse_encoding_undef", str)) - return dnnl_sparse_encoding_undef; - printf("Error: sparse_encoding `%s` is not supported.\n", str); - assert(!"unknown sparse_encoding"); - return dnnl_sparse_encoding_undef; -} - -#endif dnnl_format_tag_t str2fmt_tag(const char *str) { #define CASE(_case) do { \ if (!strcmp(STRINGIFY(_case), str) \ @@ -184,6 +168,7 @@ dnnl_format_tag_t str2fmt_tag(const char *str) { CASE(ABcd8a16b2a); CASE(ABcd2b8a4b); CASE(ABcd8a8b); + CASE(ABcd8a32b); CASE(ABcd8a4b); CASE(aBcd8b); CASE(aBCd4c8b2c); @@ -282,6 +267,8 @@ dnnl_format_tag_t str2fmt_tag(const char *str) { CASE(aCBdef16c16b); CASE(aBdefc4b); CASE(aBdefc8b); + CASE(Abcdef4a); + CASE(Abcdef8a); CASE(Abcdef16a); CASE(Abcdef32a); CASE(aBedc16b); @@ -608,6 +595,19 @@ dnnl_format_tag_t str2fmt_tag(const char *str) { CASE(aCB16b32c); CASE(aCB16b48c); CASE(aCB16b64c); + CASE(aBC8c8b2c); + CASE(aBC8c16b2c); + CASE(aBC8c24b2c); + CASE(aBC8c32b2c); + CASE(aBC8c64b2c); + CASE(aBC16c16b2c); + CASE(aBC16c32b2c); + CASE(aBC16c48b2c); + CASE(aBC16c64b2c); + CASE(aBC16c16b4c); + CASE(aBC16c32b4c); + CASE(aBC16c48b4c); + CASE(aBC16c64b4c); CASE(aCB16b16c2b); CASE(aCB16b32c2b); CASE(aCB16b48c2b); @@ -1170,6 +1170,8 @@ dnnl_format_tag_t str2fmt_tag(const char *str) { CASE(OIhw2i8o4i); CASE(IOhw8o16i2o); CASE(OIhw8o8i); + CASE(OIhw8o32i); + CASE(OIhw16o32i); CASE(OIhw8o4i); CASE(Owhi16o); CASE(OIhw8i32o); @@ -1395,6 +1397,8 @@ dnnl_format_tag_t str2fmt_tag(const char *str) { CASE(gIOdhw8o16i2o); CASE(gOIdhw8o8i); CASE(gOIdhw8o4i); + CASE(Goidhw4g); + CASE(Goidhw8g); CASE(Goidhw16g); CASE(Goidhw32g); CASE(gOIdhw2i4o2i); @@ -1719,6 +1723,31 @@ dnnl_format_tag_t str2fmt_tag(const char *str) { return dnnl_format_tag_last; } +#ifdef DNNL_EXPERIMENTAL_SPARSE +dnnl_sparse_encoding_t str2sparse_encoding(const char *str) { +#define CASE(_case) do { \ + if (!strcmp(STRINGIFY(_case), str) \ + || !strcmp("dnnl_" STRINGIFY(_case), str)) \ + return CONCAT2(dnnl_, _case); \ +} while (0) + CASE(sparse_encoding_packed); + CASE(sparse_encoding_csr); + CASE(sparse_encoding_coo); + CASE(packed); + CASE(csr); + CASE(coo); +#undef CASE + if (!strcmp("undef", str) || !strcmp("dnnl_sparse_encoding_undef", str)) + return dnnl_sparse_encoding_undef; + if (!strcmp("any", str) || !strcmp("dnnl_sparse_encoding_any", str)) + return dnnl_sparse_encoding_any; + printf("Error: sparse_encoding `%s` is not supported.\n", str); + assert(!"unknown sparse_encoding"); + return dnnl_sparse_encoding_undef; +} + +#endif + const char *status2str(dnnl_status_t status) { return dnnl_status2str(status); } @@ -1736,6 +1765,9 @@ const char *sparse_encoding2str(dnnl_sparse_encoding_t encoding) { return dnnl_sparse_encoding2str(encoding); } #endif +const char *sparse_encoding2str(dnnl_sparse_encoding_t encoding) { + return dnnl_sparse_encoding2str(encoding); +} const char *engine_kind2str(dnnl_engine_kind_t kind) { return dnnl_engine_kind2str(kind);