Skip to content

Graph API #27

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

Open
thedodd opened this issue Dec 22, 2021 · 3 comments
Open

Graph API #27

thedodd opened this issue Dec 22, 2021 · 3 comments
Labels
C-cust Category: CPU-side CUDA Driver API enhancement New feature or request help wanted Extra attention is needed question Further information is requested

Comments

@thedodd
Copy link
Contributor

thedodd commented Dec 22, 2021

First, thanks for all of the excellent work on this! I have a workload which could benefit from the Graph API (as opposed to just using individual stream submissions and such).

Any ideas on LOE to implement, what current blockers are, and so on?

Perhaps we can discuss what getting started on implementing this should look like, desired API style, and all that.

@RDambrosio016
Copy link
Member

I started some WIP graph stuff a while ago to see what the API was like, and from what i can tell there is basically no way to make it safe because of the sheer amount of things that could go wrong. The graph API is also large, really large. I will probably not focus on graphs for a while since there are much more pressing features that need attention, but if anyone would like to work on it i would be happy to review any PRs or talk about it.

@RDambrosio016 RDambrosio016 added C-cust Category: CPU-side CUDA Driver API enhancement New feature or request help wanted Extra attention is needed question Further information is requested labels Dec 23, 2021
@thedodd
Copy link
Contributor Author

thedodd commented Dec 28, 2021

By your analysis, is stream capture (for graph building) the main source of unsafety? Or is it more broad than that (such as standard graph building and execution)?

@RDambrosio016
Copy link
Member

graphs combine the most unsafe parts of CUDA in one very dangerous package:

  • Stream ordering semantics that can't be checked by a library (easily and without overhead)
  • Kernel launches
  • Asynchronous stuff
  • Unsafe details, such as "this works with stream capturing", "this does not work with stream capturing", "this is ub when using stream capturing". For example IIRC using texture or surface refs in a kernel in a capture is UB.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-cust Category: CPU-side CUDA Driver API enhancement New feature or request help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants