diff --git a/backends/cadence/hifi/operators/dequantize_per_tensor.cpp b/backends/cadence/hifi/operators/op_dequantize_per_tensor.cpp similarity index 100% rename from backends/cadence/hifi/operators/dequantize_per_tensor.cpp rename to backends/cadence/hifi/operators/op_dequantize_per_tensor.cpp diff --git a/backends/cadence/hifi/operators/quantize_per_tensor.cpp b/backends/cadence/hifi/operators/op_quantize_per_tensor.cpp similarity index 100% rename from backends/cadence/hifi/operators/quantize_per_tensor.cpp rename to backends/cadence/hifi/operators/op_quantize_per_tensor.cpp diff --git a/backends/cadence/hifi/operators/quantized_layer_norm.cpp b/backends/cadence/hifi/operators/op_quantized_layer_norm.cpp similarity index 100% rename from backends/cadence/hifi/operators/quantized_layer_norm.cpp rename to backends/cadence/hifi/operators/op_quantized_layer_norm.cpp diff --git a/backends/cadence/hifi/operators/quantized_linear_out.cpp b/backends/cadence/hifi/operators/op_quantized_linear_out.cpp similarity index 100% rename from backends/cadence/hifi/operators/quantized_linear_out.cpp rename to backends/cadence/hifi/operators/op_quantized_linear_out.cpp diff --git a/backends/cadence/hifi/operators/quantized_relu_out.cpp b/backends/cadence/hifi/operators/op_quantized_relu_out.cpp similarity index 100% rename from backends/cadence/hifi/operators/quantized_relu_out.cpp rename to backends/cadence/hifi/operators/op_quantized_relu_out.cpp diff --git a/backends/cadence/hifi/operators/targets.bzl b/backends/cadence/hifi/operators/targets.bzl index 6c671a5f24a..1c2b481410d 100644 --- a/backends/cadence/hifi/operators/targets.bzl +++ b/backends/cadence/hifi/operators/targets.bzl @@ -1,243 +1,70 @@ load("@fbsource//tools/build_defs:platform_defs.bzl", "CXX") load("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime") -def define_common_targets(): - """Defines targets that should be shared between fbcode and xplat. - - The directory containing this targets.bzl file should also contain both - TARGETS and BUCK files that call this function. - """ - - # Define build targets for all operators registered in the tables above. - runtime.cxx_library( - name = "quantize_per_tensor", - srcs = [ - "quantize_per_tensor.cpp" - ], - platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/kernels/portable/cpu:scalar_utils", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" - ], - visibility = [ - "//executorch/backends/cadence/...", - "@EXECUTORCH_CLIENTS", - ], - ) +def define_operator(name: str, deps: list[str] | None = None) -> None: + op_name = "op_{}".format(name) - runtime.cxx_library( - name = "dequantize_per_tensor", - srcs = [ - "dequantize_per_tensor.cpp" - ], - platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/kernels/portable/cpu:scalar_utils", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" - ], - visibility = [ - "//executorch/backends/cadence/...", - "@EXECUTORCH_CLIENTS", - ], - ) + # Deps used by all operators. + common_deps = [ + "//executorch/kernels/portable/cpu/util:all_deps", + "//executorch/kernels/portable/cpu/pattern:all_deps", + "//executorch/runtime/kernel:kernel_includes", + "//executorch/kernels/portable/cpu:scalar_utils", + "//executorch/backends/cadence/hifi/kernels:kernels", + "//executorch/kernels/portable/cpu/util:dtype_util", + "//executorch/kernels/portable/cpu/util:elementwise_util", + "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" + ] + if deps == None: + deps = [] runtime.cxx_library( - name = "quantized_layer_norm", - srcs = [ - "quantized_layer_norm.cpp" - ], - exported_headers = ["operators.h"], + name = op_name, + srcs = [op_name + ".cpp"], platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/kernels/portable/cpu:scalar_utils", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" - ], visibility = [ "//executorch/backends/cadence/...", "@EXECUTORCH_CLIENTS", ], - ) - - runtime.cxx_library( - name = "quantized_linear_out", - srcs = [ - "quantized_linear_out.cpp" - ], + deps = deps + common_deps, exported_headers = ["operators.h"], - platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/kernels/portable/cpu:scalar_utils", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" - ], - visibility = [ - "//executorch/backends/cadence/...", - "@EXECUTORCH_CLIENTS", - ], - ) - - runtime.cxx_library( - name = "op_add", - srcs = [ - "op_add.cpp", - ], - platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/kernels/portable/cpu:scalar_utils", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions", - "//executorch/kernels/portable/cpu/util:dtype_util", - "//executorch/kernels/portable/cpu/util:elementwise_util", - ], - visibility = [ - "//executorch/backends/cadence/...", - "@EXECUTORCH_CLIENTS", - ], - ) - - - runtime.cxx_library( - name = "op_mul", - srcs = [ - "op_mul.cpp", - ], - platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/kernels/portable/cpu:scalar_utils", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/kernels/portable/cpu/util:dtype_util", - "//executorch/kernels/portable/cpu/util:elementwise_util", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" - ], - visibility = [ - "//executorch/backends/cadence/...", - "@EXECUTORCH_CLIENTS", - ], - ) - - runtime.cxx_library( - name = "op_sub", - srcs = [ - "op_sub.cpp", - ], - platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/kernels/portable/cpu:scalar_utils", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/kernels/portable/cpu/util:dtype_util", - "//executorch/kernels/portable/cpu/util:elementwise_util", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" - ], - visibility = [ - "//executorch/backends/cadence/...", - "@EXECUTORCH_CLIENTS", - ], ) - runtime.cxx_library( - name = "op_div", - srcs = [ - "op_div.cpp", - ], - platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/kernels/portable/cpu:scalar_utils", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/kernels/portable/cpu/util:dtype_util", - "//executorch/kernels/portable/cpu/util:elementwise_util", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" - ], - visibility = [ - "//executorch/backends/cadence/...", - "@EXECUTORCH_CLIENTS", - ], - ) +OPERATORS = [ + "add", + "atan2", + "cat", + "clamp", + "dequantize_per_tensor", + "div", + "full", + "maximum", + "mean", + "minimum", + "mul", + "permute_copy", + "pow", + "quantize_per_tensor", + "quantized_layer_norm", + "quantized_linear_out", + "quantized_relu_out", + "remainder", + "rsqrt", + "sigmoid", + "softmax", + "sub", + "tanh", + "where" +] - runtime.cxx_library( - name = "op_sigmoid", - srcs = [ - "op_sigmoid.cpp", - ], - platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/kernels/portable/cpu/util:dtype_util", - "//executorch/kernels/portable/cpu/util:elementwise_util", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" - ], - visibility = [ - "//executorch/backends/cadence/...", - "@EXECUTORCH_CLIENTS", - ], - ) +def define_common_targets(): + """Defines targets that should be shared between fbcode and xplat. - runtime.cxx_library( - name = "op_tanh", - srcs = [ - "op_tanh.cpp", - ], - platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" - ], - visibility = [ - "//executorch/backends/cadence/...", - "@EXECUTORCH_CLIENTS", - ], - ) + The directory containing this targets.bzl file should also contain both + TARGETS and BUCK files that call this function. + """ - - runtime.cxx_library( - name = "op_where", - srcs = [ - "op_where.cpp", - ], - platforms = CXX, - deps = [ - "//executorch/kernels/portable/cpu/util:all_deps", - "//executorch/kernels/portable/cpu/pattern:all_deps", - "//executorch/runtime/kernel:kernel_includes", - "//executorch/backends/cadence/hifi/kernels:kernels", - "//executorch/kernels/portable/cpu/util:elementwise_util", - "//executorch/backends/cadence/hifi/third-party/nnlib:nnlib-extensions" - ], - visibility = [ - "//executorch/backends/cadence/...", - "@EXECUTORCH_CLIENTS", - ], - ) + # Define build targets for all operators registered in the tables above. + for op in OPERATORS: + define_operator(op)