All notable changes to this project will be documented in this file.
- setup.py builds C++ backend for develop and install commands.
- Device descriptors "max_compute_units", "max_work_item_dimensions", "max_work_item_sizes", "max_work_group_size", "max_num_sub_groups" and "aspects" for int64 atomics inside dpctl C API and inside the dpctl.SyclDevice class.
- MemoryUSM* classes moved to
dpctl.memory
module, added support for aligned allocation, added support forprefetch
andmem_advise
(sychronous) methods, implementedcopy_to_host
,copy_from_host
andcopy_from_device
methods, pickling support, and zero-copy interoperability with Python objects which implement__sycl_usm_array_inerface__
protocol. - Helper scripts to generate API documentation for both C API and Python.
- Compiler warnings when building libDPPLSyclInterface and the Cython extensions.
- The Legacy OpenCL interface.
- How the initial active queue is populated inside DPPLQueueMgr.
- dpctl.SyclQueueManager only reports the number of non-host platform.
- dpctl.SyclQueueManager now raises an exception if DPCTL C API returns a nullptr instead of a valid Sycl queue.
- Several crashes in cases where an OpenCL or Level Zero platform is not available.
- Fix failing platform test case. (#116)
- Properly skip tests when no OpenCL devices are available.
- Add skip tests to test_sycl_usm.py
- Fix Gtests configuration.
- A crash on Windows due a Level Zero driver problem. Each device was getting enumerated twice. To handle the issue, we added a temporary fix to use only first device for each device type and backend (#118).
- Changelog was added for dpctl.
- Windows build was fixed.
- Add a helper function to all Python SyclXXX classes to get the address of the base C API pointer as a long.
- Rename PyDPPL to dpCtl in comments (function name renaming to come later)
- Fix bugs highlighted by tools.
- Various code clean ups.
- Dump functions were enhanced to print back-end information.
- dpctl gained support for unint_8 and unsigned long data types.
- oneAPI Beta 10 tool chain support was added.
- dpctl is now aware of DPC++ Sycl PI back-ends. The functionality is now exposed via the context interface.
- C API's queue manager was refactored to require back-end.
- dpct's device_context now requires back-end, device-type, and device-id to be provided in a string format, e.g. opencl:gpu:0.
- Fixed some important bugs found by static analysis.
- Add dpctl.get_curent_device_type().
- Set _cpu_device and _gpu_device to None by default.
- Add get include and include headers.
- DPPL shared objects are installed into dpctl.
- Refactor unit tests.
- Adds C and Cython API for portions of Sycl queue, device, context interfaces.
- Implementing USM memory management.
- Refactored API to expose a minimal sycl::queue interface.
- Modify cpu_queues, gpu_queues and active_queues to functions.
- Change static vectors to static pointers to verctors. It disables call for destructors. Destructors are also call in undefined order.
- Rename package PyDPPL to dpCtl.
- Use dpcpp.exe on Windows instead of dpcpp-cl.exe deleted in oneAPI beta08.
- Correct use ERRORLEVEL in conda scripts for Windows.
- Fix using dppl.has_sycl_platforms() and dppl.has_gpu_queues() functions in skipIf