Skip to content
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

Consider interface to expose P2P capabilities #68

Closed
npmiller opened this issue Nov 29, 2022 · 7 comments
Closed

Consider interface to expose P2P capabilities #68

npmiller opened this issue Nov 29, 2022 · 7 comments
Labels
memory Memory allocations/transfers/operations pi DPC++ PI requirement specification Changes or additions to the specification
Milestone

Comments

@npmiller
Copy link
Contributor

Some devices have peer to peer capabilities for memory transfers and/or USM buffers, we may need to consider a way to expose this in the unified runtime.

There's currently an extension proposal in DPC++ to handle this, with some discussion on it:

It's currently only a SYCL level extension but I suspect implementing it would require some changes in PI or UR, so we should consider it.

@kbenzie kbenzie added the needs-discussion This needs further discussion label Nov 29, 2022
@kbenzie
Copy link
Contributor

kbenzie commented Nov 29, 2022

@pbalcer @igchor @vinser52 another relevant topic for you, related to #53.

@kbenzie kbenzie added pi DPC++ PI requirement memory Memory allocations/transfers/operations labels Dec 5, 2022
@kbenzie
Copy link
Contributor

kbenzie commented Jan 25, 2023

Add requirements for each adapter to a table on this issue to kick off the design process of a combined multi-device context and P2P proposal.

@jandres742
Copy link

@kbenzie kbenzie added the specification Changes or additions to the specification label Feb 9, 2023
@JackAKirk
Copy link
Contributor

JackAKirk commented Feb 10, 2023

FYI I made a draft impl (https://github.com/intel/llvm/pull/8303) of Intel's sycl extension proposal for P2P USM: intel/llvm#6104. This is fully functional now for the cuda backend only, but should support HIP and L0 in the future using the same pi functions.
It introduces three new PI/UR functions: https://github.com/intel/llvm/pull/8303/files#diff-40b7cb921a961e9c240e665df7a099783d3d2896a3f973c90397ea031032c961R154

I'm pretty sure that these three functions will be required, although the naming is subject to change, particularly "piextCanAccessPeer".

@jandres742
Copy link

@kbenzie : what is the next step on this issue? are there any points to clarify?

@kbenzie
Copy link
Contributor

kbenzie commented Jun 15, 2023

I asked @JackAKirk to bring these changes over to UR here.

@kbenzie kbenzie removed the needs-discussion This needs further discussion label Jun 15, 2023
@kbenzie
Copy link
Contributor

kbenzie commented Aug 3, 2023

Added in #631

@kbenzie kbenzie closed this as completed Aug 3, 2023
@kbenzie kbenzie added this to the 0.7 milestone Aug 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
memory Memory allocations/transfers/operations pi DPC++ PI requirement specification Changes or additions to the specification
Projects
None yet
Development

No branches or pull requests

4 participants