Skip to content

Commit 90c851c

Browse files
committed
NXP backend: Replace use of export_to_edge with to_edge_transform_and_lower
1 parent 6555ff6 commit 90c851c

File tree

2 files changed

+23
-38
lines changed

2 files changed

+23
-38
lines changed

examples/nxp/aot_neutron_compile.py

Lines changed: 22 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,13 @@
2323
from executorch.backends.nxp.quantizer.neutron_quantizer import NeutronQuantizer
2424
from executorch.examples.models import MODEL_NAME_TO_MODEL
2525
from executorch.examples.models.model_factory import EagerModelFactory
26-
from executorch.exir import EdgeCompileConfig, ExecutorchBackendConfig
26+
from executorch.exir import (
27+
EdgeCompileConfig,
28+
ExecutorchBackendConfig,
29+
to_edge_transform_and_lower,
30+
)
2731
from executorch.extension.export_util import save_pte_program
28-
from executorch.extension.export_util.utils import export_to_edge
32+
from torch.export import export
2933
from torchao.quantization.pt2e.quantize_pt2e import convert_pt2e, prepare_pt2e
3034

3135
from .experimental.cifar_net.cifar_net import CifarNet, test_cifarnet_model
@@ -141,14 +145,6 @@ def _get_batch_size(data):
141145
required=True,
142146
help=f"Provide model name. Valid ones: {set(models.keys())}",
143147
)
144-
parser.add_argument(
145-
"-d",
146-
"--delegate",
147-
action="store_true",
148-
required=False,
149-
default=False,
150-
help="Flag for producing eIQ NeutronBackend delegated model",
151-
)
152148
parser.add_argument(
153149
"--target",
154150
required=False,
@@ -249,37 +245,28 @@ def _get_batch_size(data):
249245
quantized_str = "quantized " if args.quantize else ""
250246
print(f"\nAccuracy of the {quantized_str}`{args.model_name}`: {accuracy}\n")
251247

252-
# 4. Export to edge program
253-
edge_compile_config = EdgeCompileConfig()
254-
edge_program_manager = export_to_edge(
255-
module,
256-
example_inputs,
257-
edge_compile_config=edge_compile_config,
248+
# 4. Transform and lower
249+
250+
compile_spec = generate_neutron_compile_spec(
251+
args.target,
252+
operators_not_to_delegate=args.operators_not_to_delegate,
253+
neutron_converter_flavor=args.neutron_converter_flavor,
258254
)
255+
partitioner = NeutronPartitioner(compile_spec)
259256

260-
logging.debug(f"Exported graph:\n{edge_program_manager.exported_program().graph}")
257+
edge_program_manager = to_edge_transform_and_lower(
258+
export(module, example_inputs, strict=True),
259+
partitioner=[partitioner],
260+
compile_config=EdgeCompileConfig(),
261+
)
261262

262263
edge_program_manager = NeutronEdgePassManager(
263264
remove_io_quant_ops=args.remove_quant_io_ops
264265
)(edge_program_manager)
265266

266-
# 5. Delegate to Neutron
267-
if args.delegate:
268-
logging.info("Executing Neutron Partitioner and Delegate")
269-
270-
compile_spec = generate_neutron_compile_spec(
271-
args.target,
272-
operators_not_to_delegate=args.operators_not_to_delegate,
273-
neutron_converter_flavor=args.neutron_converter_flavor,
274-
)
275-
partitioner = NeutronPartitioner(compile_spec)
276-
277-
edge_program_manager = edge_program_manager.to_backend(partitioner)
278-
logging.debug(
279-
f"Lowered graph:\n{edge_program_manager.exported_program().graph}"
280-
)
267+
logging.debug(f"Lowered graph:\n{edge_program_manager.exported_program().graph}")
281268

282-
# 6. Export to ExecuTorch program
269+
# 5. Export to ExecuTorch program
283270
try:
284271
exec_prog = edge_program_manager.to_executorch(
285272
config=ExecutorchBackendConfig(extract_delegate_segments=False)
@@ -301,8 +288,6 @@ def executorch_program_to_str(ep, verbose=False):
301288

302289
logging.debug(f"Executorch program:\n{executorch_program_to_str(exec_prog)}")
303290

304-
# 7. Serialize to *.pte
305-
model_name = f"{args.model_name}" + (
306-
"_nxp_delegate" if args.delegate is True else ""
307-
)
291+
# 6. Serialize to *.pte
292+
model_name = f"{args.model_name}"
308293
save_pte_program(exec_prog, model_name)

examples/nxp/run_aot_example.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ cd $EXECUTORCH_DIR
1313

1414
# Run the AoT example
1515
python -m examples.nxp.aot_neutron_compile --quantize \
16-
--delegate --neutron_converter_flavor SDK_25_06 -m ${MODEL}
16+
--neutron_converter_flavor SDK_25_06 -m ${MODEL}
1717
# verify file exists
1818
test -f ${MODEL}_nxp_delegate.pte

0 commit comments

Comments
 (0)