SYCL* Compiler and Runtimes 2019-12
Pre-release
Pre-release
December'19 release notes
Release notes for commit 78d80a1
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 insteadcl::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
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 containedcl::sycl::half
type [514fc0b] - Fixed crash on submitting a kernel with zero local size on the host device
[b6806ea] - Made
vec::load
andvec::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 is recommended OpenCL CPU RT prerequisite for the SYCL compiler - The Intel(R) Graphics Compute Runtime for OpenCL(TM) version
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 is recommended OpenCL CPU RT prerequisite for the SYCL compiler - The Intel(R) Graphics Compute Runtime for OpenCL(TM) version
26.20.100.7463
is recommended OpenCL GPU RT prerequisite for the SYCL compiler.
Please, see the runtime installation guide here