{"id":13907195,"url":"https://github.com/inducer/pyopencl","last_synced_at":"2025-05-13T19:13:51.561Z","repository":{"id":37602553,"uuid":"1575307","full_name":"inducer/pyopencl","owner":"inducer","description":"OpenCL integration for Python, plus shiny features","archived":false,"fork":false,"pushed_at":"2025-05-07T14:41:36.000Z","size":5862,"stargazers_count":1096,"open_issues_count":77,"forks_count":246,"subscribers_count":49,"default_branch":"main","last_synced_at":"2025-05-07T15:45:53.568Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"http://mathema.tician.de/software/pyopencl","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inducer.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2011-04-06T02:51:33.000Z","updated_at":"2025-05-07T14:41:41.000Z","dependencies_parsed_at":"2023-02-16T17:00:31.812Z","dependency_job_id":"ba1433eb-868b-40b6-8671-26b54a11938c","html_url":"https://github.com/inducer/pyopencl","commit_stats":{"total_commits":2877,"total_committers":103,"mean_commits":"27.932038834951456","dds":0.2857142857142857,"last_synced_commit":"5085bb3a046177cd21c489636e3dbc3ac59b94ea"},"previous_names":[],"tags_count":105,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpyopencl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpyopencl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpyopencl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inducer%2Fpyopencl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inducer","download_url":"https://codeload.github.com/inducer/pyopencl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254010813,"owners_count":21998995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"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"],"created_at":"2024-08-06T23:01:49.827Z","updated_at":"2025-05-13T19:13:51.530Z","avatar_url":"https://github.com/inducer.png","language":"Python","readme":"PyOpenCL: Pythonic Access to OpenCL, with Arrays and Algorithms\n===============================================================\n\n.. |badge-gitlab-ci| image:: https://gitlab.tiker.net/inducer/pyopencl/badges/main/pipeline.svg\n    :alt: Gitlab Build Status\n    :target: https://gitlab.tiker.net/inducer/pyopencl/commits/main\n.. |badge-github-ci| image:: https://github.com/inducer/pyopencl/actions/workflows/ci.yml/badge.svg\n    :alt: Github Build Status\n    :target: https://github.com/inducer/pyopencl/actions/workflows/ci.yml\n.. |badge-pypi| image:: https://badge.fury.io/py/pyopencl.svg\n    :alt: Python Package Index Release Page\n    :target: https://pypi.org/project/pyopencl/\n.. |badge-zenodo| image:: https://zenodo.org/badge/1575307.svg\n    :alt: Zenodo DOI for latest release\n    :target: https://zenodo.org/badge/latestdoi/1575307\n\n|badge-gitlab-ci| |badge-github-ci| |badge-pypi| |badge-zenodo|\n\nPyOpenCL lets you access GPUs and other massively parallel compute\ndevices from Python. It tries to offer computing goodness in the\nspirit of its sister project `PyCUDA \u003chttps://mathema.tician.de/software/pycuda\u003e`__:\n\n* Object cleanup tied to lifetime of objects. This idiom, often\n  called `RAII \u003chttps://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization\u003e`__\n  in C++, makes it much easier to write correct, leak- and\n  crash-free code.\n\n* Completeness. PyOpenCL puts the full power of OpenCL's API at\n  your disposal, if you wish.  Every obscure ``get_info()`` query and\n  all CL calls are accessible.\n\n* Automatic Error Checking. All CL errors are automatically\n  translated into Python exceptions.\n\n* Speed. PyOpenCL's base layer is written in C++, so all the niceties\n  above are virtually free.\n\n* Helpful and complete `Documentation \u003chttps://documen.tician.de/pyopencl\u003e`__\n  as well as a `Wiki \u003chttps://wiki.tiker.net/PyOpenCL\u003e`__.\n\n* Liberal license. PyOpenCL is open-source under the\n  `MIT license \u003chttps://en.wikipedia.org/wiki/MIT_License\u003e`__\n  and free for commercial, academic, and private use.\n\n* Broad support. PyOpenCL was tested and works with Apple's, AMD's, and Nvidia's\n  CL implementations.\n\nSimple 4-step `install instructions \u003chttps://documen.tician.de/pyopencl/misc.html#installation\u003e`__\nusing Conda on Linux and macOS (that also install a working OpenCL implementation!)\ncan be found in the `documentation \u003chttps://documen.tician.de/pyopencl/\u003e`__.\n\nWhat you'll need if you do *not* want to use the convenient instructions above and\ninstead build from source:\n\n* g++/clang new enough to be compatible with nanobind (specifically, full support of C++17 is needed)\n* `numpy \u003chttps://numpy.org\u003e`__, and\n* an OpenCL implementation. (See this `howto \u003chttps://wiki.tiker.net/OpenCLHowTo\u003e`__\n  for how to get one.)\n\nLinks\n-----\n\n* `Documentation \u003chttps://documen.tician.de/pyopencl\u003e`__\n  (read how things work)\n* `Python package index \u003chttps://pypi.python.org/pypi/pyopencl\u003e`__\n  (download releases, including binary wheels for Linux, macOS, Windows)\n* `Conda Forge \u003chttps://anaconda.org/conda-forge/pyopencl\u003e`__\n  (download binary packages for Linux, macOS, Windows)\n* `Github \u003chttps://github.com/inducer/pyopencl\u003e`__\n  (get latest source code, file bugs)\n","funding_links":[],"categories":["Others","分布式机器学习"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finducer%2Fpyopencl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finducer%2Fpyopencl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finducer%2Fpyopencl/lists"}