loopy


Nameloopy JSON
Version 2024.1 PyPI version JSON
download
home_pagehttps://mathema.tician.de/software/loopy
SummaryA code generator for array-based code on CPUs and GPUs
upload_time2024-02-16 19:51:13
maintainer
docs_urlNone
authorAndreas Kloeckner
requires_python~=3.8
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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"
}
        
Elapsed time: 0.22823s