nx-cugraph#

nx-cugraph 是一个 NetworkX 后端,为许多常用的 NetworkX 算法提供 GPU 加速

只需 安装并启用 nx-cugraph,用户就可以在其工作流中获得显著的加速,尤其是在性能受到默认 NetworkX 实现限制的情况下。

用户无需更改他们熟悉且易于使用的 NetworkX 代码,即可获得基于 GPU 的大规模性能。

运行以下代码片段(名为 demo.ipy,展示了 NetworkX 使用与未使用 nx-cugraph 的对比)的计时结果

import pandas as pd
import networkx as nx

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
../_images/colab.png

在 Google Colab 上试试!#

零代码改动加速

只需设置环境变量 NX_CUGRAPH_AUTOCONFIG=True 即可在 NetworkX 中启用 nx-cugraph

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

从 CPU 切换到 GPU 时,没有任何变化,甚至 import 语句也无需更改。

nx-cugraph 现已作为 RAPIDS 包的一部分正式发布 (GA)。请参阅 RAPIDS 快速入门 以开始使用 nx-cugraph