Skip to main content

A code generator for array-based code on CPUs and GPUs

Project description

https://gitlab.tiker.net/inducer/loopy/badges/master/pipeline.svg https://badge.fury.io/py/loo.py.png

Loopy lets you easily generate the tedious, complicated code that is necessary to get good performance out of GPUs and multi-core CPUs. Loopy’s core idea is that a computation should be described simply and then transformed into a version that gets high performance. This transformation takes place under user control, from within Python.

It can capture the following types of optimizations:

  • Vector and multi-core parallelism in the OpenCL/CUDA model

  • Data layout transformations (structure of arrays to array of structures)

  • Loop unrolling

  • Loop tiling with efficient handling of boundary cases

  • Prefetching/copy optimizations

  • Instruction level parallelism

  • and many more

Loopy targets array-type computations, such as the following:

  • dense linear algebra,

  • convolutions,

  • n-body interactions,

  • PDE solvers, such as finite element, finite difference, and Fast-Multipole-type computations

It is not (and does not want to be) a general-purpose programming language.

Loopy is licensed under the liberal MIT license and free for commercial, academic, and private use. All of Loopy’s dependencies can be automatically installed from the package index after using:

pip install loo.py

In addition, Loopy is compatible with and enhances pyopencl.

Places on the web related to Loopy:

Download files

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

Source Distribution

looo.py-2018.1.tar.gz (471.3 kB view details)

Uploaded Source

Built Distribution

looo.py-2018.1-py3-none-any.whl (426.4 kB view details)

Uploaded Python 3

File details

Details for the file looo.py-2018.1.tar.gz.

File metadata

  • Download URL: looo.py-2018.1.tar.gz
  • Upload date:
  • Size: 471.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for looo.py-2018.1.tar.gz
Algorithm Hash digest
SHA256 1762b795f8a11829d5a6334c7151c6ce37e0cf467cb9d762328a2c405c532f81
MD5 332ac6f71849762db89e0e1ca8c12881
BLAKE2b-256 cedb9afe31818ee17b0dc75849a227242c57d13ad9f0191104299e25ad123629

See more details on using hashes here.

File details

Details for the file looo.py-2018.1-py3-none-any.whl.

File metadata

  • Download URL: looo.py-2018.1-py3-none-any.whl
  • Upload date:
  • Size: 426.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for looo.py-2018.1-py3-none-any.whl
Algorithm Hash digest
SHA256 583feebf06904d90f1c5270f26196857234919d2eb9ba785b46b6c9310b90b09
MD5 e36530b6075b4b0644e2eec08eaae0b0
BLAKE2b-256 b389f002b6aa4b9714b2113bac30e637074bc2dc4af6c0bf844c3c5ec1d6d145

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