|
| 1 | +# July'19 release notes |
| 2 | + |
| 3 | +Release notes for commit 64c0262c0f0b9e1b7b2e2dcef57542a3fe3bdb97. |
| 4 | + |
| 5 | +## New features |
| 6 | + - `cl::sycl::stream` class support has been added. |
| 7 | + - New attributes for Intel FPGA device are added: `merge`, `max_replicates` |
| 8 | + and `simple_dual_port`. |
| 9 | + - Initial support for new Plugin Interface (PI) layer is added to SYCL runtime |
| 10 | + library. This feature simplifies porting SYCL implementation to non-OpenCL |
| 11 | + APIs. |
| 12 | + - New address space handling rules are implemented in the SYCL device |
| 13 | + compiler. Raw pointers are allocated in generic address space by default and |
| 14 | + address space inference is supposed to be done by LLVM pass. Old compiler |
| 15 | + behavior can be recovered by enabling `DISABLE_INFER_AS` environment |
| 16 | + variable. |
| 17 | + - Add basic implementation of hierarchical parallelism API. |
| 18 | + - Add new clang built-in function `__unique_stable_name`. SYCL compiler may |
| 19 | + use this built-in function to auto-generate SYCL kernel name for lambdas. |
| 20 | + |
| 21 | +## Improvements |
| 22 | + - SYCL integration header is excluded from the dependency list. |
| 23 | + - Raw pointers capturing added to the SYCL device front-end compiler. This |
| 24 | + capability is required for Unified Shared Memory feature implementation. |
| 25 | + - SYCL device compiler enabled support for OpenCL types like event, sampler, |
| 26 | + images to simplify compilation of the SYCL code to SPIR-V format. |
| 27 | + `CXXReflower` pass used to make "SPIR-V friendly LLVM IR" has been removed. |
| 28 | + - Intel FPGA loop attributes were renamed to avoid potential name conflicts. |
| 29 | + - Old scheduler has been removed. |
| 30 | + - `sampler` type support is added to the `set_arg` methods. |
| 31 | + - Internal SYCL device compiler design documentation was improved and updated. |
| 32 | + Development process documentation has been updated with more details. |
| 33 | + - Initial support for `image` class (w/o accessor support). |
| 34 | + - Static variables are allocated in global address space now. |
| 35 | + - Made sub-group methods constant to enable more use cases. |
| 36 | + - Added `-fsycl-link` option to generate fat object "linkable" as regular host |
| 37 | + object. |
| 38 | + - Enable `set_final_data` method with `shared_ptr` parameter. |
| 39 | + - Enable using of the copy method with `shared_ptr` with `const T`. |
| 40 | + |
| 41 | +## Bug fixes |
| 42 | + - Fixed argument size calculation for zero-dimensional accessor. |
| 43 | + - Removed incorrect source correlation from kernel instructions leading to |
| 44 | + incorrect profiling and debug information. |
| 45 | + - A number of issues were fixed breaking build of the compiler on Windows |
| 46 | + - Fixed unaligned access in load and store methods of the vector class. |
| 47 | + - `global_mem_cache_type` values were aligned with the latest revision of the |
| 48 | + SYCL specification. |
| 49 | + - Stubs for C++ standard headers were removed. This should fix compilation of |
| 50 | + <iostream> and <algorithm> with SYCL device compiler. |
| 51 | + - Unscoped enums were removed from global namespace to avoid conflicts with |
| 52 | + user defined symbols. |
| 53 | + - Explicit copy API of the handler class is blocking i.e. data is |
| 54 | + copied once the command group has completed execution. |
| 55 | + - Renamed `cl::sycl::group::get_linear` to `cl::sycl::group::get_linear_id`. |
| 56 | + - SYCL kernel constructor from OpenCL handle now retains OpenCL object during |
| 57 | + SYCL object lifetime. |
| 58 | + - Fixed forward declaration compilation inside a SYCL kernel. |
| 59 | + - Fixed code generation for 3-element boolean vectors. |
| 60 | + |
| 61 | +## Prerequisites |
| 62 | + - Experimental Intel(R) CPU Runtime for OpenCL(TM) Applications with SYCL support is |
| 63 | + available now and recommended OpenCL CPU RT prerequisite for the SYCL |
| 64 | + compiler. |
| 65 | + - The Intel(R) Graphics Compute Runtime for OpenCL(TM) version 19.25.13237 is |
| 66 | + recommended OpenCL GPU RT prerequisite for the SYCL compiler. |
| 67 | + |
| 68 | +## Known issues |
| 69 | + - New address space handling approach might degrade compilation time |
| 70 | + (especially for GPU device). |
| 71 | + - Some tests might fail on CPU device with the [first experimental CPU |
| 72 | + runtime](https://github.com/intel/llvm/tree/expoclcpu-1.0.0) due to new |
| 73 | + address space handling by the SYCL compiler. The workaround for this kind of |
| 74 | + issues while we wait for CPU runtime update is to set `DISABLE_INFER_AS` |
| 75 | + environment variable during compilation. See |
| 76 | + https://github.com/intel/llvm/issues/277 for more details. |
| 77 | + |
1 | 78 | # June'19 release notes
|
2 | 79 |
|
3 | 80 | The release notes contain information about changes that were done after
|
|
0 commit comments