Sigmoid evaluation stubs, micro-kernels, and operator
Only ARM64 architecture is supported
PiperOrigin-RevId: 280671182
diff --git a/BUILD.bazel b/BUILD.bazel
index cd2512d..e3545df 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -376,10 +376,13 @@
"src/f32-hswish/neonfma.c",
"src/f32-ppmm/4x8-neonfma.c",
"src/f32-ppmm/8x8-neonfma.c",
+ "src/f32-sigmoid/neonfma-p5-x16.c",
"src/f32-vmulcaddc/c4-neonfma-2x.c",
"src/f32-vmulcaddc/c8-neonfma-2x.c",
"src/math/exp-neonfma-lut64-p2.c",
"src/math/exp-neonfma-p5.c",
+ "src/math/expminus-neonfma-p5.c",
+ "src/math/sigmoid-neonfma-p5.c",
]
AARCH64_NEONFMA_UKERNELS = [
@@ -641,6 +644,7 @@
"src/xnnpack/vscale.h",
"src/xnnpack/vscaleexpminusmax.h",
"src/xnnpack/vscaleextexp.h",
+ "src/xnnpack/vunop.h",
"src/xnnpack/zip.h",
]
@@ -1272,6 +1276,15 @@
deps = ACCURACY_EVAL_DEPS,
)
+xnnpack_benchmark(
+ name = "f32_sigmoid_eval",
+ srcs = [
+ "eval/f32-sigmoid.cc",
+ "src/xnnpack/AlignedAllocator.h",
+ ] + ACCURACY_EVAL_HDRS,
+ deps = ACCURACY_EVAL_DEPS,
+)
+
######################### Unit tests for micro-kernels #########################
xnnpack_unit_test(
@@ -1498,6 +1511,15 @@
)
xnnpack_unit_test(
+ name = "f32_sigmoid_test",
+ srcs = [
+ "test/f32-sigmoid.cc",
+ "test/vunop-microkernel-tester.h",
+ ] + MICROKERNEL_TEST_HDRS,
+ deps = MICROKERNEL_TEST_DEPS,
+)
+
+xnnpack_unit_test(
name = "f32_spmm_test",
srcs = [
"test/f32-spmm.cc",