Compilers
=========
Explore PyTorch compilers to optimize and deploy models efficiently.
Learn about APIs like ``torch.compile`` and ``torch.export``
that let you enhance model performance and streamline deployment
processes.
Explore advanced topics such as compiled autograd, dynamic compilation
control, as well as third-party backend solutions.
.. warning::
TorchScript is no longer in active development.
.. raw:: html
<div id="tutorial-cards-container">
<nav class="navbar navbar-expand-lg navbar-light tutorials-nav col-12">
<div class="tutorial-tags-container">
<div id="dropdown-filter-tags">
<div class="tutorial-filter-menu">
<div class="tutorial-filter filter-btn all-tag-selected" data-tag="all">All</div>
</div>
</div>
</div>
</nav>
<hr class="tutorials-hr">
<div class="row">
<div id="tutorial-cards">
<div class="list">
.. customcarditem::
:header: torch.compile Tutorial
:card_description: Speed up your models with minimal code changes using torch.compile, the latest PyTorch compiler solution.
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: intermediate/torch_compile_tutorial.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: torch.compile End-to-End Tutorial
:card_description: An example of applying torch.compile to a real model, demonstrating speedups.
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: intermediate/torch_compile_full_example.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: Compiled Autograd: Capturing a larger backward graph for torch.compile
:card_description: Learn how to use compiled autograd to capture a larger backward graph.
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: intermediate/compiled_autograd_tutorial.html
:tags: Model-Optimization,CUDA,torch.compile
.. customcarditem::
:header: Inductor CPU Backend Debugging and Profiling
:card_description: Learn the usage, debugging and performance profiling for ``torch.compile`` with Inductor CPU backend.
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: intermediate/inductor_debug_cpu.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: Dynamic Compilation Control with torch.compiler.set_stance
:card_description: Learn how to use torch.compiler.set_stance
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: recipes/torch_compiler_set_stance_tutorial.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: Demonstration of torch.export flow, common challenges and the solutions to address them
:card_description: Learn how to export models for popular usecases
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: recipes/torch_export_challenges_solutions.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: (beta) Compiling the Optimizer with torch.compile
:card_description: Speed up the optimizer using torch.compile
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: recipes/compiling_optimizer.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: (beta) Running the compiled optimizer with an LR Scheduler
:card_description: Speed up training with LRScheduler and torch.compiled optimizer
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: recipes/compiling_optimizer_lr_scheduler.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: Using Variable Length Attention with ``torch.compile``
:card_description: Speed up training with torch.compiled variable length attention
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: intermediate/variable_length_attention_tutorial.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: Using User-Defined Triton Kernels with ``torch.compile``
:card_description: Learn how to use user-defined kernels with ``torch.compile``
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: recipes/torch_compile_user_defined_triton_kernel_tutorial.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: Compile Time Caching in ``torch.compile``
:card_description: Learn how to use compile time caching in ``torch.compile``
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: recipes/torch_compile_caching_tutorial.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: Compile Time Caching Configurations
:card_description: Learn how to configure compile time caching in ``torch.compile``
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: recipes/torch_compile_caching_configuration_tutorial.html
:tags: Model-Optimization,torch.compile
.. customcarditem::
:header: Reducing torch.compile cold start compilation time with regional compilation
:card_description: Learn how to use regional compilation to control cold start compile time
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: recipes/regional_compilation.html
:tags: Model-Optimization,torch.compile
.. Export
.. customcarditem::
:header: torch.export AOTInductor Tutorial for Python runtime
:card_description: Learn an end-to-end example of how to use AOTInductor for python runtime.
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: recipes/torch_export_aoti_python.html
:tags: Basics,torch.export
.. customcarditem::
:header: Deep dive into torch.export
:card_description: Learn how to use torch.export to export PyTorch models into standardized model representations.
:image: _static/img/thumbnails/cropped/generic-pytorch-logo.png
:link: intermediate/torch_export_tutorial.html
:tags: Basics,torch.export
.. ONNX
.. customcarditem::
:header: (optional) Exporting a PyTorch model to ONNX using TorchDynamo backend and Running it using ONNX Runtime
:card_description: Build a image classifier model in PyTorch and convert it to ONNX before deploying it with ONNX Runtime.
:image: _static/img/thumbnails/cropped/Exporting-PyTorch-Models-to-ONNX-Graphs.png
:link: beginner/onnx/export_simple_model_to_onnx_tutorial.html
:tags: Production,ONNX,Backends
.. customcarditem::
:header: Extending the ONNX exporter operator support
:card_description: Demonstrate end-to-end how to address unsupported operators in ONNX.
:image: _static/img/thumbnails/cropped/Exporting-PyTorch-Models-to-ONNX-Graphs.png
:link: beginner/onnx/onnx_registry_tutorial.html
:tags: Production,ONNX,Backends
.. customcarditem::
:header: Exporting a model with control flow to ONNX
:card_description: Demonstrate how to handle control flow logic while exporting a PyTorch model to ONNX.
:image: _static/img/thumbnails/cropped/Exporting-PyTorch-Models-to-ONNX-Graphs.png
:link: beginner/onnx/export_control_flow_model_to_onnx_tutorial.html
:tags: Production,ONNX,Backends
.. Code Transformations with FX
.. customcarditem::
:header: Building a Convolution/Batch Norm fuser in FX
:card_description: Build a simple FX pass that fuses batch norm into convolution to improve performance during inference.
:image: _static/img/thumbnails/cropped/Deploying-PyTorch-in-Python-via-a-REST-API-with-Flask.png
:link: intermediate/torch_compile_conv_bn_fuser
:tags: FX
.. customcarditem::
:header: Building a Simple Performance Profiler with FX
:card_description: Build a simple FX interpreter to record the runtime of op, module, and function calls and report statistics
:image: _static/img/thumbnails/cropped/Deploying-PyTorch-in-Python-via-a-REST-API-with-Flask.png
:link: intermediate/fx_profiling_tutorial.html
:tags: FX
.. raw:: html
</div>
</div>
.. End of tutorial cards section
.. -----------------------------------------
.. Page TOC
.. -----------------------------------------
.. toctree::
:maxdepth: 2
:hidden:
:caption: torch.compile
intermediate/torch_compile_tutorial
intermediate/torch_compile_full_example
intermediate/compiled_autograd_tutorial
intermediate/inductor_debug_cpu
recipes/torch_compiler_set_stance_tutorial
recipes/torch_export_challenges_solutions
recipes/compiling_optimizer
recipes/compiling_optimizer_lr_scheduler
intermediate/variable_length_attention_tutorial
recipes/torch_compile_user_defined_triton_kernel_tutorial
recipes/torch_compile_caching_tutorial
recipes/regional_compilation
.. toctree::
:maxdepth: 2
:hidden:
:caption: torch.export
intermediate/torch_export_tutorial
recipes/torch_export_aoti_python
recipes/torch_export_challenges_solutions
.. toctree::
:maxdepth: 2
:hidden:
:caption: ONNX
beginner/onnx/intro_onnx
beginner/onnx/export_simple_model_to_onnx_tutorial
beginner/onnx/onnx_registry_tutorial
beginner/onnx/export_control_flow_model_to_onnx_tutorial
.. toctree::
:maxdepth: 2
:includehidden:
:hidden:
:caption: Code Transforms with FX
intermediate/torch_compile_conv_bn_fuser
intermediate/fx_profiling_tutorial