Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rapidsai/cugraph
cuGraph - RAPIDS Graph Analytics Library
https://github.com/rapidsai/cugraph
complex-networks cuda gpu graph graph-algorithms graph-analysis graph-framework graphml nvidia rapids
Last synced: 21 days ago
JSON representation
cuGraph - RAPIDS Graph Analytics Library
- Host: GitHub
- URL: https://github.com/rapidsai/cugraph
- Owner: rapidsai
- License: apache-2.0
- Created: 2018-11-15T18:07:11.000Z (almost 6 years ago)
- Default Branch: branch-24.06
- Last Pushed: 2024-04-13T03:58:20.000Z (7 months ago)
- Last Synced: 2024-04-14T03:13:23.721Z (7 months ago)
- Topics: complex-networks, cuda, gpu, graph, graph-algorithms, graph-analysis, graph-framework, graphml, nvidia, rapids
- Language: Cuda
- Homepage: https://docs.rapids.ai/api/cugraph/stable/
- Size: 52.2 MB
- Stars: 1,566
- Watchers: 47
- Forks: 285
- Open Issues: 314
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-list - cuGraph - A collection of GPU accelerated graph algorithms that process data found in GPU DataFrames (cuDF). (Graph / Others)
- awesome-python-machine-learning-resources - GitHub - 20% open · ⏱️ 25.08.2022): (GPU实用程序)
- my-awesome - rapidsai/cugraph - networks,cuda,gpu,graph,graph-algorithms,graph-analysis,graph-framework,graphml,nvidia,rapids pushed_at:2024-10 star:1.7k fork:0.3k cuGraph - RAPIDS Graph Analytics Library (Cuda)
README
[RAPIDS](https://rapids.ai) cuGraph is a monorepo that represents a collection of packages focused on GPU-accelerated graph analytics, including support for property graphs, remote (graph as a service) operations, and graph neural networks (GNNs). cuGraph supports the creation and manipulation of graphs followed by the execution of scalable fast graph algorithms.
[Getting cuGraph](./docs/cugraph/source/installation/getting_cugraph.md) *
[Graph Algorithms](./docs/cugraph/source/graph_support/algorithms.md) *
[Graph Service](./readme_pages/cugraph_service.md) *
[Property Graph](./readme_pages/property_graph.md) *
[GNN Support](./readme_pages/gnn_support.md)-----
## News___NEW!___ _[nx-cugraph](./python/nx-cugraph/README.md)_, a NetworkX backend that provides GPU acceleration to NetworkX with zero code change.
```
> pip install nx-cugraph-cu11 --extra-index-url https://pypi.nvidia.com
> export NETWORKX_AUTOMATIC_BACKENDS=cugraph
```
That's it. NetworkX now leverages cuGraph for accelerated graph algorithms.-----
## Table of contents
- Installation
- [Getting cuGraph Packages](./docs/cugraph/source/installation/getting_cugraph.md)
- [Building from Source](./docs/cugraph/source/installation/source_build.md)
- [Contributing to cuGraph](./readme_pages/CONTRIBUTING.md)
- General
- [Latest News](./readme_pages/news.md)
- [Current list of algorithms](./docs/cugraph/source/graph_support/algorithms.md)
- [Blogs and Presentation](./docs/cugraph/source/tutorials/cugraph_blogs.rst)
- [Performance](./readme_pages/performance/performance.md)
- Packages
- [cuGraph Python](./readme_pages/cugraph_python.md)
- [Property Graph](./readme_pages/property_graph.md)
- [External Data Types](./readme_pages/data_types.md)
- [pylibcugraph](./readme_pages/pylibcugraph.md)
- [libcugraph (C/C++/CUDA)](./readme_pages/libcugraph.md)
- [nx-cugraph](./python/nx-cugraph/README.md)
- [cugraph-service](./readme_pages/cugraph_service.md)
- [cugraph-dgl](./readme_pages/cugraph_dgl.md)
- [cugraph-ops](./readme_pages/cugraph_ops.md)
- API Docs
- Python
- [Python Nightly](https://docs.rapids.ai/api/cugraph/nightly/)
- [Python Stable](https://docs.rapids.ai/api/cugraph/stable/)
- C++
- [C++ Nightly](https://docs.rapids.ai/api/libcugraph/nightly/)
- [C++ Stable](https://docs.rapids.ai/api/libcugraph/stable/)
- References
- [RAPIDS](https://rapids.ai/)
- [ARROW](https://arrow.apache.org/)
- [DASK](https://www.dask.org/)
-----
[RAPIDS](https://rapids.ai) cuGraph is a collection of GPU-accelerated graph algorithms and services. At the Python layer, cuGraph operates on [GPU DataFrames](https://github.com/rapidsai/cudf), thereby allowing for seamless passing of data between ETL tasks in [cuDF](https://github.com/rapidsai/cudf) and machine learning tasks in [cuML](https://github.com/rapidsai/cuml). Data scientists familiar with Python will quickly pick up how cuGraph integrates with the Pandas-like API of cuDF. Likewise, users familiar with NetworkX will quickly recognize the NetworkX-like API provided in cuGraph, with the goal to allow existing code to be ported with minimal effort into RAPIDS. To simplify integration, cuGraph also supports data found in [Pandas DataFrame](https://pandas.pydata.org/), [NetworkX Graph Objects](https://networkx.org/) and several other formats.
While the high-level cugraph python API provides an easy-to-use and familiar interface for data scientists that's consistent with other RAPIDS libraries in their workflow, some use cases require access to lower-level graph theory concepts. For these users, we provide an additional Python API called pylibcugraph, intended for applications that require a tighter integration with cuGraph at the Python layer with fewer dependencies. Users familiar with C/C++/CUDA and graph structures can access libcugraph and libcugraph_c for low level integration outside of python.
**NOTE:** For the latest stable [README.md](https://github.com/rapidsai/cugraph/blob/main/README.md) ensure you are on the latest branch.
As an example, the following Python snippet loads graph data and computes PageRank:
```python
import cudf
import cugraph# read data into a cuDF DataFrame using read_csv
gdf = cudf.read_csv("graph_data.csv", names=["src", "dst"], dtype=["int32", "int32"])# We now have data as edge pairs
# create a Graph using the source (src) and destination (dst) vertex pairs
G = cugraph.Graph()
G.from_cudf_edgelist(gdf, source='src', destination='dst')# Let's now get the PageRank score of each vertex by calling cugraph.pagerank
df_page = cugraph.pagerank(G)# Let's look at the top 10 PageRank Score
df_page.sort_values('pagerank', ascending=False).head(10)```
[Why cuGraph does not support Method Cascading](https://docs.rapids.ai/api/cugraph/nightly/basics/cugraph_cascading.html)
------
# Projects that use cuGraph(alphabetical order)
* ArangoDB - a free and open-source native multi-model database system - https://www.arangodb.com/
* CuPy - "NumPy/SciPy-compatible Array Library for GPU-accelerated Computing with Python" - https://cupy.dev/
* Memgraph - In-memory Graph database - https://memgraph.com/
* NetworkX (via [nx-cugraph](./python/nx-cugraph/README.md) backend) - an extremely popular, free and open-source package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks - https://networkx.org/
* PyGraphistry - free and open-source GPU graph ETL, AI, and visualization, including native RAPIDS & cuGraph support - http://github.com/graphistry/pygraphistry
* ScanPy - a scalable toolkit for analyzing single-cell gene expression data - https://scanpy.readthedocs.io/en/stable/(please post an issue if you have a project to add to this list)
------
##
Open GPU Data ScienceThe RAPIDS suite of open source software libraries aims to enable execution of end-to-end data science and analytics pipelines entirely on GPUs. It relies on NVIDIA® CUDA® primitives for low-level compute optimization but exposing that GPU parallelism and high-bandwidth memory speed through user-friendly Python interfaces.
For more project details, see [rapids.ai](https://rapids.ai/).
The GPU version of [Apache Arrow](https://arrow.apache.org/) is a common API that enables efficient interchange of tabular data between processes running on the GPU. End-to-end computation on the GPU avoids unnecessary copying and converting of data off the GPU, reducing compute time and cost for high-performance analytics common in artificial intelligence workloads. As the name implies, cuDF uses the Apache Arrow columnar data format on the GPU. Currently, a subset of the features in Apache Arrow are supported.