-
Notifications
You must be signed in to change notification settings - Fork 768
[SYCL] Release notes for February'20 SYCL implementation update #1400
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -1,3 +1,142 @@ | ||||||
# February'20 release notes | ||||||
|
||||||
Release notes for commit e8f1f29 | ||||||
|
||||||
## New features | ||||||
- Added `__builtin_intel_fpga_mem` for the FPGA SYCL device. The builtin is | ||||||
used to indicate the characteristics of the load-store unit (LSU) to be used | ||||||
when de-referencing the pointer [1e33c01] | ||||||
- Added support for the `intelfpga::uses_global_work_offset` attribute | ||||||
[8bed533] | ||||||
- Added basic xmethod implementation for `sycl::accessor::operator[]` to make | ||||||
it callable from gdb command line [d6be8ff] | ||||||
- Added device libraries for standard math like std::cos and `std::complex` | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
type [7abd9d5] | ||||||
|
||||||
## Improvements | ||||||
### SYCL Frontend and driver changes | ||||||
- Added support for passing a non type template parameter to the `loop_unroll` | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
attribute [8d7a32a] | ||||||
- Relaxed the standard layout requirement for kernel arguments. Now by default | ||||||
they should be trivially copiable. The `sycl-std=1.2.1` driver option turns | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
standard layout requirement "on" [3adb4a5] | ||||||
- Added diagnostic on using `__float128` type in the device code [659efdf] | ||||||
- The `intelfpga::max_private_copies` has been renamed to | ||||||
`intelfpga::private_copies` [97a199f] | ||||||
- Fixed output options behavior for `-fsycl-link` on Windows [67b24d46] | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
- Prevented duplication of error diagnostics for `-fsycl` [3a0b62e] | ||||||
- Added diagnostic when attempting to use existing FPGA static library with | ||||||
additional device code [6431be6] | ||||||
- Renamed `intelfpga::uses_global_work_offset` attribute to | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
`intelfpga::no_global_work_offset` [5a9058b] | ||||||
- Added support for non-type template parameters for FPGA memory attributes | ||||||
[ffcad03] | ||||||
|
||||||
### SYCL headers and runtime | ||||||
- The `SYCL_DEVICE_WHITE_LIST` control was renamed to `SYCL_DEVICE_ALLOWLIST` | ||||||
[4df18fa] | ||||||
- Added a leaf limit to the execution graph to avoid leaf bloat in | ||||||
applications that have an overwhelming number of command groups that can | ||||||
be executed in parallel [7c293e2] | ||||||
- Added `get_range()` method to the image and local accessors to align with | ||||||
the SYCL specification [8ed5566] | ||||||
- Added a diagnostic on attempt to create a context from devices that are | ||||||
bound to different platforms [8f354f7] | ||||||
- An ordered queue can now be created by passing | ||||||
`sycl::property::queue::in_order` property to the `sycl::queue` constructor | ||||||
[c855520] | ||||||
- Added a diagnostic on attempt to create an accessor with an unsupported type | ||||||
[306624e] | ||||||
- Made host device return `nullptr` for bad USM allocation functions | ||||||
(huge, 0, etc) [2a000d9] | ||||||
- Added templated forms of USM allocation functions [42cf5bf] | ||||||
- Added support for APIs that query properties of USM pointers [926e38e] | ||||||
- Added clean up finished command nodes of the execution graph in the | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
situations when the wait for a command to complete is called implicitly | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
or explicitly [438dc49] | ||||||
- Added 2 `sycl::queue` constructors accepting `sycl::context` and | ||||||
`sycl::device` arguments [c81c1c5] | ||||||
|
||||||
### Documentation | ||||||
- Added [documentation](doc/extensions/QueueShortcuts/QueueShortcuts.adoc) for | ||||||
simplification of the `sycl::queue` functions [478b7c0] | ||||||
- Added [documentation](doc/extensions/ReqdWorkGroupSize/SYCL_INTEL_reqd_work_group_size.asciidoc) | ||||||
for `reqd_work_group_size` extension [c2c416a] | ||||||
- The FAQ [document](doc/FAQ.md) was introduced [e42b40e] | ||||||
- Added Ordered Queue Property | ||||||
[proposal](doc/extensions/OrderedQueue/OrderedQueue_v2.adoc) [9fa878f] | ||||||
- Added device code split options documentation to the | ||||||
[user's manual](doc/SYCLCompilerUserManual.md) [1355aa6] | ||||||
- Added documentation for [ExtendedAtomics extension](doc/extensions/ExtendedAtomics/SYCL_INTEL_extended_atomics.asciidoc) [4445462] | ||||||
- Removed old Ordered Queue proposal and make a note of deprecation [e8f1f29] | ||||||
|
||||||
## Bug fixes | ||||||
### SYCL Frontend and driver changes | ||||||
- Fixed variable sharing passed by value to `parallel_for_work_group` | ||||||
[d8ea63a] | ||||||
- Do not produce an error if some restricted feature (e.g. exceptions) is used | ||||||
by a function only referenced in unevaluated contexts [5eae571] | ||||||
- Fixed problem with not cleaning up temporary files when device code split | ||||||
feature is enabled [d86ee2f] | ||||||
- Fixed issue with emitting wrong 'typename' keywords in the integration | ||||||
header [c19372e] | ||||||
- The SYCL target image registration functions have been renamed to avoid | ||||||
conflicts with the OpenMP registration functions [82fd970] | ||||||
- Avoid using `std::memcpy` in the device code [f39f47e] | ||||||
- Fixed `-save-temps` option when used along with `-fsycl` [f7f4699] | ||||||
- Also fixed link steps triggering for libraries specified using | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
`-foffload-static-lib` when no source or object file is provided [360b25b] | ||||||
|
||||||
### SYCL headers and runtime | ||||||
- Fixed final result saturation in the host implementation of `sycl::mad_sat` | ||||||
[54dddb4] | ||||||
- Fixed a crash when a non-nullptr_t `0x0` value is passed to the | ||||||
`sycl::buffer::set_final_data` method [6a0e279] | ||||||
- Fixed an issue with copying sub-buffer between different contexts [0867a38] | ||||||
- Resolved the problem when local accessor is a temporary object [1eed329] | ||||||
- Fixed an issue with event not being retained when memory object is | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
constructed using interoperability constructors [0aabe7e] | ||||||
- Fixed compilation of kernels which use `sycl::stream` for FPGA device | ||||||
[c4dbaa2] | ||||||
- Fixed execution graph cleanup on memory object destruction [7a75b54] | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
## Known issues | ||||||
- [new] Defining macro with names SUCCESS or FAILED can break SYCL headers | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
because such names are used internally | ||||||
- [new] The format of the object files produced by the compiler can change | ||||||
between versions. Workaround is to rebuild the application. | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
- [new] The SYCL library doesn't guarantee stable API/ABI, so applications | ||||||
compiled with older version of the SYCL library may not work with new one. | ||||||
Workaround is to rebuild the application. | ||||||
- 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. | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
## Prerequisites | ||||||
### Linux | ||||||
- Experimental Intel(R) CPU Runtime for OpenCL(TM) Applications with SYCL | ||||||
support version | ||||||
[2020.10.3.0.04](https://github.com/intel/llvm/releases/download/2020-02/oclcpuexp-2020.10.3.0.04_rel.tar.gz) | ||||||
is recommended OpenCL CPU RT prerequisite for the SYCL compiler | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
(the same applies to other prerequisites) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Let's merge as is. It's end of March already. These notes are coming quite late. |
||||||
- The Intel(R) Graphics Compute Runtime for OpenCL(TM) version | ||||||
[20.06.15619](https://github.com/intel/compute-runtime/releases/tag/20.06.15619) | ||||||
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.10.3.0.04](https://github.com/intel/llvm/releases/download/2020-02/win-oclcpuexp-2020.10.3.0.04_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.7870](https://downloadcenter.intel.com/download/29426/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) | ||||||
romanovvlad marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
|
||||||
# December'19 release notes | ||||||
|
||||||
Release notes for commit 78d80a1cc628af76f09c53673ada906a3d2f0131 | ||||||
|
Uh oh!
There was an error while loading. Please reload this page.