Skip to content

Releases: IntelPython/dpctl

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.

0.5.0

17 Dec 12:25
Compare
Choose a tag to compare

Added

  • _Memory.get_pointer_type static method which returns kind of USM pointer.
  • Utility functions to transform string to device type and back.
  • New dpctl.dptensor.numpy_usm_shared module containing USM array. USM array
    extends NumPy ndarray.
  • A lot of new examples. Including examples of building Cython extensions with DPC++ compiler that interoperate with dpCtl.
  • Mechanism for registering a callback function to look and see if the object
    supports USM.

Changed

  • setup.py builds C++ backend for develop and install commands.
  • Building wheels.
  • Use DPC++ runtime from package dpcpp_cpp_rt.
  • All usage of DPPL in C-API functions was changed to DPCTL, e.g., DPPLQueueMgr_GetCurrentQueue to DPCTLQueueMgr_GetCurrentQueue.
  • Renamed the C-API directory is now called dpctl-capi instead of backends.
  • Refactoring the dpctl-capi functions to prepare for changes to add Level Zero program creation.
  • SyclProgram and SyclKernel classes were moved out of dpctl into the dpctl.program sub-module.

Fixed

  • Klockwork static code analysis warnings.

0.5.0rc4

16 Dec 21:49
Compare
Choose a tag to compare
0.5.0rc4 Pre-release
Pre-release
  • Updated documentation, CHANGELOG and README.
  • Added one test.

3rd RC for 0.5.0

15 Dec 15:26
Compare
Choose a tag to compare
3rd RC for 0.5.0 Pre-release
Pre-release

3rd integration release.

  • Updated examples
  • New way to check that objects support USM