diff --git a/sycl/ReleaseNotes.md b/sycl/ReleaseNotes.md index 076fa0a08e048..9d72356829eea 100644 --- a/sycl/ReleaseNotes.md +++ b/sycl/ReleaseNotes.md @@ -1,3 +1,140 @@ +# February'20 release notes + +Release notes for commit e8f1f29 + +## New features + - Added `__builtin_intel_fpga_mem` for the FPGA SYCL device. The built-in is + used to indicate the characteristics of the load-store unit (LSU) to be used + when de-referencing the pointer [1e33c01] + - Added support for the `intelfpga::no_global_work_offset` attribute + [8bed533] [5a9058b] + - Added basic xmethod implementation for `sycl::accessor::operator[]` to make + it callable from gdb command line [d6be8ff] + - Added device libraries for standard math like `std::cos` and `std::complex` + type [7abd9d5] + +## Improvements +### SYCL Frontend and driver changes + - Added support for passing a non-type template parameter to the `loop_unroll` + attribute [8d7a32a] + - Relaxed the standard layout requirement for kernel arguments. Now by default + they should be trivially copyable. The `-sycl-std=1.2.1` driver option turns + standard layout requirement "on" [3adb4a5] + - Added diagnostic on using `__float128` type in the device code [659efdf] + - The `intelfpga::max_private_copies` has been renamed to + `intelfpga::private_copies` [97a199f] + - Prevented duplication of error diagnostics for `-fsycl` [3a0b62e] + - Added diagnostic when attempting to use existing FPGA static library with + additional device code [6431be6] + - Added support for non-type template parameters for FPGA memory attributes + [ffcad03] + +### SYCL headers and runtime + - The `SYCL_DEVICE_WHITE_LIST` control was renamed to `SYCL_DEVICE_ALLOWLIST` + [4df18fa] + - Added a leaf limit to the execution graph to avoid leaf bloat in + applications that have an overwhelming number of command groups that can + be executed in parallel [7c293e2] + - Added `get_range()` method to the image and local accessors to align with + the SYCL specification [8ed5566] + - Added a diagnostic on attempt to create a context from devices that are + bound to different platforms [8f354f7] + - An ordered queue can now be created by passing + `sycl::property::queue::in_order` property to the `sycl::queue` constructor + [c855520] + - Added a diagnostic on attempt to create an accessor with an unsupported type + [306624e] + - Made host device return `nullptr` for bad USM allocation functions + (huge, 0, etc) [2a000d9] + - Added templated forms of USM allocation functions [42cf5bf] + - Added support for APIs that query properties of USM pointers [926e38e] + - Added cleanup of finished command nodes of the execution graph in the + situations when the `wait` for a command is called implicitly or explicitly + [438dc49] + - Added 2 `sycl::queue` constructors accepting `sycl::context` and + `sycl::device` arguments [c81c1c5] + +### Documentation + - Added [documentation](doc/extensions/QueueShortcuts/QueueShortcuts.adoc) for + simplification of the `sycl::queue` functions [478b7c0] + - Added [documentation](doc/extensions/ReqdWorkGroupSize/SYCL_INTEL_reqd_work_group_size.asciidoc) + for `reqd_work_group_size` extension [c2c416a] + - The FAQ [document](doc/FAQ.md) was introduced [e42b40e] + - Added Ordered Queue Property + [proposal](doc/extensions/OrderedQueue/OrderedQueue_v2.adoc) [9fa878f] + - Added device code split options documentation to the + [user's manual](doc/UsersManual.md) [1355aa6] + - Added documentation for [ExtendedAtomics extension](doc/extensions/ExtendedAtomics/SYCL_INTEL_extended_atomics.asciidoc) [4445462] + - Removed old Ordered Queue proposal and make a note of deprecation [e8f1f29] + +## Bug fixes +### SYCL Frontend and driver changes + - Fixed variable sharing passed by value to `parallel_for_work_group` + [d8ea63a] + - Do not produce an error if some restricted feature (e.g. exceptions) is used + by a function only referenced in unevaluated contexts [5eae571] + - Fixed problem with not cleaning up temporary files when device code split + feature is enabled [d86ee2f] + - Fixed issue with emitting wrong 'typename' keywords in the integration + header [c19372e] + - The SYCL target image registration functions have been renamed to avoid + conflicts with the OpenMP registration functions [82fd970] + - Avoid using `std::memcpy` in the device code [f39f47e] + - Fixed `-save-temps` option when used along with `-fsycl` [f7f4699] + - Fixed link steps triggering for libraries specified through + `-foffload-static-lib` when no source or object file is provided [360b25b] + - Fixed output options behavior for `-fsycl-link` on Windows [67b24d46] + +### SYCL headers and runtime + - Fixed final result saturation in the host implementation of `sycl::mad_sat` + [54dddb4] + - Fixed a crash when a non-nullptr_t `0x0` value is passed to the + `sycl::buffer::set_final_data` method [6a0e279] + - Fixed an issue with copying sub-buffer between different contexts [0867a38] + - Resolved the problem when local accessor is a temporary object [1eed329] + - Fixed an issue with the event not being retained when a memory object is + constructed using interoperability constructors [0aabe7e] + - Fixed compilation of kernels which use `sycl::stream` for FPGA device + [c4dbaa2] + - Fixed execution graph cleanup on memory object destruction [7a75b54] + +## Known issues + - [new] Defining a `SUCCESS` or `FAILED` can break SYCL headers because such + names are used internally + - [new] The format of the object files produced by the compiler can change + between versions. The workaround is to rebuild the application. + - [new] The SYCL library doesn't guarantee stable API/ABI, so applications + compiled with older version of the SYCL library may not work with new one. + The workaround is to rebuild the application. + - Using `cl::sycl::program` API to refer to a kernel defined in another + translation unit leads to undefined behaviour + - Linkage errors with the following message: + `error LNK2005: "bool const std::_Is_integral" (??$_Is_integral@_N@std@@3_NB) already defined` + can happen when a SYCL application is built using MS Visual Studio 2019 + version below 16.3.0 + The workaround is to enable `-std=c++17` for the failing MSVC version. + +## Prerequisites +### Linux +- Experimental Intel(R) CPU Runtime for OpenCL(TM) Applications with SYCL + support version + [2020.10.3.0.04](https://github.com/intel/llvm/releases/download/2020-02/oclcpuexp-2020.10.3.0.04_rel.tar.gz) + is the recommended OpenCL CPU RT prerequisite for the SYCL compiler +- The Intel(R) Graphics Compute Runtime for OpenCL(TM) version + [20.06.15619](https://github.com/intel/compute-runtime/releases/tag/20.06.15619) + is the recommended OpenCL GPU RT prerequisite for the SYCL compiler. + +- Experimental Intel(R) CPU Runtime for OpenCL(TM) Applications with SYCL + support version + [2020.10.3.0.04](https://github.com/intel/llvm/releases/download/2020-02/win-oclcpuexp-2020.10.3.0.04_rel.zip) + is the recommended OpenCL CPU RT prerequisite for the SYCL compiler +- The Intel(R) Graphics Compute Runtime for OpenCL(TM) version + [26.20.100.7870](https://downloadcenter.intel.com/download/29426/Intel-Graphics-Windows-10-DCH-Drivers) + is the recommended OpenCL GPU RT prerequisite for the SYCL compiler. + +Please, see the runtime installation guide [here](https://github.com/intel/llvm/blob/sycl/sycl/doc/GetStartedGuide.md#install-low-level-runtime) + + # December'19 release notes Release notes for commit 78d80a1cc628af76f09c53673ada906a3d2f0131