Python wrapper for OpenCL
Project description
PyOpenCL: Pythonic Access to OpenCL, with Arrays and Algorithms
---------------------------------------------------------------
.. image:: https://gitlab.tiker.net/inducer/pyopencl/badges/master/pipeline.svg
:target: https://gitlab.tiker.net/inducer/pyopencl/commits/master
.. image:: https://badge.fury.io/py/pyopencl.png
:target: http://pypi.python.org/pypi/pyopencl
(Also: `Travis CI <https://travis-ci.org/inducer/pyopencl/builds>`_ to build binary wheels for releases, see `#264 <https://github.com/inducer/pyopencl/pull/264>`_)
PyOpenCL lets you access GPUs and other massively parallel compute
devices from Python. It tries to offer computing goodness in the
spirit of its sister project `PyCUDA <http://mathema.tician.de/software/pycuda>`_:
* Object cleanup tied to lifetime of objects. This idiom, often
called
`RAII <http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization>`_
in C++, makes it much easier to write correct, leak- and
crash-free code.
* Completeness. PyOpenCL puts the full power of OpenCL's API at
your disposal, if you wish. Every obscure `get_info()` query and
all CL calls are accessible.
* Automatic Error Checking. All CL errors are automatically
translated into Python exceptions.
* Speed. PyOpenCL's base layer is written in C++, so all the niceties
above are virtually free.
* Helpful and complete `Documentation <http://documen.tician.de/pyopencl>`_
as well as a `Wiki <http://wiki.tiker.net/PyOpenCL>`_.
* Liberal license. PyOpenCL is open-source under the
`MIT license <http://en.wikipedia.org/wiki/MIT_License>`_
and free for commercial, academic, and private use.
* Broad support. PyOpenCL was tested and works with Apple's, AMD's, and Nvidia's
CL implementations.
Simple 4-step `install instructions <https://documen.tician.de/pyopencl/misc.html#installation>`_
using Conda on Linux and macOS (that also install a working OpenCL implementation!)
can be found in the `documentation <https://documen.tician.de/pyopencl/>`_.
What you'll need if you do *not* want to use the convenient instructions above and
instead build from source:
* gcc/g++ new enough to be compatible with pybind11
(see their `FAQ <https://pybind11.readthedocs.io/en/stable/faq.html>`_)
* `numpy <http://numpy.org>`_, and
* an OpenCL implementation. (See this `howto <http://wiki.tiker.net/OpenCLHowTo>`_ for how to get one.)
Places on the web related to PyOpenCL:
* `Python package index <http://pypi.python.org/pypi/pyopencl>`_ (download releases)
* `Documentation <http://documen.tician.de/pyopencl>`_ (read how things work)
* `Conda Forge <https://anaconda.org/conda-forge/pyopencl>`_ (download binary packages for Linux, macOS, Windows)
* `C. Gohlke's Windows binaries <http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopencl>`_ (download Windows binaries)
* `Github <http://github.com/inducer/pyopencl>`_ (get latest source code, file bugs)
* `Wiki <http://wiki.tiker.net/PyOpenCL>`_ (read installation tips, get examples, read FAQ)
---------------------------------------------------------------
.. image:: https://gitlab.tiker.net/inducer/pyopencl/badges/master/pipeline.svg
:target: https://gitlab.tiker.net/inducer/pyopencl/commits/master
.. image:: https://badge.fury.io/py/pyopencl.png
:target: http://pypi.python.org/pypi/pyopencl
(Also: `Travis CI <https://travis-ci.org/inducer/pyopencl/builds>`_ to build binary wheels for releases, see `#264 <https://github.com/inducer/pyopencl/pull/264>`_)
PyOpenCL lets you access GPUs and other massively parallel compute
devices from Python. It tries to offer computing goodness in the
spirit of its sister project `PyCUDA <http://mathema.tician.de/software/pycuda>`_:
* Object cleanup tied to lifetime of objects. This idiom, often
called
`RAII <http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization>`_
in C++, makes it much easier to write correct, leak- and
crash-free code.
* Completeness. PyOpenCL puts the full power of OpenCL's API at
your disposal, if you wish. Every obscure `get_info()` query and
all CL calls are accessible.
* Automatic Error Checking. All CL errors are automatically
translated into Python exceptions.
* Speed. PyOpenCL's base layer is written in C++, so all the niceties
above are virtually free.
* Helpful and complete `Documentation <http://documen.tician.de/pyopencl>`_
as well as a `Wiki <http://wiki.tiker.net/PyOpenCL>`_.
* Liberal license. PyOpenCL is open-source under the
`MIT license <http://en.wikipedia.org/wiki/MIT_License>`_
and free for commercial, academic, and private use.
* Broad support. PyOpenCL was tested and works with Apple's, AMD's, and Nvidia's
CL implementations.
Simple 4-step `install instructions <https://documen.tician.de/pyopencl/misc.html#installation>`_
using Conda on Linux and macOS (that also install a working OpenCL implementation!)
can be found in the `documentation <https://documen.tician.de/pyopencl/>`_.
What you'll need if you do *not* want to use the convenient instructions above and
instead build from source:
* gcc/g++ new enough to be compatible with pybind11
(see their `FAQ <https://pybind11.readthedocs.io/en/stable/faq.html>`_)
* `numpy <http://numpy.org>`_, and
* an OpenCL implementation. (See this `howto <http://wiki.tiker.net/OpenCLHowTo>`_ for how to get one.)
Places on the web related to PyOpenCL:
* `Python package index <http://pypi.python.org/pypi/pyopencl>`_ (download releases)
* `Documentation <http://documen.tician.de/pyopencl>`_ (read how things work)
* `Conda Forge <https://anaconda.org/conda-forge/pyopencl>`_ (download binary packages for Linux, macOS, Windows)
* `C. Gohlke's Windows binaries <http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopencl>`_ (download Windows binaries)
* `Github <http://github.com/inducer/pyopencl>`_ (get latest source code, file bugs)
* `Wiki <http://wiki.tiker.net/PyOpenCL>`_ (read installation tips, get examples, read FAQ)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyopencl-2018.2.5.tar.gz
(340.7 kB
view hashes)
Built Distributions
Close
Hashes for pyopencl-2018.2.5-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d44ae1b5682e06ca17c04d94640380c30b62af2c79993653856c306a4319e890 |
|
MD5 | 249bd5507b4514eac62935ac71fae1b8 |
|
BLAKE2b-256 | 1903b758845de2528c61bede6ee2b4a43448f7fc8f40fd6442219bb5514bc43c |
Close
Hashes for pyopencl-2018.2.5-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22652bed018fef95409d7092d072ab0328be42e13eaa4849f2228c0e62a57a81 |
|
MD5 | cfaffeb5389e729874bfc1907db5ef48 |
|
BLAKE2b-256 | c17448cce85835500dd857ab678b63afb7ea5b1147b2bdbffef311fc61f13212 |
Close
Hashes for pyopencl-2018.2.5-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee5f7c38979cf531f425b357596d64749a912d6c8bfd08e0836499921d97600d |
|
MD5 | 325991d185e6a2622af9ca9150b9be60 |
|
BLAKE2b-256 | 739dd61f89b1fa907ad6ae28a8199e5c55f96059ce53b9c88697757005c80769 |
Close
Hashes for pyopencl-2018.2.5-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13c60b8973f32d26d6217f3804f466c203b2039323c710bfcd069e0bedddbe42 |
|
MD5 | 333382729de433711d080d5355472904 |
|
BLAKE2b-256 | ba71c7feeccf89ff8a4146ec0de2d6b7e145731cdb5897efb925e8109aca38e8 |
Close
Hashes for pyopencl-2018.2.5-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83648e76108fbe9b2bddde8d964a7d4fa023d78f0efb29140dc51e79c8050aac |
|
MD5 | 290036d04b1a6705157f71d4bfba4549 |
|
BLAKE2b-256 | 66685d1570f6acfb3ca17c83b453b4009ae171d44908aad00a57870158c704b0 |
Close
Hashes for pyopencl-2018.2.5-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ffb52864320f0198ce4c968ff22bda742d1bcb9c0a69ee17b50214cf834551dd |
|
MD5 | b14f1f5f2cb0d991f51c299f1bbf9841 |
|
BLAKE2b-256 | 33f8061e280eceb5c23d9aa9c6d72724d12f7f2d798912989b908b1e9dfce871 |
Close
Hashes for pyopencl-2018.2.5-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7b0576001c52188aa7e598ec041545a4d2515154b0cf76b53e378e2b479098e |
|
MD5 | ec9ea29138c6e6ba68704dc1b1172fbb |
|
BLAKE2b-256 | b7f5a8bb7d9874181b13217958995d7a27780a2bb467e926f2da71be71473b52 |
Close
Hashes for pyopencl-2018.2.5-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bf4b1c4f059365c0e3a76b41e3fc17060e04a748d28c47ca7e2af6ef6a29b54 |
|
MD5 | 7e1a8d0dc7581d0196461d5beaa07854 |
|
BLAKE2b-256 | d59e75856fd13131b2a13a1a7a5e74bae13d73f6c3c4591f818e8e9374ad8827 |
Close
Hashes for pyopencl-2018.2.5-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe1088b0e67d2802d57c108d57a7abe90a029777f22f36ffb4e1afacdd4595d8 |
|
MD5 | 45c3d7e294ed1f14eb6540c53f9cc92c |
|
BLAKE2b-256 | 7e1f137de28a88879dfbf9aaf0ffbd1cf3e8640a7b44060b272c5a3474c32975 |
Close
Hashes for pyopencl-2018.2.5-cp27-cp27mu-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68e58a60d5923d2006da39068307ba2989629eacb0a378dbbef3931b4554efeb |
|
MD5 | 1207adef305b4b112424de8e264d8357 |
|
BLAKE2b-256 | ba4726c169eba4665b72527f1fbd84262d523fff9dc2309ef5f2afc9fdaa3eae |
Close
Hashes for pyopencl-2018.2.5-cp27-cp27m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b2e58dfb5a0923dc6b4f3c7bf8cfba2271147ae0efbc043e4328414ca83acce |
|
MD5 | bb9b4ba610e6aeb0e02444f879bb9973 |
|
BLAKE2b-256 | 0f589d8fdfd7fc3d4b3202164e7e750d2fdcae111d7072a52e3273c33f85e69b |
Close
Hashes for pyopencl-2018.2.5-cp27-cp27m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f713580f477e25a981b88cad68159eba9f225c61d4ad699caf620ddebcfc226a |
|
MD5 | 2df5a5890d04141b2b5bed1454523788 |
|
BLAKE2b-256 | 964499c354b31cc726cda9acfc24c294ba4b7d9c5f5a36e431d5b9e4e957aa24 |