Skip to content

Commit d85acb7

Browse files
authored
[SYCL] Release notes for February'20 SYCL implementation update (#1400)
Signed-off-by: Vlad Romanov <vlad.romanov@intel.com>
1 parent 2f5cd28 commit d85acb7

File tree

1 file changed

+137
-0
lines changed

1 file changed

+137
-0
lines changed

sycl/ReleaseNotes.md

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

3140
Release notes for commit 78d80a1cc628af76f09c53673ada906a3d2f0131

0 commit comments

Comments
 (0)