Skip to content

Releases: pytorch/executorch

stable-2023-09-12

13 Sep 18:59

Choose a tag to compare

stable-2023-09-12 Pre-release
Pre-release

New models enabled (e2e tested via portable lib):

  • MobileBert

Export API

Runtime API

  • Method
    • Added set_output_data_ptr(), which is a simpler and safer way to set the output buffers if they were not memory-planned
    • Program::load_method() now accepts an optional EventTracer parameter for non-global profiling and event data collection

Delegation API

  • backend.init() and backend.execute() API changes.
    • BackendInitContext is a new added argument for backend.init and BackendExecutionContext is the new added argument for backend.execute().
    • How to rebase on these apis changes?
      • For backend.init, if runtime_allocator is not used, just mark context is not used with __ET_UNUSED. Otherwise, runtime_allocator can be accessed from the context.
      • For backend.execute, nothing has been added to context yet, just mark it with __ET_UNUSED directly. We’ll add event tracer for profiling via context soon.
  • backend.preprocess() API changes
    • Updated backend.preprocess:
      • def preprocess( edge_program: ExportedProgram, compile_specs: List[CompileSpec], ) -> PreprocessResult
    • How to rebase on this API changes?
      • Wrap the result like PreprocessResult(processed_bytes=bytes)
  • Partitioner.partition API changes
    • Updated Partition class definition. Move partition_tags from class attribute to be part of the ParititionResult.
      • def partition(self, graph_module: GraphModule) -> PartitionResult
    • How to rebase on this API change?
      • Wrap both partition_tags and the tagged_graph together as PartitionResult
  • Example Quantizer and Delegate e2e demo
    • Added an example to show to add a quantizer and have it working with delegate to fully delegated a quantized MobileNetV2 model to the example backend.

XnnpackDelegate

  • In an effort to align better with the rest of the Executorch AoT stack, XnnpackDelegate added preliminary support to also handle graphs exported with the canonical capture config (i.e. CaptureConfig.enable_aot=True and CaptureConfig._unlift=False)

SDK

Misc

  • Linter enabled
  • pytest enabled. Rerun pip install . to install pytest and other deps
  • gtest enabled via buck, for example, run gtest for runtime/core
    • /tmp/buck2 test runtime/core/test/…
  • Index operator rewrite:
    • Fixed bug related to null indices.
    • Implemented full Numpy’s advanced indexing functionality (now it is possible to use multidimensional indices, and masks that only index a subspace).
  • Build/CMake
    • CMake release build mode with size optimization flags. We have an example in examples/selective_build/test_selective_build.sh

stable-2023-08-29

29 Aug 16:58

Choose a tag to compare

stable-2023-08-29 Pre-release
Pre-release

New models enabled (e2e tested via portable lib):

  • Wav2Letter
  • Inception V3 and Inception V4
  • Resnet18 and Resnet50

Quantization:

  • Enabled E2E MobileNet V2:
  • MobileNet V3:
    • Needs bumping up the pytorch nightly version (dev20230828) in order to enable MobileNet V3 quantization. However, this breaks ViT export, hence this cut will skip MobileNet V3 quantization until we resolve ViT export breakage.

Delegation:

  • API update:
    • [breaking changes] delegate AOT APIs are moved from executorch/backends/ to executorch/exir/backend. To address the breakage: Update from executorch.backends.backend_details to from executorch.exir.backend.backend_details, and from executorch.backends.backend_api to from executorch.exir.backend.backend_api
  • XNNPACK:
    • XNNPACK delegated models can run on Mac/Linux in OSS
    • XNNPACK lowering workflow examples have been added for MobileNet V2 (with quantization and delegation) and MobileNet V3 (with delegation)
    • Showcase preliminary XNNPACK perf stats on Linux x86 & Mac M1

Selective build:

  • Added buck2 examples to demonstrate 3 APIs to do selective build on any executorch runtime build
  • Run test_selective_build.sh

stable-2023-08-15

15 Aug 19:05

Choose a tag to compare

stable-2023-08-15 Pre-release
Pre-release
  • New models in example folder:
    • Torchvision ViT. Run the example from executorch dir:
      • python3 -m examples.export.export_example --model_name="vit"
      • buck2 run //examples/executor_runner:executor_runner -- --model_path vit.pte
  • Quantization workflow example added and validated to work with MV2:
    • python3 -m examples.quantization.example --model_name mv2
  • CMake build:
  • Custom ops:
    • Add examples to register custom ops into EXIR and Executorch runtime.
    • Note: buck2 in test_custom_ops.sh should point to installed buck2 if it is not accessible in system’s PATH

stable-2023-08-01

09 Aug 00:42

Choose a tag to compare

stable-2023-08-01 Pre-release
Pre-release

Initial release to early users.