Skip to content

[SYCL][COMPAT] SYCLcompat dim and defs headers #9976

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 10 commits into from
Aug 9, 2023

Conversation

Alcpz
Copy link
Contributor

@Alcpz Alcpz commented Jun 19, 2023

This is an implementation of SYCLcompat, the stand alone library proposed in #9646.
Please, find the documentation there.

SYCLcompat has two primary goals:

  • Improve the adoption of SYCL. This library is designed to provide a familiar programming interface that resembles other popular heterogeneous programming models. By reducing the learning curve, it enables developers to leverage SYCL's power and features more easily.
  • Source-to-Source Translation Support. SYCLcompat is also designed to facilitate automatic source-to-source translation from other heterogeneous programming models to SYCL and offer a more standardized and consistent programming interface. This feature can significantly streamline the migration and integration of existing codebases into the SYCL ecosystem

The PR also includes tests. We were advised to include the tests as part of sycl/unittests, so we added a different mechanism to build them using clang.

As we stated in the docs PR, we are open to any suggestions, concerns, or improvements you may have, so please, let us know if you have any.

@Alcpz Alcpz requested a review from a team as a code owner June 19, 2023 15:23
@Alcpz Alcpz requested a review from aelovikov-intel June 19, 2023 15:23
@Alcpz Alcpz temporarily deployed to aws June 19, 2023 15:38 — with GitHub Actions Inactive
@Alcpz
Copy link
Contributor Author

Alcpz commented Jun 19, 2023

Documentation available in a different PR: #9646

@Alcpz Alcpz temporarily deployed to aws June 19, 2023 16:05 — with GitHub Actions Inactive
@Alcpz Alcpz force-pushed the Alcpz/impl-SYCLcompat branch from a6808ed to 0bcf97c Compare June 19, 2023 16:37
@Alcpz Alcpz temporarily deployed to aws June 19, 2023 16:52 — with GitHub Actions Inactive
@Alcpz Alcpz temporarily deployed to aws June 19, 2023 17:31 — with GitHub Actions Inactive
@Alcpz Alcpz temporarily deployed to aws June 20, 2023 09:44 — with GitHub Actions Inactive
@Alcpz Alcpz force-pushed the Alcpz/impl-SYCLcompat branch from 2b290d9 to cf4388e Compare June 20, 2023 10:55
@Alcpz Alcpz temporarily deployed to aws June 20, 2023 11:11 — with GitHub Actions Inactive
@Alcpz Alcpz temporarily deployed to aws June 20, 2023 11:50 — with GitHub Actions Inactive
@aelovikov-intel
Copy link
Contributor

Should we add a dedicated owner in CODEOWNERS file for this compat library?

@Alcpz Alcpz requested a review from a team as a code owner June 26, 2023 11:12
@Alcpz
Copy link
Contributor Author

Alcpz commented Jun 26, 2023

Should we add a dedicated owner in CODEOWNERS file for this compat library?

@aelovikov-intel I've added sycl/doc/syclcompat/CodeOwners.rst with the code owners for SYCLcompat. We will ask for the review group following this.

@Alcpz Alcpz temporarily deployed to aws June 26, 2023 11:29 — with GitHub Actions Inactive
@Alcpz Alcpz temporarily deployed to aws June 26, 2023 12:10 — with GitHub Actions Inactive
@aelovikov-intel
Copy link
Contributor

Should we add a dedicated owner in CODEOWNERS file for this compat library?

@aelovikov-intel I've added sycl/doc/syclcompat/CodeOwners.rst with the code owners for SYCLcompat. We will ask for the review group following this.

Why not an entry in https://github.com/intel/llvm/blob/sycl/.github/CODEOWNERS?

@Alcpz
Copy link
Contributor Author

Alcpz commented Jun 27, 2023

Should we add a dedicated owner in CODEOWNERS file for this compat library?

@aelovikov-intel I've added sycl/doc/syclcompat/CodeOwners.rst with the code owners for SYCLcompat. We will ask for the review group following this.

Why not an entry in https://github.com/intel/llvm/blob/sycl/.github/CODEOWNERS?

Good point, that is actually better. I will update that once we have a review group set up.

@Alcpz
Copy link
Contributor Author

Alcpz commented Jun 29, 2023

