Metadata-Version: 2.1
Name: loo-v2020
Version: 2020.2
Summary: A code generator for array-based code on CPUs and GPUs
Home-page: http://mathema.tician.de/software/loopy
Author: Andreas Kloeckner
Author-email: inform@tiker.net
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Other Audience
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Python: ~=3.6
Description-Content-Type: text/markdown
Requires-Dist: pytools (>=2020.2)
Requires-Dist: pymbolic (>=2019.2)
Requires-Dist: genpy (>=2016.1.2)
Requires-Dist: cgen (>=2016.1)
Requires-Dist: islpy (>=2019.1)
Requires-Dist: six (>=1.8.0)
Requires-Dist: codepy (>=2017.1)
Requires-Dist: colorama
Requires-Dist: Mako
Provides-Extra: fortran
Requires-Dist: f2py (>=0.3.1) ; extra == 'fortran'
Requires-Dist: ply (>=3.6) ; extra == 'fortran'
Provides-Extra: pyopencl
Requires-Dist: pyopencl (>=2020.2) ; extra == 'pyopencl'

Loopy: Transformation-Based Generation of High-Performance CPU/GPU Code
=======================================================================

.. image:: https://gitlab.tiker.net/inducer/loopy/badges/master/pipeline.svg
    :alt: Gitlab Build Status
    :target: https://gitlab.tiker.net/inducer/loopy/commits/master
.. image:: https://github.com/inducer/loopy/workflows/CI/badge.svg?branch=master&event=push
    :alt: Github Build Status
    :target: https://github.com/inducer/loopy/actions?query=branch%3Amaster+workflow%3ACI+event%3Apush
.. image:: https://badge.fury.io/py/loo.py.png
    :alt: Python Package Index Release Page
    :target: https://pypi.org/project/loo.py/

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
<http://en.wikipedia.org/wiki/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 <http://mathema.tician.de/software/pyopencl>`_.

---

Places on the web related to Loopy:

* `Python package index <http://pypi.python.org/pypi/loo.py>`_ (download releases) Note the extra '.' in the PyPI identifier!

* `Documentation <http://documen.tician.de/loopy>`_ (read how things work)
* `Github <http://github.com/inducer/loopy>`_ (get latest source code, file bugs)
* `Wiki <http://wiki.tiker.net/Loopy>`_ (read installation tips, get examples, read FAQ)
* `Homepage <http://mathema.tician.de/software/loopy>`_



