Skip to content

[SYCL] Implements getNative() interoperability for Level Zero #1723

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Jul 2, 2020

Conversation

againull
Copy link
Contributor

@againull againull commented May 20, 2020

Commit includes:

  • New backend which implements interoperability for Level Zero. L0 interop handler getters and "make" functions for the following objects are implemented: platform, device, queue, program, accessor.
  • getNative() interoperability for the platform and program.

Changes to ABI are non-breaking (new symbols are exported). Changed version of the sycl library accordingly.

Author: Sergey V Maslov sergey.v.maslov@intel.com
Signed-off-by: Artur Gainullin artur.gainullin@intel.com

@againull againull requested review from kbobrovs, pvchupin, smaslov-intel and a team as code owners May 20, 2020 07:21
@againull againull requested a review from s-kanaev May 20, 2020 07:21
@againull
Copy link
Contributor Author

Changes in this PR are on top of #1718.
Please review only the last commit: "[SYCL] Implements getNative() interoperability for Level Zero"

bader pushed a commit that referenced this pull request Jun 17, 2020
…ion (#1846)

The implementation is following https://github.com/KhronosGroup/SYCL-Shared/blob/master/proposals/sycl_generalization.md.

It is OpenCL centric, and a Level-Zero counterpart is coming here: #1723

An important "side-effect" is that plugins are initialized from these APIs and not only from get_platforms() in the current state.

Signed-off-by: Sergey V Maslov <sergey.v.maslov@intel.com>
@againull
Copy link
Contributor Author

Sorry for the force push. I just rebased without any changes to the patch, otherwise there are too many commits which were already merged and cause confusion.

* New backend which implements interoperability for Level Zero. L0 interop
handler getters and "make" functions for the following objects are
implemented: platform, device, queue, program, accessor.
* getNative() interoperability for the platform and program.

Changes to ABI are non-breaking (new symbols are exported). Changed
version of the sycl library accordingly.

Author: Sergey V Maslov <sergey.v.maslov@intel.com>
Signed-off-by: Artur Gainullin <artur.gainullin@intel.com>
@againull
Copy link
Contributor Author

@keryell Sorry, marked your comments as resolved because they are regarding the plugin which is not a part of this PR.

@againull againull requested a review from s-kanaev June 26, 2020 18:26
@againull
Copy link
Contributor Author

@s-kanaev Could you please review.


#pragma once

//#include <ze_api.h> This should be included from user code
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be aligned with CL/sycl/backend/opencl.hpp. It includes (though, indirectly) the CL/cl.h file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

@againull againull requested a review from s-kanaev June 30, 2020 23:53
s-kanaev
s-kanaev previously approved these changes Jul 1, 2020
@againull againull merged commit a51c333 into intel:sycl Jul 2, 2020
@againull againull deleted the native branch December 3, 2022 00:02
KornevNikita pushed a commit to KornevNikita/llvm that referenced this pull request Feb 2, 2023
…ecorations (intel#1723)

It was found that the decorated variables (results of ptr.annotation intrinsic) are not used in further instructions unlike the input source. The issue is present for the reverse translation of multiple UserSemantic decorations.

This change fixes the reverse translation of multiple ptr.annotation intrinsics on the same class field. With this, the result of intrinsic is not lost and actually reused in further intrinsics and instructions.

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@308daff
KornevNikita pushed a commit to KornevNikita/llvm that referenced this pull request Feb 20, 2023
…ecorations (intel#1723)

It was found that the decorated variables (results of ptr.annotation intrinsic) are not used in further instructions unlike the input source. The issue is present for the reverse translation of multiple UserSemantic decorations.

This change fixes the reverse translation of multiple ptr.annotation intrinsics on the same class field. With this, the result of intrinsic is not lost and actually reused in further intrinsics and instructions.

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@308daff
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants