Skip to content

[SYCL][Bindless][4/4] Add tests for experimental implementation of SYCL bindless images extension #10500

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

Seanst98
Copy link
Contributor

@Seanst98 Seanst98 commented Jul 20, 2023

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.

This will not compile or run until PR3 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

Authors

Co-authored-by: Isaac Ault isaac.ault@codeplay.com
Co-authored-by: Hugh Bird hugh.bird@codeplay.com
Co-authored-by: Duncan Brawley duncan.brawley@codeplay.com
Co-authored-by: Przemek Malon przemek.malon@codeplay.com
Co-authored-by: Chedy Najjar chedy.najjar@codeplay.com
Co-authored-by: Sean Stirling sean.stirling@codeplay.com
Co-authored-by: Peter Zuzek peter@codeplay.com

@Seanst98 Seanst98 requested review from a team as code owners July 20, 2023 20:08
@Seanst98 Seanst98 requested a review from dm-vodopyanov July 20, 2023 20:09
@Seanst98 Seanst98 force-pushed the codeplay/bindless_images_tests branch from 6dd2eba to 07ee5ee Compare July 21, 2023 12:20
SYCL Unbound Team and others added 2 commits July 21, 2023 14:17
…s images extension

This commit stands as the fourth, and final, commit of four to make code
review easier, mostly covering the changes made to the e2e tests with the
additional tests for bindless images.

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 <isaac.ault@codeplay.com>
Co-authored-by: Hugh Bird <hugh.bird@codeplay.com>
Co-authored-by: Duncan Brawley <duncan.brawley@codeplay.com>
Co-authored-by: Przemek Malon <przemek.malon@codeplay.com>
Co-authored-by: Chedy Najjar <chedy.najjar@codeplay.com>
Co-authored-by: Sean Stirling <sean.stirling@codeplay.com>
Co-authored-by: Peter Zuzek <peter@codeplay.com>

Implement revision 4 of the bindless images extension proposal:
intel#9842
@Seanst98 Seanst98 force-pushed the codeplay/bindless_images_tests branch from 07ee5ee to 9b4dcb4 Compare July 21, 2023 13:18
@Seanst98 Seanst98 changed the title Draft: [SYCL][Bindless][4/4] Add experimental implementation of SYCL bindless images extension [SYCL][Bindless][4/4] Add experimental implementation of SYCL bindless images extension Jul 21, 2023
@dm-vodopyanov
Copy link
Contributor

@Seanst98 as the third patch was recently merged to intel/llvm, could you please update the branch with recent changes from sycl branch?
Please note that during code review it is not recommended to do a force-push, as code reviewer loses information about what was changed from commit to commit.

@Seanst98 Seanst98 temporarily deployed to aws July 26, 2023 15:17 — with GitHub Actions Inactive
@Seanst98 Seanst98 temporarily deployed to aws July 26, 2023 15:57 — with GitHub Actions Inactive
@Seanst98 Seanst98 temporarily deployed to aws July 26, 2023 17:06 — with GitHub Actions Inactive
@Seanst98 Seanst98 temporarily deployed to aws July 26, 2023 17:49 — with GitHub Actions Inactive
@Seanst98
Copy link
Contributor Author

ping @intel/sycl-graphs-reviewers @intel/dpcpp-tools-reviewers @intel/llvm-reviewers-runtime @dm-vodopyanov

@AlexeySachkov AlexeySachkov removed the request for review from a team July 28, 2023 13:09
@Bensuo Bensuo removed the request for review from a team July 31, 2023 08:52
@Seanst98 Seanst98 temporarily deployed to aws July 31, 2023 14:20 — with GitHub Actions Inactive
@Seanst98 Seanst98 temporarily deployed to aws July 31, 2023 14:29 — with GitHub Actions Inactive
@Seanst98 Seanst98 temporarily deployed to aws July 31, 2023 15:10 — with GitHub Actions Inactive
Copy link
Contributor

@steffenlarsen steffenlarsen left a comment

Choose a reason for hiding this comment

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

Tests look sound but I have a couple nits and requests. Also, would it be possible to move some of the common code into a common header? Even if it is just some of the reference/input data initialization and/or validation, it would reduce the maintenance surface and lets the reader focus on the meat of the tests.


} catch (sycl::exception e) {
std::cerr << "SYCL exception caught! : " << e.what() << "\n";
exit(-1);
Copy link
Contributor

Choose a reason for hiding this comment

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

Why exit and not just return? We are in the main function after all.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

@Seanst98 Seanst98 changed the title [SYCL][Bindless][4/4] Add experimental implementation of SYCL bindless images extension [SYCL][Bindless][4/4] Add tests for experimental implementation of SYCL bindless images extension Aug 1, 2023
@Seanst98
Copy link
Contributor Author

Seanst98 commented Aug 1, 2023

@steffenlarsen

Tests look sound but I have a couple nits and requests. Also, would it be possible to move some of the common code into a common header? Even if it is just some of the reference/input data initialization and/or validation, it would reduce the maintenance surface and lets the reader focus on the meat of the tests.

It is possible, however, in the timeframe that we have (if we want to get this merged and cherry-picked) then it wouldn't be possible.

@Seanst98 Seanst98 temporarily deployed to aws August 1, 2023 13:49 — with GitHub Actions Inactive
@Seanst98 Seanst98 temporarily deployed to aws August 1, 2023 14:32 — with GitHub Actions Inactive
@Seanst98 Seanst98 temporarily deployed to aws August 1, 2023 15:23 — with GitHub Actions Inactive
Copy link
Contributor

@steffenlarsen steffenlarsen left a comment

Choose a reason for hiding this comment

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

LGTM! Unifying some of the common stuff I'm okay with as a follow-up. I don't think there's a lot of it anyway.

@Seanst98 Seanst98 temporarily deployed to aws August 1, 2023 16:05 — with GitHub Actions Inactive
@steffenlarsen steffenlarsen merged commit 580ab4d into intel:sycl Aug 2, 2023
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 isaac.ault@codeplay.com
Co-authored-by: Hugh Bird hugh.bird@codeplay.com
Co-authored-by: Duncan Brawley duncan.brawley@codeplay.com
Co-authored-by: Przemek Malon przemek.malon@codeplay.com
Co-authored-by: Chedy Najjar chedy.najjar@codeplay.com
Co-authored-by: Sean Stirling sean.stirling@codeplay.com
Co-authored-by: Peter Zuzek peter@codeplay.com
Co-authored-by: SYCL Unbound Team <sycl.unbound@codeplay.com>
@Seanst98 Seanst98 deleted the codeplay/bindless_images_tests 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.

3 participants