pylibcugraph - Python绑定libcugraph cuGraph C/C++/CUDA库
项目描述
RAPIDS cuGraph是一个monorepo,代表了一组专注于GPU加速图分析的包,包括对属性图、远程(图作为服务)操作和图神经网络(GNN)的支持。cuGraph支持创建和操作图,然后执行可扩展的快速图算法。
新闻
新功能! nx-cugraph,一个为NetworkX提供GPU加速后端的库,无需修改代码即可实现。
> pip install nx-cugraph-cu11 --extra-index-url https://pypi.nvidia.com
> export NETWORKX_AUTOMATIC_BACKENDS=cugraph
这就完了。现在NetworkX利用cuGraph进行加速图算法。
目录
- 安装
- 一般信息
- 软件包
- API文档
- Python
- C++
- 参考文献
RAPIDS cuGraph是一个包含GPU加速图算法和服务的集合。在Python层,cuGraph在GPU DataFrames上运行,从而允许在cuDF中的ETL任务和cuML中的机器学习任务之间无缝传递数据。熟悉Python的数据科学家可以快速掌握如何将cuGraph与cuDF类似Pandas的API集成。同样,熟悉NetworkX的用户也会很快识别出cuGraph中提供的类似NetworkX的API,目标是使现有代码以最小的努力移植到RAPIDS。为了简化集成,cuGraph还支持Pandas DataFrame、NetworkX Graph Objects和其他几种格式中的数据。
虽然高级的cuGraph Python API为数据科学家提供了一个易于使用且熟悉的界面,与其他RAPIDS库的工作流程保持一致,但某些用例需要访问更底层的图论概念。对于这些用户,我们提供了一个额外的Python API,称为pylibcugraph,旨在为需要与cuGraph在Python层更紧密集成的应用程序提供,同时依赖项更少。熟悉C/C++/CUDA和图结构的用户可以通过libcugraph和libcugraph_c访问低级集成。
注意:要确保您处于最新的分支,请参阅最新的README.md。
以下Python代码示例加载图数据并计算PageRank
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)
使用cuGraph的项目
(按字母顺序排序)
- ArangoDB - 一个免费和开源的原生多模型数据库系统 - https://www.arangodb.com/
- CuPy - "NumPy/SciPy兼容的GPU加速计算数组库" - https://cupy.dev/
- Memgraph - 内存图数据库 - https://memgraph.com/
- NetworkX(通过nx-cugraph后端) - 一个极受欢迎的、免费和开源的库,用于创建、操作和研究复杂网络的结构、动态和功能 - https://networkx.org/
- PyGraphistry - 自由和开源的GPU图ETL、AI和可视化,包括原生RAPIDS & cuGraph支持 - http://github.com/graphistry/pygraphistry
- ScanPy - 一个用于分析单细胞基因表达数据的可扩展工具包 - https://scanpy.readthedocs.io/en/stable/
(如果您想将项目添加到这个列表中,请提交一个问题)
开放的GPU数据科学
RAPIDS开源软件库套件旨在完全在GPU上执行端到端数据科学和分析管道。它依赖于NVIDIA® CUDA®原语进行低级计算优化,但通过用户友好的Python接口提供GPU并行性和高带宽内存速度。
有关更多项目详情,请参阅rapids.ai。
Apache Arrow on GPU
Apache Arrow的GPU版本是一个通用的API,它能够实现运行在GPU上的进程之间表格数据的有效交换。在GPU上进行端到端计算可以避免在GPU上不必要的数据复制和转换,从而减少高性能分析(如人工智能工作负载中常见)的计算时间和成本。正如其名所示,cuDF在GPU上使用Apache Arrow列式数据格式。目前,Apache Arrow的部分功能得到支持。
项目详情
pylibcugraph_cu11-24.8.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | e3e94528dcbbcd275770a741e7c536149de8b547fa12af99c4b568c6cf1447c5 |
|
MD5 | fddbe83f715c652c1e765a8e671affa4 |
|
BLAKE2b-256 | 9b7356a89f57183008f812399af0ea0446063c07693f9962a42db478d4671fe6 |