pyopencl

OpenCL integration for Python, plus shiny features

https://github.com/inducer/pyopencl

Science Score: 64.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    19 of 98 committers (19.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.7%) to scientific vocabulary

Keywords

amd array cuda gpu heterogeneous-parallel-programming multidimensional-arrays nvidia opencl opengl parallel-algorithm parallel-computing performance prefix-sum pyopencl python reduction scientific-computing shared-memory sorting

Keywords from Contributors

symbolic-computation pycuda code-generation qt computer-algebra expression-tree term-rewriting wx tk gtk
Last synced: 4 months ago · JSON representation ·

Repository

OpenCL integration for Python, plus shiny features

Basic Info
Statistics
  • Stars: 1,111
  • Watchers: 49
  • Forks: 248
  • Open Issues: 78
  • Releases: 31
Topics
amd array cuda gpu heterogeneous-parallel-programming multidimensional-arrays nvidia opencl opengl parallel-algorithm parallel-computing performance prefix-sum pyopencl python reduction scientific-computing shared-memory sorting
Created over 14 years ago · Last pushed 4 months ago
Metadata Files
Readme License Citation

README.rst

PyOpenCL: Pythonic Access to OpenCL, with Arrays and Algorithms
===============================================================

.. |badge-gitlab-ci| image:: https://gitlab.tiker.net/inducer/pyopencl/badges/main/pipeline.svg
    :alt: Gitlab Build Status
    :target: https://gitlab.tiker.net/inducer/pyopencl/commits/main
.. |badge-github-ci| image:: https://github.com/inducer/pyopencl/actions/workflows/ci.yml/badge.svg
    :alt: Github Build Status
    :target: https://github.com/inducer/pyopencl/actions/workflows/ci.yml
.. |badge-pypi| image:: https://badge.fury.io/py/pyopencl.svg
    :alt: Python Package Index Release Page
    :target: https://pypi.org/project/pyopencl/
.. |badge-zenodo| image:: https://zenodo.org/badge/1575307.svg
    :alt: Zenodo DOI for latest release
    :target: https://zenodo.org/badge/latestdoi/1575307

|badge-gitlab-ci| |badge-github-ci| |badge-pypi| |badge-zenodo|

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 `__:

* Object cleanup tied to lifetime of objects. This idiom, often
  called `RAII `__
  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 `__
  as well as a `Wiki `__.

* Liberal license. PyOpenCL is open-source under the
  `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 `__
using Conda on Linux and macOS (that also install a working OpenCL implementation!)
can be found in the `documentation `__.

What you'll need if you do *not* want to use the convenient instructions above and
instead build from source:

* g++/clang new enough to be compatible with nanobind (specifically, full support of C++17 is needed)
* `numpy `__, and
* an OpenCL implementation. (See this `howto `__
  for how to get one.)

Links
-----

* `Documentation `__
  (read how things work)
* `Python package index `__
  (download releases, including binary wheels for Linux, macOS, Windows)
* `Conda Forge `__
  (download binary packages for Linux, macOS, Windows)
* `Github `__
  (get latest source code, file bugs)

Owner

  • Name: Andreas Klöckner
  • Login: inducer
  • Kind: user
  • Location: Champaign, IL
  • Company: Scientific Computing, CS@UIUC

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Kloeckner"
  given-names: "Andreas"
  orcid: "https://orcid.org/0000-0003-1228-519X"
- family-names: "Yu"
  given-names: "Yichao"
- family-names: "Wala"
  given-names: "Matt"
- family-names: "Fernando"
  given-names: "Isuru"
- family-names: "Bencun"
  given-names: "Marko"
- family-names: "Kulkarni"
  given-names: "Kaushik"
- family-names: "Diener"
  given-names: "Matthias"
- family-names: "Gao"
  given-names: "Hao"
- family-names: "Fikl"
  given-names: "Alex"
- family-names: "Weiner"
  given-names: "Zach"
- family-names: "Weigert"
  given-names: "Martin"
- family-names: "Palmer"
  given-names: "Rebecca"
- family-names: "Latham"
  given-names: "Shane"
- family-names: "Magno"
  given-names: "Gonçalo"
- family-names: "Fuller"
  given-names: "Henry"
- family-names: "Mackenzie"
  given-names: "Jonathan"
- family-names: "Niarchos"
  given-names: "Sotiris"
- family-names: "Gill"
  given-names: "Shahzaib"
- family-names: "Gohlke"
  given-names: "Christoph"
- family-names: "Bhosale"
  given-names: "Aditya"
- family-names: "Rothberg"
  given-names: "Alex"
- family-names: "Ey"
  given-names: "Emanuel"
- family-names: "Rapp"
  given-names: "Holger"
- family-names: "van der Walt"
  given-names: "Stefan"
# Removed pending resolution of https://github.com/zenodo/zenodo/issues/2343
# - alias: "gw0"
- family-names: "Thalhammer"
  given-names: "Gregor"
- family-names: "Kieffer"
  given-names: "Jerome"
- family-names: "Poliarnyi"
  given-names: "Nikolai"
- family-names: "Bollinger"
  given-names: "Drew"
- family-names: "Nitz"
  given-names: "Alex"
- family-names: "Bokota"
  given-names: "Grzegorz"
  orcid: 'https://orcid.org/0000-0002-5470-1676'

title: "PyOpenCL"
version: 2022.1.3
doi: 10.5281/zenodo.6533956
date-released: 2022-03-10
url: "https://github.com/inducer/pyopencl"
license: MIT

GitHub Events