We have requested for the syclcompat-lib-reviewers group. The CODEOWNERS will be updated in a different request.

@Alcpz Alcpz force-pushed the Alcpz/impl-SYCLcompat branch from 81acc0e to 8f00fb0 Compare June 29, 2023 08:30
@Alcpz Alcpz temporarily deployed to aws June 29, 2023 09:25 — with GitHub Actions Inactive
@Alcpz Alcpz temporarily deployed to aws June 29, 2023 10:36 — with GitHub Actions Inactive
@Alcpz
Copy link
Contributor Author

Alcpz commented Jul 11, 2023

@aelovikov-intel the entry in the CODEOWNERS file has been merged.

@bader bader requested a review from a team July 11, 2023 23:19
@Alcpz Alcpz temporarily deployed to aws July 12, 2023 15:51 — with GitHub Actions Inactive
@joeatodd joeatodd temporarily deployed to aws August 7, 2023 15:43 — with GitHub Actions Inactive
@joeatodd joeatodd temporarily deployed to aws August 8, 2023 09:35 — with GitHub Actions Inactive
@joeatodd joeatodd temporarily deployed to aws August 8, 2023 09:35 — with GitHub Actions Inactive
@joeatodd joeatodd temporarily deployed to aws August 8, 2023 13:01 — with GitHub Actions Inactive
@joeatodd joeatodd temporarily deployed to aws August 8, 2023 13:01 — with GitHub Actions Inactive
@joeatodd joeatodd force-pushed the Alcpz/impl-SYCLcompat branch from 7bd264b to 58fa573 Compare August 8, 2023 13:08
Copy link
Contributor

@joeatodd joeatodd left a comment

Choose a reason for hiding this comment

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

LGTM

@joeatodd
Copy link
Contributor

joeatodd commented Aug 8, 2023

We're not really sure why @intel/dpcpp-doc-reviewers was requested for a review (possibly due to link with this PR). Could someone have a quick look? Thanks!

@dm-vodopyanov dm-vodopyanov removed the request for review from a team August 8, 2023 13:25
@dm-vodopyanov
Copy link
Contributor

The PR has all required approvals, waiting for CI completion to be able to merge.

@Alcpz Alcpz force-pushed the Alcpz/impl-SYCLcompat branch from 58fa573 to 3310dad Compare August 9, 2023 09:21
dm-vodopyanov pushed a commit that referenced this pull request Aug 9, 2023
This pull request introduces a new stand alone library, `SYCLcompat`: a
simplified wrapper on top of SYCL, aiming to make it more accessible to
developers familiar with other heterogeneous programming models.

SYCLcompat has two primary goals:

- Improve the adoption of SYCL. This library is designed to provide a
familiar programming interface that resembles other popular
heterogeneous programming models. By reducing the learning curve, it
enables developers to leverage SYCL's power and features more easily.

- Source-to-Source Translation Support. SYCLcompat is also designed to
facilitate automatic source-to-source translation from other
heterogeneous programming models to SYCL and offer a more standardized
and consistent programming interface. This feature can significantly
streamline the migration and integration of existing codebases into the
SYCL ecosystem.

The first commit of this PR includes the proposed library README,
providing explanation of its motivation, public interface, usage
guidelines, and code examples.

A set of PRs will follow, including subsets of the current
implementation including their tests.

We are open to any suggestions, concerns, or improvements you may have,
so please, let us know if you have any.

Edit: Updated from extension to stand alone library.
#9976 `dims.hpp` and `defs.hpp`
headers

---------

Co-authored-by: Gordon Brown <gordon@codeplay.com>
Co-authored-by: Joe Todd <joe.todd@codeplay.com>
Co-authored-by: Pietro Ghiglio <pietro.ghiglio@codeplay.com>
Co-authored-by: Ruyman Reyes <ruyman@codeplay.com>
Co-authored-by: Steffen Larsen <steffen.larsen@intel.com>
Co-authored-by: aelovikov-intel <andrei.elovikov@intel.com>
Co-authored-by: Sami Hatna <sami.hatna@codeplay.com>
Co-authored-by: Joe Todd <joeatodd@users.noreply.github.com>
Co-authored-by: Alexey Bader <alexey.bader@intel.com>
@Alcpz
Copy link
Contributor Author

Alcpz commented Aug 9, 2023

