|
| 1 | +# January'21 release notes |
| 2 | + |
| 3 | +Release notes for commit range 5eebd1e4bfce..2ffafb95f887 |
| 4 | + |
| 5 | +## New features |
| 6 | +### SYCL Compiler |
| 7 | + - Added template parameter support for `work_group_size` attributes |
| 8 | + [ca9d816234c6] [289230c0b52c] |
| 9 | + - Introduced `auto` mode for device code split feature. This mode is the |
| 10 | + default one [184d258b902a] |
| 11 | + - Enabled support for multiple AOCX device binaries for FPGA [6ea38f0f1f7a] |
| 12 | +### SYCL Library |
| 13 | + - Implemented [`online_compiler`](doc/extensions/OnlineCompilation/OnlineCompilation.asciidoc) |
| 14 | + feature [91122526e74d] |
| 15 | +### Documentation |
| 16 | + - Added specification for [set kernel cache configuration extension](doc/extensions/IntelGPU/IntelGPUKernelCache.md) |
| 17 | + [db62fe7166ec] |
| 18 | + |
| 19 | +## Improvements |
| 20 | +### SYCL Compiler |
| 21 | + - Updated ESIMD support for split barrier, slm load and dp4a [7f5013901874] |
| 22 | + - Disabled swapping dimension values of `WorkGroupAttr` for semantic checks |
| 23 | + [7ef84b6fb60c] |
| 24 | + - Enabled `clang-offload-deps` tool usage for generating device dependencies |
| 25 | + [08a1c00028e5, 237675ba5a16, 84d2eb53e774, c8455167c2fa] |
| 26 | + - Switched to linking only needed symbols from fat static libraries on device |
| 27 | + side [5c3e5385b35d] |
| 28 | + - Made Intel attributes consistent with clang attributes [aeb4de7e4fa5] |
| 29 | +### SYCL Library |
| 30 | + - Added filtering of partition properties to exclude non-SYCL ones |
| 31 | + [7f7006410c1d] |
| 32 | + - Fixed memory leaks of global object in the Level-Zero plugins [f58c568] |
| 33 | + - Fixed excessive memory allocation for device handles in the OpenCL plugin |
| 34 | + [8cfcdb20b06e] |
| 35 | + - Added support for |
| 36 | + `syc::ext::oneapi::property::buffer::use_pinned_host_memory` buffery property |
| 37 | + in LevelZero plugin [0b9a7493a2f1] |
| 38 | + - Improved performance of kernels which do not use work-item free functions on |
| 39 | + the host device [b83a1a8028a8] |
| 40 | + - Switched to retaining events in LevelZero event wait list until command has |
| 41 | + completed [c55eb20c2f8c] |
| 42 | + - Improved group scan/reduce algorithms performance for CUDA [bd0edfee2908] |
| 43 | + - Enabled sub-group loads and stores in CUDA [cfce9965c366] |
| 44 | +### Documentation |
| 45 | + - Added notice of the `-o` build configuration option in GetStartedGuide |
| 46 | + [665e4062a5ff] |
| 47 | + - Added requirement to reference E2E tests for the pull-request in the commit |
| 48 | + message [965b63c38ca7] |
| 49 | + |
| 50 | +## Bug fixes |
| 51 | +### SYCL Compiler |
| 52 | + - Eliminated emission of `llvm.used` global variables to output module(s) in |
| 53 | + the post-link tool [9b07d114f5c2] [b96e647c82b2] |
| 54 | + - Fixed crash on scalar `fptoui` LLVM instruction [d7ca5dafcb3b] |
| 55 | + - Fixed detection of free function calls [6cfc3add16e3] |
| 56 | + - Put constant initializer list data in non-generic address space |
| 57 | + [0f2cf4ddc2fd] |
| 58 | +### SYCL Library |
| 59 | + - Fixed memory leak in Level-Zero plugin |
| 60 | + [d98b61a7bd28] [051e1407a195] [45e1b143f0a9] |
| 61 | + - (ESIMD only) Fixed build error "no member named `cl_int2`" [d7f1b53dec62] |
| 62 | + - Disabled execution range rounding for ESIMD kernels [5500262254c3] |
| 63 | + - Fixed argument printing when tracing plugin interface calls [30db15fac6f6] |
| 64 | + - Fixed `as()` function for swizzle vector [70e003acbbfe] |
| 65 | + - Fixed synchronization of sub-group and group functions on CUDA [2b6f2cd7ba0a] |
| 66 | + |
| 67 | +## API/ABI breakages |
| 68 | +- None |
| 69 | + |
| 70 | +## Known issues |
| 71 | + - GlobalWorkOffset is not supported by Level Zero backend [6f9e9a76] |
| 72 | + - The code with function pointer is hanging on Level Zero [d384295e] |
| 73 | + - User-defined functions with the same name and signature (exact match of |
| 74 | + arguments, return type doesn't matter) as of an OpenCL C built-in |
| 75 | + function, can lead to Undefined Behavior. |
| 76 | + - A DPC++ system that has FPGAs installed does not support multi-process |
| 77 | + execution. Creating a context opens the device associated with the context |
| 78 | + and places a lock on it for that process. No other process may use that |
| 79 | + device. Some queries about the device through device.get_info<>() also |
| 80 | + open up the device and lock it to that process since the runtime needs |
| 81 | + to query the actual device to obtain that information. |
| 82 | + - On Windows, DPC++ compiler enforces using dynamic C++ runtime for |
| 83 | + application linked with SYCL library by: |
| 84 | + - linking with msvcrt[d].dll when `-fsycl` switch is used; |
| 85 | + - emitting an error on attempts to compile a program with static C++ RT |
| 86 | + using `-fsycl` and `/MT` or `/MTd`. |
| 87 | + That protects you from complicated runtime errors caused by C++ objects |
| 88 | + crossing sycl[d].dll boundary and not always handled properly by different |
| 89 | + versions of C++ RT used on app and sycl[d].dll sides. |
| 90 | + - The format of the object files produced by the compiler can change between |
| 91 | + versions. The workaround is to rebuild the application. |
| 92 | + - Using `cl::sycl::program` API to refer to a kernel defined in another |
| 93 | + translation unit leads to undefined behavior |
| 94 | + - Linkage errors with the following message: |
| 95 | + `error LNK2005: "bool const std::_Is_integral<bool>" (??$_Is_integral@_N@std@@3_NB) already defined` |
| 96 | + can happen when a SYCL application is built using MS Visual Studio 2019 |
| 97 | + version below 16.3.0 and user specifies `-std=c++14` or `/std:c++14`. |
| 98 | + - Employing read sampler for image accessor may result in sporadic issues with |
| 99 | + Level Zero plugin/backend [2c50c03] |
| 100 | + - Printing internal defines isn't supported on Windows [50628db] |
| 101 | + - Group algorithms for MUL/AND/OR/XOR cannot be enabled for group scope due to |
| 102 | + SPIR-V limitations, and are not enabled for sub-group scope yet as the |
| 103 | + SPIR-V version isn't automatically raised from 1.1 to 1.3 [96da39e] |
| 104 | + - We cannot run Dead Argument Elimination for ESIMD since the pointers to SPIR |
| 105 | + kernel functions are saved in `!genx.kernels metadata` [cf10351] |
| 106 | + |
| 107 | + |
1 | 108 | # December'20 release notes
|
2 | 109 |
|
3 | 110 | Release notes for commit range 5d7e0925..5eebd1e4bfce
|
|
0 commit comments