Technical Overview ==================== **TorchDynamo** is a Python-level JIT compiler designed to make unmodified PyTorch programs faster. TorchDynamo hooks into the frame evaluation API in CPython (`PEP 523 <https://peps.python.org/pep-0523/>`__) to dynamically modify Python bytecode right before it is executed. It rewrites Python bytecode in order to extract sequences of PyTorch operations into an `FX Graph <https://pytorch.org/docs/stable/fx.html>`__ which is then just-in-time compiled with a customizable backend. It creates this FX Graph through bytecode analysis and is designed to mix Python execution with compiled backends to get the best of both worlds — usability and performance. TorchDynamo makes it easy to experiment with different compiler backends to make PyTorch code faster with a single line decorator ``torch._dynamo.optimize()`` which is wrapped for convenience by ``torch.compile()`` .. image:: ../_static/img/dynamo/TorchDynamo.png `TorchInductor` is one of the backends supported by `TorchDynamo Graph <https://pytorch.org/docs/stable/fx.html>`__ into `Triton <https://github.com/openai/triton>`__ for GPUs or `C++/OpenMP <https://www.openmp.org/>`__ for CPUs. We have a `training performance dashboard <https://github.com/pytorch/torchdynamo/issues/681#issuecomment-1233828468>`__ that provides performance comparison for different training backends. You can read more in the `TorchInductor post on PyTorch dev-discuss <https://dev-discuss.pytorch.org/t/torchinductor-a-pytorch-native-compiler-with-define-by-run-ir-and-symbolic-shapes/747>`__. .. seealso:: * `TorchDynamo deep-dive video <https://www.youtube.com/watch?v=egZB5Uxki0I>`__ * `dev-discuss topics <https://dev-discuss.pytorch.org/search?q=TorchDynamo%20order%3Alatest>`__ .. toctree:: :maxdepth: 1 guards-overview custom-backends deep-dive