Skip to content

Commit e02f65e

Browse files
author
Github Executorch
committed
Update on "Reuse GELU implementation from PyTorch core"
kernels/optimized doesn't need to support embedded systems, so it can just take a header-only dep on PyTorch. Note that, because we will pick up Sleef internally and ignore it externally thanks to ATen vec, this PR gets to enable optimized GELU in OSS. Testing: CI to make sure this doesn't break mobile build modes; happy to take advice on anything not currently covered that might break. Differential Revision: [D66335522](https://our.internmc.facebook.com/intern/diff/D66335522/) [ghstack-poisoned]
2 parents 79defe2 + ced261e commit e02f65e

File tree

125 files changed

+2926
-597
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+2926
-597
lines changed

.buckconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,6 @@
3333
**/.git, \
3434
cmake-out, \
3535
pip-out
36+
37+
[buck2]
38+
restarter=true

.ci/scripts/gather_benchmark_configs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ def set_output(name: str, val: Any) -> None:
238238
try:
239239
with open(github_output, "a") as env:
240240
env.write(f"{name}={val}\n")
241-
except PermissionError:
241+
except (PermissionError, FileNotFoundError):
242242
# Fall back to printing in case of permission error in unit tests
243243
print(f"::set-output name={name}::{val}")
244244

.ci/scripts/setup-linux.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,7 @@ fi
2323
# of nightly. This allows CI to test against latest commits from PyTorch
2424
install_executorch "use-pt-pinned-commit"
2525
build_executorch_runner "${BUILD_TOOL}"
26-
do_not_use_nightly_on_ci
26+
27+
if [[ "${GITHUB_BASE_REF:-}" == *main* || "${GITHUB_BASE_REF:-}" == *gh* ]]; then
28+
do_not_use_nightly_on_ci
29+
fi

.ci/scripts/setup-macos.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,4 +137,7 @@ install_pytorch_and_domains
137137
# the pinned commit from PyTorch
138138
install_executorch "use-pt-pinned-commit"
139139
build_executorch_runner "${BUILD_TOOL}"
140-
do_not_use_nightly_on_ci
140+
141+
if [[ "${GITHUB_BASE_REF:-}" == *main* || "${GITHUB_BASE_REF:-}" == *gh* ]]; then
142+
do_not_use_nightly_on_ci
143+
fi

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,6 @@
6464
[submodule "third-party/ao"]
6565
path = third-party/ao
6666
url = https://github.com/pytorch/ao.git
67+
[submodule "backends/cadence/utils/FACTO"]
68+
path = backends/cadence/utils/FACTO
69+
url = https://github.com/pytorch-labs/FACTO.git
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Copyright 2025 Arm Limited and/or its affiliates.
2+
#
3+
# This source code is licensed under the BSD-style license found in the
4+
# LICENSE file in the root directory of this source tree.
5+
6+
import torch
7+
from executorch.devtools.visualization.visualization_utils import visualize_graph
8+
from executorch.exir import ExportedProgram
9+
from executorch.exir.pass_base import ExportPass, PassResult
10+
11+
12+
class VisualizePass(ExportPass):
13+
"""
14+
This pass visualizes the graph at the point of insertion in the pass manager
15+
"""
16+
17+
def __init__(self, exported_program: ExportedProgram) -> None:
18+
super().__init__()
19+
self.exported_program = exported_program
20+
21+
def call(self, graph_module: torch.fx.GraphModule) -> PassResult:
22+
visualize_graph(graph_module, self.exported_program)
23+
return PassResult(graph_module, False)

backends/arm/_passes/annotate_decomposed_matmul.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# This source code is licensed under the BSD-style license found in the
55
# LICENSE file in the root directory of this source tree.
66

7+
# pyre-unsafe
8+
79
import itertools
810

911
from typing import List

backends/arm/_passes/arm_pass_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ def _tosa_080_MI_pipeline(self, exported_program: ExportedProgram) -> GraphModul
123123
self.add_pass(FuseQuantizedActivationPass())
124124
self.add_pass(RemoveGetItemPass())
125125
self.add_pass(ConvertSplitToSlicePass())
126+
self.add_pass(FuseBatchnorm2DPass(exported_program))
126127
self.add_pass(ConvertMmToBmmPass())
127128
self.add_pass(DecomposeLinearPass())
128129
self.add_pass(DecomposeBatchNormPass())
@@ -132,7 +133,6 @@ def _tosa_080_MI_pipeline(self, exported_program: ExportedProgram) -> GraphModul
132133
self.add_pass(ConvertMeanDimToAveragePoolPass())
133134
self.add_pass(DecomposeDivPass())
134135
self.add_pass(DecomposeSoftmaxesPass())
135-
self.add_pass(FuseBatchnorm2DPass(exported_program))
136136

137137
self.add_pass(AnnotateDecomposedMatmulPass())
138138
self.add_pass(QuantizeOperatorArguments())

backends/arm/_passes/fold_qdq_with_annotated_qparams_pass.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# This source code is licensed under the BSD-style license found in the
55
# LICENSE file in the root directory of this source tree.
66

7+
# pyre-unsafe
8+
79
import copy
810

911
from typing import cast, Dict, Set, Tuple

backends/arm/_passes/fuse_batchnorm2d_pass.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
# This source code is licensed under the BSD-style license found in the
44
# LICENSE file in the root directory of this source tree.
55

6+
# pyre-unsafe
7+
68
import torch
79
from executorch.exir import ExportedProgram
810
from executorch.exir.dialects._ops import ops as exir_ops

0 commit comments

Comments
 (0)