From 33de26a96da517389d5df0eb6fdfc9fe4db19a7a Mon Sep 17 00:00:00 2001 From: Alexey Bader Date: Tue, 2 Jul 2019 14:28:51 +0300 Subject: [PATCH 1/3] [SYCL] Release notes for July SYCL implementation update. Signed-off-by: Alexey Bader --- sycl/ReleaseNotes.md | 77 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/sycl/ReleaseNotes.md b/sycl/ReleaseNotes.md index 48bf937db5578..4cbfffb2430c0 100644 --- a/sycl/ReleaseNotes.md +++ b/sycl/ReleaseNotes.md @@ -1,3 +1,80 @@ +# July'19 release notes + +Release notes for commit 64c0262c0f0b9e1b7b2e2dcef57542a3fe3bdb97. + +## New features + - `cl::sycl::stream` class support has been added. + - New attributes for Intel FPGA device are added: `merge`, `max_replicates` + and `simple_dual_port`. + - Initial support for new Plugin Interface (PI) layer is added to SYCL runtime + library. This feature simplifies porting SYCL implementation to non-OpenCL + APIs. + - New address space handling rules are implemented in the SYCL device + compiler. Raw pointers are allocated in generic address space by default and + address space inference is supposed to be done by LLVM pass. Old compiler + behavior can be recovered by enabling `DISABLE_INFER_AS` environment + variable. + - Add basic implementation of hierarchical parallelism API. + - Add new clang built-in function `__unique_stable_name`. SYCL compiler may + use this built-in function to auto-generate SYCL kernel name for lambdas. + +## Improvements + - SYCL integration header is excluded from the dependency list. + - Raw pointers capturing added the SYCL device front-end compiler. This + capability is required for Unified Shared Memory feature implementation. + - SYCL device compiler enabled support for OpenCL types like event, sampler, + images to simplify compilation of the SYCL code to SPIR-V format. + `CXXReflower` pass used to make "SPRI-V friendly LLVM IR" has been removed. + - Intel FPGA loop attributes were renamed to avoid potential name conflicts. + - Old scheduler has been removed. + - `sampler` type support is added to the `set_arg` methods. + - Internal SYCL device compiler design documentation was improved and updated. + Development process documentation has been updated with more details. + - Initial support for `image` class (w/o accessor support). + - Static variables are allocated in global address space now. + - Made sub-group methods constant to enable more use cases. + - Added `-fsycl-link` option to generate fat object "linkable" as regular host + object. + - Enable `set_final_data` method with `shared_ptr` parameter. + - Enable using of the copy method with `shared_ptr` with `const T`. + +## Bug fixes + - Fixed argument size calculation for zero-dimensional accessor. + - Removed incorrect source correlation from kernel instructions leading to + incorrect profiling and debug information. + - A number of issues were fixed breaking build of the compiler on Windows + - Fixed unaligned access in load and store methods of the vector class. + - `global_mem_cache_type` values were aligned with the latest revision of the + SYCL specification. + - Stubs for C++ standard headers were removed. This should fix compilation of + and with SYCL device compiler. + - Unscoped emuns were removed from global namespace to avoid conflicts with + user defined symbols. + - Explicit copy API of the handler class is blocking i.e. data is + copied once the command group has completed execution. + - Renamed `cl::sycl::group::get_linear` to `cl::sycl::group::get_linear_id`. + - SYCL kernel constructor from OpenCL handle now retains OpenCL object during + SYCL object lifetime. + - Fixed forward declaration compilation inside a SYCL kernel. + - Fixed code generation for 3-element boolean vectors. + +## Prerequisites + - Experimental Intel(R) CPU Runtime for OpenCL(TM) Applications with SYCL support is + available now and recommended OpenCL CPU RT prerequisite for the SYCL + compiler. + - The Intel(R) Graphics Compute Runtime for OpenCL(TM) version 19.25.13237 is + recommended OpenCL GPU RT prerequisite for the SYCL compiler. + +## Known issues + - New address space handling approach might degrade compilation time + (especially for GPU device). + - Some tests might fail on CPU device with the [first experimental CPU + runtime](https://github.com/intel/llvm/tree/expoclcpu-1.0.0) due to new + address space handling by the SYCL compiler. The workaround for this kind of + issues while we wait for CPU runtime update is to set `DISABLE_INFER_AS` + environment variable during compilation. See + https://github.com/intel/llvm/issues/277 for more details. + # June'19 release notes The release notes contain information about changes that were done after From 1fe08e526def3c6ff27dc15c4293bb19689bbaa9 Mon Sep 17 00:00:00 2001 From: Alexey Bader Date: Tue, 9 Jul 2019 09:25:14 +0300 Subject: [PATCH 2/3] Fixed typos. Signed-off-by: Alexey Bader --- sycl/ReleaseNotes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sycl/ReleaseNotes.md b/sycl/ReleaseNotes.md index 4cbfffb2430c0..064e25a1c1961 100644 --- a/sycl/ReleaseNotes.md +++ b/sycl/ReleaseNotes.md @@ -20,11 +20,11 @@ Release notes for commit 64c0262c0f0b9e1b7b2e2dcef57542a3fe3bdb97. ## Improvements - SYCL integration header is excluded from the dependency list. - - Raw pointers capturing added the SYCL device front-end compiler. This + - Raw pointers capturing added to the SYCL device front-end compiler. This capability is required for Unified Shared Memory feature implementation. - SYCL device compiler enabled support for OpenCL types like event, sampler, images to simplify compilation of the SYCL code to SPIR-V format. - `CXXReflower` pass used to make "SPRI-V friendly LLVM IR" has been removed. + `CXXReflower` pass used to make "SPIR-V friendly LLVM IR" has been removed. - Intel FPGA loop attributes were renamed to avoid potential name conflicts. - Old scheduler has been removed. - `sampler` type support is added to the `set_arg` methods. From 0920962dc2a7f4a05feeff1c4c8352172965a676 Mon Sep 17 00:00:00 2001 From: Alexey Bader Date: Tue, 9 Jul 2019 12:36:22 +0300 Subject: [PATCH 3/3] Update sycl/ReleaseNotes.md Signed-off-by: Alexey Bader --- sycl/ReleaseNotes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/ReleaseNotes.md b/sycl/ReleaseNotes.md index 064e25a1c1961..539911c2e3672 100644 --- a/sycl/ReleaseNotes.md +++ b/sycl/ReleaseNotes.md @@ -48,7 +48,7 @@ Release notes for commit 64c0262c0f0b9e1b7b2e2dcef57542a3fe3bdb97. SYCL specification. - Stubs for C++ standard headers were removed. This should fix compilation of and with SYCL device compiler. - - Unscoped emuns were removed from global namespace to avoid conflicts with + - Unscoped enums were removed from global namespace to avoid conflicts with user defined symbols. - Explicit copy API of the handler class is blocking i.e. data is copied once the command group has completed execution.