NVIDIA cuGraph? ???? NetworkX? NetworkX ?? ?? ??? ?? ??? ??????. NVIDIA cuGraph? PageRank, Louvain, Betweenness Centrality? ?? ?? ?? ??? ????? ?? GPU ??? ?????. ????? ??? ??? ?? CPU? NetworkX?? ?? 50?, ??? 500??? NetworkX ?????? ?? ???? ? ????.
? ?????? NetworkX? cuGraph ??? ??? ??? ???? ?? ??? ??? ?????. ?? NetworkX? cuGraph ???? ???? ??? ?? ?????? ??? ???, ??? ??? ?? ? NetworkX? ??? ???? ??? ???? ?????.
??? ??? ?? ??? ????? ????? ??? NetworkX? ??? ??? ????. NetworkX? ??? ?? ?? ??? ?? ?? ??? ?? ????? ? ????, ? ?? 8?? ? ?? ???????(10/24 ??). 2005? ?? ??? ??, NetworkX? ???? ?? ???? API, ???? ???? ????, ??? ? ?? ?? ?? ??? ?? ?? ??? ???? ???? ?????? ??? ??????.
??? ?? ??? ????? ???? ???? ?????? ???? ???, ???? ?? ??? ???? ??? ? ????? ? ??? ??? ????? ???? ??? ??? ???? ????.
NetworkX? ?? Python ?? ??? ??? ?? ??? ??? ????. ????? 10? ?? ? 100? ???? ? ???? ???? ?? ???????? ??? ?? ??? ???? NetworkX? ??? ???? ?? ??? ?? ????. ??? ????? ?? ??, ?? ???, ?? ???? ??, ??? ??? ??? ???? ??? ??? ???? ??? ?? ??? ? ?? ?? ???? ?? ?????.
2019? ?? ??? ??, cuGraph ?? ?? ????? NetworkX? ??? ???? ?? Python ??? ?? ?????? ?? ??? ????? ?? ???? ??? ????. ?? ??? ???? ?? GPU ???? NetworkX? cuGraph ???? ????, ?? ??? ?? ??? ???? ?? NetworkX? ??? ??? ???.
??? ??? ???
NetworkX? ???? CUDA ?? ?????? cuGraph? ????, cuGraph ?? ????? ???? NetworkX ?????? ?? ????? ??? ??? ?? ??? ?? ??? ??? ? ????.
?? 10?, ?? ????? ? ? ???? ?? ?? 500? ?? ?? ??? ??? ? ????. ??? ?? ??? ??? ? ??? ??? ?? ??? ???? ??????? ???? ?? ??? ???? ?????.
?? ??? ??? ??????? ??? NVIDIA cuGraph? ???? NetworkX? ???? ?? ???? ??? ??? ?? ??? ? ?? ?????.
?? ?? ?? GPU ??
NVIDIA cuGraph? ?? ???? ??? ? ?? ?? ????? ???? ??? ???? ???? ?? NetworkX? ??????.
pip ?? conda ??? ???? ????? NVIDIA GPU? ?? ????? ???? cuGraph ??? nx-cugraph? ?????. ???? NetworkX ?? ?? ????? ????? ?? ??? ?? ?????, ?? ?? NetworkX? ???? ????? GPU ???? ??? ?? ?? ????? CPU? ?? NetworkX ???? ??? ? ????.
? ?? ??? ????? ???? ?? ???? ??? ???? ? ???? ?? ???? ??? ??? ?? ?? ?? ?? ???? GPU ??? ?????:
pagerank
betweenness_centrality
louvain_communities
shortest_path
- ? ??? ? 60? ??? ????.
?????? ??? ?? ?? ????? ???? ?? NetworkX? ??? ??? ? ?? ??? ??? ??? ????? ??? ?? ??? ??? ? ????. ??? ?????? ??????? ??? ?? ? ?? ???? ? ? ???? ?? ? ?? ?-GPU ?????? ??? ? ????.
????? ?? ?? ??? ???? GPU ?? ??? ??? ? ???, cuGraph? ????? ??? ???? ??? ?? 87? ? ??? ?????.
??: demo.ipy
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
- ?????: NetworkX 3.4.1, cuGraph/nx-cugraph 24.10
- CPU: Intel Xeon Gold 6128 CPU @ 3.40GHz 45GB RAM
- GPU: NVIDIA Quadro RTX 8000 50GB RAM
?????? ?? networkx
???? ?? ???? %env ??? ??? ?? ??? ?????:
%env NX_CURGAPH_AUTOCONFIG=True
import networkx as nx
?? ?? ??? ????
NetworkX? ???? ?? ??? ?? ?????? ??? ? ???, ? ?? ??? ??, ?????? ? ????? ?? ??? ???? ?? ??? ???? ?????.
??? ???? ???? ?? ?? ???? ?? 10? ??? 100? ??? ???? ???? ?? ? ????? ???, 2027??? ???? 20ZB? ???? ??? ??? ?????. NetworkX? cuGraph ???? ???? ??? ??? ?? ?? ???? ?? ????? ??? ??? ?? ??? ? ????.
?? ????? ???? ???? ?? ??? ???? ???? ???? ??? ????? ??? ??? ? ????. cuGraph? ???? NetworkX? ???? ??? ?? ??? CPU? NetworkX? ??? ??? ??? ???? ?? ?? ?? ??? ?????.
GPU ???? ??? ??? ????? ???? ?? ?? ?? ????? ??? ?? ???? ??? ??? ???? ? ?? ???, ??? ?? ??? ???, ?? ??, ?? ??? ??? ?? ?? ??? ??? ? ????.
?? ?? cuGraph? ???? NetworkX? ??? ?? ??? ?????.
???? ???? ??? ???? ????? ??? ?? ??? ???? ?? ?? ???? Louvain ???? ??(100? ??, 5800? ??)? CPU?? NetworkX? ???? ??? 60? ? ????.

?? ??? ?? ???(4?? ??, 1?6?? ??)? ?? ???? ? ??? PageRank ????? CPU? NetworkX?? 70? ????.

??? ?? ?? ????(5?? ??, 6? 9?? ??, k=100)? ?? ???? ? ??? Betweenness ??? ????? CPU? NetworkX?? 485? ????.
??? ?? ?? ????(5?? ??, 6? 9?? ??, k=100)? ?? ???? ? ??? Betweenness ??? ????? CPU? NetworkX?? 485? ????.

?? 3. ??? ?? ?? ????? ?? ???? ? ??? Betweenness ??? ????
? ???? ?? ????? ?? ??? ??????:
- ?????: NetworkX 3.4.1, cuGraph/nx-cugraph 24.10
- CPU: Intel Xeon w9-3495X(56??) 250GB
- GPU: NVIDIA A100 80GB
???? ??? ?? ??? ??? /rapidsai/cugraph GitHub ?????? ?????.
??
NetworkX? ?? ?? ?? ??? ?? ?????? ??? ?? ???, ?? ?? ? ????? ??? ??? ?? ??? ???? ?? ?? ?????? ??? ??? ??? ?????.
?? ?? ??? ???? cuGraph/nx-cugraph ???? ???? ????X? ???? ?? ???? ??? ????? ?? ????? ???? ?? NVIDIA cuGraph? ???? ????X? ?? 500??? ???? ? ????.
?? ?? Google Colab?? ????? NetworkX – ??? ??? ?? ??? ????? ?? ??? ??? Wikipedia? ?? ?? Pagerank?? nx-cugraph ????? ??? ??? ?? ??? ?????.
??? ??? ?? ???? ?????:
- RAPIDS cuGraph
- NetworkX ???: ??? ??? ??? ??(GTC ??)
- ?? ?? ?? ??? ???? ????? ???(DLI ?? ??)
- ???? ??? ??? ??(DLI ?? ?? ???)
?? ???
- DLI ??: RAPIDS cuDF? ?????? ?? ?? ???
- GTC ??: NetworkX ???: ??? ??? ??? ??
- GTC ??: ??? ??? ??? CUDA ??? ? ?? ????
- GTC ??: RAPIDS cuDF? ???? ?? ?? ?? ?? ?????
- SDK: cuNumeric
- SDK: DGL ????