|
| 1 | +# February'20 release notes |
| 2 | + |
| 3 | +Release notes for commit e8f1f29 |
| 4 | + |
| 5 | +## New features |
| 6 | + - Added `__builtin_intel_fpga_mem` for the FPGA SYCL device. The built-in is |
| 7 | + used to indicate the characteristics of the load-store unit (LSU) to be used |
| 8 | + when de-referencing the pointer [1e33c01] |
| 9 | + - Added support for the `intelfpga::no_global_work_offset` attribute |
| 10 | + [8bed533] [5a9058b] |
| 11 | + - Added basic xmethod implementation for `sycl::accessor::operator[]` to make |
| 12 | + it callable from gdb command line [d6be8ff] |
| 13 | + - Added device libraries for standard math like `std::cos` and `std::complex` |
| 14 | + type [7abd9d5] |
| 15 | + |
| 16 | +## Improvements |
| 17 | +### SYCL Frontend and driver changes |
| 18 | + - Added support for passing a non-type template parameter to the `loop_unroll` |
| 19 | + attribute [8d7a32a] |
| 20 | + - Relaxed the standard layout requirement for kernel arguments. Now by default |
| 21 | + they should be trivially copyable. The `-sycl-std=1.2.1` driver option turns |
| 22 | + standard layout requirement "on" [3adb4a5] |
| 23 | + - Added diagnostic on using `__float128` type in the device code [659efdf] |
| 24 | + - The `intelfpga::max_private_copies` has been renamed to |
| 25 | + `intelfpga::private_copies` [97a199f] |
| 26 | + - Prevented duplication of error diagnostics for `-fsycl` [3a0b62e] |
| 27 | + - Added diagnostic when attempting to use existing FPGA static library with |
| 28 | + additional device code [6431be6] |
| 29 | + - Added support for non-type template parameters for FPGA memory attributes |
| 30 | + [ffcad03] |
| 31 | + |
| 32 | +### SYCL headers and runtime |
| 33 | + - The `SYCL_DEVICE_WHITE_LIST` control was renamed to `SYCL_DEVICE_ALLOWLIST` |
| 34 | + [4df18fa] |
| 35 | + - Added a leaf limit to the execution graph to avoid leaf bloat in |
| 36 | + applications that have an overwhelming number of command groups that can |
| 37 | + be executed in parallel [7c293e2] |
| 38 | + - Added `get_range()` method to the image and local accessors to align with |
| 39 | + the SYCL specification [8ed5566] |
| 40 | + - Added a diagnostic on attempt to create a context from devices that are |
| 41 | + bound to different platforms [8f354f7] |
| 42 | + - An ordered queue can now be created by passing |
| 43 | + `sycl::property::queue::in_order` property to the `sycl::queue` constructor |
| 44 | + [c855520] |
| 45 | + - Added a diagnostic on attempt to create an accessor with an unsupported type |
| 46 | + [306624e] |
| 47 | + - Made host device return `nullptr` for bad USM allocation functions |
| 48 | + (huge, 0, etc) [2a000d9] |
| 49 | + - Added templated forms of USM allocation functions [42cf5bf] |
| 50 | + - Added support for APIs that query properties of USM pointers [926e38e] |
| 51 | + - Added cleanup of finished command nodes of the execution graph in the |
| 52 | + situations when the `wait` for a command is called implicitly or explicitly |
| 53 | + [438dc49] |
| 54 | + - Added 2 `sycl::queue` constructors accepting `sycl::context` and |
| 55 | + `sycl::device` arguments [c81c1c5] |
| 56 | + |
| 57 | +### Documentation |
| 58 | + - Added [documentation](doc/extensions/QueueShortcuts/QueueShortcuts.adoc) for |
| 59 | + simplification of the `sycl::queue` functions [478b7c0] |
| 60 | + - Added [documentation](doc/extensions/ReqdWorkGroupSize/SYCL_INTEL_reqd_work_group_size.asciidoc) |
| 61 | + for `reqd_work_group_size` extension [c2c416a] |
| 62 | + - The FAQ [document](doc/FAQ.md) was introduced [e42b40e] |
| 63 | + - Added Ordered Queue Property |
| 64 | + [proposal](doc/extensions/OrderedQueue/OrderedQueue_v2.adoc) [9fa878f] |
| 65 | + - Added device code split options documentation to the |
| 66 | + [user's manual](doc/UsersManual.md) [1355aa6] |
| 67 | + - Added documentation for [ExtendedAtomics extension](doc/extensions/ExtendedAtomics/SYCL_INTEL_extended_atomics.asciidoc) [4445462] |
| 68 | + - Removed old Ordered Queue proposal and make a note of deprecation [e8f1f29] |
| 69 | + |
| 70 | +## Bug fixes |
| 71 | +### SYCL Frontend and driver changes |
| 72 | + - Fixed variable sharing passed by value to `parallel_for_work_group` |
| 73 | + [d8ea63a] |
| 74 | + - Do not produce an error if some restricted feature (e.g. exceptions) is used |
| 75 | + by a function only referenced in unevaluated contexts [5eae571] |
| 76 | + - Fixed problem with not cleaning up temporary files when device code split |
| 77 | + feature is enabled [d86ee2f] |
| 78 | + - Fixed issue with emitting wrong 'typename' keywords in the integration |
| 79 | + header [c19372e] |
| 80 | + - The SYCL target image registration functions have been renamed to avoid |
| 81 | + conflicts with the OpenMP registration functions [82fd970] |
| 82 | + - Avoid using `std::memcpy` in the device code [f39f47e] |
| 83 | + - Fixed `-save-temps` option when used along with `-fsycl` [f7f4699] |
| 84 | + - Fixed link steps triggering for libraries specified through |
| 85 | + `-foffload-static-lib` when no source or object file is provided [360b25b] |
| 86 | + - Fixed output options behavior for `-fsycl-link` on Windows [67b24d46] |
| 87 | + |
| 88 | +### SYCL headers and runtime |
| 89 | + - Fixed final result saturation in the host implementation of `sycl::mad_sat` |
| 90 | + [54dddb4] |
| 91 | + - Fixed a crash when a non-nullptr_t `0x0` value is passed to the |
| 92 | + `sycl::buffer::set_final_data` method [6a0e279] |
| 93 | + - Fixed an issue with copying sub-buffer between different contexts [0867a38] |
| 94 | + - Resolved the problem when local accessor is a temporary object [1eed329] |
| 95 | + - Fixed an issue with the event not being retained when a memory object is |
| 96 | + constructed using interoperability constructors [0aabe7e] |
| 97 | + - Fixed compilation of kernels which use `sycl::stream` for FPGA device |
| 98 | + [c4dbaa2] |
| 99 | + - Fixed execution graph cleanup on memory object destruction [7a75b54] |
| 100 | + |
| 101 | +## Known issues |
| 102 | + - [new] Defining a `SUCCESS` or `FAILED` can break SYCL headers because such |
| 103 | + names are used internally |
| 104 | + - [new] The format of the object files produced by the compiler can change |
| 105 | + between versions. The workaround is to rebuild the application. |
| 106 | + - [new] The SYCL library doesn't guarantee stable API/ABI, so applications |
| 107 | + compiled with older version of the SYCL library may not work with new one. |
| 108 | + The workaround is to rebuild the application. |
| 109 | + - Using `cl::sycl::program` API to refer to a kernel defined in another |
| 110 | + translation unit leads to undefined behaviour |
| 111 | + - Linkage errors with the following message: |
| 112 | + `error LNK2005: "bool const std::_Is_integral<bool>" (??$_Is_integral@_N@std@@3_NB) already defined` |
| 113 | + can happen when a SYCL application is built using MS Visual Studio 2019 |
| 114 | + version below 16.3.0 |
| 115 | + The workaround is to enable `-std=c++17` for the failing MSVC version. |
| 116 | + |
| 117 | +## Prerequisites |
| 118 | +### Linux |
| 119 | +- Experimental Intel(R) CPU Runtime for OpenCL(TM) Applications with SYCL |
| 120 | + support version |
| 121 | + [2020.10.3.0.04](https://github.com/intel/llvm/releases/download/2020-02/oclcpuexp-2020.10.3.0.04_rel.tar.gz) |
| 122 | + is the recommended OpenCL CPU RT prerequisite for the SYCL compiler |
| 123 | +- The Intel(R) Graphics Compute Runtime for OpenCL(TM) version |
| 124 | + [20.06.15619](https://github.com/intel/compute-runtime/releases/tag/20.06.15619) |
| 125 | + is the recommended OpenCL GPU RT prerequisite for the SYCL compiler. |
| 126 | +<!--### Windows--> |
| 127 | +- Experimental Intel(R) CPU Runtime for OpenCL(TM) Applications with SYCL |
| 128 | + support version |
| 129 | + [2020.10.3.0.04](https://github.com/intel/llvm/releases/download/2020-02/win-oclcpuexp-2020.10.3.0.04_rel.zip) |
| 130 | + is the recommended OpenCL CPU RT prerequisite for the SYCL compiler |
| 131 | +- The Intel(R) Graphics Compute Runtime for OpenCL(TM) version |
| 132 | + [26.20.100.7870](https://downloadcenter.intel.com/download/29426/Intel-Graphics-Windows-10-DCH-Drivers) |
| 133 | + is the recommended OpenCL GPU RT prerequisite for the SYCL compiler. |
| 134 | + |
| 135 | +Please, see the runtime installation guide [here](https://github.com/intel/llvm/blob/sycl/sycl/doc/GetStartedGuide.md#install-low-level-runtime) |
| 136 | + |
| 137 | + |
1 | 138 | # December'19 release notes
|
2 | 139 |
|
3 | 140 | Release notes for commit 78d80a1cc628af76f09c53673ada906a3d2f0131
|
|
0 commit comments