Total
  • Create event: 20
  • Issues event: 19
  • Release event: 7
  • Watch event: 59
  • Delete event: 11
  • Issue comment event: 70
  • Push event: 78
  • Pull request review event: 12
  • Pull request review comment event: 17
  • Pull request event: 55
  • Fork event: 9
Last Year
  • Create event: 20
  • Issues event: 19
  • Release event: 7
  • Watch event: 59
  • Delete event: 11
  • Issue comment event: 70
  • Push event: 78
  • Pull request review event: 12
  • Pull request review comment event: 17
  • Pull request event: 55
  • Fork event: 9

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 2,908
  • Total Committers: 98
  • Avg Commits per committer: 29.673
  • Development Distribution Score (DDS): 0.288
Past Year
  • Commits: 77
  • Committers: 5
  • Avg Commits per committer: 15.4
  • Development Distribution Score (DDS): 0.532
Top Committers
Name Email Commits
Andreas Kloeckner i****m@t****t 2,071
Yichao Yu y****2@g****m 227
Alexandru Fikl a****l@g****m 97
Matt Wala w****1@i****u 72
Matthias Diener m****r@i****u 70
Isuru Fernando i****f@g****m 64
Marko Bencun m****n@g****m 52
Kaushik Kulkarni k****d@g****m 23
Hao Gao g****5@g****m 14
zachjweiner z****r@g****m 12
Martin Weigert m****t@m****e 10
Rebecca N. Palmer r****r@z****m 10
Shane-J-Latham s****m@a****u 9
Goncalo g****o@g****m 9
Sotiris Niarchos s****s@g****m 7
Alex Rothberg a****g@4****m 6
Shahzaib Gill s****l@g****m 6
Jonathan Mackenzie j****1@g****m 6
Christoph Gohlke c****e@u****u 6
Nicolas Pinto p****o@m****u 5
henry h****r@g****m 5
adityapb a****6@g****m 5
Alex Rothberg a****g@g****m 4
Holger Rapp H****p@g****t 4
Stefan van der Walt s****n@s****a 4
Syam Gadde g****e@b****u 4
gw0 [http://gw.tnode.com/] g****4@t****m 4
Jerome Kieffer k****r@l****r 3
Gregor Thalhammer g****r@g****m 3
Emanuel Ey e****y@g****m 3
and 68 more...

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 70
  • Total pull requests: 191
  • Average time to close issues: 5 months
  • Average time to close pull requests: 16 days
  • Total issue authors: 46
  • Total pull request authors: 13
  • Average comments per issue: 3.17
  • Average comments per pull request: 1.4
  • Merged pull requests: 151
  • Bot issues: 0
  • Bot pull requests: 11
Past Year
  • Issues: 17
  • Pull requests: 50
  • Average time to close issues: 8 days
  • Average time to close pull requests: 3 days
  • Issue authors: 12
  • Pull request authors: 6
  • Average comments per issue: 1.06
  • Average comments per pull request: 0.7
  • Merged pull requests: 30
  • Bot issues: 0
  • Bot pull requests: 6
Top Authors
Issue Authors
  • inducer (14)
  • anbe42 (4)
  • matthiasdiener (3)
  • jansol (2)
  • gybo03 (2)
  • noblockhit (2)
  • majosm (2)
  • kif (2)
  • doetools (2)
  • hvenev-insait (1)
  • kalocsaibotond (1)
  • geggo (1)
  • ignatenkobrain (1)
  • bjourne (1)
  • konserw (1)
Pull Request Authors
  • matthiasdiener (80)
  • inducer (71)
  • alexfikl (52)
  • dependabot[bot] (16)
  • isuruf (11)
  • gybo03 (4)
  • majosm (3)
  • FattiMei (2)
  • kaushikcfd (2)
  • pierrepaleo (1)
  • ptsk78 (1)
  • tacaswell (1)
  • wozeparrot (1)
Top Labels
Issue Labels
bug (40) enhancement (8)
Pull Request Labels
dependencies (16) github_actions (6)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 84,829 last-month
  • Total docker downloads: 118
  • Total dependent packages: 76
    (may contain duplicates)
  • Total dependent repositories: 331
    (may contain duplicates)
  • Total versions: 159
  • Total maintainers: 1
pypi.org: pyopencl

Python wrapper for OpenCL

  • Versions: 110
  • Dependent Packages: 58
  • Dependent Repositories: 326
  • Downloads: 84,829 Last month
  • Docker Downloads: 118
Rankings
Dependent packages count: 0.3%
Dependent repos count: 0.8%
Downloads: 1.1%
Average: 1.2%
Docker downloads count: 2.5%
Maintainers (1)
Last synced: 4 months ago
conda-forge.org: pyopencl

PyOpenCL lets you access GPUs, multi-core CPUs, and other massively parallel compute devices from Python, through the OpenCL parallel compute interface.

  • Versions: 49
  • Dependent Packages: 18
  • Dependent Repositories: 5
Rankings
Dependent packages count: 3.5%
Average: 10.8%
Forks count: 11.5%
Stargazers count: 13.1%
Dependent repos count: 14.8%
Last synced: 4 months ago

Dependencies

.github/workflows/autopush.yml actions
  • actions/checkout v3 composite
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/wheels.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/upload-artifact v2 composite
  • actions/upload-artifact v3 composite
  • pypa/cibuildwheel v2.11.2 composite
  • pypa/gh-action-pypi-publish v1.5.1 composite
setup.py pypi
  • Mako >=0.3.6
  • numpy *
  • platformdirs >=2.2.0
  • pytools >=2021.2.7