Skip to main content

Get Descriptions of Array Computations via Lazy Evaluation

Project description

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).

Example:

import pytato as pt
import numpy as np

ns = pt.Namespace()
pt.SizeParameter(ns, "n")  # -> prescribes shape=(), dtype=np.intp
a = pt.Placeholder(ns, "a", "n,n", dtype=np.float32)

# Also: pt.roll
# If we can: np.roll
a2a = a@(2*a)

aat = a@a.T

# FIXME: those names are only local...?
# maybe change name of DictOfNamedArrays
result = pt.DictOfNamedArrays({"a2a": a2a, "aat": aat})

prg = pt.generate_loopy(result)

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytato-2021.1.tar.gz (46.2 kB view details)

Uploaded Source

File details

Details for the file pytato-2021.1.tar.gz.

File metadata

  • Download URL: pytato-2021.1.tar.gz
  • Upload date:
  • Size: 46.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.1+

File hashes

Hashes for pytato-2021.1.tar.gz
Algorithm Hash digest
SHA256 568276778521ae1ac78412161ce5041e072cbeca21555321b1b0925a52957071
MD5 d0b79b9255a7b149d40d5957ae9d4779
BLAKE2b-256 e05bd59dfd98c54a4751f5f70b0e4c0d3ff23ed9a3eb1bdacb76f765897751fb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page