Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / src / mkldnn_plugin / mkldnn / iml_type_mapper.h
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #pragma once
6
7 #include <string>
8
9 namespace MKLDNNPlugin {
10
11 enum impl_desc_type {
12     unknown = 0x00000000,
13     undef,
14     // Optimization approach
15     ref    = 1<<7,
16     jit    = 1<<8,
17     gemm   = 1<<9,
18     // CPU version
19     sse42  = 1<<10,
20     avx    = 1<<11,
21     avx2   = 1<<12,
22     avx512 = 1<<13,
23     blas   = 1<<14,
24     any    = 1<<15,
25     // Other specificator
26     _1x1    = 1<<16,
27     _dw     = 1<<17,
28     // Other info
29     reorder = 1<<18,
30     // winograd
31     winograd = 1<<19,
32     // real types
33     ref_any             = ref  | any,
34
35     gemm_any            = gemm | any,
36     gemm_blas           = gemm | blas,
37     gemm_avx512         = gemm | avx512,
38     gemm_avx2           = gemm | avx2,
39     gemm_avx            = gemm | avx,
40     gemm_sse42          = gemm | sse42,
41
42     jit_avx512_winograd = jit  | avx512 | winograd,
43     jit_avx512          = jit  | avx512,
44     jit_avx2            = jit  | avx2,
45     jit_avx             = jit  | avx,
46     jit_sse42           = jit  | sse42,
47     jit_uni             = jit  | any,
48
49     jit_avx512_1x1      = jit  | avx512 | _1x1,
50     jit_avx2_1x1        = jit  | avx2   | _1x1,
51     jit_avx_1x1         = jit  | avx    | _1x1,
52     jit_sse42_1x1       = jit  | sse42  | _1x1,
53     jit_uni_1x1         = jit  | any    | _1x1,
54
55     jit_avx512_dw       = jit  | avx512 | _dw,
56     jit_avx2_dw         = jit  | avx2   | _dw,
57     jit_avx_dw          = jit  | avx    | _dw,
58     jit_sse42_dw        = jit  | sse42  | _dw,
59     jit_uni_dw          = jit  | any    | _dw,
60 };
61
62 impl_desc_type parse_impl_name(std::string impl_desc_name);
63
64 }  // namespace MKLDNNPlugin