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

Support CUDA execution graphs #175

Closed
neoblizz opened this issue May 5, 2020 · 12 comments
Closed

Support CUDA execution graphs #175

neoblizz opened this issue May 5, 2020 · 12 comments

Comments

@neoblizz
Copy link

neoblizz commented May 5, 2020

Added with CUDA 10.0, cuda graphs (though really terribly named as there are 7 "graph" things that cuda provides), is a take on task graphs within CUDA's programming model.

What's really cool about cuda graphs is the performance benefits you get when relying on task graphs to set things up for repeated use. Examples that benefit from this are machine learning (surprise, surprise), or any iterative-converging algorithm.

I will add a plan-of-attack soon to this issue for review.

Related issue #77.

@eyalroz eyalroz added this to the Full CUDA 10.0 milestone May 5, 2020
@eyalroz
Copy link
Owner

eyalroz commented May 7, 2020

Note that we can't (or at least, should not) offer merely imperative "add node" and "add edge" etc. It should be possible to pass graphs. or iterators over the structure of the graph, from common graph representation libraries (not specific ones, something generic and template based), and have that graph be fed in.

And even if we don't make it that far already in the beginning, we must at least lay the foundation for that to be possible later on.

@neoblizz
Copy link
Author

An update, I still have this in my todo list. I plan to work in near future after some important deliverables are taken care of.

@eyalroz
Copy link
Owner

eyalroz commented May 18, 2020

@neoblizz : Sure, whenever you have the time.

I should perhaps qualify what I said earlier: We can start with the simple imperative wrappers, then move up into the more abstract iterating-over-graphs version later.

@eyalroz eyalroz changed the title Support cudaGraph() API (cuda's task graphs) Support cudaGraphXXXXX() API functions (cuda's task graphs) Jan 14, 2022
@eyalroz eyalroz changed the title Support cudaGraphXXXXX() API functions (cuda's task graphs) Support CUDA task graphs Jan 14, 2022
@eyalroz
Copy link
Owner

eyalroz commented Dec 16, 2022

I'm thinking of starting work on this myself.

@eyalroz eyalroz changed the title Support CUDA task graphs Support CUDA execution graphs Jan 14, 2023
@eyalroz
Copy link
Owner

eyalroz commented Jan 14, 2023

So, I now have an untested, but compiling, initial version of wrappers for the graph functionality, on a new branch - see the link below.

It's not quite complete, especially w.r.t. "executable" graphs' methods for getting and setting node parameters; but some graph template methods are missing too.

I would appreciate feedback. @codecircuit - maybe you might also be interested in checking this out?

eyalroz added a commit that referenced this issue Jan 14, 2023
eyalroz added a commit that referenced this issue Jan 15, 2023
eyalroz added a commit that referenced this issue Jan 18, 2023
eyalroz added a commit that referenced this issue Jan 20, 2023
eyalroz added a commit that referenced this issue Feb 4, 2023
eyalroz added a commit that referenced this issue Feb 5, 2023
eyalroz added a commit that referenced this issue Feb 5, 2023
eyalroz added a commit that referenced this issue Feb 17, 2023
eyalroz added a commit that referenced this issue Feb 17, 2023
eyalroz added a commit that referenced this issue Feb 19, 2023
eyalroz added a commit that referenced this issue Feb 23, 2023
eyalroz added a commit that referenced this issue Feb 23, 2023
eyalroz added a commit that referenced this issue Feb 23, 2023
eyalroz added a commit that referenced this issue Feb 26, 2023
eyalroz added a commit that referenced this issue Feb 28, 2023
eyalroz added a commit that referenced this issue Mar 11, 2023
Added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
@eyalroz
Copy link
Owner

eyalroz commented Mar 11, 2023

@neoblizz : So, I'm almost done. I mean, the graph support is working, but I have a couple of data structures which currently have ugly names; and node creation API could stand some beautification. But - feedback would be very much appreciated.

@neoblizz
Copy link
Author

But - feedback would be very much appreciated.

This is awesome! Thanks for sharing, I'll take a look.

eyalroz added a commit that referenced this issue Mar 1, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue Mar 1, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue Apr 20, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
@eyalroz eyalroz added the task label Apr 20, 2024
eyalroz added a commit that referenced this issue Apr 23, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue Apr 24, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue Apr 29, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 3, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 4, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 4, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 4, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 4, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 4, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 4, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 4, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 4, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
eyalroz added a commit that referenced this issue May 5, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
@eyalroz eyalroz closed this as completed in 6901d3c Jun 6, 2024
eyalroz added a commit that referenced this issue Jun 6, 2024
… graph node builder class.

Also added two modified CUDA sample programs using graph support:

* graphMemoryNodes
* jacobiCudaGraphs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants