|
| 1 | +# September'20 release notes |
| 2 | + |
| 3 | +Release notes for commit range 5976ff0..1fc0e4f |
| 4 | + |
| 5 | +## New features |
| 6 | + |
| 7 | +## Improvements |
| 8 | +### SYCL Compiler |
| 9 | + - Assigned the source location of the kernel caller function to the artificial |
| 10 | + initialization code generated in the kernel body. It enables profiling tools |
| 11 | + to meaningfully attribute the initialization code [6744364] |
| 12 | + - Provided compile-time warning if size of kernel arguments exceeds 2KiB in |
| 13 | + GPU AOT mode [e00ab74] |
| 14 | + - Changed default SYCL standard to SYCL-2020 [67acf81] |
| 15 | + - Removed deprecated `[[cl::intel_reqd_sub_group_size(N)]]` attribute |
| 16 | + [9dda36f] |
| 17 | + - Enable USM address spaces by default for the FPGA hardware [7896819] |
| 18 | + - Assume SYCL device functions are convergent [047e2ec] |
| 19 | + - Added Dead Argument Elimination optimization [b0d98dc] [f53ede9] |
| 20 | + - Simplified the error checking of arrays by only visiting once [c709986] |
| 21 | + - Stop emitting kernel arguments metadata [f658918] |
| 22 | + - Enabled `-f[no-]sycl-early-optimizations` on Windows [e1e3658] |
| 23 | + - Mutable kernel functions are now explicitly forbidden in SYCL 2020 |
| 24 | + [1dbc358] |
| 25 | + - Moved hardware targeted extensions to `INTEL` namespace [3084982] |
| 26 | + - Added support for union types as kernel parameters [5adfd79] |
| 27 | + - Renamed `-fsycl-std-optimizations` to `-fsycl-early-optimizations` [077a507] |
| 28 | + - Added support for `-f[no-]sycl-id-queries-fit-in-int`. Enabling this will |
| 29 | + make compiler define `_SYCL_ID_QUERIES_FIT_IN_INT_` macro which will signal |
| 30 | + runtime to emit `__builtin_assume()` for execution range less than `INT_MAX` |
| 31 | + limitation [3e4da3c] |
| 32 | + - Enabled template trail for kernel diagnostics [c767edc] |
| 33 | + - Disabled createIndVarSimplifyPass for SPIR target in SYCL mode [76ffef7] |
| 34 | + - Run Dead Argument Elimination when LLVM optimizations are applied as well |
| 35 | + [cf10351] |
| 36 | + |
| 37 | +### SYCL Library |
| 38 | + - Eliminated circular dependency between `event` and `queue` classes [31843cc] |
| 39 | + - Added `ONEAPI::filter_selector` [174fd168f18] |
| 40 | + - Added CPU-agnostic code path to the host device runtime (validated on |
| 41 | + AArch64 systems) [2f632f8] |
| 42 | + - Added support for `bool2`, `bool3`, `bool4`, `bool8`, `bool16` [4dfd500] |
| 43 | + - Allowed for creating lots of host accessors [b206293] |
| 44 | + - Improved execution graph traversal [f2eaa23] |
| 45 | + - Improved `SYCL_PI_TRACE` [4d468f1] |
| 46 | + - Added implementation for `SYCL_INTEL_free_function_queries` [b6d7792] |
| 47 | + - Allowed for building program for multiple devices within single context |
| 48 | + (esp. for FPGA devices) [2f64227] |
| 49 | + - Cache devices and platforms [d392b51] |
| 50 | + - Reuse devices and platforms in Level Zero PI plugin [43ba606] |
| 51 | + - Added group algorithms for MUL/OR/XOR/AND operations [96da39e] |
| 52 | + - Moved general language extensions to `ONEAPI` namespace [a73369d] |
| 53 | + - Added CMake option `SYCL_DISABLE_STL_ASSERTIONS` to disable assertions |
| 54 | + [ec2ec99] |
| 55 | + - Implemented USM fill operation as defined in SYCL-2020 provisional [4993646] |
| 56 | + - Added runtime support for device code argument elimination [63ac3d3] |
| 57 | + - Imporved implementation of stream class when used in FPGA device code |
| 58 | + [13e8dae] |
| 59 | + - Imporved error reporting in Level Zero plugin [257658c] |
| 60 | + - Improved kernel demangling in graph printing [62192a6] |
| 61 | + - Improved error handling in `parallel_for` [7c73c11] |
| 62 | + - Fixed segfault in interop constructors of context, device, platform classes |
| 63 | + [c4c3494] |
| 64 | + |
| 65 | +### Documentation |
| 66 | + - Added documentation for [`SPV_INTEL_usm_storage_classes`](doc/extensions/SPIRV/SPV_INTEL_usm_storage_classes.asciidoc) |
| 67 | + and [SYCL_INTEL_usm_address_spaces](doc/extensions/USMAddressSpaces/usm_address_spaces.asciidoc) [781fbfc] |
| 68 | + - Fixed SPIR-V format name spelling [6e9bf3b] |
| 69 | + - Added extension [LocalMemory](doc/extensions/LocalMemory/SYCL_INTEL_local_memory.asciidoc) draft specification [4b5308a] |
| 70 | + - Added extension [free functions queries](doc/extensions/FreeFunctionQueries/SYCL_INTEL_free_function_queries.asciidoc) draft specification [8953bfd] |
| 71 | + - Removed documentation for implicit attribute `buffer_location` [71a56e7] |
| 72 | + |
| 73 | +## Bug fixes |
| 74 | +### SYCL Compiler |
| 75 | + - Fixed crash when array of pointers is a kernel argument [1fc0e4f] |
| 76 | + - Allowed for `-P -fsycl` to be used on Windows when offloading [a21d7ef] |
| 77 | + - Fixed looking for tools (e.g. aoc, ocloc, opencl-aot) with full name on |
| 78 | + Windows (i.e. with `.exe` suffix) [78a86da] |
| 79 | + - Eliminated compiler crash if invalid declaration is used as kernel argument |
| 80 | + [0c220ca] |
| 81 | + - Switch SPIRV debug info to legacy mode to support old OpenCL RTs [500a0b8] |
| 82 | + - Disabled vectorizers in SYCL device code when early optimizations are |
| 83 | + enabled [20921b1] |
| 84 | + - Fixed crash when kernel argument is a multi-dimensional array [36f6ab6] |
| 85 | + - Fixed `cl::sycl::INTELlsu::load()` method to return value instead of |
| 86 | + reference [82e5323] |
| 87 | + - Disabled "early" optimizations for Intel FPGA by default [f8902b8] |
| 88 | + - Fixed regression on unused non-USM pointers inside struct type kernel |
| 89 | + arguments [926eb32] |
| 90 | + - Fixed NULL-pointer dereference in some cases [bdc2b85] |
| 91 | + - Adjusted AUX targets with lang options [43862a3] |
| 92 | + |
| 93 | +### SYCL Library |
| 94 | + - Eliminated circular dependency between command group and stream buffers, |
| 95 | + which caused memory leaking [841e1e7] |
| 96 | + - Added early exit from enqueue process when trying to enqueue blocked |
| 97 | + commands. This eliminated hang in host-task when used along with multiple |
| 98 | + buffers [bc8f0a4] |
| 99 | + - Fixed overflow when casting glbal memory size in Level Zero plugin [82893b2] |
| 100 | + - Fixed waiting for events on Level Zero [e503662] |
| 101 | + - Added missing constructors and propety methods for context, program and |
| 102 | + sampler[30b8acc] |
| 103 | + - Fixed printing types of variables by GDB in some cases [93e1387] |
| 104 | + - Aligned `cl::sycl::handler::require` API with the SYCL specification |
| 105 | + [68c275c] |
| 106 | + - Fixed undefined behaviour in memory management intrinsics [4ff2eee] |
| 107 | + - Fixed race condition when using sampler in parallel [34f0c10] |
| 108 | + - Fixed race condition in `ProgramManager` class, which lead to hang [e6fd911] |
| 109 | + - Fixed thread-safety issue, which took place when using stream class [4688cb3] |
| 110 | + - Unified usm `queue`'s `memcpy`/`memset` methods behavior for corner cases |
| 111 | + [7b7bab6] |
| 112 | + - Enabled USM indirect access for interoperability kernels [ebf5c4e] |
| 113 | + |
| 114 | +## API/ABI breakages |
| 115 | + |
| 116 | +## Known issues |
| 117 | + - The format of the object files produced by the compiler can change between |
| 118 | + versions. The workaround is to rebuild the application. |
| 119 | + - The SYCL library doesn't guarantee stable API/ABI, so applications compiled |
| 120 | + with older version of the SYCL library may not work with new one. |
| 121 | + The workaround is to rebuild the application. |
| 122 | + [ABI policy guide](doc/ABIPolicyGuide.md) |
| 123 | + - Using `cl::sycl::program` API to refer to a kernel defined in another |
| 124 | + translation unit leads to undefined behavior |
| 125 | + - Linkage errors with the following message: |
| 126 | + `error LNK2005: "bool const std::_Is_integral<bool>" (??$_Is_integral@_N@std@@3_NB) already defined` |
| 127 | + can happen when a SYCL application is built using MS Visual Studio 2019 |
| 128 | + version below 16.3.0 and user specifies `-std=c++14` or `/std:c++14`. |
| 129 | + - Employing read sampler for image accessor may result in sporadic issues with |
| 130 | + Level Zero plugin/backend [2c50c03] |
| 131 | + - Printing internal defines isn't supported on Windows [50628db] |
| 132 | + - Group algorithms for MUL/AND/OR/XOR cannot be enabled for group scope due to |
| 133 | + SPIR-V limitations, and are not enabled for sub-group scope yet as the |
| 134 | + SPIR-V version isn't automatically raised from 1.1 to 1.3 [96da39e] |
| 135 | + - We cannot run Dead Argument Elimination for ESIMD since the pointers to SPIR |
| 136 | + kernel functions are saved in `!genx.kernels metadata` [cf10351] |
| 137 | + |
1 | 138 | # August'20 release notes
|
2 | 139 |
|
3 | 140 | Release notes for the commit range 75b3dc2..5976ff0
|
|
0 commit comments