Skip to content

[SYCL][Bindless][3/4] Add experimental implementation of SYCL bindless images extension #10454

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

Conversation

przemektmalon
Copy link
Contributor

This commit stands as the third commit of four to make code review easier, mostly covering the changes made to the user-facing SYCL API for the bindless images extension proposal.

Overview

The bindless images extension provides a new interface for allocating, creating, and accessing images in SYCL. Image memory allocation is seperated from image handle creation, and image handles can be passed to kernels without requesting access through accessors. This approach provides much more flexibility to the user, as well as enabling programs to implement features that were impossible to implement using standard SYCL images, such as a texture atlas. In addition to providing a new interface for images, this extension also provides initial experimental support for importing external memory into SYCL.

Following Split PRs

  • [4/4] Add tests

Authors

Co-authored-by: Isaac Ault [email protected]
Co-authored-by: Hugh Bird [email protected]
Co-authored-by: Duncan Brawley [email protected]
Co-authored-by: Przemek Malon [email protected]
Co-authored-by: Chedy Najjar [email protected]
Co-authored-by: Sean Stirling [email protected]
Co-authored-by: Peter Zuzek [email protected]

@przemektmalon przemektmalon requested a review from a team as a code owner July 18, 2023 15:12
@przemektmalon przemektmalon requested a review from againull July 18, 2023 15:12
SYCL Unbound Team and others added 3 commits July 18, 2023 16:21
…s images extension

This commit stands as the third commit of four to make code review easier,
mostly covering the changes made to the user-facing SYCL API for the
bindless images extension.

The bindless images extension provides a new interface for allocating,
creating, and accessing images in SYCL. Image memory allocation is
seperated from image handle creation, and image handles can be passed
to kernels without requesting access through accessors. This approach
provides much more flexibility to the user, as well as enabling programs
to implement features that were impossible to implement using standard
SYCL images, such as a texture atlas. In addition to providing a new
interface for images, this extension also provides initial experimental
support for importing external memory into SYCL.

Co-authored-by: Isaac Ault <[email protected]>
Co-authored-by: Hugh Bird <[email protected]>
Co-authored-by: Duncan Brawley <[email protected]>
Co-authored-by: Przemek Malon <[email protected]>
Co-authored-by: Chedy Najjar <[email protected]>
Co-authored-by: Sean Stirling <[email protected]>
Co-authored-by: Peter Zuzek <[email protected]>

Implement revision 4 of the bindless images extension proposal: intel#9842
* Added missing `__SYCL_EXPORT`
* Use fixed width `pi_uint64` instead of `unsigned long`
* Added missing headers and forward declarations
@przemektmalon przemektmalon force-pushed the codeplay/bindless_images_sycl branch from bbe79a5 to 965eafa Compare July 18, 2023 15:32
@przemektmalon przemektmalon temporarily deployed to aws July 18, 2023 15:42 — with GitHub Actions Inactive
@przemektmalon
Copy link
Contributor Author

Please note that this PR depends on PR 2/4 to compile, hence CI won't pass until it that is merged.

@ProGTX ProGTX requested a review from a team as a code owner July 18, 2023 17:24
@ProGTX ProGTX temporarily deployed to aws July 18, 2023 17:44 — with GitHub Actions Inactive
@ProGTX ProGTX temporarily deployed to aws July 18, 2023 18:36 — with GitHub Actions Inactive
@ProGTX ProGTX requested a review from a team as a code owner July 19, 2023 07:46
@ProGTX ProGTX temporarily deployed to aws July 19, 2023 08:08 — with GitHub Actions Inactive
@ProGTX ProGTX temporarily deployed to aws July 19, 2023 09:01 — with GitHub Actions Inactive
@ProGTX ProGTX temporarily deployed to aws July 19, 2023 09:41 — with GitHub Actions Inactive
Copy link
Contributor

@EwanC EwanC left a comment

Choose a reason for hiding this comment

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

graph_impl.hpp changes LGTM. I tried this PR locally against our unmerged tests and it didn't regress anything.

@ProGTX ProGTX temporarily deployed to aws July 19, 2023 17:51 — with GitHub Actions Inactive
@ProGTX ProGTX temporarily deployed to aws July 19, 2023 18:23 — with GitHub Actions Inactive
@ProGTX ProGTX temporarily deployed to aws July 19, 2023 19:27 — with GitHub Actions Inactive
@jbrodman
Copy link
Contributor

Ping @intel/llvm-reviewers-runtime.

@przemektmalon przemektmalon temporarily deployed to aws July 21, 2023 13:37 — with GitHub Actions Inactive
@przemektmalon przemektmalon temporarily deployed to aws July 21, 2023 14:16 — with GitHub Actions Inactive
@jbrodman
Copy link
Contributor

Where are we at on this? Outstanding test failures?

@steffenlarsen
Copy link
Contributor

Where are we at on this? Outstanding test failures?

That, we need @intel/dpcpp-tools-reviewers approval, and there seem to be merge conflicts that need to be resolved.

Copy link
Contributor

@AlexeySachkov AlexeySachkov left a comment

Choose a reason for hiding this comment

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

SYCLLowerIR changes LGTM. @maarquitos14: FYI

@przemektmalon przemektmalon temporarily deployed to aws July 25, 2023 08:54 — with GitHub Actions Inactive
@przemektmalon przemektmalon temporarily deployed to aws July 25, 2023 09:33 — with GitHub Actions Inactive
Copy link
Contributor

@maarquitos14 maarquitos14 left a comment

Choose a reason for hiding this comment

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

Changes related to device traits and device config file look good to me.

@przemektmalon przemektmalon temporarily deployed to aws July 25, 2023 10:24 — with GitHub Actions Inactive
@przemektmalon przemektmalon temporarily deployed to aws July 25, 2023 11:03 — with GitHub Actions Inactive
@Seanst98
Copy link
Contributor

The fourth PR has been posted and can be reviewed alongside this PR.

@przemektmalon przemektmalon temporarily deployed to aws July 25, 2023 14:34 — with GitHub Actions Inactive
@przemektmalon przemektmalon temporarily deployed to aws July 25, 2023 15:13 — with GitHub Actions Inactive
@steffenlarsen steffenlarsen merged commit b1aab04 into intel:sycl Jul 25, 2023
@dm-vodopyanov
Copy link
Contributor

Seanst98 added a commit to codeplaysoftware/intel-llvm-mirror that referenced this pull request Jul 26, 2023
Fix compiler error/warnings related to unused variables/parameters

Post-commit fix for PR: intel#10454
@Seanst98
Copy link
Contributor

aelovikov-intel pushed a commit that referenced this pull request Jul 26, 2023
Fix compiler error/warnings related to unused variables/parameters

Post-commit fix for PR: #10454

