Skip to content

Commit 90d7d07

Browse files
haowhsu-quicfacebook-github-bot
authored andcommitted
Add memory planning pass for fully delegated path (#4176)
Summary: Pull Request resolved: #4176 Reviewed By: tarun292 Differential Revision: D59507586 Pulled By: cccclai fbshipit-source-id: 8b4c196cfbb7eacaef37bc382dabdd290f0fa89a
1 parent bc63230 commit 90d7d07

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

exir/lowered_backend_module.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,14 +139,15 @@ def buffer(
139139
segment_alignment: int = 4096,
140140
constant_tensor_alignment: Optional[int] = None,
141141
delegate_alignment: Optional[int] = None,
142+
memory_planning: MemoryPlanningPass = None,
142143
) -> bytes:
143144
"""
144145
Returns a buffer containing the serialized ExecuTorch binary.
145146
"""
146147
# TODO(T181463742): avoid calling bytes(..) which incurs large copies.
147148
out = bytes(
148149
_serialize_pte_binary(
149-
program=self.program(),
150+
program=self.program(memory_planning=memory_planning),
150151
extract_delegate_segments=extract_delegate_segments,
151152
segment_alignment=segment_alignment,
152153
constant_tensor_alignment=constant_tensor_alignment,
@@ -157,7 +158,11 @@ def buffer(
157158

158159
# TODO(chenlai): re-consider recapture instead of manually constructing the program because
159160
# the meta data construction is done manually.
160-
def program(self, emit_stacktrace: bool = False) -> Program:
161+
def program(
162+
self,
163+
emit_stacktrace: bool = False,
164+
memory_planning: MemoryPlanningPass = None,
165+
) -> Program:
161166
# Fix autodpes introuces cyclic dependencies:
162167
# program -> verifier -> lowered_backend_module -> program
163168
# @manual
@@ -319,9 +324,9 @@ def program(self, emit_stacktrace: bool = False) -> Program:
319324
example_inputs=None,
320325
verifier=lowered_exported_program.verifier,
321326
)
322-
exported_program = _transform(
323-
exported_program, SpecPropPass(), MemoryPlanningPass("greedy")
324-
)
327+
if memory_planning is None:
328+
memory_planning = MemoryPlanningPass("greedy")
329+
exported_program = _transform(exported_program, SpecPropPass(), memory_planning)
325330
emitted_program = emit_program(
326331
exported_program, emit_stacktrace=emit_stacktrace
327332
).program

0 commit comments

Comments
 (0)