Skip to content

Releases: IntelPython/dpctl

Changelog, sonversion on unix, docs updates

26 May 18:15
368911d
Compare
Choose a tag to compare

The 3rd RC tag of 0.8.0 has the following changes:

  • Soversion on linux was re-implemented using linker scripts to get around conda-build issues.
  • Docs have been updated for the latest API.
  • An unused function in dpctl.memory was removed.
  • Changelog was updated.

Hotfix to remove sonames from libDPCTLSyclInterface

25 May 19:17
414f0a6
Compare
Choose a tag to compare

Soname symlinks for libDPCTLSyclInterface are not getting properly copied in the conda package. We are removing soversions for the time being for 0.8.0.

First Release candidate for dpctl 0.8.0

25 May 04:44
27634ef
Compare
Choose a tag to compare
Pre-release
  1. First version of usm_ndarray and its companion libtensor C++ header-only library.
  2. Bug fixes.
  3. Major software quality improvements: flake8, isort, coveralls.
  4. Improvements to API docs.

0.7.0

04 May 15:02
f5cd7c7
Compare
Choose a tag to compare

Added

Complete support for sycl::ONEAPI::filter_selector in dpctl.
C API for sycl::queue (#323), syc::context (#331), and sycl::platform (#298) creation using opaque pointers.
A DPCTLDeviceMgr module in C API that caches a default context for root devices (#277).
DPCTLSyclBackendType and DPCTLSyclDeviceType have a new member ALL (#287).
C API now provides helper functions to convert between dpctl and SYCL enum values (#296).
Macros to help create opaque vector classes for opaque SYCL types (#297).
SyclDevice (#321), SyclContext (#334), SyclPlatform (#336, #298), SyclQueue (#323) have constructors that recognize filter selectors and closely follow DPC++ interface.
Add API to get a PyCapsule from SyclQueue, SyclContext instances (#350).
Added get_queue_ref_from_ptr_and_syclobj(ptr, syclobj) that creates DPCTLSyclQueueRef from a USM pointer and Python object syclobj from __sycl_usm_array_interface__ (#380).
Support for SYCL sub-devices, including sub-device creation, queue, and context creation using sub-devices (#343).
SyclDevice.parent_device property to indicate if an instance has a parent device (#366).
Several new getter functions for device info descriptors to device interface (#300, #335, #318, #315, #308).
Support for SYCL device aspects (#307).
Properties for every sycl::device info and aspect that we support in SyclDevice (#324).
Support handling async errors inside SylQueue instances (#346).
get_backend, get_platform, get_device_type to Python SyclDevice class (#300)
A _sycl_device_factory.pyx module providing SyclDevice constructors using standard sycl::device_selector classes (previously in _sycl_device.pyx) and a new get_devices (#277) function to enumerate all devices.
_sycl_device_factory.pyx implements get_num_devices and has_*_device(s) functions (#320).
Enable Python coverage in CI for Linux (#369).
Use public keyword in _sycl_*.pxd to generate header files allowing non-Cython centric native extensions to work with dpctl's Python objects (#218).
Documentation improvements (#341).

Changed

Rename dpCtl to dpctl in all comments, license headers, and docs. (#342)
dpctl.memory.MemoryUSM* constructors now use dpctl.SyclQueue() instead of dpctl.get_current_queue() when the queue keyword argument is None (default) (#382).
dpctl.set_default_queue has been renamed to dpctl.set_global_queue() (#323).
Changed dpctl.dump to dpctl.lsplatform (#336).
Various SyclDevice methods related to querying sycl::info::device were converted to properties (#324).
Various C API functions names were changed.

Fixed

Possible crashes when a SYCL platform is not available (#349).
Fix tests which fail if GPU is not available (only CPU is available) (#359).
Fix breaking C API tests (#358).
Bandit warning about "subprocess.check_call(shell=True)" for Windows (#306).

Removed

Removed get_num_platforms, has_cpu_queues, has_gpu_queues, get_num_queues, has_sycl_platforms (#320).

0.7.0rc1

19 Apr 22:43
f5cd7c7
Compare
Choose a tag to compare
0.7.0rc1 Pre-release
Pre-release

Added

Complete support for sycl::ONEAPI::filter_selector in dpctl.
C API for sycl::queue (#323), syc::context (#331), and sycl::platform (#298) creation using opaque pointers.
A DPCTLDeviceMgr module in C API that caches a default context for root devices (#277).
DPCTLSyclBackendType and DPCTLSyclDeviceType have a new member ALL (#287).
C API now provides helper functions to convert between dpctl and SYCL enum values (#296).
Macros to help create opaque vector classes for opaque SYCL types (#297).
SyclDevice (#321), SyclContext (#334), SyclPlatform (#336, #298), SyclQueue (#323) have constructors that recognize filter selectors and closely follow DPC++ interface.
Add API to get a PyCapsule from SyclQueue, SyclContext instances (#350).
Added get_queue_ref_from_ptr_and_syclobj(ptr, syclobj) that creates DPCTLSyclQueueRef from a USM pointer and Python object syclobj from __sycl_usm_array_interface__ (#380).
Support for SYCL sub-devices, including sub-device creation, queue, and context creation using sub-devices (#343).
SyclDevice.parent_device property to indicate if an instance has a parent device (#366).
Several new getter functions for device info descriptors to device interface (#300, #335, #318, #315, #308).
Support for SYCL device aspects (#307).
Properties for every sycl::device info and aspect that we support in SyclDevice (#324).
Support handling async errors inside SylQueue instances (#346).
get_backend, get_platform, get_device_type to Python SyclDevice class (#300)
A _sycl_device_factory.pyx module providing SyclDevice constructors using standard sycl::device_selector classes (previously in _sycl_device.pyx) and a new get_devices (#277) function to enumerate all devices.
_sycl_device_factory.pyx implements get_num_devices and has_*_device(s) functions (#320).
Enable Python coverage in CI for Linux (#369).
Use public keyword in _sycl_*.pxd to generate header files allowing non-Cython centric native extensions to work with dpctl's Python objects (#218).
Documentation improvements (#341).

Changed

Rename dpCtl to dpctl in all comments, license headers, and docs. (#342)
dpctl.memory.MemoryUSM* constructors now use dpctl.SyclQueue() instead of dpctl.get_current_queue() when the queue keyword argument is None (default) (#382).
dpctl.set_default_queue has been renamed to dpctl.set_global_queue() (#323).
Changed dpctl.dump to dpctl.lsplatform (#336).
Various SyclDevice methods related to querying sycl::info::device were converted to properties (#324).
Various C API functions names were changed.

Fixed

Possible crashes when a SYCL platform is not available (#349).
Fix tests which fail if GPU is not available (only CPU is available) (#359).
Fix breaking C API tests (#358).
Bandit warning about "subprocess.check_call(shell=True)" for Windows (#306).

Removed

Removed get_num_platforms, has_cpu_queues, has_gpu_queues, get_num_queues, has_sycl_platforms (#320).

0.6.1

01 Mar 08:58
58cb0a3
Compare
Choose a tag to compare

Fixed

  • Do not use POP_FRONT in FindDPCPP.cmake so that we can use a cmake version older that 3.15.

0.6.0

01 Mar 08:58
25f66ce
Compare
Choose a tag to compare

Added

  • Documentation improvements.
  • Cmake improvements and Coverage for C API, Cython and Python.
  • Added support for Level Zero devices and queues.
  • Added support for SYCL standard device_selector classes.
  • SyclDevice instances can now be constructed using filter selector strings.
  • Code of conduct.
  • Building wheels.
  • Queue manager improvements.
  • Adding __array_function__ so that Numpy calls with dparrays work.
  • Using clang-format for C/C++ code formatting.
  • Using pytest for running tests.
  • Add python and cython file coverage.
  • Using Bandit for finding common security issues in Python code.
  • Add instructions about file headers formats.

Changed

  • Changed compiler name usage from clang++ to dpcpp.
  • Reformat backend.pxd to be closer to black style.

Fixed

  • Remove cython from install_requires. It allows use dpCtl in numba extensions.
  • Incorrect import in example.
  • Consistency of file headers.
  • Klocwork issues.

0.6.0rc1

24 Feb 19:29
7952538
Compare
Choose a tag to compare
0.6.0rc1 Pre-release
Pre-release

Added

  • Documentation improvements
  • Cmake improvements and Coverage for C API, Cython and Python
  • Added support for Level Zero devices and queues
  • Added support for SYCL standard device_selector classes
  • SyclDevice instances can now be constructed using filter selector strings
  • Code of conduct

Fixed

  • Remove cython from install_requires. It allows use dpCtl in numba extensions.
  • Incorrect import in example.

0.5.1rc2

29 Jan 12:50
1a20082
Compare
Choose a tag to compare
0.5.1rc2 Pre-release
Pre-release

Added

  • Documentation improvements
  • Cmake improvements and Coverage for C API
  • Add support for Level Zero
  • Code of conduct

Fixed

  • Remove cython from install_requires. It allows use dpCtl in numba extensions.
  • Incorrect import in example.

0.5.1rc1

22 Dec 11:49
e6765c9
Compare
Choose a tag to compare
0.5.1rc1 Pre-release
Pre-release

Added

  • Documentation improvements

Fixed

  • Remove cython from install_requires. It allows use dpCtl in numba extensions.