{"id":20433771,"url":"https://github.com/intelpython/dpctl","last_synced_at":"2025-05-16T04:03:42.181Z","repository":{"id":38440545,"uuid":"279842328","full_name":"IntelPython/dpctl","owner":"IntelPython","description":"Python SYCL bindings and SYCL-based Python Array API library","archived":false,"fork":false,"pushed_at":"2025-05-15T22:39:05.000Z","size":224952,"stargazers_count":111,"open_issues_count":53,"forks_count":30,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-05-16T04:03:31.739Z","etag":null,"topics":["dppy","gpu","gpu-computing","intel","intel-xpu","oneapi","python","sycl"],"latest_commit_sha":null,"homepage":"https://intelpython.github.io/dpctl/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IntelPython.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-15T10:50:36.000Z","updated_at":"2025-05-15T21:38:02.000Z","dependencies_parsed_at":"2023-09-26T00:18:47.019Z","dependency_job_id":"913cd1e5-99e6-496c-807b-25a16b1c49ac","html_url":"https://github.com/IntelPython/dpctl","commit_stats":{"total_commits":3488,"total_committers":40,"mean_commits":87.2,"dds":0.3351490825688074,"last_synced_commit":"4a94ef9c25562751a4c226b0e451ece605824b61"},"previous_names":[],"tags_count":123,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelPython%2Fdpctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelPython%2Fdpctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelPython%2Fdpctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelPython%2Fdpctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IntelPython","download_url":"https://codeload.github.com/IntelPython/dpctl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254464891,"owners_count":22075570,"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":["dppy","gpu","gpu-computing","intel","intel-xpu","oneapi","python","sycl"],"created_at":"2024-11-15T08:21:04.954Z","updated_at":"2025-05-16T04:03:42.172Z","avatar_url":"https://github.com/IntelPython.png","language":"C++","readme":"[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat\u0026labelColor=ef8336)](https://pycqa.github.io/isort/)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![Coverage Status](https://coveralls.io/repos/github/IntelPython/dpctl/badge.svg?branch=master)](https://coveralls.io/github/IntelPython/dpctl?branch=master)\n![Generate Documentation](https://github.com/IntelPython/dpctl/actions/workflows/generate-docs.yml/badge.svg?branch=master)\n[![Join the chat at https://matrix.to/#/#Data-Parallel-Python_community:gitter.im](https://badges.gitter.im/Join%20Chat.svg)](https://app.gitter.im/#/room/#Data-Parallel-Python_community:gitter.im)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/IntelPython/dpctl/badge)](https://securityscorecards.dev/viewer/?uri=github.com/IntelPython/dpctl)\n\n\u003cimg align=\"left\" src=\"https://spec.oneapi.io/oneapi-logo-white-scaled.jpg\" alt=\"oneAPI logo\" width=\"75\"/\u003e\n\n# Data Parallel Control\n\nData Parallel Control or `dpctl` is a Python library that allows users\nto *control* the execution placement of a [compute\nkernel](https://en.wikipedia.org/wiki/Compute_kernel) on an\n[XPU](https://www.intel.com/content/www/us/en/newsroom/news/xpu-vision-oneapi-server-gpu.html).\n\nThe compute kernel can be a code:\n* written by the user, e.g., using [`numba-dpex`](https://github.com/IntelPython/numba-dpex)\n* that is part of a library, such as oneMKL\n\nThe `dpctl` library is built upon the [SYCL\nstandard](https://www.khronos.org/sycl/). It implements Python\nbindings for a subset of the standard [runtime\nclasses](https://www.khronos.org/registry/SYCL/specs/sycl-2020/html/sycl-2020.html#_sycl_runtime_classes) that allow users to:\n* query platforms\n* discover and represent devices and sub-devices\n* construct contexts and queues\n\n`dpctl` features classes for [SYCL Unified Shared Memory\n(USM)](https://link.springer.com/chapter/10.1007/978-1-4842-5574-2_6)\nmanagement and implements a tensor library conforming to [Python Array\nAPI](https://data-apis.org/array-api/latest/) standard.\n\nThe library helps authors of Python native extensions written\nin C, Cython, or pybind11 to access `dpctl` objects representing SYCL\ndevices, queues, memory, and tensors.\n\n`Dpctl` is the core part of a larger family of [data-parallel Python\nlibraries and tools](https://www.intel.com/content/www/us/en/developer/tools/oneapi/distribution-for-python.html)\nto program on XPUs.\n\n\n\n# Installing\n\nYou can install the library using conda (from Intel's channel - see instructions below) or\n[pip](https://pypi.org/project/dpctl/) package managers. It is also available in the [Intel(R)\nDistribution for\nPython](https://www.intel.com/content/www/us/en/developer/tools/oneapi/distribution-for-python.html)\n(IDP).\n\n## Intel(R) oneAPI\n\nYou can find the most recent release of `dpctl` every quarter as part of the Intel(R) oneAPI releases.\n\nTo get the library from the latest oneAPI release, follow the\ninstructions from Intel(R) [oneAPI installation\nguide](https://www.intel.com/content/www/us/en/developer/articles/guide/installation-guide-for-oneapi-toolkits.html).\n\n\u003e **NOTE:** You need to install the Intel(R) oneAPI AI Analytics Tookit to get\n\u003eIDP and `dpctl`.\n\n\n## Conda\n\nTo install `dpctl` from the Intel(R) conda channel, use the following command:\n\n```bash\nconda install dpctl -c https://software.repos.intel.com/python/conda/ -c conda-forge --override-channels\n```\n\n## Pip\n\nThe `dpctl` can be installed using `pip` obtaining wheel packages either from PyPi or from Intel(R) channel.\nTo install `dpctl` wheel package from Intel(R) channel, run the following command:\n\n```bash\npython -m pip install --index-url https://software.repos.intel.com/python/pypi dpctl\n```\n\nInstalling the bleeding edge\n------------------------\n\nTo try out the latest features, install `dpctl` from our\ndevelopment channel on Anaconda cloud:\n\n```bash\nconda install dpctl -c dppy/label/dev -c conda-forge --override-channels\n```\n\n# Building\n\nRefer to our [Documentation](https://intelpython.github.io/dpctl) for more information on\nsetting up a development environment and building `dpctl` from the source.\n\n\n# Examples\n\nOur examples are located in the [examples/](examples) folder and are organized in sub-folders. Examples\nin the [Python/](examples/python) folder demonstrate how to inspect the heterogeneous platform,\nselect a device, create an execution queue, and how to control device memory allocation and\nexecution placement.\n\nExamples in [Cython/](examples/cython), [C/](examples/c), and [Pybind11](examples/pybind11) folders\ndemonstrate creation of SYCL-powered native Python extensions. Please refer to each folder's README\ndocument for directions on how to build and use each example.\n\n\n# Running Tests\n\nTests are located in folder [dpctl/tests](dpctl/tests).\n\nTo run the tests, use:\n```bash\npytest --pyargs dpctl\n```\n\nRunning full test suite requires working C/C++ compiler and installed Cython package.\nTo run the test suite without these, use:\n\n```bash\npytest --pyargs dpctl -k \"not test_cython_api and not test_c_headers\"\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintelpython%2Fdpctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintelpython%2Fdpctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintelpython%2Fdpctl/lists"}