RUNLOCALAIv38
->Will it run?Best GPUCompareTroubleshootStartLearnPulseModelsHardwareToolsBench
Run check
RUNLOCALAI

Independently operated catalog for local-AI hardware and software. Hand-written verdicts. Source-cited claims. Reproducible commands when we have them.

OP·Eruo Fredoline
DIR
  • Models
  • Hardware
  • Tools
  • Benchmarks
TOOLS
  • Will it run?
  • Compare hardware
  • Cost vs cloud
  • Choose my GPU
  • Prompting kits
  • Quick answers
REF
  • All buyer guides
  • Learn local AI
  • Methodology
  • Glossary
  • Errors KB
  • Trust
  • Suggest a feature
EDITOR
  • About
  • Author
  • How we make money
  • Editorial policy
  • Contact
LEGAL
  • Privacy
  • Terms
  • Sitemap
MAIL · MONTHLY DIGEST
Get monthly local AI changes
Monthly recap. No spam.
DISCLOSURE

Some links on this site are affiliate links (Amazon Associates and other first-class retailers). When you buy through them, we earn a small commission at no extra cost to you. Affiliate links do not influence our verdicts — there are cards we rate highly that we don't have affiliate relationships with, and cards that sell well that we refuse to recommend. Read more →

© 2026 runlocalai.coIndependently operated
RUNLOCALAI · v38
  1. >
  2. Home
  3. /Tools
  4. /ExecuTorch
runner
Open source
free + open-source

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.

By Eruo Fredoline·Last verified Jun 12, 2026·4,500 GitHub stars

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
LicenseOpen 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.

Active
Updated Jul 3, 2026

40 days since last refresh · source: enrichedAt

Benchmark freshness

How recent the editorial measurements on this runtime are.

0editorial benchmarks

No editorial benchmarks for this runtime yet.

Community reproduction

Submissions that match an editorial measurement on similar hardware.

0reproduced reports

No community reproductions on file yet.

Get ExecuTorch

Official site
https://pytorch.org/executorch
GitHub
https://github.com/pytorch/executorch

Frequently asked

Is ExecuTorch free?

Yes — ExecuTorch is free to use and open-source.

What operating systems does ExecuTorch support?

ExecuTorch supports iOS, Android, Linux, macOS.

Does ExecuTorch need a GPU?

No — ExecuTorch runs on CPU; it does not require or use a GPU.
See something off?Report outdated·Suggest a correctionWe read every submission. Editorial review takes 1-7 days.

Reviewed by RunLocalAI Editorial. See our editorial policy for how we evaluate tools.

Related — keep moving

Compare hardware
  • RTX 3090 vs RTX 4090 →
  • Apple M4 Max vs RTX 4090 →
Buyer guides
  • Best GPU for local AI →
  • Best budget GPU →
When it doesn't work
  • llama.cpp too slow →
  • llama.cpp build failed →
  • llama.cpp Metal crash (Mac) →
  • GGUF tokenizer mismatch →
Recommended hardware
  • RTX 3090 (used) →
  • Apple M4 Max →
Alternatives
LlamafileMLX-LMExLlamaV2IPEX-LLMIntel OpenVINOOllamaAphrodite EngineDirectML
Before you buy

Verify ExecuTorch runs on your specific hardware before committing money.

Will it run on my hardware? →Custom hardware comparison →GPU recommender (4 questions) →