xref: /aosp_15_r20/external/pytorch/third_party/mkl-dnn.BUILD (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Workerload("@rules_cc//cc:defs.bzl", "cc_library")
2*da0073e9SAndroid Build Coastguard Workerload("@pytorch//third_party:substitution.bzl", "template_rule")
3*da0073e9SAndroid Build Coastguard Worker
4*da0073e9SAndroid Build Coastguard Worker_DNNL_RUNTIME_OMP = {
5*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_CPU_THREADING_RUNTIME DNNL_RUNTIME_${DNNL_CPU_THREADING_RUNTIME}": "#define DNNL_CPU_THREADING_RUNTIME DNNL_RUNTIME_OMP",
6*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_CPU_RUNTIME DNNL_RUNTIME_${DNNL_CPU_RUNTIME}": "#define DNNL_CPU_RUNTIME DNNL_RUNTIME_OMP",
7*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_GPU_RUNTIME DNNL_RUNTIME_${DNNL_GPU_RUNTIME}": "#define DNNL_GPU_RUNTIME DNNL_RUNTIME_NONE",
8*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_USE_RT_OBJECTS_IN_PRIMITIVE_CACHE": "/* undef DNNL_USE_RT_OBJECTS_IN_PRIMITIVE_CACHE */",
9*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_WITH_SYCL": "/* #undef DNNL_WITH_SYCL */",
10*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_WITH_LEVEL_ZERO": "/* #undef DNNL_WITH_LEVEL_ZERO */",
11*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_SYCL_CUDA": "/* #undef DNNL_SYCL_CUDA */",
12*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_SYCL_HIP": "/* #undef DNNL_SYCL_HIP */",
13*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_ENABLE_STACK_CHECKER": "#undef DNNL_ENABLE_STACK_CHECKER",
14*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_EXPERIMENTAL_UKERNEL": "/* undef DNNL_EXPERIMENTAL_UKERNEL */",
15*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_EXPERIMENTAL": "#undef DNNL_EXPERIMENTAL",
16*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_EXPERIMENTAL_SPARSE": "#undef DNNL_EXPERIMENTAL_SPARSE",
17*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine ONEDNN_BUILD_GRAPH": "#undef ONEDNN_BUILD_GRAPH",
18*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine DNNL_EXPERIMENTAL_PROFILING": "#undef DNNL_EXPERIMENTAL_PROFILING",
19*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_TRAINING": "#define BUILD_TRAINING 1",
20*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_INFERENCE": "#define BUILD_INFERENCE 0",
21*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_PRIMITIVE_ALL": "#define BUILD_PRIMITIVE_ALL 1",
22*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_BATCH_NORMALIZATION": "#define BUILD_BATCH_NORMALIZATION 0",
23*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_BINARY": "#define BUILD_BINARY 0",
24*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_CONCAT": "#define BUILD_CONCAT 0",
25*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_CONVOLUTION": "#define BUILD_CONVOLUTION 0",
26*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_DECONVOLUTION": "#define BUILD_DECONVOLUTION 0",
27*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_ELTWISE": "#define BUILD_ELTWISE 0",
28*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_GROUP_NORMALIZATION": "#define BUILD_GROUP_NORMALIZATION 0",
29*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_INNER_PRODUCT": "#define BUILD_INNER_PRODUCT 0",
30*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_LAYER_NORMALIZATION": "#define BUILD_LAYER_NORMALIZATION 0",
31*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_LRN": "#define BUILD_LRN 0",
32*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_MATMUL": "#define BUILD_MATMUL 0",
33*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_POOLING": "#define BUILD_POOLING 0",
34*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_PRELU": "#define BUILD_PRELU 0",
35*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_REDUCTION": "#define BUILD_REDUCTION 0",
36*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_REORDER": "#define BUILD_REORDER 0",
37*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_RESAMPLING": "#define BUILD_RESAMPLING 0",
38*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_RNN": "#define BUILD_RNN 0",
39*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_SHUFFLE": "#define BUILD_SHUFFLE 0",
40*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_SOFTMAX": "#define BUILD_SOFTMAX 0",
41*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_SUM": "#define BUILD_SUM 0",
42*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_PRIMITIVE_CPU_ISA_ALL": "#define BUILD_PRIMITIVE_CPU_ISA_ALL 1",
43*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_SSE41": "#define BUILD_SSE41 0",
44*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_AVX2": "#define BUILD_AVX2 0",
45*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_AVX512": "#define BUILD_AVX512 0",
46*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_AMX": "#define BUILD_AMX 0",
47*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_PRIMITIVE_GPU_ISA_ALL": "#define BUILD_PRIMITIVE_GPU_ISA_ALL 1",
48*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_GEN9": "#define BUILD_GEN9 0",
49*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_GEN11": "#define BUILD_GEN11 0",
50*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_XELP": "#define BUILD_XELP 0",
51*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_XEHPG": "#define BUILD_XEHPG 0",
52*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_XEHPC": "#define BUILD_XEHPC 0",
53*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_XEHP": "#define BUILD_XEHP 0",
54*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_XE2": "#define BUILD_XE2 0",
55*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_GEMM_KERNELS_ALL": "#define BUILD_GEMM_KERNELS_ALL 0",
56*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_GEMM_KERNELS_NONE": "#define BUILD_GEMM_KERNELS_NONE 0",
57*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_GEMM_SSE41": "#define BUILD_GEMM_SSE41 0",
58*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_GEMM_AVX2": "#define BUILD_GEMM_AVX2 0",
59*da0073e9SAndroid Build Coastguard Worker    "#cmakedefine01 BUILD_GEMM_AVX512": "#define BUILD_GEMM_AVX512 0",
60*da0073e9SAndroid Build Coastguard Worker}
61*da0073e9SAndroid Build Coastguard Worker
62*da0073e9SAndroid Build Coastguard Workertemplate_rule(
63*da0073e9SAndroid Build Coastguard Worker    name = "include_dnnl_version",
64*da0073e9SAndroid Build Coastguard Worker    src = "include/oneapi/dnnl/dnnl_version.h.in",
65*da0073e9SAndroid Build Coastguard Worker    out = "include/oneapi/dnnl/dnnl_version.h",
66*da0073e9SAndroid Build Coastguard Worker    substitutions = {
67*da0073e9SAndroid Build Coastguard Worker        "@DNNL_VERSION_MAJOR@": "3",
68*da0073e9SAndroid Build Coastguard Worker        "@DNNL_VERSION_MINOR@": "5",
69*da0073e9SAndroid Build Coastguard Worker        "@DNNL_VERSION_PATCH@": "3",
70*da0073e9SAndroid Build Coastguard Worker        "@DNNL_VERSION_HASH@": "66f0cb9eb66affd2da3bf5f8d897376f04aae6af",
71*da0073e9SAndroid Build Coastguard Worker    },
72*da0073e9SAndroid Build Coastguard Worker)
73*da0073e9SAndroid Build Coastguard Worker
74*da0073e9SAndroid Build Coastguard Workertemplate_rule(
75*da0073e9SAndroid Build Coastguard Worker    name = "include_dnnl_config",
76*da0073e9SAndroid Build Coastguard Worker    src = "include/oneapi/dnnl/dnnl_config.h.in",
77*da0073e9SAndroid Build Coastguard Worker    out = "include/oneapi/dnnl/dnnl_config.h",
78*da0073e9SAndroid Build Coastguard Worker    substitutions = _DNNL_RUNTIME_OMP,
79*da0073e9SAndroid Build Coastguard Worker)
80*da0073e9SAndroid Build Coastguard Worker
81*da0073e9SAndroid Build Coastguard Workercc_library(
82*da0073e9SAndroid Build Coastguard Worker    name = "mkl-dnn",
83*da0073e9SAndroid Build Coastguard Worker    srcs = glob([
84*da0073e9SAndroid Build Coastguard Worker        "src/common/*.cpp",
85*da0073e9SAndroid Build Coastguard Worker        "src/cpu/**/*.cpp",
86*da0073e9SAndroid Build Coastguard Worker    ], exclude=[
87*da0073e9SAndroid Build Coastguard Worker        "src/cpu/aarch64/**/*.cpp",
88*da0073e9SAndroid Build Coastguard Worker        "src/cpu/rv64/**/*.cpp",
89*da0073e9SAndroid Build Coastguard Worker    ]),
90*da0073e9SAndroid Build Coastguard Worker    hdrs = glob([
91*da0073e9SAndroid Build Coastguard Worker        "include/oneapi/dnnl/*.h",
92*da0073e9SAndroid Build Coastguard Worker        "include/oneapi/dnnl/*.hpp",
93*da0073e9SAndroid Build Coastguard Worker        "include/*.h",
94*da0073e9SAndroid Build Coastguard Worker        "include/*.hpp",
95*da0073e9SAndroid Build Coastguard Worker        "src/cpu/**/*.hpp",
96*da0073e9SAndroid Build Coastguard Worker        "src/cpu/**/*.h",
97*da0073e9SAndroid Build Coastguard Worker        "src/common/*.hpp",
98*da0073e9SAndroid Build Coastguard Worker        "src/common/ittnotify/jitprofiling.h",
99*da0073e9SAndroid Build Coastguard Worker    ], exclude=[
100*da0073e9SAndroid Build Coastguard Worker        "src/cpu/aarch64/**/*.hpp",
101*da0073e9SAndroid Build Coastguard Worker        "src/cpu/aarch64/**/*.h",
102*da0073e9SAndroid Build Coastguard Worker        "src/cpu/rv64/**/*.hpp",
103*da0073e9SAndroid Build Coastguard Worker        "src/cpu/rv64/**/*.h",
104*da0073e9SAndroid Build Coastguard Worker    ]) + [
105*da0073e9SAndroid Build Coastguard Worker        "include/oneapi/dnnl/dnnl_config.h",
106*da0073e9SAndroid Build Coastguard Worker        "include/oneapi/dnnl/dnnl_version.h",
107*da0073e9SAndroid Build Coastguard Worker    ],
108*da0073e9SAndroid Build Coastguard Worker    copts = [
109*da0073e9SAndroid Build Coastguard Worker        "-DDNNL_DLL",
110*da0073e9SAndroid Build Coastguard Worker        "-DDNNL_DLL_EXPORTS",
111*da0073e9SAndroid Build Coastguard Worker        "-DDNNL_ENABLE_CONCURRENT_EXEC",
112*da0073e9SAndroid Build Coastguard Worker        "-D__STDC_CONSTANT_MACROS",
113*da0073e9SAndroid Build Coastguard Worker        "-D__STDC_LIMIT_MACROS",
114*da0073e9SAndroid Build Coastguard Worker        "-fno-strict-overflow",
115*da0073e9SAndroid Build Coastguard Worker        "-fopenmp",
116*da0073e9SAndroid Build Coastguard Worker    ] + select({
117*da0073e9SAndroid Build Coastguard Worker        "@pytorch//tools/config:thread_sanitizer": ["-DDNNL_CPU_RUNTIME=0"],
118*da0073e9SAndroid Build Coastguard Worker        "//conditions:default": ["-DDNNL_CPU_RUNTIME=2"],
119*da0073e9SAndroid Build Coastguard Worker    }),
120*da0073e9SAndroid Build Coastguard Worker    includes = [
121*da0073e9SAndroid Build Coastguard Worker        "include/",
122*da0073e9SAndroid Build Coastguard Worker        "include/oneapi/",
123*da0073e9SAndroid Build Coastguard Worker        "include/oneapi/dnnl/",
124*da0073e9SAndroid Build Coastguard Worker        "src/",
125*da0073e9SAndroid Build Coastguard Worker        "src/common/",
126*da0073e9SAndroid Build Coastguard Worker        "src/cpu/",
127*da0073e9SAndroid Build Coastguard Worker        "src/cpu/x64/xbyak/",
128*da0073e9SAndroid Build Coastguard Worker    ],
129*da0073e9SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
130*da0073e9SAndroid Build Coastguard Worker    linkopts = [
131*da0073e9SAndroid Build Coastguard Worker        "-lgomp",
132*da0073e9SAndroid Build Coastguard Worker    ],
133*da0073e9SAndroid Build Coastguard Worker    deps = [
134*da0073e9SAndroid Build Coastguard Worker        "@mkl",
135*da0073e9SAndroid Build Coastguard Worker    ],
136*da0073e9SAndroid Build Coastguard Worker    defines = [
137*da0073e9SAndroid Build Coastguard Worker        "DNNL_ENABLE_MAX_CPU_ISA",
138*da0073e9SAndroid Build Coastguard Worker        "DNNL_ENABLE_CONCURRENT_EXEC",
139*da0073e9SAndroid Build Coastguard Worker        "DNNL_ENABLE_PRIMITIVE_CACHE",
140*da0073e9SAndroid Build Coastguard Worker        "DNNL_ENABLE_CPU_ISA_HINTS",
141*da0073e9SAndroid Build Coastguard Worker        "DNNL_EXPERIMENTAL_UKERNEL",
142*da0073e9SAndroid Build Coastguard Worker        "ONEDNN_BUILD_GRAPH",
143*da0073e9SAndroid Build Coastguard Worker    ],
144*da0073e9SAndroid Build Coastguard Worker)
145