1
1
load ("@fbsource//tools/build_defs:platform_defs.bzl" , "CXX" )
2
2
load ("@fbsource//xplat/executorch/build:runtime_wrapper.bzl" , "runtime" )
3
3
4
+ def define_operator (name : str , deps : list [str ] | None = None ) -> None :
5
+ op_name = "op_{}" .format (name )
6
+
7
+ # Deps used by all operators.
8
+ common_deps = [
9
+ "//executorch/kernels/portable/cpu/util:all_deps" ,
10
+ "//executorch/kernels/portable/cpu/pattern:all_deps" ,
11
+ "//executorch/runtime/kernel:kernel_includes" ,
12
+ "//executorch/kernels/portable/cpu:scalar_utils" ,
13
+ "fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib_common" ,
14
+ "fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib" ,
15
+ ]
16
+ if deps == None :
17
+ deps = []
18
+
19
+ runtime .cxx_library (
20
+ name = op_name ,
21
+ srcs = [op_name + ".cpp" ],
22
+ platforms = CXX ,
23
+ visibility = [
24
+ "//executorch/backends/cadence/..." ,
25
+ "@EXECUTORCH_CLIENTS" ,
26
+ ],
27
+ deps = deps + common_deps ,
28
+ exported_deps = [
29
+ ":operators_header" ,
30
+ ],
31
+ )
32
+
33
+ OPERATORS = [
34
+ "add" ,
35
+ "cat" ,
36
+ "dequantize" ,
37
+ "mul" ,
38
+ "native_layer_norm" ,
39
+ "quantize" ,
40
+ "softmax" ,
41
+ ]
42
+
4
43
def define_common_targets ():
5
44
"""Defines targets that should be shared between fbcode and xplat.
6
45
@@ -11,28 +50,16 @@ def define_common_targets():
11
50
# Define build targets for all operators registered in the tables above.
12
51
13
52
runtime .cxx_library (
14
- name = "cadence_g3_ops" ,
15
- srcs = glob ([
16
- "*.cpp" ,
17
- ]),
18
- exported_headers = glob ([
19
- "*.h" ,
20
- ]),
21
- platforms = CXX ,
22
- deps = [
23
- "//executorch/kernels/portable/cpu/util:all_deps" ,
24
- "//executorch/kernels/portable/cpu/pattern:all_deps" ,
25
- "//executorch/runtime/kernel:kernel_includes" ,
26
- "//executorch/kernels/portable/cpu:scalar_utils" ,
27
- "fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib_common" ,
28
- "fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib" ,
29
- ],
53
+ name = "operators_header" ,
54
+ exported_headers = ["operators.h" ],
30
55
visibility = [
31
56
"//executorch/backends/cadence/..." ,
32
- "@EXECUTORCH_CLIENTS" ,
33
57
],
34
58
exported_deps = [
35
- "fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib_common " ,
36
- "fbsource//third-party/nnlib-FusionG3/xa_nnlib:libxa_nnlib " ,
59
+ "//executorch/runtime/core/exec_aten:lib " ,
60
+ "//executorch/runtime/kernel:kernel_runtime_context " ,
37
61
],
38
62
)
63
+
64
+ for op in OPERATORS :
65
+ define_operator (op )
0 commit comments