ExecuTorch
PyTorch's official mobile / edge inference runtime. Compiles PyTorch models to a mobile-optimized format for Android (NNAPI / GPU / NPU) and iOS (Metal / CoreML). The successor to the deprecated PyTorch Mobile path.
Overview
What it is and how it works
ExecuTorch is PyTorch's official on-device inference runtime, built by Meta's PyTorch team as the successor to the now-deprecated PyTorch Mobile stack. Its job is narrow and specific: take a model authored and trained in PyTorch and get it running efficiently on a phone, tablet, wearable, or embedded Linux/macOS device, with the same numerical semantics you'd expect from the training framework. It is not a general-purpose local LLM server in the llama.cpp or Ollama sense — it's an export-and-deploy pipeline for PyTorch models of any kind (vision, speech, LLM, multimodal), with growing but still-maturing LLM-specific tooling layered on top.
The core design follows PyTorch 2.x's export philosophy. A model is traced via torch.export into a graph-level intermediate representation (Edge IR), which is then lowered through a series of compiler passes — operator decomposition, memory planning, quantization insertion — into a portable .pte binary. That binary ships with a minimal, dependency-light C++ runtime that can run on constrained hardware without pulling in the full libtorch stack. This is the key architectural difference from plain PyTorch Mobile: ExecuTorch is designed around ahead-of-time compilation and a much smaller runtime footprint, rather than shipping a trimmed interpreter.
The other defining piece of the architecture is the delegate system. Rather than forcing every operator to run through a single generic backend, ExecuTorch partitions the graph and hands subgraphs off to hardware-specific delegates: NNAPI or Vulkan on Android, CoreML or Metal Performance Shaders on iOS, and vendor NPU delegates (Qualcomm, MediaTek, ARM Ethos) where available. Anything not covered by a delegate falls back to ExecuTorch's portable CPU kernels. This pluggable-backend model is what lets one export pipeline target wildly different silicon without rewriting the model graph per platform — it's conceptually similar to how ONNX Runtime uses execution providers, but built natively around PyTorch's export and quantization APIs instead of requiring an ONNX conversion step.
Deployment patterns
ExecuTorch is not something you install as a standalone app for local chat — it's a build-time dependency that gets embedded into a mobile or edge application. The typical workflow looks like: train or fine-tune a model in PyTorch, apply quantization (commonly post-training int8 or newer low-bit schemes for LLM weights), run torch.export plus the ExecuTorch AOT compiler to produce a .pte file, then link the ExecuTorch C++ runtime (or its Kotlin/Swift wrappers) into an Android or iOS app target. The .pte file and a small native library ship inside the app bundle; there's no server process, no daemon, and no network dependency at inference time.
On the "homelab" or desktop side, developers use ExecuTorch on Linux or macOS primarily during the export/validation phase — running the same .pte artifact through the desktop runtime to sanity-check numerics and latency before pushing to a physical device, or for embedded Linux targets (robotics, edge boxes) where a small C++ runtime with no Python dependency at inference time is genuinely useful. There is no GPU acceleration path in the desktop-server sense (hence "n/a" for GPU support here) — acceleration on-device comes from the mobile delegates (NNAPI/NPU/CoreML/Metal), not from a CUDA/ROCm backend, because that's simply not the deployment target this tool addresses.
For LLMs specifically, Meta has published reference pipelines (e.g., for Llama-family models) showing export through ExecuTorch with XNNPACK or NPU delegates, but this remains more of a "reference recipe you adapt" than a turnkey model-zoo experience.
How it compares
Against llama.cpp (and its mobile bindings), ExecuTorch is a fundamentally different animal: llama.cpp is a hand-optimized, architecture-specific inference engine built around GGUF quantization and works directly from converted weights with no PyTorch dependency at all. It's dramatically simpler to get an LLM running on-device with llama.cpp, and its GGUF ecosystem is far larger. ExecuTorch's advantage is that it isn't LLM-only — it's a general model-export path for anything you've built in PyTorch (vision, audio, multimodal, custom architectures), and it stays inside a single first-party toolchain from training to deployment, which matters if your model isn't a standard transformer llama.cpp already supports.
Against MLC LLM, which is explicitly optimized for compiling and running LLMs across GPU/mobile/web via TVM-based compilation, ExecuTorch is behind on LLM-specific throughput and quantization tooling today — the tool's own limitations acknowledge this. MLC tends to be the better choice specifically for squeezing performance out of LLMs on Snapdragon-class SoCs.
Against ONNX Runtime Mobile, the comparison is closer: both are export-then-deploy pipelines with pluggable hardware backends. ONNX Runtime has broader framework interoperability (TensorFlow, PyTorch, scikit-learn all export to ONNX), while ExecuTorch trades that breadth for tighter integration with PyTorch's export and quantization internals, which can mean fewer conversion surprises for PyTorch-native models.
Best use cases and honest limitations
ExecuTorch fits teams already training in PyTorch who need a supported path to ship that exact model on iOS/Android without a lossy intermediate conversion format, and who want NPU/CoreML/NNAPI acceleration without hand-rolling per-platform backends. It's a poor fit if you just want to run an existing GGUF checkpoint locally — it doesn't import pre-quantized GGUF, so you're stuck re-exporting from PyTorch source. It's also premature for teams chasing best-in-class LLM tokens/sec on phones today, where MLC LLM or Qualcomm AI Hub's specialized paths are ahead. Kernel coverage gaps mean some custom ops still need manual porting. Treat it as the strategic, Meta-backed long-term successor to PyTorch Mobile that's rapidly improving, not yet the fastest or easiest option for pure LLM inference on-device.
Featured in this stack
The L3 execution stacks that pick this tool as a recommended component, with the one-line note explaining the role it plays in each.
- Stack · L3·Homelab tier·Role: PyTorch-native alternative (NNAPI / Vulkan delegate)Android on-device AI stack — Phi-3.5 Mini / Llama 3.2 3B via MLC LLM or Qualcomm AI Hub
ExecuTorch is PyTorch-first-party. Backend-pluggable: NNAPI (Android), Vulkan (cross-vendor GPU), custom NPU delegates. Pick when your model authoring is PyTorch-native and you don't want a separate compile pipeline.
Pros
- First-party PyTorch lineage — model authoring → mobile deploy is one toolchain
- Backend-pluggable: NNAPI (Android), CoreML (iOS), Vulkan, custom NPU delegates
- Active development under Meta — production-grade roadmap
Cons
- Toolchain still maturing — kernel coverage gaps on some ops
- LLM-specific optimizations behind MLC LLM and Qualcomm AI Hub for Snapdragon
- Requires PyTorch model source — pre-quantized GGUF doesn't import
Compatibility
| Operating systems | iOS Android Linux macOS |
| GPU backends | n/a |
| License | Open source · free + open-source |
Runtime health
Operator-grade signals on how actively ExecuTorch is being maintained, how fresh its measurements are, and what failure classes operators have flagged. Every label below is anchored to a real date or count — we never infer maintainer activity we can't show.
Release cadence
Derived from the most recent editorial signal on this row.
40 days since last refresh · source: enrichedAt
Benchmark freshness
How recent the editorial measurements on this runtime are.
No editorial benchmarks for this runtime yet.
Community reproduction
Submissions that match an editorial measurement on similar hardware.
No community reproductions on file yet.
Get ExecuTorch
Frequently asked
Is ExecuTorch free?
What operating systems does ExecuTorch support?
Does ExecuTorch need a GPU?
Reviewed by RunLocalAI Editorial. See our editorial policy for how we evaluate tools.
Related — keep moving
Verify ExecuTorch runs on your specific hardware before committing money.