ExecuTorch est une solution de bout en bout permettant d'activer des capacités d'inférence sur les appareils mobiles et périphériques, notamment les appareils portables, les appareils embarqués et les microcontrôleurs. Il fait partie de l'écosystème PyTorch Edge et permet un déploiement efficace des modèles PyTorch sur les appareils Edge.
Les principales propositions de valeur d'ExecuTorch sont :
Pour un aperçu technique complet d'ExecuTorch et des didacticiels étape par étape, veuillez visiter notre site Web de documentation pour la dernière version (ou la branche principale).
Consultez la page Mise en route pour un aperçu rapide.
Découvrez les exemples de Llama, Llava et d'autres modèles fonctionnant sur des appareils Edge utilisant ExecuTorch.
[MISE À JOUR - 24/10] Nous avons ajouté la prise en charge de l'exécution des modèles Llama 3.2 Quantized 1B/3B via ExecuTorch.
Nous apprécions tous les commentaires, suggestions et rapports de bogues de la communauté pour nous aider à améliorer notre technologie. Veuillez utiliser les forums PyTorch pour discuter et faire des commentaires sur ExecuTorch en utilisant la catégorie ExecuTorch , ainsi que notre référentiel GitHub pour le rapport de bogues.
Nous vous recommandons d'utiliser la dernière balise de version de la page Versions lors du développement.
Voir CONTRIBUTING.md pour plus de détails sur les problèmes, les PR, le style de code, les tâches CI et d'autres sujets de développement.
Pour vous connecter avec nous et d'autres membres de la communauté, nous vous invitons à rejoindre la communauté PyTorch Slack en remplissant ce formulaire. Une fois inscrit, vous pouvez :
#executorch-general
pour des questions générales, des discussions et le soutien de la communauté.#executorch-contributors
si vous souhaitez contribuer directement au développement du projet. executorch
├── backends # Backend delegate implementations.
├── build # Utilities for managing the build system.
├── codegen # Tooling to autogenerate bindings between kernels and the runtime.
├── configurations
├── docs # Static docs tooling.
├── examples # Examples of various user flows, such as model export, delegates, and runtime execution.
├── exir # Ahead-of-time library: model capture and lowering APIs.
| ├── _serialize # Serialize final export artifact.
| ├── backend # Backend delegate ahead of time APIs
| ├── capture # Program capture.
| ├── dialects # Op sets for various dialects in the export process.
| ├── emit # Conversion from ExportedProgram to ExecuTorch execution instructions.
| ├── operator # Operator node manipulation utilities.
| ├── passes # Built-in compiler passes.
| ├── program # Export artifacts.
| ├── serde # Graph module
serialization/deserialization.
| ├── verification # IR verification.
├── extension # Extensions built on top of the runtime.
| ├── android # ExecuTorch wrappers for Android apps.
| ├── apple # ExecuTorch wrappers for iOS apps.
| ├── aten_util # Converts to and from PyTorch ATen types.
| ├── data_loader # 1st party data loader implementations.
| ├── evalue_util # Helpers for working with EValue objects.
| ├── gguf_util # Tools to convert from the GGUF format.
| ├── kernel_util # Helpers for registering kernels.
| ├── memory_allocator # 1st party memory allocator implementations.
| ├── module # A simplified C++ wrapper for the runtime.
| ├── parallel # C++ threadpool integration.
| ├── pybindings # Python API for executorch runtime.
| ├── pytree # C++ and Python flattening and unflattening lib for pytrees.
| ├── runner_util # Helpers for writing C++ PTE-execution
tools.
| ├── testing_util # Helpers for writing C++ tests.
| ├── training # Experimental libraries for on-device training
├── kernels # 1st party kernel implementations.
| ├── aten
| ├── optimized
| ├── portable # Reference implementations of ATen operators.
| ├── prim_ops # Special ops used in executorch runtime for control flow and symbolic primitives.
| ├── quantized
├── profiler # Utilities for profiling runtime execution.
├── runtime # Core C++ runtime.
| ├── backend # Backend delegate runtime APIs.
| ├── core # Core structures used across all levels of the runtime.
| ├── executor # Model loading, initialization, and execution.
| ├── kernel # Kernel registration and management.
| ├── platform # Layer between architecture specific code and portable C++.
├── schema # ExecuTorch PTE file format flatbuffer
schemas.
├── scripts # Utility scripts for size management, dependency management, etc.
├── devtools # Model profiling, debugging, and introspection.
├── shim # Compatibility layer between OSS and Internal builds
├── test # Broad scoped end-to-end tests.
├── third-party # Third-party dependencies.
├── util # Various helpers and scripts.
ExecuTorch est sous licence BSD, comme indiqué dans le fichier LICENSE.