Releases: IntelPython/dpctl
Releases · IntelPython/dpctl
0.11.0
Added
- Use Python 3.9 in public CI (#599)
- Add a new C API utility function (
DPCTLDeviceMgr_GetDeviceInfoStr
) to return the device info as a C string object (#620) - New Github workflow to build dpclt with nightly Intel llvm/sycl + drivers (#621)
- Always raise SubDeviceCreationError even when sub-device counts are zero (#622)
- Updated OpenCL interoprability code to fix build with Intel llvm/sycl bundle (#625)
- Enabled use of default platform context extension in SYCL compilers that implement this extension (#627)
- Implemented
dpctl.utils.get_execution_queue(queue_seq)
utility to help implementing "compute-follows data" convention for offload target (#632) - Improved code coverage (#619) (#542) (#631)
Changed
- Replaced
host_device
device type withhost
in tests (#616) - Rework the logic in
dpctl.memory
'scopy_from_device
method to work correctly withhost
device (#618) - Use
dpctl.device_type.host
instead ofdpctl.device_type.host_device
(#626) - Reinstate deprecated
sycl::program
and that was conditionally removed from open source DPC++ toolchain (#633) - Use
LoadLibraryExA
instead ofLoadLibraryA
to mitigate a possible DLL injection issue when we load the Level zero DLL on windows (#636) - Github coverage workflow is changed to use oneAPI 2021.3 instead of latest to work around broken profiling instrumentation in DPC++ 2021.4 (#614)
- Update build dependencies for NumPy (#641)
- Use "readelf" on SYCL's
pi_level_zero
library to find out and use the exact name ofze_loader.so
in SyclInterface library (#617)
Removed
- Removed use of DPC++ features deprecated in 2021.4 and open source Intel llvm/sycl compiler (#603)
Fixed
- Suppress errant CMake log (#610)
- Fixes to compile dpctl using Intel llvm/sycl compiler (#603)
- Fix for the hang is to avoid passing
nullptr
argument tosycl::queue::prefetch
(#612) - Fixed the logic to return device count (#623)
- Enabled building of C extensions with dpctl by including header defining
bool
type for C compilers (#604)
0.11.0rc2
What's Changed
- Added new example of Python object exposing sycl_usm_array_interface by @oleksandr-pavlyk in #596
- Cleanup/c extensions with dpctl by @oleksandr-pavlyk in #604
- Silly typo behind slow copy by @oleksandr-pavlyk in #606
- Use Python 3.9 [in public CI] by @PokhodenkoSA in #599
- Suppress errant CMake log. by @diptorupd in #610
- Avoid passing nullptr to sycl::queue::prefetch to avoid buggy hang by @oleksandr-pavlyk in #612
- Moved repeated status message outside of if/else statement by @oleksandr-pavlyk in #613
- Coverage workflow is to use oneAPI 2021.3 by @oleksandr-pavlyk in #614
- replace host_device device type with host in test by @oleksandr-pavlyk in #616
- Use readelf on pi_level_zero library to find exact name of ze_loader by @oleksandr-pavlyk in #617
- Remove use of DPC++ features deprecated in 2021.4 and open source intel/llvm compiler by @oleksandr-pavlyk in #603
- Rework the logic in memory's copy_from_device by @oleksandr-pavlyk in #618
- Added tests to cover red lines in coverage report by @oleksandr-pavlyk in #619
- Add a new utility function to return the device info as a C string object. by @diptorupd in #620
- Always raise SubDeviceCreationError even when counts are zero by @oleksandr-pavlyk in #622
- Add a workflow to install nightly intel/llvm + drivers by @oleksandr-pavlyk in #621
- DPCTLSyclInterface should avoid functions that print to std::cout by @oleksandr-pavlyk in #542
- Correct the logic to return device count. by @diptorupd in #623
- dpctl.device_type.host_device -> dpctl.device_type.host by @oleksandr-pavlyk in #626
- Update opencl interoprability code to fix build with open source llvm/sycl bundle by @oleksandr-pavlyk in #625
- Enable use of default platform context extension by @oleksandr-pavlyk in #627
- [WIP] Rebuild by @Vyacheslav-Smirnov in #605
- test_get_dpcppversion relaxed by @oleksandr-pavlyk in #631
- reinstate deprecated sycl::program and that was conditionally removed from open source DPC++ toolchain by @oleksandr-pavlyk in #633
- Closes #629 by @oleksandr-pavlyk in #632
- Add triggers to CI by @1e-to in #634
- Undid restrictions for on: push triggers by @oleksandr-pavlyk in #637
- Change the way we load level zero DLL on windows. by @diptorupd in #636
- Update build deps for numpy by @xaleryb in #641
- master-> gold/2021 by @xaleryb in #642
Full Changelog: 0.10.0...0.11.0rc2
0.10.0
Added
- Added methods
__bool__
,__float__
,__int__
,__index__
,
and__complex__
to usm_ndarray (#578) - Added data-API required special methods to usm_ndarray class,
as well as to_numpy/from_numpy, astype, reshape functions (#586) - Added methods to query dpctl.SyclDevice for size of global/local memory (#589)
- Added tests for constructors with invalid capsules (#577)
- Improved test coverage of
dpctl.SyclQueue
implementation (#574) - Added a test to exercise API exported function (get_event_ref). (#570)
- Expanded tests in test_sycl_context to improve coverage (#571)
- Tweaks to test_sycl_event to improve coverage (#567)
- Improved coverage of
dpctl.__init__
file and other service functions (#563) - Added test for repr and test for default argument to constructor (#565)
- Added some tests to involve capsule (#564)
- Added workflow for Public CI on Windows (#534)
- DPCTLQueue_Memcpy, _Prefetch, _Memadvise become asynchronous (#557)
- Added device aspect selector,
dpctl.select_device_with_aspects
(#558) - Added test based on example from #583
Changed
- Parametrized tests for executing OpenCL kernels compiled from source in types of arguments (#581)
- Temporary disabled self-hosted CI jobs runner (#559)
- Changed static method
SyclQueue._create_from_context_and_device
(#579) - Transitioned all Python API to use pytest over unittest, improved coverage in dpctl/memory (#575)
- Changed
dpctl.SyclEvent.profiling_info_submit
from method to a property (#573) - Simplified arg parsing in SyclDevice constructor (#572)
- Used tag with alignment attribute set in README (#562)
- Moved sycl timer into dpctl.SyclTimer (#555)
- Used clang-format off, clang-format on to avoid include reordering in pybind11 example (#588)
Fixed
- Implemented a workaround for running conda-build using Klocwork (#566)
- Separated pipelines for Linux and Windows (#582)
- Fixed inconsistency in
__sycl_usm_array_interface__
ofusm_ndarray
instance (#584) - Fixed memory leak: Capsule deleters now free resources for renamed capsules too (#568)
- Fixed version test to allow for semantic versioning (#569)
- Improved coverage of _types.pxi (#556)
- Fixed
UnboundLocalError
when default queue could not be created (#554)
0.9.0
Added
- Improvements to logic for working with custom DPC++ toolchain (#481)
- Add SyclContext unit test cases (#488)
- Consolidate configurations of tools that support PEP 518 into pyproject.toml (#486)
- Added C-API hash function, used them in Python interface (#491)
- Add missing extra checks to ensure unwrapped pointer is not Null
- Add error messages to L0 program creation routine
- Improve test coverage for dpctl_sycl_queue_interface (#492)
- Use pytest.warns in test_lsplatform3 (#495)
- Added test class to test DRef=nullptr case (#496)
- Extend parameterized test in test_sycl_queue_interface (#497)
- Use Memcpy, memadvise in tests
- Expanded types tests by TestQueueSubmitRange
- Added a test that retrieved DPCPP compiled kernel and submits them via DPCTLQueue_SubmitRange (#499)
- Add DPCTLEvent_Copy (#504), DPCTLEvent_GetBackend (#507), DPCTLEvent_GetCommandExecutionStatus (#516),
DPCTLEvent_WaitAndThrow (#513), DPCTLEvent_GetWaitList (#510) functions - Propagate compile flags (#512)
- Add conda package CI pipeline on GitHub Actions (#515)
- Run tests on GPU (#518)
- Add 3 wrapper func for event::get_profiling_info (#519)
- Changes to build_backend.py to enable sycl-compiler-prefix on Windows
- dtype keyword of usm_ndarray now supports np.double and other types (#526)
- Implemented DPCTLQueue_SubmitBarrier, DPCTLQueue_SubmitBarrierForEvents,
SyclQueue.submit_barrier (#524) - Added C-API DPCTLQueue_HasEnableProfiling
- Added Python API SyclQueue.has_enable_profiling
- Use public for data owning class definitions
- Queue has enable profiling (#531)
- Use public for data owning class definitions (#533)
- Added logic to verify that all bits of property integer were recognized and used (#494)
- Added support for some properties/methods of underluing device
- A test for properties, method of q mirroring that of device
- Conda build scripts should build wheels in the same setup invocation as install (#538)
- Added install_requires keyword to setup call
- Added requirements.txt files in dpctl/ and in dpctl/docs (#540)
- Improved C-API for dpctl Cython classes, added example of using them in Pybind11 extension. (#550)
- dpctl.SyclEvent acquired ability to get command status and get profiling information. (#553)
Changed
- Moved DPCLSyclInterface library from MANIFEST.in (#482)
- Refactored tests
- Use dpcpp compiler package for Linux (#514)
- Update conda-package.yml
- Static methods _init_helper made into functions and removed from PXD files (#532)
Removed
- Remove imports from future (#485)
Fixed
- Fix sub devices (#479)
- Fix addressof_ref function in
SyclContext
(#488) - Follow
DPCTLDevice_CreateFromSelector
which passes the check (#487) - Fix a typo in the pytest configuration (#490)
- Fixed dbg_build.sh script for Linux to use L0
- Reuse IntelSycl_LIBRARY_DIR variable in cmake
- CXX, dpcpp used on Windows too
- Update conda-recipe/bld.bat
- Change to SyclQueue.repr to reflect properties (#531)
- Static methods
_init_helper
made into functions and removed from PXD files (#532) - Fixed typo in pip installation instruction (#536)
- Fixed dpctl_config.h, added dpctl_service.h, .cpp (#539)
- Fixed
__sycl_usm_array_interface__
output for 0d arrays (#547)
0.9.0dev1
0.9.0dev0
0.8.0
Added
Implemented support for constructing MemoryUSM* from object with sycl_usm_array_interface when array-info is not contiguous (#400)
Print the backend as part of SyclDevice.print_device_info function (#409)
Added dpctl/tensor/_usmarray submodule (#427)
Added arg checking to functions in dpctl_sycl_usm_interface.cpp (#430)
A static method of _Memory to create from external allocation (#430)
Added usm_ndarray accessors (#435)
Added Device class representing Data-API notion of device (#440)
Added free Python function as_usm_memory(obj) (#443) and associated unit tests (#449)
Dependency for numpy 1.17 (#445)
Add a flag to make doxygen HTML generation optional (#450)
Added a feature to get the filter string for a device from Python using the new dpctl.SyclDevice.get_filter_string method. Also added the corresponding DPCTLDeviceMgr_GetPositionInDevices(DRef, device_mask) C API function (#453)
New options to setup.py to specify which dpcpp compiler to use, if L0 program creation is to be supported, and to generate code coverage (#426)
Github action to check Python code quality (#422)
Github action to auto-publish Sphinx docs for master (#446)
Github action to generate coverage report and publish to coveralls.io (#459)
Changed
Rename dpctl.dptensor to dpctl.tensor (#407)
Changed repr for Memory objects (#442)
Used dpctl.SyclQueue instead of manager and get current queue in tests for SyclProgram (#448)
Fixed
Issue #189 dpctl.memory.MemoryUSMShared(np.int64(16)) should work (#392)
Use size_t instead of Py_ssize_t to fit device USM pointer (#405)
Various code quality issues identified by flake8 (#417, #419, #420, #422)
Fixed issues in slicing and array construction (#441)
Fixed an issue (#447) where dpctl.get_devices does not return devices in the same order as sycl::device::get_devices (#451)
L0 program creation support on Windows (#319)
Removed
Removing public keyword to get_current_queue Cython declaration (#437)
Changelog, sonversion on unix, docs updates
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
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
- First version of usm_ndarray and its companion libtensor C++ header-only library.
- Bug fixes.
- Major software quality improvements: flake8, isort, coveralls.
- Improvements to API docs.