Skip to content

[SYCL][Graph] L0 Backend support for SYCL Graphs (2/4) #9992

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 19 commits into from
Jul 4, 2023

Conversation

Bensuo
Copy link
Contributor

@Bensuo Bensuo commented Jun 20, 2023

Level Zero Backend Support for SYCL Graphs

This is the second patch of a series that adds support for an experimental command graph extension

A snapshot of the complete work can be seen in draft PR #9375 which has support all the specification defined ways of
adding nodes and edges to the graph, including both Explicit and Record & Replay graph construction. The two types of nodes currently implemented are kernel execution and memcpy commands.

See https://github.com/reble/llvm#implementation-status for the status of our total work.

Scope

This second patch focuses on the required PI/UR support for the experimental command-buffer feature in the Level Zero adapter:

  • PI stubs for all adapters to enable compilation, no functionality.
  • Command-buffer implementation for the Level Zero UR adapter.
  • Stubs for the CUDA UR adapter to enable compilation, no functionality.

Following Split PRs

Future follow-up PRs with the remainder of our work on the extension will include:

  • Hooking up backend to graphs runtime, bugfixes and other feature additions, will add symbols but not break the ABI. (3/4)
  • Add end-to-end tests for SYCL Graph extension. (4/4)
  • NFC changes - Design doc and codeowner update.

Authors

Co-authored-by: Pablo Reble [email protected]
Co-authored-by: Julian Miller [email protected]
Co-authored-by: Ben Tracy [email protected]
Co-authored-by: Ewan Crawford [email protected]
Co-authored-by: Maxime France-Pillois [email protected]

@Bensuo Bensuo temporarily deployed to aws June 21, 2023 10:00 — with GitHub Actions Inactive
@Bensuo Bensuo temporarily deployed to aws June 21, 2023 10:43 — with GitHub Actions Inactive
- Squashed commit of command-buffer UR changes
- Level Zero implementation
- Stubs for all other adapters
@Bensuo Bensuo force-pushed the sycl-graph-patch-2 branch from 00e8f74 to 028657a Compare June 21, 2023 11:46
@Bensuo Bensuo temporarily deployed to aws June 21, 2023 12:10 — with GitHub Actions Inactive
@Bensuo Bensuo temporarily deployed to aws June 21, 2023 13:09 — with GitHub Actions Inactive
@Bensuo Bensuo temporarily deployed to aws June 21, 2023 13:42 — with GitHub Actions Inactive
@Bensuo Bensuo temporarily deployed to aws June 21, 2023 14:19 — with GitHub Actions Inactive
@Bensuo Bensuo marked this pull request as ready for review June 21, 2023 16:20
@Bensuo Bensuo requested review from a team as code owners June 21, 2023 16:20
@Bensuo Bensuo requested review from npmiller and bso-intel June 21, 2023 16:20
@Bensuo Bensuo temporarily deployed to aws June 22, 2023 11:27 — with GitHub Actions Inactive
@Bensuo Bensuo temporarily deployed to aws June 22, 2023 12:07 — with GitHub Actions Inactive
@Bensuo Bensuo changed the title [SYCL][Graph] Backend support for SYCL Graphs (2/4) [SYCL][Graph] L0 Backend support for SYCL Graphs (2/4) Jun 22, 2023
Copy link
Contributor

@bader bader left a comment

Choose a reason for hiding this comment

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

I didn't go deep into the code, so just some style comments.

@EwanC EwanC temporarily deployed to aws June 26, 2023 20:05 — with GitHub Actions Inactive
@EwanC EwanC temporarily deployed to aws June 26, 2023 22:15 — with GitHub Actions Inactive
Pulls in changes from #238
which requires bumping the UR commit to
oneapi-src/unified-runtime#644

Co-authored-by: Maxime France-Pillois <[email protected]>
@EwanC EwanC temporarily deployed to aws June 27, 2023 09:26 — with GitHub Actions Inactive
@EwanC EwanC temporarily deployed to aws June 30, 2023 12:51 — with GitHub Actions Inactive
@EwanC
Copy link
Contributor

