Skip to content

Commit 0ffe44f

Browse files
authored
[SYCL] December '20 release notes (#2945)
* [SYCL] December'20 Release Notes Signed-off-by: Sergey Kanaev <[email protected]>
1 parent ca9d816 commit 0ffe44f

File tree

1 file changed

+132
-0
lines changed

1 file changed

+132
-0
lines changed

sycl/ReleaseNotes.md

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,135 @@
1+
# December'20 release notes
2+
3+
Release notes for commit range 5d7e0925..5eebd1e4bfce
4+
5+
## New features
6+
### SYCL Compiler
7+
- Allow for multiple build options for opencl-aot [5e5703f58449]
8+
### SYCL Library
9+
- Implement [`SYCL_INTEL_mem_channel_property`](doc/extensions/MemChannel/SYCL_INTEL_mem_channel_property.asciidoc)
10+
extension [2f1f3167b7c6]
11+
- Add `marray` class as defined by SYCL 2020 provisional [5eebd1e4bfce]
12+
- Implement dynamic batch size adjusting when using Level-Zero plugin
13+
[c70b0477aa8a, cf0d0538d162]
14+
- Add online compilation API interface [70ac47d23264]
15+
### Documentation
16+
- Proposal for [new device descriptors extension](doc/extensions/IntelGPU/IntelGPUDeviceInfo.md)
17+
was added [1ad813ba133e]
18+
- Added [online compilation extension](doc/extensions/OnlineCompilation/OnlineCompilation.asciidoc)
19+
specification [e05a19c8d303]
20+
21+
## Improvements
22+
### SYCL Compiler
23+
- (ESIMD only) Remove wrapping of buffer objects into images which caused
24+
problems like incorrect work of scatter/gather of 1- and 2-byte values
25+
[d2d20d6c4556]
26+
- Rename FPGA kernel attribute `[[intel::stall_enable]]` to
27+
`[[intel::use_stall_enable_clusters]]` [dab9debebe70]
28+
- Add template parameter support for `[[intel::max_global_work_dim]]` and
29+
`[[intel::no_global_work_offset]]` attributes [bd8fcc7dee34, a5fde5a924ac]
30+
- Remove partial-link path when dealing with fat static archives [f1aa7f4d8b79]
31+
- Remove unused device library function definitions from linked program
32+
[e9423ffdec92]
33+
- Don't dump IR and dot files by default in the LowerWGScope [9d0e3525ba04]
34+
- Support LLVM floating-point intrinsics in llvm-spirv and frontend
35+
[a5065ab85101]
36+
- Add template parameter support for `[[intel::no_global_work_offset()]]`
37+
attribute [a5fde5a924ac]
38+
- Improve group size selection by adjusting `parallel_for` execution range
39+
global size [74a68b7da4e7]
40+
- Add clang support for FPGA loop fusion function attributes [23926b0645ad]
41+
- Reword some compiler diagnostics [50b81c3cd6e9]
42+
### SYCL Library
43+
- Eliminate performance overhead on devices without host unified memory support
44+
[a4f092417ef9]
45+
- Optimize `discard_write` access mode for host accessor [6733c8b0efde]
46+
- Add support for composite specialization constants
47+
[c62860fd6b86, d4251e3c55e7, 3ec4594a5a06]
48+
- Enhance PI tracing with printing output arguments [19f5ad67f30a]
49+
- Introduce `pi_map_flags` in lieu of `cl_map_flags` [f0e7606a6198]
50+
- Implement robust error handling in LevelZero plugin [65c719ddfc23]
51+
- Add new device descriptors as SYCL extensions [51ac08c35294]
52+
- Remove redundant dependencies for in-order queues [632722165db2]
53+
### Documentation
54+
- Add information on AOT to GetStartedGuide [71942fbb3655]
55+
- Add notice on alignemnt checks in ABI policy [4326b9563575]
56+
- Updated design of specialization contants on using of POD types
57+
[81963d1ec055]
58+
- Document linked allocation commands [929a764a5ec4]
59+
- Improve ESIMD documentation rendering [079597d28f1f]
60+
- Improved device library documentation [f24e2a9ce464]
61+
62+
## Bug fixes
63+
### SYCL Compiler
64+
- Do not customize optimizations for non-SPIR targets [cb069fed6712]
65+
- Fix address space assertion with templates [8905a8cec9a9]
66+
- Link libm-fp64 device library by default [ac93d6fe3d9d]
67+
- Add support for specialization constants' typenames declared in namespaces
68+
[f64f835b4313]
69+
- Fix loosing OpenMP device binary when program uses both OpenMP and SYCL
70+
offloading models [eb89f5eaab37]
71+
### SYCL Library
72+
- Add missing interoperability API to construct SYCL classes with Level-Zero
73+
handles [10b4e8a6fc19]
74+
- Fix several builtins implementation for host device
75+
[8b82c671ab12, 786708914fd4]
76+
- Fix possible hang upon application finish if streams were used [bd5893ae01b1]
77+
- Fix failure when employing interoperability host task on queue constructed
78+
with reused context [9cff6c9b6127]
79+
- Fix "instantiation after specialization" warnings
80+
[56b9a1dfb92f, eadce94f8ad0]
81+
- Support copying of stream by value within a kernel without loss of output
82+
information [8d37cbacc9b8]
83+
- Fix handling of big and/or non-uniform work-groups in reduction kernels. The
84+
solution may change when reduction kernels precompilation/query approach is
85+
implemented [78e2599bc499]
86+
- Fix memory leak in event pool in Level Zero plugin [68fc7808a50e]
87+
- Fixed issue with finalizing context of Level Zero plugin [6cfa921856f5]
88+
- Fix backend selection for `SYCL_DEVICE_FILTER=*` case [c54da157f5d5]
89+
- Restore AccessorImplHost layout [a08eeb475679]
90+
### Documentation
91+
- Updated source checkout instruction for Windows in GetStartedGuide
92+
[9cde15210d70]
93+
94+
## API/ABI breakages
95+
96+
## Known issues
97+
- GlobalWorkOffset is not supported by Level Zero backend [6f9e9a76]
98+
- The code with function pointer is hanging on Level Zero [d384295e]
99+
- User-defined functions with the same name and signature (exact match of
100+
arguments, return type doesn't matter) as of an OpenCL C built-in
101+
function, can lead to Undefined Behavior.
102+
- A DPC++ system that has FPGAs installed does not support multi-process
103+
execution. Creating a context opens the device associated with the context
104+
and places a lock on it for that process. No other process may use that
105+
device. Some queries about the device through device.get_info<>() also
106+
open up the device and lock it to that process since the runtime needs
107+
to query the actual device to obtain that information.
108+
- On Windows, DPC++ compiler enforces using dynamic C++ runtime for
109+
application linked with SYCL library by:
110+
- linking with msvcrt[d].dll when `-fsycl` switch is used;
111+
- emitting an error on attempts to compile a program with static C++ RT
112+
using `-fsycl` and `/MT` or `/MTd`.
113+
That protects you from complicated runtime errors caused by C++ objects
114+
crossing sycl[d].dll boundary and not always handled properly by different
115+
versions of C++ RT used on app and sycl[d].dll sides.
116+
- The format of the object files produced by the compiler can change between
117+
versions. The workaround is to rebuild the application.
118+
- Using `cl::sycl::program` API to refer to a kernel defined in another
119+
translation unit leads to undefined behavior
120+
- Linkage errors with the following message:
121+
`error LNK2005: "bool const std::_Is_integral<bool>" (??$_Is_integral@_N@std@@3_NB) already defined`
122+
can happen when a SYCL application is built using MS Visual Studio 2019
123+
version below 16.3.0 and user specifies `-std=c++14` or `/std:c++14`.
124+
- Employing read sampler for image accessor may result in sporadic issues with
125+
Level Zero plugin/backend [2c50c03]
126+
- Printing internal defines isn't supported on Windows [50628db]
127+
- Group algorithms for MUL/AND/OR/XOR cannot be enabled for group scope due to
128+
SPIR-V limitations, and are not enabled for sub-group scope yet as the
129+
SPIR-V version isn't automatically raised from 1.1 to 1.3 [96da39e]
130+
- We cannot run Dead Argument Elimination for ESIMD since the pointers to SPIR
131+
kernel functions are saved in `!genx.kernels metadata` [cf10351]
132+
1133
# November'20 release notes
2134

3135
Release notes for commit range c9d50752..5d7e0925

0 commit comments

Comments
 (0)