|
| 1 | +# December'20 release notes |
| 2 | + |
| 3 | +Release notes for commit range 5d7e0925..5eebd1e4bfce |
| 4 | + |
| 5 | +## New features |
| 6 | +### SYCL Compiler |
| 7 | + - Allow for multiple build options for opencl-aot [5e5703f58449] |
| 8 | +### SYCL Library |
| 9 | + - Implement [`SYCL_INTEL_mem_channel_property`](doc/extensions/MemChannel/SYCL_INTEL_mem_channel_property.asciidoc) |
| 10 | + extension [2f1f3167b7c6] |
| 11 | + - Add `marray` class as defined by SYCL 2020 provisional [5eebd1e4bfce] |
| 12 | + - Implement dynamic batch size adjusting when using Level-Zero plugin |
| 13 | + [c70b0477aa8a, cf0d0538d162] |
| 14 | + - Add online compilation API interface [70ac47d23264] |
| 15 | +### Documentation |
| 16 | + - Proposal for [new device descriptors extension](doc/extensions/IntelGPU/IntelGPUDeviceInfo.md) |
| 17 | + was added [1ad813ba133e] |
| 18 | + - Added [online compilation extension](doc/extensions/OnlineCompilation/OnlineCompilation.asciidoc) |
| 19 | + specification [e05a19c8d303] |
| 20 | + |
| 21 | +## Improvements |
| 22 | +### SYCL Compiler |
| 23 | + - (ESIMD only) Remove wrapping of buffer objects into images which caused |
| 24 | + problems like incorrect work of scatter/gather of 1- and 2-byte values |
| 25 | + [d2d20d6c4556] |
| 26 | + - Rename FPGA kernel attribute `[[intel::stall_enable]]` to |
| 27 | + `[[intel::use_stall_enable_clusters]]` [dab9debebe70] |
| 28 | + - Add template parameter support for `[[intel::max_global_work_dim]]` and |
| 29 | + `[[intel::no_global_work_offset]]` attributes [bd8fcc7dee34, a5fde5a924ac] |
| 30 | + - Remove partial-link path when dealing with fat static archives [f1aa7f4d8b79] |
| 31 | + - Remove unused device library function definitions from linked program |
| 32 | + [e9423ffdec92] |
| 33 | + - Don't dump IR and dot files by default in the LowerWGScope [9d0e3525ba04] |
| 34 | + - Support LLVM floating-point intrinsics in llvm-spirv and frontend |
| 35 | + [a5065ab85101] |
| 36 | + - Add template parameter support for `[[intel::no_global_work_offset()]]` |
| 37 | + attribute [a5fde5a924ac] |
| 38 | + - Improve group size selection by adjusting `parallel_for` execution range |
| 39 | + global size [74a68b7da4e7] |
| 40 | + - Add clang support for FPGA loop fusion function attributes [23926b0645ad] |
| 41 | + - Reword some compiler diagnostics [50b81c3cd6e9] |
| 42 | +### SYCL Library |
| 43 | + - Eliminate performance overhead on devices without host unified memory support |
| 44 | + [a4f092417ef9] |
| 45 | + - Optimize `discard_write` access mode for host accessor [6733c8b0efde] |
| 46 | + - Add support for composite specialization constants |
| 47 | + [c62860fd6b86, d4251e3c55e7, 3ec4594a5a06] |
| 48 | + - Enhance PI tracing with printing output arguments [19f5ad67f30a] |
| 49 | + - Introduce `pi_map_flags` in lieu of `cl_map_flags` [f0e7606a6198] |
| 50 | + - Implement robust error handling in LevelZero plugin [65c719ddfc23] |
| 51 | + - Add new device descriptors as SYCL extensions [51ac08c35294] |
| 52 | + - Remove redundant dependencies for in-order queues [632722165db2] |
| 53 | +### Documentation |
| 54 | + - Add information on AOT to GetStartedGuide [71942fbb3655] |
| 55 | + - Add notice on alignemnt checks in ABI policy [4326b9563575] |
| 56 | + - Updated design of specialization contants on using of POD types |
| 57 | + [81963d1ec055] |
| 58 | + - Document linked allocation commands [929a764a5ec4] |
| 59 | + - Improve ESIMD documentation rendering [079597d28f1f] |
| 60 | + - Improved device library documentation [f24e2a9ce464] |
| 61 | + |
| 62 | +## Bug fixes |
| 63 | +### SYCL Compiler |
| 64 | + - Do not customize optimizations for non-SPIR targets [cb069fed6712] |
| 65 | + - Fix address space assertion with templates [8905a8cec9a9] |
| 66 | + - Link libm-fp64 device library by default [ac93d6fe3d9d] |
| 67 | + - Add support for specialization constants' typenames declared in namespaces |
| 68 | + [f64f835b4313] |
| 69 | + - Fix loosing OpenMP device binary when program uses both OpenMP and SYCL |
| 70 | + offloading models [eb89f5eaab37] |
| 71 | +### SYCL Library |
| 72 | + - Add missing interoperability API to construct SYCL classes with Level-Zero |
| 73 | + handles [10b4e8a6fc19] |
| 74 | + - Fix several builtins implementation for host device |
| 75 | + [8b82c671ab12, 786708914fd4] |
| 76 | + - Fix possible hang upon application finish if streams were used [bd5893ae01b1] |
| 77 | + - Fix failure when employing interoperability host task on queue constructed |
| 78 | + with reused context [9cff6c9b6127] |
| 79 | + - Fix "instantiation after specialization" warnings |
| 80 | + [56b9a1dfb92f, eadce94f8ad0] |
| 81 | + - Support copying of stream by value within a kernel without loss of output |
| 82 | + information [8d37cbacc9b8] |
| 83 | + - Fix handling of big and/or non-uniform work-groups in reduction kernels. The |
| 84 | + solution may change when reduction kernels precompilation/query approach is |
| 85 | + implemented [78e2599bc499] |
| 86 | + - Fix memory leak in event pool in Level Zero plugin [68fc7808a50e] |
| 87 | + - Fixed issue with finalizing context of Level Zero plugin [6cfa921856f5] |
| 88 | + - Fix backend selection for `SYCL_DEVICE_FILTER=*` case [c54da157f5d5] |
| 89 | + - Restore AccessorImplHost layout [a08eeb475679] |
| 90 | +### Documentation |
| 91 | + - Updated source checkout instruction for Windows in GetStartedGuide |
| 92 | + [9cde15210d70] |
| 93 | + |
| 94 | +## API/ABI breakages |
| 95 | + |
| 96 | +## Known issues |
| 97 | + - GlobalWorkOffset is not supported by Level Zero backend [6f9e9a76] |
| 98 | + - The code with function pointer is hanging on Level Zero [d384295e] |
| 99 | + - User-defined functions with the same name and signature (exact match of |
| 100 | + arguments, return type doesn't matter) as of an OpenCL C built-in |
| 101 | + function, can lead to Undefined Behavior. |
| 102 | + - A DPC++ system that has FPGAs installed does not support multi-process |
| 103 | + execution. Creating a context opens the device associated with the context |
| 104 | + and places a lock on it for that process. No other process may use that |
| 105 | + device. Some queries about the device through device.get_info<>() also |
| 106 | + open up the device and lock it to that process since the runtime needs |
| 107 | + to query the actual device to obtain that information. |
| 108 | + - On Windows, DPC++ compiler enforces using dynamic C++ runtime for |
| 109 | + application linked with SYCL library by: |
| 110 | + - linking with msvcrt[d].dll when `-fsycl` switch is used; |
| 111 | + - emitting an error on attempts to compile a program with static C++ RT |
| 112 | + using `-fsycl` and `/MT` or `/MTd`. |
| 113 | + That protects you from complicated runtime errors caused by C++ objects |
| 114 | + crossing sycl[d].dll boundary and not always handled properly by different |
| 115 | + versions of C++ RT used on app and sycl[d].dll sides. |
| 116 | + - The format of the object files produced by the compiler can change between |
| 117 | + versions. The workaround is to rebuild the application. |
| 118 | + - Using `cl::sycl::program` API to refer to a kernel defined in another |
| 119 | + translation unit leads to undefined behavior |
| 120 | + - Linkage errors with the following message: |
| 121 | + `error LNK2005: "bool const std::_Is_integral<bool>" (??$_Is_integral@_N@std@@3_NB) already defined` |
| 122 | + can happen when a SYCL application is built using MS Visual Studio 2019 |
| 123 | + version below 16.3.0 and user specifies `-std=c++14` or `/std:c++14`. |
| 124 | + - Employing read sampler for image accessor may result in sporadic issues with |
| 125 | + Level Zero plugin/backend [2c50c03] |
| 126 | + - Printing internal defines isn't supported on Windows [50628db] |
| 127 | + - Group algorithms for MUL/AND/OR/XOR cannot be enabled for group scope due to |
| 128 | + SPIR-V limitations, and are not enabled for sub-group scope yet as the |
| 129 | + SPIR-V version isn't automatically raised from 1.1 to 1.3 [96da39e] |
| 130 | + - We cannot run Dead Argument Elimination for ESIMD since the pointers to SPIR |
| 131 | + kernel functions are saved in `!genx.kernels metadata` [cf10351] |
| 132 | + |
1 | 133 | # November'20 release notes
|
2 | 134 |
|
3 | 135 | Release notes for commit range c9d50752..5d7e0925
|
|
0 commit comments