Skip to content

inducer/pytato

Repository files navigation

Pytato: Get Descriptions of Array Computations via Lazy Evaluation

Gitlab Build Status Github Build Status Python Package Index Release Page

Imagine TensorFlow, but aimed at HPC. Produces a data flow graph, where the edges carry arrays and the nodes are (give or take) static-control programs that compute array outputs from inputs, possibly (but not necessarily) expressed in Loopy. A core assumption is that the graph represents a computation that's being repeated often enough that it is worthwhile to do expensive processing on it (code generation, fusion, OpenCL compilation, etc).

  • Documentation (read how things work, see an example)
  • Github (get latest source code, file bugs)

Pytato is licensed to you under the MIT/X Consortium license. See the documentation for further details.

Numpy compatibility

Pytato is written to pose no particular restrictions on the version of numpy used for execution. To use mypy-based type checking on Pytato itself or packages using Pytato, numpy 1.20 or newer is required, due to the typing-based changes to numpy in that release. Furthermore, pytato now uses type promotion rules aiming to match those in numpy 2. This will not break compatibility with older numpy versions, but may result in differing data types between computations carried out in numpy and pytato.