Skip to content

Releases: intel/llvm

DPC++ daily 2023-04-05

05 Apr 18:24
305da17
Compare
Choose a tag to compare
Pre-release
sycl-nightly/20230405

Revert "[CI][Deps] Uplift CPU/FPGAEMU RT version to 2023.15.3.0.20" (…

DPC++ daily 2023-04-04

04 Apr 18:31
74b3d45
Compare
Choose a tag to compare
Pre-release
sycl-nightly/20230404

[CI][Deps] Uplift CPU/FPGAEMU RT version to 2023.15.3.0.20 (#8851)

DPC++ daily 2023-04-03

03 Apr 18:26
82ac98f
Compare
Choose a tag to compare
Pre-release
sycl-nightly/20230403

[SYCL][CUDA] Returns minimum mandated capabilities for atomic_fence d…

DPC++ daily 2023-04-02

02 Apr 19:35
cf44d5e
Compare
Choose a tag to compare
Pre-release
sycl-nightly/20230402

[SYCL] Move xpti stream init (exception trace) to the first usage (#8…

DPC++ daily 2023-04-01

01 Apr 19:17
cf44d5e
Compare
Choose a tag to compare
Pre-release
sycl-nightly/20230401

[SYCL] Move xpti stream init (exception trace) to the first usage (#8…

DPC++ daily 2023-03-31

31 Mar 18:46
0c74bbb
Compare
Choose a tag to compare
Pre-release
[SYCL][InvokeSIMD] Improve error messages (#8839)

1) If we could not find an invoke_simd function to call, suggest the
user check argument types

2) Check that no references are used for the invoke_simd callee. The
current implementation only supports function pointers. It does not
support lambdas or functors. We only support function pointers by
default unless the user passes an undocumented define.

---------

Signed-off-by: Sarnie, Nick <nick.sarnie@intel.com>

DPC++ daily 2023-03-30

30 Mar 12:12
992ef06
Compare
Choose a tag to compare
Pre-release
[SYCL] Host pipe runtime implementation (#7468)

Disclaimer:

This work is a continuation of a previous approved Sherry's PR:
https://github.com/intel/llvm/pull/5766 and her draft work
https://github.com/intel/llvm/pull/5894.

We are implementing Hostpipes based on the Spec
[here](https://github.com/rho180/llvm/blob/rho180-pipe-design/sycl/doc/design/HostPipes.md).
OpenCL spec is
[here](https://github.com/intel-sandbox/ip-authoring-specs/blob/MJ_ChangeDocs4/Pipe/Spec/cl_intel_host_pipe_symbol.asciidoc).

The following is the outline of the design.

1. The host pipe properties need to be added to the device image
(probably similar to the previous change here
https://github.com/intel/llvm/commit/a9ad3af71cbdd5ebc7b7efeb35761aa8ea1a49d7)

2.The frontend calls the [registration of device image, maybe similar to
this
code](https://github.com/intel/llvm/blob/af858c74e4be95b2163ce6ba545ce588ff0aca4c/sycl/source/detail/program_manager/program_manager.cpp#L2014):
which is where the host pipe information is available. This is where the
mapping from host pipe name to host pipe pointer is extracted.

3. The frontend also calls `host_pipe_map::add` to register/initialize
the host pipes. This is the new function. We are not sure about the
ordering of registration of device image / registration of host pipe.
for which ever one that comes later, it need to initialize the remaining
attribute of host pipe (such as its properties).

4. The opencl runtime will need to get a cl_program object, which is
typically not available until the first kernel launch. To get a program
object early on, the host pipe name/pointer to device image mapping is
cached during registration. And when the specific host pipe is needed,
build the program and get its ocl runtime representation. This is done
in the first couple commits.

5. Since a host pipe read/write need to depend on other write operation
finishing before it (including the inter kernel write). This means the
pipe needs to know the dependency of kernel execution. For this reason,
the host pipe read and write ocl function cannot be called with no dep
event. therefore, it is implemented with handler , which is aware of the
event that it is supposed to wait upon. This is done in the "Register
new command group .." commit.

6. Unit test
    - mock a fake device image.
    - register the fake device image
    - register fake pipe with some name you specified
- fake the opencl functionality, this can be done with
unittest::PiMock::redefine

---------

Co-authored-by: Sherry Yuan <sherry.yuan@intel.com>
Co-authored-by: Ho, Robert <robert.ho@intel.com>

oneAPI DPC++ Compiler dependencies

29 Mar 07:46
cb91c23
Compare
Choose a tag to compare

This release contains OpenCL RT for Intel CPU and FPGA emulator used for oneAPI DPC++ Compiler and runtime validation
Please, see the runtime installation guide here.

DPC++ daily 2023-03-29

29 Mar 11:24
cb91c23
Compare
Choose a tag to compare
Pre-release
[SYCL] Make joint_reduce work with sub_group (#8786)

Note: the unqualified name lookup of joint_reduce in the overload of
joint_reduce without an init param was not finding the overload of
joint_reduce with an init param (because that declaration was located
after it), so it searched for joint_reduce via ADL. With sycl::group,
ADL can find both overloads of joint_reduce, but with sycl::sub_group =
sycl::ext::oneapi::sub_group, ADL finds no joint_reduce in
sycl::ext::oneapi.

Fixes intel/llvm#8348

---------

Signed-off-by: Cai, Justin <justin.cai@intel.com>

DPC++ daily 2023-03-28

28 Mar 18:26
4bf87d2
Compare
Choose a tag to compare
Pre-release
[SYCL] Do not track allocation if we don't own the handle (#8792)

If we don't own level zero handle of the pi_mem then we can't control
deallocation of that memory so there is no point of keeping track of the
memory allocation for deferred memory release. More over currently level
zero context is leaked because we increase its ref count at the point
where we start tracking memory but don't decrement that ref count in
USMFreeHelper. This PR fixes that problem.