Skip to content

SYCL* Compiler and Runtimes 2019-12

Pre-release
Pre-release
Compare
Choose a tag to compare
@tfzhu tfzhu released this 22 Jan 08:09
· 220145 commits to sycl since this 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 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
    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 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