# What's the difference between torch.export / torchserve / executorch / aotinductor?

**URL:** <https://dev-discuss.pytorch.org/t/whats-the-difference-between-torch-export-torchserve-executorch-aotinductor/1642>\
**Category:** deployment\
**Created:** [November 7, 2023, 8:55am UTC](https://dev-discuss.pytorch.org/t/whats-the-difference-between-torch-export-torchserve-executorch-aotinductor/1642 "2023-11-07T08:55:38Z")\
**Posts on this page:** 1\
**Showing post:** 15

<div class="post-metadata">

**Author:** ![suo](https://yyz2.discourse-cdn.com/flex036/user_avatar/dev-discuss.pytorch.org/suo/32/40_2.png) [@suo](https://dev-discuss.pytorch.org/u/suo)\
**Post date:** [February 28, 2024, 5:55pm UTC](https://dev-discuss.pytorch.org/t/whats-the-difference-between-torch-export-torchserve-executorch-aotinductor/1642/15 "2024-02-28T17:55:24Z")

</div>

We will not deprecate TorchScript without a suitable (and technically superior) replacement.

I think the key missing piece, which we are developing but have not yet released, is a generic interpreted runtime that uses libtorch to execute the graph in a target-independent way, optionally calling out to compiled artifacts for acceleration.

So the proposed TorchScript replacement flow would be:

On the frontend:  
torch.export → compile subgraphs/whole graph with inductor → packaged model (graph, plus any compiled artifacts)

On the server:  
Runtime loads the packaged model and executes it, appropriately selecting interpretation/compiled artifacts depending on the host environment.

Does that picture fit with what you would expect?

---

_[View the full topic](https://dev-discuss.pytorch.org/t/whats-the-difference-between-torch-export-torchserve-executorch-aotinductor/1642)._