Co-authored-by: Przemek Malon <[email protected]>
steffenlarsen pushed a commit that referenced this pull request Aug 2, 2023
…CL bindless images extension (#10500)

# Experimental Implementation of SYCL Bindless Images Extension

This commit stands as the fourth, and final, commit of four to make code
review easier, covering the additional tests for bindless images to the
e2e test suite. Implementing [revision 4 of the bindless images
extension proposal](#9842).

This will not compile or run until
[PR3](#10454) has been merged.
However, it can be reviewed simultaneously with PR3.

## Overview

The bindless images extension provides a new interface for allocating,
creating, and accessing images in SYCL. Image memory allocation is
seperated from image handle creation, and image handles can be passed to
kernels without requesting access through accessors. This approach
provides much more flexibility to the user, as well as enabling programs
to implement features that were impossible to implement using standard
SYCL images, such as a texture atlas. In addition to providing a new
interface for images, this extension also provides initial experimental
support for importing external memory into SYCL.

## Previous PRs
* [1/4] [libclc](#9808)
* [2/4] [PI/UR](#10112)
* [3/4] [SYCL API](#10454)
* [4/4] Tests <--- This one

## Authors
Co-authored-by: Isaac Ault [email protected]
Co-authored-by: Hugh Bird [email protected]
Co-authored-by: Duncan Brawley [email protected]
Co-authored-by: Przemek Malon [email protected]
Co-authored-by: Chedy Najjar [email protected]
Co-authored-by: Sean Stirling [email protected]
Co-authored-by: Peter Zuzek [email protected]
Co-authored-by: SYCL Unbound Team <[email protected]>
mdtoguchi pushed a commit to mdtoguchi/llvm that referenced this pull request Oct 18, 2023
…s images extension (intel#10454)

This commit stands as the third commit of four to make code review
easier, mostly covering the changes made to the user-facing SYCL API for
the [bindless images extension
proposal](intel#9842).

### Overview

The bindless images extension provides a new interface for allocating,
creating, and accessing images in SYCL. Image memory allocation is
seperated from image handle creation, and image handles can be passed to
kernels without requesting access through accessors. This approach
provides much more flexibility to the user, as well as enabling programs
to implement features that were impossible to implement using standard
SYCL images, such as a texture atlas. In addition to providing a new
interface for images, this extension also provides initial experimental
support for importing external memory into SYCL.

### Following Split PRs

- [4/4] Add tests

### Authors

Co-authored-by: Isaac Ault <[email protected]>
Co-authored-by: Hugh Bird <[email protected]>
Co-authored-by: Duncan Brawley <[email protected]>
Co-authored-by: Przemek Malon <[email protected]>
Co-authored-by: Chedy Najjar <[email protected]>
Co-authored-by: Sean Stirling <[email protected]>
Co-authored-by: Peter Zuzek <[email protected]>
mdtoguchi pushed a commit to mdtoguchi/llvm that referenced this pull request Oct 18, 2023
Fix compiler error/warnings related to unused variables/parameters

Post-commit fix for PR: intel#10454

Co-authored-by: Przemek Malon <[email protected]>
mdtoguchi pushed a commit to mdtoguchi/llvm that referenced this pull request Oct 18, 2023
…CL bindless images extension (intel#10500)

# Experimental Implementation of SYCL Bindless Images Extension

This commit stands as the fourth, and final, commit of four to make code
review easier, covering the additional tests for bindless images to the
e2e test suite. Implementing [revision 4 of the bindless images
extension proposal](intel#9842).

This will not compile or run until
[PR3](intel#10454) has been merged.
However, it can be reviewed simultaneously with PR3.

## Overview

The bindless images extension provides a new interface for allocating,
creating, and accessing images in SYCL. Image memory allocation is
seperated from image handle creation, and image handles can be passed to
kernels without requesting access through accessors. This approach
provides much more flexibility to the user, as well as enabling programs
to implement features that were impossible to implement using standard
SYCL images, such as a texture atlas. In addition to providing a new
interface for images, this extension also provides initial experimental
support for importing external memory into SYCL.

## Previous PRs
* [1/4] [libclc](intel#9808)
* [2/4] [PI/UR](intel#10112)
* [3/4] [SYCL API](intel#10454)
* [4/4] Tests <--- This one

## Authors
Co-authored-by: Isaac Ault [email protected]
Co-authored-by: Hugh Bird [email protected]
Co-authored-by: Duncan Brawley [email protected]
Co-authored-by: Przemek Malon [email protected]
Co-authored-by: Chedy Najjar [email protected]
Co-authored-by: Sean Stirling [email protected]
Co-authored-by: Peter Zuzek [email protected]
Co-authored-by: SYCL Unbound Team <[email protected]>
@Seanst98 Seanst98 deleted the codeplay/bindless_images_sycl branch January 31, 2024 12:03
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.

9 participants