@intel/llvm-gatekeepers CI is finally passing. We think it's ready to merge. Thanks!

@dm-vodopyanov dm-vodopyanov merged commit bedd818 into intel:sycl Aug 9, 2023
@Alcpz Alcpz deleted the Alcpz/impl-SYCLcompat branch August 9, 2023 13:38
Alcpz added a commit to Alcpz/intel-llvm that referenced this pull request Aug 16, 2023
This commit reverts the changes introduced in intel#9976 to sycl/unittests.
It also removes the gtest suite from syclcompat

Rationale: We need device code to test the following syclcompat PRs.

Changes:
- Removed sycl/cmake/modules/AddSYCLLibraryUnittest.cmake as it was only
used here, this has also introduced overhead to people working in the
Unittests CI, it is better for them to remove the need to maintain this.
- Reverted syclcompat changes in sycl/unittests/CMakeLists.txt
- Refactored sycl/unittests/syclcompat to sycl/test-e2e/syclcompat
mdtoguchi pushed a commit to mdtoguchi/llvm that referenced this pull request Oct 18, 2023
This pull request introduces a new stand alone library, `SYCLcompat`: a
simplified wrapper on top of SYCL, aiming to make it more accessible to
developers familiar with other heterogeneous programming models.

SYCLcompat has two primary goals:

- Improve the adoption of SYCL. This library is designed to provide a
familiar programming interface that resembles other popular
heterogeneous programming models. By reducing the learning curve, it
enables developers to leverage SYCL's power and features more easily.

- Source-to-Source Translation Support. SYCLcompat is also designed to
facilitate automatic source-to-source translation from other
heterogeneous programming models to SYCL and offer a more standardized
and consistent programming interface. This feature can significantly
streamline the migration and integration of existing codebases into the
SYCL ecosystem.

The first commit of this PR includes the proposed library README,
providing explanation of its motivation, public interface, usage
guidelines, and code examples.

A set of PRs will follow, including subsets of the current
implementation including their tests.

We are open to any suggestions, concerns, or improvements you may have,
so please, let us know if you have any.

Edit: Updated from extension to stand alone library.
intel#9976 `dims.hpp` and `defs.hpp`
headers

---------

Co-authored-by: Gordon Brown <gordon@codeplay.com>
Co-authored-by: Joe Todd <joe.todd@codeplay.com>
Co-authored-by: Pietro Ghiglio <pietro.ghiglio@codeplay.com>
Co-authored-by: Ruyman Reyes <ruyman@codeplay.com>
Co-authored-by: Steffen Larsen <steffen.larsen@intel.com>
Co-authored-by: aelovikov-intel <andrei.elovikov@intel.com>
Co-authored-by: Sami Hatna <sami.hatna@codeplay.com>
Co-authored-by: Joe Todd <joeatodd@users.noreply.github.com>
Co-authored-by: Alexey Bader <alexey.bader@intel.com>
mdtoguchi pushed a commit to mdtoguchi/llvm that referenced this pull request Oct 18, 2023
This is an implementation of SYCLcompat, the stand alone library
proposed in intel#9646.
Please, find the documentation there.

SYCLcompat has two primary goals:

- Improve the adoption of SYCL. This library is designed to provide a
familiar programming interface that resembles other popular
heterogeneous programming models. By reducing the learning curve, it
enables developers to leverage SYCL's power and features more easily.
- Source-to-Source Translation Support. SYCLcompat is also designed to
facilitate automatic source-to-source translation from other
heterogeneous programming models to SYCL and offer a more standardized
and consistent programming interface. This feature can significantly
streamline the migration and integration of existing codebases into the
SYCL ecosystem

The PR also includes tests. We were advised to include the tests as part
of `sycl/unittests`, so we added a different mechanism to build them
using `clang`.

As we stated in the docs PR, we are open to any suggestions, concerns,
or improvements you may have, so please, let us know if you have any.

---------

Co-authored-by: Gordon Brown <gordon@codeplay.com>
Co-authored-by: Joe Todd <joe.todd@codeplay.com>
Co-authored-by: Pietro Ghiglio <pietro.ghiglio@codeplay.com>
Co-authored-by: Ruyman Reyes <ruyman@codeplay.com>
Co-authored-by: tomflinda <tomflinda@gmail.com>
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.

5 participants