Loopy: Transformation-Based Generation of High-Performance CPU/GPU Code
=======================================================================
.. image:: https://gitlab.tiker.net/inducer/loopy/badges/main/pipeline.svg
:alt: Gitlab Build Status
:target: https://gitlab.tiker.net/inducer/loopy/commits/main
.. image:: https://github.com/inducer/loopy/workflows/CI/badge.svg?branch=main&event=push
:alt: Github Build Status
:target: https://github.com/inducer/loopy/actions?query=branch%3Amain+workflow%3ACI+event%3Apush
.. image:: https://badge.fury.io/py/loopy.png
:alt: Python Package Index Release Page
:target: https://pypi.org/project/loopy/
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
<https://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 loopy
In addition, Loopy is compatible with and enhances
`pyopencl <https://mathema.tician.de/software/pyopencl>`_.
---
Places on the web related to Loopy:
* `Python package index <https://pypi.org/project/loopy>`_ (download releases)
* `Documentation <https://documen.tician.de/loopy>`_ (read how things work)
* `Github <https://github.com/inducer/loopy>`_ (get latest source code, file bugs)
* `Homepage <https://mathema.tician.de/software/loopy>`_
* `Benchmarks <https://documen.tician.de/loopy/benchmarks>`_
Raw data
{
"_id": null,
"home_page": "https://mathema.tician.de/software/loopy",
"name": "loopy",
"maintainer": "",
"docs_url": null,
"requires_python": "~=3.8",
"maintainer_email": "",
"keywords": "",
"author": "Andreas Kloeckner",
"author_email": "inform@tiker.net",
"download_url": "https://files.pythonhosted.org/packages/24/bc/dae4f601cb201764e9e8f0ad0a1dd2a5c51f128370edd5ce0210c0a63148/loopy-2024.1.tar.gz",
"platform": null,
"description": "Loopy: Transformation-Based Generation of High-Performance CPU/GPU Code\n=======================================================================\n\n.. image:: https://gitlab.tiker.net/inducer/loopy/badges/main/pipeline.svg\n :alt: Gitlab Build Status\n :target: https://gitlab.tiker.net/inducer/loopy/commits/main\n.. image:: https://github.com/inducer/loopy/workflows/CI/badge.svg?branch=main&event=push\n :alt: Github Build Status\n :target: https://github.com/inducer/loopy/actions?query=branch%3Amain+workflow%3ACI+event%3Apush\n.. image:: https://badge.fury.io/py/loopy.png\n :alt: Python Package Index Release Page\n :target: https://pypi.org/project/loopy/\n\nLoopy lets you easily generate the tedious, complicated code that is necessary\nto get good performance out of GPUs and multi-core CPUs.\nLoopy's core idea is that a computation should be described simply and then\n*transformed* into a version that gets high performance. This transformation\ntakes place under user control, from within Python.\n\nIt can capture the following types of optimizations:\n\n* Vector and multi-core parallelism in the OpenCL/CUDA model\n* Data layout transformations (structure of arrays to array of structures)\n* Loop unrolling\n* Loop tiling with efficient handling of boundary cases\n* Prefetching/copy optimizations\n* Instruction level parallelism\n* and many more\n\nLoopy targets array-type computations, such as the following:\n\n* dense linear algebra,\n* convolutions,\n* n-body interactions,\n* PDE solvers, such as finite element, finite difference, and\n Fast-Multipole-type computations\n\nIt is not (and does not want to be) a general-purpose programming language.\n\nLoopy is licensed under the liberal `MIT license\n<https://en.wikipedia.org/wiki/MIT_License>`_ and free for commercial, academic,\nand private use. All of Loopy's dependencies can be automatically installed from\nthe package index after using::\n\n pip install loopy\n\nIn addition, Loopy is compatible with and enhances\n`pyopencl <https://mathema.tician.de/software/pyopencl>`_.\n\n---\n\nPlaces on the web related to Loopy:\n\n* `Python package index <https://pypi.org/project/loopy>`_ (download releases)\n* `Documentation <https://documen.tician.de/loopy>`_ (read how things work)\n* `Github <https://github.com/inducer/loopy>`_ (get latest source code, file bugs)\n* `Homepage <https://mathema.tician.de/software/loopy>`_\n* `Benchmarks <https://documen.tician.de/loopy/benchmarks>`_\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A code generator for array-based code on CPUs and GPUs",
"version": "2024.1",
"project_urls": {
"Homepage": "https://mathema.tician.de/software/loopy"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "24bcdae4f601cb201764e9e8f0ad0a1dd2a5c51f128370edd5ce0210c0a63148",
"md5": "87cb69ccf8faa3b76ec3e1f7a3ea5ce5",
"sha256": "d7a063b668de8f2ada6f70f8db98865005a46608e7d2d54472f70028f059fc17"
},
"downloads": -1,
"filename": "loopy-2024.1.tar.gz",
"has_sig": false,
"md5_digest": "87cb69ccf8faa3b76ec3e1f7a3ea5ce5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.8",
"size": 621539,
"upload_time": "2024-02-16T19:51:13",
"upload_time_iso_8601": "2024-02-16T19:51:13.370544Z",
"url": "https://files.pythonhosted.org/packages/24/bc/dae4f601cb201764e9e8f0ad0a1dd2a5c51f128370edd5ce0210c0a63148/loopy-2024.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-16 19:51:13",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "loopy"
}