Extending PyTensor#

This advanced tutorial is for users who want to extend PyTensor with new Types, new operations (i.e. Ops), and new graph rewrites. This first page of the tutorial mainly focuses on the Python implementation of an Op and then proposes an overview of the most important methods that define an Op. The second page of the tutorial (Extending PyTensor with a C Op) provides then information on the C implementation of an Op. The rest of the tutorial goes more in depth on advanced topics related to Ops, such as how to write efficient code for an Op and how to write an rewrite to speed up the execution of an Op.

Along the way, this tutorial also introduces many aspects of how PyTensor works, so it is also good for you if you are interested in getting more under the hood with PyTensor itself.

Note

Before tackling this more advanced presentation, it is highly recommended to read the introductory Tutorial, especially the sections that introduce the PyTensor graphs, as providing a novel PyTensor Op requires a basic understanting of the PyTensor graphs.

See also the Developer Start Guide for information regarding the versioning framework, namely about Git and GitHub, regarding the development workflow and how to make a quality contribution.