EwanC commented Jun 30, 2023

Hi @bso-intel, would you be able to review this on behalf of @intel/llvm-reviewers-runtime.

Could someone from @intel/dpcpp-esimd-reviewers please also review this PR.

@EwanC EwanC temporarily deployed to aws June 30, 2023 14:13 — with GitHub Actions Inactive
Copy link
Contributor

@sarnex sarnex left a comment

Choose a reason for hiding this comment

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

esimd lgtm

@EwanC EwanC temporarily deployed to aws June 30, 2023 17:00 — with GitHub Actions Inactive
@EwanC EwanC temporarily deployed to aws July 3, 2023 08:31 — with GitHub Actions Inactive
@EwanC EwanC temporarily deployed to aws July 3, 2023 09:53 — with GitHub Actions Inactive
@EwanC EwanC requested a review from steffenlarsen July 3, 2023 10:14
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.

Small comments, but otherwise LGTM!

@EwanC EwanC temporarily deployed to aws July 4, 2023 08:14 — with GitHub Actions Inactive
@EwanC EwanC temporarily deployed to aws July 4, 2023 08:53 — 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.

Failed Tests (1):
SYCL :: ESIMD/accessor_local.cpp - Reported in #10138 and has since been disabled.

@steffenlarsen steffenlarsen merged commit 96a6050 into intel:sycl Jul 4, 2023
EwanC added a commit to EwanC/llvm that referenced this pull request Jul 4, 2023
Fixes error found in [post-commit CI](https://github.com/intel/llvm/actions/runs/5454766342/jobs/9925392005)
after the merge of intel#9992

```
 /__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5635:24: error: unused parameter 'sync_point' [-Werror,-Wunused-parameter]
 5635 |     pi_ext_sync_point *sync_point) {
      |                        ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:12: error: unused parameter 'dst_row_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |            ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:34: error: unused parameter 'dst_slice_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |                                  ^
3 errors generated.
```
steffenlarsen pushed a commit that referenced this pull request Jul 4, 2023
Fixes error found in [post-commit
CI](https://github.com/intel/llvm/actions/runs/5454766342/jobs/9925392005)
after the merge of #9992

```
 /__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5635:24: error: unused parameter 'sync_point' [-Werror,-Wunused-parameter]
 5635 |     pi_ext_sync_point *sync_point) {
      |                        ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:12: error: unused parameter 'dst_row_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |            ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:34: error: unused parameter 'dst_slice_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |                                  ^
3 errors generated.
```
steffenlarsen pushed a commit that referenced this pull request Jul 17, 2023
…hs (3/4) (#10033)

# Backend integration and feature additions for SYCL Graphs
This is the third patch of a series that adds support for an
[experimental command graph
extension](#5626)

A snapshot of the complete work can be seen in draft PR #9375 which has
support all the specification defined ways of
adding nodes and edges to the graph, including both Explicit and Record
& Replay graph construction. The two types of nodes currently
implemented are kernel execution and memcpy commands.

See https://github.com/reble/llvm#implementation-status for the status
of our total work.

## Scope
This third patch focuses on integrating the graphs runtime with the
backend support added in #9992 as well as any remaining runtime features
and bug fixes, and should include no ABI-breaking changes:
* Graphs runtime changes to use PI/UR command-buffers.
* Various improvements to the Graphs runtime classes.
* New memory manager methods for appending copies to a command-buffer.
* Changes to the Scheduler and related CG classes to enable Graphs.
* Device info query for command-graph support.
* Minor changes to some runtime classes to enable Graphs.

## Following Split PRs
Future follow-up PRs with the remainder of our work on the extension
will include:
* Add end-to-end tests for SYCL Graph extension. (4/4)
* NFC changes - Design doc and codeowner update.

## Authors
Co-authored-by: Pablo Reble <[email protected]>
Co-authored-by: Julian Miller <[email protected]>
Co-authored-by: Ben Tracy <[email protected]>
Co-authored-by: Ewan Crawford <[email protected]>
Co-authored-by: Maxime France-Pillois
<[email protected]>
veselypeta pushed a commit to veselypeta/llvm that referenced this pull request Sep 21, 2023
# Level Zero Backend Support for SYCL Graphs
This is the second patch of a series that adds support for an
[experimental command graph
extension](intel#5626)

A snapshot of the complete work can be seen in draft PR intel#9375 which has
support all the specification defined ways of
adding nodes and edges to the graph, including both Explicit and Record
& Replay graph construction. The two types of nodes currently
implemented are kernel execution and memcpy commands.

See https://github.com/reble/llvm#implementation-status for the status
of our total work.

## Scope
This second patch focuses on the required PI/UR support for the
experimental command-buffer feature in the Level Zero adapter:
* PI stubs for all adapters to enable compilation, no functionality.
* Command-buffer implementation for the Level Zero UR adapter.
* Stubs for the CUDA UR adapter to enable compilation, no functionality.

## Following Split PRs
Future follow-up PRs with the remainder of our work on the extension
will include:
* Hooking up backend to graphs runtime, bugfixes and other feature
additions, will add symbols but not break the ABI. (3/4)
* Add end-to-end tests for SYCL Graph extension. (4/4)
* NFC changes - Design doc and codeowner update.

## Authors
Co-authored-by: Pablo Reble <[email protected]>
Co-authored-by: Julian Miller <[email protected]>
Co-authored-by: Ben Tracy <[email protected]>
Co-authored-by: Ewan Crawford <[email protected]>
Co-authored-by: Maxime France-Pillois
<[email protected]>

---------

Co-authored-by: Ewan Crawford <[email protected]>
Co-authored-by: Maxime France-Pillois <[email protected]>
veselypeta pushed a commit to veselypeta/llvm that referenced this pull request Sep 21, 2023
…hs (3/4) (intel#10033)

# Backend integration and feature additions for SYCL Graphs
This is the third patch of a series that adds support for an
[experimental command graph
extension](intel#5626)

A snapshot of the complete work can be seen in draft PR intel#9375 which has
support all the specification defined ways of
adding nodes and edges to the graph, including both Explicit and Record
& Replay graph construction. The two types of nodes currently
implemented are kernel execution and memcpy commands.

See https://github.com/reble/llvm#implementation-status for the status
of our total work.

## Scope
This third patch focuses on integrating the graphs runtime with the
backend support added in intel#9992 as well as any remaining runtime features
and bug fixes, and should include no ABI-breaking changes:
* Graphs runtime changes to use PI/UR command-buffers.
* Various improvements to the Graphs runtime classes.
* New memory manager methods for appending copies to a command-buffer.
* Changes to the Scheduler and related CG classes to enable Graphs.
* Device info query for command-graph support.
* Minor changes to some runtime classes to enable Graphs.

## Following Split PRs
Future follow-up PRs with the remainder of our work on the extension
will include:
* Add end-to-end tests for SYCL Graph extension. (4/4)
* NFC changes - Design doc and codeowner update.

## Authors
Co-authored-by: Pablo Reble <[email protected]>
Co-authored-by: Julian Miller <[email protected]>
Co-authored-by: Ben Tracy <[email protected]>
Co-authored-by: Ewan Crawford <[email protected]>
Co-authored-by: Maxime France-Pillois
<[email protected]>
fabiomestre pushed a commit to fabiomestre/llvm that referenced this pull request Sep 26, 2023
# Level Zero Backend Support for SYCL Graphs
This is the second patch of a series that adds support for an
[experimental command graph
extension](intel#5626)

A snapshot of the complete work can be seen in draft PR intel#9375 which has
support all the specification defined ways of
adding nodes and edges to the graph, including both Explicit and Record
& Replay graph construction. The two types of nodes currently
implemented are kernel execution and memcpy commands.

See https://github.com/reble/llvm#implementation-status for the status
of our total work.

## Scope
This second patch focuses on the required PI/UR support for the
experimental command-buffer feature in the Level Zero adapter:
* PI stubs for all adapters to enable compilation, no functionality.
* Command-buffer implementation for the Level Zero UR adapter.
* Stubs for the CUDA UR adapter to enable compilation, no functionality.

## Following Split PRs
Future follow-up PRs with the remainder of our work on the extension
will include:
* Hooking up backend to graphs runtime, bugfixes and other feature
additions, will add symbols but not break the ABI. (3/4)
* Add end-to-end tests for SYCL Graph extension. (4/4)
* NFC changes - Design doc and codeowner update.

## Authors
Co-authored-by: Pablo Reble <[email protected]>
Co-authored-by: Julian Miller <[email protected]>
Co-authored-by: Ben Tracy <[email protected]>
Co-authored-by: Ewan Crawford <[email protected]>
Co-authored-by: Maxime France-Pillois
<[email protected]>

---------

Co-authored-by: Ewan Crawford <[email protected]>
Co-authored-by: Maxime France-Pillois <[email protected]>
fabiomestre pushed a commit to fabiomestre/llvm that referenced this pull request Sep 26, 2023
Fixes error found in [post-commit
CI](https://github.com/intel/llvm/actions/runs/5454766342/jobs/9925392005)
after the merge of intel#9992

```
 /__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5635:24: error: unused parameter 'sync_point' [-Werror,-Wunused-parameter]
 5635 |     pi_ext_sync_point *sync_point) {
      |                        ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:12: error: unused parameter 'dst_row_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |            ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:34: error: unused parameter 'dst_slice_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |                                  ^
3 errors generated.
```
fabiomestre pushed a commit to fabiomestre/unified-runtime that referenced this pull request Sep 26, 2023
Fixes error found in [post-commit
CI](https://github.com/intel/llvm/actions/runs/5454766342/jobs/9925392005)
after the merge of intel/llvm#9992

```
 /__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5635:24: error: unused parameter 'sync_point' [-Werror,-Wunused-parameter]
 5635 |     pi_ext_sync_point *sync_point) {
      |                        ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:12: error: unused parameter 'dst_row_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |            ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:34: error: unused parameter 'dst_slice_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |                                  ^
3 errors generated.
```
fabiomestre pushed a commit to oneapi-src/unified-runtime that referenced this pull request Sep 27, 2023
Fixes error found in [post-commit
CI](https://github.com/intel/llvm/actions/runs/5454766342/jobs/9925392005)
after the merge of intel/llvm#9992

```
 /__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5635:24: error: unused parameter 'sync_point' [-Werror,-Wunused-parameter]
 5635 |     pi_ext_sync_point *sync_point) {
      |                        ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:12: error: unused parameter 'dst_row_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |            ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:34: error: unused parameter 'dst_slice_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |                                  ^
3 errors generated.
```
omarahmed1111 pushed a commit to omarahmed1111/unified-runtime that referenced this pull request Oct 23, 2023
Fixes error found in [post-commit
CI](https://github.com/intel/llvm/actions/runs/5454766342/jobs/9925392005)
after the merge of intel/llvm#9992

```
 /__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5635:24: error: unused parameter 'sync_point' [-Werror,-Wunused-parameter]
 5635 |     pi_ext_sync_point *sync_point) {
      |                        ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:12: error: unused parameter 'dst_row_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |            ^
/__w/llvm/llvm/src/sycl/plugins/hip/pi_hip.cpp:5691:34: error: unused parameter 'dst_slice_pitch' [-Werror,-Wunused-parameter]
 5691 |     size_t dst_row_pitch, size_t dst_slice_pitch,
      |                                  ^
3 errors generated.
```
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.

8 participants