(user-pathways)=
ExecuTorch serves a wide range of users — from ML engineers taking their first steps in on-device inference, to embedded systems developers targeting bare-metal microcontrollers, to researchers pushing the boundaries of LLM deployment. This page helps you navigate directly to the content most relevant to your experience level, goals, and target platform.
::::{grid} 3 :gutter: 3
:::{grid-item-card} 🟢 New to ExecuTorch :class-header: bg-success text-white :link: pathway-beginner :link-type: doc
Beginner
You are familiar with PyTorch but have not yet deployed a model to an edge device. You want a clear, guided path from installation to your first on-device inference.
+++ → Beginner Pathway :::
:::{grid-item-card} 🟡 I know the basics :class-header: bg-warning text-dark :link: pathway-quickstart :link-type: doc
Quick Start
You have some experience with model export or mobile ML, and want to get a model running as fast as possible without reading through every concept first.
+++ → Quick Start Pathway :::
:::{grid-item-card} 🔴 Experienced / Production :class-header: bg-danger text-white :link: pathway-advanced :link-type: doc
Advanced
You are building production systems, integrating custom backends, optimizing for constrained hardware, or working with LLMs on edge devices.
+++ → Advanced Pathway :::
::::
Use the decision matrix below to jump directly to the most relevant section based on your goal and target platform.
:header-rows: 1 :widths: 25 20 20 20 15 * - **Goal** - **Android** - **iOS / macOS** - **Desktop / Server** - **Embedded / MCU** * - Run a pre-exported model quickly - {doc}`android-section` - {doc}`ios-section` - {doc}`getting-started` - {doc}`embedded-section` * - Export my own PyTorch model - {doc}`using-executorch-export` - {doc}`using-executorch-export` - {doc}`getting-started` - {doc}`using-executorch-export` * - Deploy an LLM (Llama, Phi, etc.) - {doc}`llm/llama` - {doc}`llm/run-on-ios` - {doc}`llm/working-with-llms` - — * - Use hardware acceleration (NPU/GPU) - {doc}`android-qualcomm` - {doc}`ios-coreml` - {doc}`desktop-backends` - {doc}`embedded-backends` * - Integrate a custom backend delegate - {doc}`backend-development` - {doc}`backend-development` - {doc}`backend-development` - {doc}`backend-development` * - Profile and debug my model - {doc}`devtools-tutorial` - {doc}`devtools-tutorial` - {doc}`devtools-tutorial` - {doc}`devtools-tutorial` * - Build from source - {doc}`using-executorch-building-from-source` - {doc}`using-executorch-building-from-source` - {doc}`using-executorch-building-from-source` - {doc}`using-executorch-building-from-source`
Different roles have different entry points into ExecuTorch. Select the one that best matches your background.
::::{grid} 2 :gutter: 3
:::{grid-item-card} 🤖 ML Engineer :class-header: bg-primary text-white
You work primarily in Python, train models with PyTorch, and want to deploy them efficiently to edge devices.
Start here:
getting-started — Installation and first exportusing-executorch-export — Model export and loweringbackends-overview — Choose the right backendquantization — Reduce model size and latency ::::::{grid-item-card} 📱 Mobile Developer :class-header: bg-primary text-white
You build Android or iOS applications and need to integrate an on-device ML model into your app.
Start here:
android-section — Android integration guideios-section — iOS integration guidegetting-started — Export a model for your platformusing-executorch-android — Full Android API reference ::::::{grid-item-card} ⚙️ Backend / Systems Developer :class-header: bg-primary text-white
You are implementing a hardware backend, writing C++ runtime integrations, or contributing to ExecuTorch internals.
Start here:
backend-development — Backend delegate developmentbackend-delegates-integration — Integrating a backendrunning-a-model-cpp-tutorial — C++ runtime APIsnew-contributor-guide — Contributing to ExecuTorch ::::::{grid-item-card} 🔌 Embedded Developer :class-header: bg-primary text-white
You target microcontrollers, DSPs, or other resource-constrained hardware where memory and compute are tightly limited.
Start here:
embedded-section — Embedded platforms overviewembedded-backends — Available embedded backendsportable-cpp-programming — Portable C++ for constrained devicespico2_tutorial — MNIST on Raspberry Pi Pico2 :::::::
The right workflow depends on whether you are starting from scratch, using a supported model, or working with a custom architecture.
:header-rows: 1 :widths: 30 70 * - **Model Status** - **Recommended Path** * - Using a supported LLM (Llama, Phi, Qwen, SmolLM) - Use the {doc}`llm/export-llm` script for a streamlined export with quantization and optimization built in. Pre-exported models are also available on `HuggingFace ExecuTorch Community <https://huggingface.co/executorch-community>`_. * - Using a HuggingFace model - Use {doc}`llm/export-llm-optimum` (Optimum ExecuTorch) for broad HuggingFace model support with familiar APIs. * - Using a custom PyTorch model - Follow {doc}`getting-started` for the standard export flow, then consult {doc}`using-executorch-export` for advanced lowering options. * - Model requires dynamic shapes - See the dynamic shapes section in {doc}`using-executorch-export` and the {doc}`export-overview` for constraints. * - Model uses unsupported operators - Consult {doc}`kernel-library-custom-aten-kernel` to register custom kernels, or {doc}`compiler-custom-compiler-passes` for graph-level transformations. * - Pre-exported `.pte` file available - Skip export entirely and go directly to {doc}`getting-started` (Running on Device section) or your platform guide.
If you are completely new to ExecuTorch, the recommended entry point is the {doc}getting-started guide, which walks through installation, exporting a MobileNet V2 model, and running inference in under 15 minutes.
For a high-level conceptual overview before diving into code, read {doc}intro-overview and {doc}intro-how-it-works.
:hidden: :maxdepth: 1 :caption: User Pathways pathway-beginner pathway-quickstart pathway-advanced