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

Performance enhancements using the GPU #3261

Open
4 tasks
apowers313 opened this issue Jul 20, 2024 · 7 comments
Open
4 tasks

Performance enhancements using the GPU #3261

apowers313 opened this issue Jul 20, 2024 · 7 comments

Comments

@apowers313
Copy link

Description of new feature

networkx has an ability to use GPUs to accelerate algorithms resulting in orders of magnitude faster processing time for algorithms like centrality.

There is an emerging WebGPU browser standard with some desktop implementations that enables the use of the GPU in the browser for parallelizing algorithms.

Just throwing it out there that it might be interesting for cytoscape.js to either integrate GPU acceleration or expose a backend plugin API similar to networkx to enable others to do so.

For reviewers

Reviewers should ensure that the following tasks are carried out for incorporated issues:

  • Ensure that the reporter has adequately described their idea. If not, elicit more information about the use case. You should iteratively build a spec together.
  • Ensure that the issue is a good fit for the core library. Some things are best done in extensions (e.g. UI-related features that aren't style-related). Some things are best done by app authors themselves -- instead of in Cytoscape libraries.
  • The issue has been associated with a corresponding milestone.
  • The commits have been incorporated into the unstable branch via pull request. The corresponding pull request is cross-referenced.
@mikekucera
Copy link
Contributor

I'm currently working on WebGL support full time, primarily to support large networks. WebGL is much more broadly adopted and works on most mobile browsers.

@apowers313
Copy link
Author

My understanding is that it's two different purposes. WebGL is for graphics and will help visualization run faster, especially with large networks. WebGPU can also do graphics (I'm not advocating that) but it can also be used as thousands of tiny CPUs to parallelize graph algorithms and make them run faster. For example, calculating betweenness centrality on a graph with 3M nodes and 17M edges takes 513 seconds to run on a CPU and 16 seconds to run on a GPU.

@maxkfranz
Copy link
Member

@apowers313, does your team currently have capacity to contribute in this direction?

@kelciocasemiro
Copy link

Waiting for this...

@apowers313
Copy link
Author

@maxkfranz I wish. Unfortunately this is a personal project, not Amazon related.

@jpmateo022
Copy link

Please make this happen :) I really need this feature.

@mikekucera mikekucera changed the title WebGPU Support WebGL or WebGPU Support Nov 21, 2024
@mikekucera mikekucera pinned this issue Nov 21, 2024
@mikekucera
Copy link
Contributor

Work on a preview release of the WebGL renderer is happening in the feature/gpu branch.

@apowers313 apowers313 changed the title WebGL or WebGPU Support Implement Centrality and Similar Algorithms on WebGPU Support Nov 22, 2024
@apowers313 apowers313 changed the title Implement Centrality and Similar Algorithms on WebGPU Support Accelerate Centrality and Similar Algorithms via WebGPU Nov 22, 2024
@maxkfranz maxkfranz changed the title Accelerate Centrality and Similar Algorithms via WebGPU Performance enhancements using the GPU Nov 25, 2024
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

No branches or pull requests

5 participants