Skip to content

Commit 67fdb04

Browse files
authored
[SYCL] Release notes for June'20 DPCPP implementation update (#1948)
Increase major version of libsycl.so library as well
1 parent 0e9c898 commit 67fdb04

File tree

2 files changed

+156
-2
lines changed

2 files changed

+156
-2
lines changed

sycl/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ set(CMAKE_CXX_EXTENSIONS OFF)
88
option(SYCL_ENABLE_WERROR "Treat all warnings as errors in SYCL project" OFF)
99
option(SYCL_ADD_DEV_VERSION_POSTFIX "Adds -V postfix to version string" ON)
1010

11-
set(SYCL_MAJOR_VERSION 1)
11+
set(SYCL_MAJOR_VERSION 2)
1212
set(SYCL_MINOR_VERSION 0)
1313
set(SYCL_PATCH_VERSION 0)
14-
set(SYCL_DEV_ABI_VERSION 1)
14+
set(SYCL_DEV_ABI_VERSION 0)
1515
if (SYCL_ADD_DEV_VERSION_POSTFIX)
1616
set(SYCL_VERSION_POSTFIX "-${SYCL_DEV_ABI_VERSION}")
1717
endif()

sycl/ReleaseNotes.md

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,157 @@
1+
# June'20 release notes
2+
3+
Release notes for the commit range ba404be..24726df
4+
5+
## New features
6+
- Added switch to assume that each amount of work-items in each ND-range
7+
dimension if less that 2G (fits in signed integer), which allows underlying
8+
BEs to perform additional optimizations [fdcaeae] [08f8656]
9+
- Added partial support for [Host task with interop capabilities extension](https://github.com/codeplaysoftware/standards-proposals/blob/master/host_task/host_task.md) [ae3fd5c]
10+
- Added support for [SYCL_INTEL_bitcast](doc/extensions/Bitcast/SYCL_INTEL_bitcast.asciidoc)
11+
as a `sycl::detail::bit_cast` [e3da4ef]
12+
- Introduced the Level Zero plugin which enables SYCL working on top of Level0
13+
API. Interoperability is not supportet yet [d32da99]
14+
- Implemented [parallel_for simplification extension](doc/extensions/ParallelForSimpification) [13fe9fb]
15+
- Implemented [SYCL_INTEL_enqueue_barrier extension](doc/extensions/EnqueueBarrier/enqueue_barrier.asciidoc) [da6bfd0]
16+
- Implemented [SYCL_INTEL_accessor_simplification extension](https://github.com/intel/llvm/pull/1498) [1f76efc]
17+
- Implemented OpenCL interoperability API following [SYCL Generalization proposal](https://github.com/KhronosGroup/SYCL-Shared/blob/master/proposals/sycl_generalization.md) [bae0639]
18+
19+
## Improvements
20+
### SYCL Compiler
21+
- Now when `-fintelfpga` option is passed, the dependency file is created in
22+
the temporary files location instead of input source file location [7df381a]
23+
- Made `-std=c++17` the default for DPC++ [3192ee7]
24+
- Added support for kernel name types templated using enumerations
25+
[e7020a1][f9226d2][125b05c][07e8d8f]
26+
- Added a diagnostic on attempt to use host built-in functions inside device
27+
code [2a4c1c8]
28+
- Added diagnostics on attempt to use `sycl::accessor` created for
29+
unsupported types in the device code [6da42a0]
30+
- Aligned `sizeof(long double)` between host and device code [87e6240]
31+
- The pragma spelling for SYCL-specific attributes except
32+
`cl::reqd_work_group_size` are rejected now [8fe2846]
33+
- Added template parameter support for `cl::intel_reqd_sub_group_size`
34+
attribute [0ae9729]
35+
- Added support for more math builtins for PTX target [9370549]
36+
- Added support for struct members and pointers in `intelfpga::ivdep`
37+
attribute [358ec04]
38+
- Added support for all builtins from integer and shared categories for PTX
39+
target [f0a4fe2]
40+
- Improved handling of linker inputs for static lib processing [ed2846f]
41+
- Dependency files are not generated by default when compiling using
42+
`-fsycl -fintelfpga` options now [24726df]
43+
44+
### SYCL Library
45+
- Updated the implementation to align with changes in
46+
[SubGroup extension](doc/extensions/SubGroup/SYCL_INTEL_sub_group.asciidoc) [9d4c284]
47+
- `sycl::ordered_queue` class has been removed [875347a]
48+
- Added support of rounding modes for floating and integer types in
49+
`sycl::vec::convert` [096d0a0]
50+
- Added support for USM vars and placeholder accessors passed to reduction
51+
version of `sycl::handler::parallel_for` [94cb022][2e73da7]
52+
- Added support of `sycl::intel::sub_group::load/store` which take
53+
`sycl::multi_ptr` with `sycl::access::address_space::local_space` [0f5b55b]
54+
- Added a diagnostic on attempt to recompile an AOT compiled program using
55+
`sycl::program` API [b031186]
56+
- Started using custom CUDA context by default as it shows better performance
57+
results [9d45ead]
58+
- Prevented NVIDIA OpenCL platform to be selected by a SYCL application
59+
[7146426]
60+
- Adjusted the diagnostic message on attempt to use local size which is
61+
greater than global size to be more informative [894c10d]
62+
- Added a cache for PI plugins, so subsequent calls for `sycl::device`
63+
creation should be cheaper [03dd60d]
64+
- A SYCL program will be aborted now if program linking is requested when
65+
using L0 plugin. This is done because L0 doesn't support program linking
66+
[d4a5b71]
67+
- Added a diagnostic on attempt to use `sycl::program::set_spec_constant` when
68+
the program is already in compiled or linked state [e2e3d3d]
69+
- Improved `sycl::stream` class implementation on the device side in order to
70+
reduce local memory consumption [b838f0e]
71+
72+
### Documentation
73+
- Added [a table](doc/extensions/README.md) with DPC++ extensions status
74+
[dbbc474]
75+
- OpenCL CPU runtime installation instructions in
76+
[GetStartedGuide](doc/GetStartedGuide.md) and the installation script have
77+
been improved [9aa5029]
78+
- The [SYCL_INTEL_sub_group extension document](doc/extensions/SubGroup/SYCL_INTEL_sub_group.asciidoc)
79+
has been updated [010f112]
80+
- Render user API classes on a dedicated page [98b6ee4]
81+
82+
## Bug fixes
83+
### SYCL Compiler
84+
- Fixed device code compile options passing which could lead to
85+
`CL_INVALID_COMPILER_OPTIONS` error [57bad9e]
86+
- Fixed a problem with creating a queue for FPGA device as a global inline
87+
variable [357e9c8]
88+
- Fixed an issue with that functions which are marked with `SYCL_EXTERNAL` are
89+
not participate in attribute propogation and conflicting attributes checking
90+
[0098eab]
91+
- Fixed an issue which could lead to problems when a kernel name contains a
92+
CVR qualified type [62e2f3b]
93+
- Fixed file processing when using `-fsycl-link`, now the generated object
94+
file can be linked by a non-SYCL enabled compiler/linker [2623abe]
95+
96+
### SYCL Library
97+
- Fixed an issue with map/unmap events which caused problems with read only
98+
buffer accessors in CUDA backend [bf1b5b6]
99+
- Fixed errors happened when using `sycl::handler::copy` with `const void*`,
100+
`void*` or a `sycl::accessor` for a type with const qualifier [ddc0c9d]
101+
- Fixed an issue with copying memory to itself during `sycl::buffer` copyback
102+
[4bf22cc]
103+
- Fixed a possible deadlock which could happen when simultaneously submitting
104+
and waiting for kernels from multiple threads on Windows [ebace77]
105+
- Fixed a problem which caused device with a negative score to be still
106+
selected [7146426][855d214]
107+
- Fixed memleak which happened when using `sycl::program::get_kernel`
108+
[ccefc93]
109+
- Fixed memory copy being wrongly asynchronous which could cause data races
110+
on CUDA backend [4f0a3df]
111+
- Fixed a race which could happen when waiting for the same event from
112+
multiple threads [5737ad9]
113+
- Fixed errors which happened when using `half` or `double` types in reduction
114+
version of `sycl::handler::parallel_for`
115+
- Fixed `sycl::device::get_info<sycl::info::device::mem_base_addr_align>`
116+
query which was returning incorrect result for CUDA plugin [a6d03f3]
117+
- Fixed incorrect behavior of a `sycl::buffer` created with non-writable host
118+
data(e.g. `const int *`) on CUDA backend [49b6223]
119+
- A bunch of fixes to reduction version of `sycl::handler::parallel_for`:
120+
- Enabled `operator*`, `operator+`, `operator|`, `operator&`, `operator^=`
121+
for corresponding transparent functors used in reduction
122+
- Fixed the case when reduction object is passed as an R-value
123+
- Allowed identity-less constructors for reductions with transparent
124+
functors
125+
- Replaced some `auto` declarations with Reduction::result_type and added
126+
intermediate assignments/casts to avoid type ambiguities caused by using
127+
`sycl::half` type, and which may also be caused by custom/user types as
128+
well
129+
- Fixed compile time known identity values for `MIN` and `MAX` reductions
130+
131+
## API/ABI breakages
132+
- All functions related to `sycl::ordered_queue` have been removed
133+
- Removed symbols corresponding to
134+
`sycl::info::kernel_sub_group::max_sub_group_size_for_ndrange` and
135+
`sycl::info::kernel_sub_group::sub_group_count_for_ndrange` queries
136+
137+
## Known issues
138+
- [new] If there is an attribute `cl::intel_reqd_sub_group_size` with the
139+
same value for kernel and function called from the kernel there still can be
140+
compilation error.
141+
- The format of the object files produced by the compiler can change between
142+
versions. The workaround is to rebuild the application.
143+
- The SYCL library doesn't guarantee stable API/ABI, so applications compiled
144+
with older version of the SYCL library may not work with new one.
145+
The workaround is to rebuild the application.
146+
[ABI policy guide](doc/ABIPolicyGuide.md)
147+
- Using `cl::sycl::program` API to refer to a kernel defined in another
148+
translation unit leads to undefined behavior
149+
- Linkage errors with the following message:
150+
`error LNK2005: "bool const std::_Is_integral<bool>" (??$_Is_integral@_N@std@@3_NB) already defined`
151+
can happen when a SYCL application is built using MS Visual Studio 2019
152+
version below 16.3.0
153+
The workaround is to enable `-std=c++17` for the failing MSVC version.
154+
1155
# May'20 release notes
2156

3157
Release notes for the commit range ba404be..67d3d9e

0 commit comments

Comments
 (0)