Skip to content

Commit cd98358

Browse files
authored
[SYCL] Release notes for September'20 DPCPP implementation update (#2437)
* [SYCL] September '20 release notes. Increment library ABI version. Signed-off-by: Sergey Kanaev <[email protected]>
1 parent a7ffe03 commit cd98358

File tree

2 files changed

+139
-2
lines changed

2 files changed

+139
-2
lines changed

sycl/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
1313
include(AddSYCLExecutable)
1414

1515
set(SYCL_MAJOR_VERSION 3)
16-
set(SYCL_MINOR_VERSION 0)
16+
set(SYCL_MINOR_VERSION 1)
1717
set(SYCL_PATCH_VERSION 0)
18-
set(SYCL_DEV_ABI_VERSION 2)
18+
set(SYCL_DEV_ABI_VERSION 0)
1919
if (SYCL_ADD_DEV_VERSION_POSTFIX)
2020
set(SYCL_VERSION_POSTFIX "-${SYCL_DEV_ABI_VERSION}")
2121
endif()

sycl/ReleaseNotes.md

+137
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,140 @@
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+
1138
# August'20 release notes
2139

3140
Release notes for the commit range 75b3dc2..5976ff0

0 commit comments

Comments
 (0)