From 60d588dab51fbcda2f5d2c934836bab208b09f64 Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 21 Nov 2024 13:04:14 -0800 Subject: [PATCH 1/2] Revert "[Executorch] optimized sigmoid" This reverts commit 5b4d9bbf4a7d6e23ad2d4a7a575ecc66d588664b. Attempting to debug/fix #7019. --- kernels/optimized/cpu/op_sigmoid.cpp | 103 --------------------------- kernels/optimized/cpu/targets.bzl | 1 - kernels/optimized/optimized-oss.yaml | 5 -- kernels/optimized/optimized.yaml | 5 -- kernels/test/targets.bzl | 2 +- 5 files changed, 1 insertion(+), 115 deletions(-) delete mode 100644 kernels/optimized/cpu/op_sigmoid.cpp diff --git a/kernels/optimized/cpu/op_sigmoid.cpp b/kernels/optimized/cpu/op_sigmoid.cpp deleted file mode 100644 index 751038cc8bc..00000000000 --- a/kernels/optimized/cpu/op_sigmoid.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. - */ - -#include - -#include -#include -#include - -namespace torch { -namespace executor { -namespace native { - -namespace { - -template -constexpr bool is_half_or_bf16_v = std::is_same_v || - std::is_same_v; - -template < - typename CTYPE_IN, - typename CTYPE_OUT, - typename std::enable_if< - std::is_same_v && !is_half_or_bf16_v && - !is_half_or_bf16_v, - int>::type = 0> -void sigmoid_data( - const CTYPE_IN* in_data, - const size_t numel, - CTYPE_OUT* out_data) { - using Vec = executorch::vec::Vectorized; - executorch::vec::map( - [](Vec x) { - auto one_plus_exp = x.neg().exp() + Vec(static_cast(1.0)); - return one_plus_exp.reciprocal(); - }, - out_data, - in_data, - numel); -} - -template < - typename CTYPE_IN, - typename CTYPE_OUT, - typename std::enable_if< - !std::is_same_v || is_half_or_bf16_v || - is_half_or_bf16_v, - int>::type = 0> -void sigmoid_data( - const CTYPE_IN* in_data, - const size_t numel, - CTYPE_OUT* out_data) { - for (size_t i = 0; i < numel; i++) { - CTYPE_OUT xi = static_cast(in_data[i]); - out_data[i] = (1.0f / (1.0f + std::exp(-xi))); - } -} - -} // namespace - -using Tensor = exec_aten::Tensor; - -Tensor& -opt_sigmoid_out(KernelRuntimeContext& ctx, const Tensor& in, Tensor& out) { - (void)ctx; - - ET_KERNEL_CHECK( - ctx, in.scalar_type() != ScalarType::Bool, InvalidArgument, out); - ET_KERNEL_CHECK(ctx, tensor_is_floating_type(out), InvalidArgument, out); - - ET_KERNEL_CHECK( - ctx, tensors_have_same_dim_order(in, out), InvalidArgument, out); - - // Resize for dynamic shape - ET_KERNEL_CHECK_MSG( - ctx, - resize_tensor(out, in.sizes()) == Error::Ok, - InvalidArgument, - out, - "Failed to resize output tensor."); - - ScalarType in_type = in.scalar_type(); - ScalarType out_type = out.scalar_type(); - ET_SWITCH_REALHB_TYPES(in_type, ctx, "sigmoid.out", CTYPE_IN, [&]() { - ET_SWITCH_FLOATH_TYPES(out_type, ctx, "sigmoid.out", CTYPE_OUT, [&]() { - sigmoid_data( - in.const_data_ptr(), - in.numel(), - out.mutable_data_ptr()); - }); - }); - - return out; -} - -} // namespace native -} // namespace executor -} // namespace torch diff --git a/kernels/optimized/cpu/targets.bzl b/kernels/optimized/cpu/targets.bzl index 5e5f6dd7b99..77a270cc45d 100644 --- a/kernels/optimized/cpu/targets.bzl +++ b/kernels/optimized/cpu/targets.bzl @@ -25,7 +25,6 @@ _OPTIMIZED_ATEN_OPS = ( ], ), op_target(name = "op_exp"), - op_target(name = "op_sigmoid"), op_target( name = "op_gelu", deps = select({ diff --git a/kernels/optimized/optimized-oss.yaml b/kernels/optimized/optimized-oss.yaml index 52262e2dd53..797744f3bd4 100644 --- a/kernels/optimized/optimized-oss.yaml +++ b/kernels/optimized/optimized-oss.yaml @@ -35,11 +35,6 @@ - arg_meta: null kernel_name: torch::executor::opt_exp_out -- op: sigmoid.out - kernels: - - arg_meta: null - kernel_name: torch::executor::opt_sigmoid_out - - op: le.Scalar_out kernels: - arg_meta: null diff --git a/kernels/optimized/optimized.yaml b/kernels/optimized/optimized.yaml index ea07126a3b9..2421673f8a7 100644 --- a/kernels/optimized/optimized.yaml +++ b/kernels/optimized/optimized.yaml @@ -37,11 +37,6 @@ - arg_meta: null kernel_name: torch::executor::opt_exp_out -- op: sigmoid.out - kernels: - - arg_meta: null - kernel_name: torch::executor::opt_sigmoid_out - - op: gelu.out kernels: - arg_meta: null diff --git a/kernels/test/targets.bzl b/kernels/test/targets.bzl index 77b18a48146..ce15a578adf 100644 --- a/kernels/test/targets.bzl +++ b/kernels/test/targets.bzl @@ -297,7 +297,7 @@ def define_common_targets(): _common_op_test("op_scatter_add_test", ["aten", "portable"]) _common_op_test("op_select_scatter_test", ["aten", "portable"]) _common_op_test("op_select_copy_test", ["aten", "portable"]) - _common_op_test("op_sigmoid_test", ["aten", "portable", "optimized"]) + _common_op_test("op_sigmoid_test", ["aten", "portable"]) _common_op_test("op_sign_test", ["aten", "portable"]) _common_op_test("op_sin_test", ["aten", "portable"]) _common_op_test("op_sinh_test", ["aten", "portable"]) From e96b2617778029c5544cadfc910a38f68833297b Mon Sep 17 00:00:00 2001 From: Scott Wolchok Date: Thu, 21 Nov 2024 13:08:54 -0800 Subject: [PATCH 2/2] kick workflow --- .github/workflows/build-wheels-m1.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-wheels-m1.yml b/.github/workflows/build-wheels-m1.yml index 1dad6ad5ea1..32819058c90 100644 --- a/.github/workflows/build-wheels-m1.yml +++ b/.github/workflows/build-wheels-m1.yml @@ -1,4 +1,5 @@ # From https://github.com/pytorch/test-infra/wiki/Using-Nova-Reusable-Build-Workflows +# kick build name: Build M1 Wheels on: