Skip to content

[SYCL] Release notes for December SYCL implementation update #1037

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 23, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 101 additions & 0 deletions sycl/ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,104 @@
# December'19 release notes

Release notes for commit 78d80a1cc628af76f09c53673ada906a3d2f0131

## New features
- New attributes for Intel FPGA devices : `num_simd_work_items`, `bank_bits`,
`max_work_group_size`, `max_global_work_dim`
[61d60b6] [7becb9d] [9053642] [6441851]
- The infrastructure for device standard C/C++ libraries has been introduced.
`assert` can now be used in device code [0039ee0]
- Add opencl-aot tool for AoT compilation for Intel CPU devices [400460b]
- Added support for `cl::sycl::intel::experimental::printf` builtin [78d80a1]
- Implemented device code split feature: compiler can now be instructed to
split a single device code module into multiple via the
`-fsycl-device-code-split` option.
[9d7dba6] [cc93bc4] [5491486] [a339d4c] [9095749]

## Improvements
### SYCL Frontend and driver changes
- Allowed applying `cl::reqd_work_group_size` and
`cl::intel_reqd_sub_group_size` attributes to a lambda function [b06fc66]
- Allowed applying SYCL_EXTERNAL to functions with raw pointer arguments or
return value if `-Wno-error=sycl-strict` option is passed [2840458]
- Added support for FPGA device libraries in fat static libraries [d39ab73]
- Removed limitation of virtual types in SYCL [98754ff]

### SYCL headers and runtime
- Added support for platform name and platform version in the device allowed
list [7f2f668]
- Made kernels and programs caches thread-safe [118dc82]
- It's now possible to omit `cl` namespace specifier when using SYCL API.
`sycl::buffer` can be used instead `cl::sycl::buffer` [67e4655]
- Diagnostic on attempt to do several actions in one command group has been
implemented [9f8ae50]
- `queue::submit` now throws synchronous exceptions [6a83d14]
- Enqueue pending tasks after host accessor destructor [80d17b2]
- Implemented more "flat" kernel submission `cl::sycl::queue` methods
[c5318c5]

### Documentation
- Added support for generation of SYCL documentation with Doxygen [de418d6]
- [Design document](doc/extensions/C-CXX-StandardLibrary/C-CXX-StandardLibrary.rst)
which describes design of C/C++ standard library support has been added

## Bug fixes
### SYCL Frontend and driver changes
- Fixed problem which prevented attaching multiple attributes to a SYCL kernel
[b77e5b7]

### SYCL headers and runtime
- Fixed a possible deadlock with host accessor' creation from multiple threads
[d1c6dbe]
- Compatibility issues that can happen when the SYCL library and SYCL
application are compiled with different version of standard headers are
fixed. [d854643]
- Fixed compile error for `handler::copy` with `-fsycl-unnamed-lambda`
[e73d2ce]
- Fixed error which happened when autogenerated (`-fsycl-unnamed-lambda`)
kernel name contained `cl::sycl::half` type [514fc0b]
- Fixed crash on submitting a kernel with zero local size on the host device
[b6806ea]
- Made `vec::load` and `vec::store` member functions templated to align with
the SYCL specification [4bd76de]
- Made exceptions that are thrown in the copy back routine during SYCL
memory object destructor asynchronous [2d6dcd0]
- Fixed creation of host accessor to sub-buffer leading to crash in some
scenarios [f607520]
- Fixed build error on Windows caused by RuntimeLibrary value inconsistency
for LLVM and apps/tests linked with it [f9296b6]

## Known issues
- [new] The size of object file is increased compared to the older compiler
releases due to the recent fat object layout changes in the open source LLVM.
- Using `cl::sycl::program` API to refer to a kernel defined in another
translation unit leads to undefined behaviour
- Linkage errors with the following message:
`error LNK2005: "bool const std::_Is_integral<bool>" (??$_Is_integral@_N@std@@3_NB) already defined`
can happen when a SYCL application is built using MS Visual Studio 2019
version below 16.3.0
For MSVC version having the error the workaround is to use -std=c++17 switch.

## Prerequisites
### Linux
- Experimental Intel(R) CPU Runtime for OpenCL(TM) Applications with SYCL
support version
[2020.9.1.0.18_rel](https://github.com/intel/llvm/releases/download/2019-12/oclcpuexp-2020.9.1.0.18_rel.tar.gz)
is recommended OpenCL CPU RT prerequisite for the SYCL compiler
- The Intel(R) Graphics Compute Runtime for OpenCL(TM) version
[19.48.14977](https://github.com/intel/compute-runtime/releases/tag/19.48.14977)
is recommended OpenCL GPU RT prerequisite for the SYCL compiler.
### Windows
- Experimental Intel(R) CPU Runtime for OpenCL(TM) Applications with SYCL
support version
[2020.9.1.0.18_rel](https://github.com/intel/llvm/releases/download/2019-12/win-oclcpuexp-2020.9.1.0.18_rel.zip)
is recommended OpenCL CPU RT prerequisite for the SYCL compiler
- The Intel(R) Graphics Compute Runtime for OpenCL(TM) version
[26.20.100.7463](https://downloadcenter.intel.com/download/29195/Intel-Graphics-Windows-10-DCH-Drivers)
is recommended OpenCL GPU RT prerequisite for the SYCL compiler.

Please, see the runtime installation guide [here](https://github.com/intel/llvm/blob/sycl/sycl/doc/GetStartedWithSYCLCompiler.md#install-low-level-runtime)

# November'19 release notes

Release notes for commit e0a62df4e20eaf4bdff5c7dd46cbde566fbaee90
Expand Down