Releases: IntelPython/dpctl
Releases · IntelPython/dpctl
0.7.0
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
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
Fixed
- Do not use POP_FRONT in FindDPCPP.cmake so that we can use a cmake version older that 3.15.
0.6.0
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
frominstall_requires
. It allows usedpCtl
innumba
extensions. - Incorrect import in example.
- Consistency of file headers.
- Klocwork issues.
0.6.0rc1
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
frominstall_requires
. It allows usedpCtl
innumba
extensions. - Incorrect import in example.
0.5.1rc2
Added
- Documentation improvements
- Cmake improvements and Coverage for C API
- Add support for Level Zero
- Code of conduct
Fixed
- Remove
cython
frominstall_requires
. It allows usedpCtl
innumba
extensions. - Incorrect import in example.
0.5.1rc1
Added
- Documentation improvements
Fixed
- Remove
cython
frominstall_requires
. It allows usedpCtl
innumba
extensions.
0.5.0
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 toDPCTL
, e.g.,DPPLQueueMgr_GetCurrentQueue
toDPCTLQueueMgr_GetCurrentQueue
. - Renamed the C-API directory is now called
dpctl-capi
instead ofbackends
. - Refactoring the
dpctl-capi
functions to prepare for changes to add Level Zero program creation. SyclProgram
andSyclKernel
classes were moved out ofdpctl
into thedpctl.program
sub-module.
Fixed
- Klockwork static code analysis warnings.
0.5.0rc4
- Updated documentation, CHANGELOG and README.
- Added one test.
3rd RC for 0.5.0
3rd integration release.
- Updated examples
- New way to check that objects support USM