Skip to content

Commit cff2f0d

Browse files
committed
Update
[ghstack-poisoned]
1 parent db5141a commit cff2f0d

File tree

2 files changed

+12
-30
lines changed

2 files changed

+12
-30
lines changed

exir/backend/canonical_partitioners/all_node_partitioner.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ def __init__(
3333
compile_specs: List[CompileSpec],
3434
):
3535
"""
36-
Partitioner that lowers every single node in the graph module to the
37-
specified backend_id
36+
Partitioner that lowers every single node in the graph module unconditionally
37+
to the specified backend_id
3838
"""
3939
super().__init__()
4040
self.delegation_spec = DelegationSpec(backend_id, compile_specs)

exir/program/_program.py

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@
2424
from executorch.exir._serialize.data_serializer import DataSerializer
2525
from executorch.exir._warnings import experimental
2626
from executorch.exir.backend.backend_api import to_backend
27-
from executorch.exir.backend.canonical_partitioners.all_node_partitioner import (
28-
AllNodePartitioner,
29-
)
30-
from executorch.exir.backend.partitioner import DelegationSpec, Partitioner
27+
from executorch.exir.backend.partitioner import Partitioner
3128
from executorch.exir.capture._config import EdgeCompileConfig, ExecutorchBackendConfig
3229
from executorch.exir.delegate import executorch_call_delegate, is_lowered_module
3330
from executorch.exir.emit import emit_program, EmitterOutput
@@ -1442,29 +1439,20 @@ def transform(
14421439

14431440
@et_logger("to_backend")
14441441
def to_backend(
1445-
self,
1446-
partitioner: Union[
1447-
DelegationSpec,
1448-
Dict[str, DelegationSpec],
1449-
Partitioner,
1450-
Dict[str, Partitioner],
1451-
],
1442+
self, partitioner: Union[Partitioner, Dict[str, Partitioner]]
14521443
) -> "EdgeProgramManager":
14531444
"""
14541445
Returns a semantically-equivalent program to the one given as input,
14551446
but with portions of each program in the EdgeProgramManager targeted
14561447
for delegation as determined by the partitioner.
14571448
14581449
Args:
1459-
partitioner: The partitioner can be:
1460-
- Partitioner Subclass Instance; all programs in the EdgeProgramManager are lowered with
1461-
this partitioner
1462-
- Dictionary mapping method name to partitioner subclass instance; Only method names specified
1463-
in the dictionary will be lowered by the given partitioner.
1464-
- DelegationSpec; All programs are completely lowered to the backend_id specified in the
1465-
DelegationSpec
1466-
- Dictionary mapping method name to DelegationSpec; Only method names specified in the dictionary
1467-
will be lowered to the backend_id specified in the DelegationSpec
1450+
partitioner: The partitioner can either be a Partitioner subclass instance, or a
1451+
dictionary mapping method names to Partitioner subclass instance. If it is a
1452+
Partitioner subclass, all programs in the given EdgeProgramManager
1453+
will be lowered using the given partitioner. If it is a
1454+
dictionary, only method names specified in the dictionary will be
1455+
lowered with the given partitioner.
14681456
14691457
The Partitioner subclass instance is in charge with tagging portions of the
14701458
input program for delegation. A valid partitioner must return PartitionerResult including valid
@@ -1480,19 +1468,13 @@ def to_backend(
14801468
if isinstance(partitioner, dict):
14811469
for name, program in self._edge_programs.items():
14821470
if name in partitioner.keys():
1483-
partitioner_to_use = partitioner[name]
1484-
if isinstance(partitioner_to_use, DelegationSpec):
1485-
partitioner_to_use = AllNodePartitioner(partitioner_to_use)
1486-
new_edge_programs[name] = to_backend(program, partitioner_to_use)
1471+
new_edge_programs[name] = to_backend(program, partitioner[name])
14871472
else:
14881473
new_edge_programs[name] = program
14891474

14901475
else: # apply partitioner to every method
14911476
for name, program in self._edge_programs.items():
1492-
partitioner_to_use = partitioner
1493-
if isinstance(partitioner, DelegationSpec):
1494-
partitioner_to_use = AllNodePartitioner(partitioner)
1495-
new_edge_programs[name] = to_backend(program, partitioner_to_use)
1477+
new_edge_programs[name] = to_backend(program, partitioner)
14961478

14971479
config = EdgeCompileConfig(_check_ir_validity=False)
14981480
return EdgeProgramManager(

0 commit comments

Comments
 (0)