GPU 加速的 NetworkX 后端

尝试零代码修改加速 NetworkX

零代码修改加速

使用 NetworkX 的全部便利性编写代码。只需设置一个环境变量,即可开始在 GPU 上加速您的代码,非常简单。


在 CPU 和 GPU 上运行相同的代码

相同的 NetworkX 代码可以在 CPU 上运行,在 GPU 上甚至更快 - 无需单独的工作流程或条件导入。

在 NetworkX 中解锁大型图分析

速度提升 50 倍至 500 倍,具体取决于算法和图的大小。您最终可以使用 NetworkX 处理大型、真实世界大小的图数据了。


在 NetworkX 中获得一流支持

通过 nx-cugraph 后端和 NetworkX 函数分派实现 GPU 加速。这得益于 NetworkX 社区的支持。

带来 GPU 加速的图分析
面向每一位 NetworkX 用户

为您的图工作流程带来极快的性能。

如何使用它

要加速 NetworkX 代码,只需安装 nx-cugraph 并在 NetworkX 中启用它。


pip install nx-cugraph-cu12 --extra-index-url https://pypi.nvidia.com

从 shell 中,设置一个环境变量

NX_CUGRAPH_AUTOCONFIG=True
python my_networkx_script.py

在 notebook 中,在导入 NetworkX 之前使用 %env

%env NX_CUGRAPH_AUTOCONFIG=True
import networkx

有关启用和使用后端的其他方法,请参阅NetworkX 文档


公告博客nx-cugraph 文档中了解有关这些基准测试结果的更多信息。

* 数据集:cit-Patents | 3.7M 节点,16.5M 边
GPU: NVIDIA A100, 80 GB
CPU: Intel Xeon W9-3495X (Sapphire Rapids)

* 数据集:soc-livejournal1 | 4.8M 节点,69M 边
GPU: NVIDIA A100, 80 GB
CPU: Intel Xeon W9-3495X (Sapphire Rapids)
** BC = 介数中心性,k=100

工作原理

原理探究

NetworkX 具备将函数调用分派给单独安装的第三方后端的能。这些 NetworkX 后端允许用户在不改变其 NetworkX Python 代码的情况下体验改进的性能和/或附加功能。示例包括使用 GPU 提供算法加速、并行处理、图数据库集成等功能的后端。


虽然 NetworkX 是纯 Python 实现,但后端可以编写为使用其他库甚至专用硬件。因此,nx-cugraph 是一个 NetworkX 后端,它使用 RAPIDS cuGraph 和 NVIDIA GPU 来显著提高 NetworkX 性能。


在 demo.ipy 演示脚本中 import networkx as nx
import pandas as pd

url = "https://data.rapids.ai/cugraph/datasets/cit-Patents.csv"
df = pd.read_csv(url, sep=" ", names=["src", "dst"], dtype="int32")
G = nx.from_pandas_edgelist(df, source="src", target="dst")

%time result = nx.betweenness_centrality(G, k=10)
user@machine:/# ipython demo.ipy

CPU times: user 7min 36s, sys: 5.22 s, total: 7min 41s
Wall time: 7min 41s
user@machine:/# NX_CUGRAPH_AUTOCONFIG=True ipython demo.ipy

CPU times: user 4.14 s, sys: 1.13 s, total: 5.27 s
Wall time: 5.32 s

*NetworkX 3.4.1, nx-cugraph 24.10, CPU: Intel(R) Xeon(R) Gold 6128 CPU @ 3.40GHz 45GB RAM, GPU: NVIDIA Quadro RTX 8000 50GB RAM

执行流程

亲自尝试 nx-cugraph

获取更多资源并与开发者联系。

立即尝试

使用您的 Google 账户,在免费的支持 GPU 的 Colab notebook 环境中查看 nx-cugraph 如何加速您的图工作流程。


此外,nx-cugraph 现在已包含在 RAPIDS metapackage 中。访问RAPIDS 快速入门,在您喜欢的平台上开始使用 RAPIDS。

了解更多

现在 nx-cugraph 已普遍可用 (GA),并可广泛使用。您可以从发布博客nx-cugraph 文档中了解更多信息。


有兴趣了解 nx-cugraph 在端到端工作流程中的使用吗?请尝试此SciPy 会议演示 notebook。想要贡献或分享反馈吗?请通过GitHub 联系我们。