目录
图形是许多现代数据和分析功能的基础,可在不同的数据资产中查找人、地点、事物、事件和位置之间的关系。根据一项研究,到 2025 年,图形技术将被用于 80% 的数据和分析创新,这将有助于促进跨组织的快速决策。
在处理包含数百万个节点的图形时,CPU 上的 Louvain 等算法的执行时间可能长达几个小时。这种长时间的处理时间不仅会影响开发者的工作效率,而且会导致总体性能结果欠佳。
利用 GPU 的并行处理能力可以显著缩短图形训练时间。基准测试结果表明,GPU 加速在将基于 CPU 的计算速度提高 100 倍以上方面具有巨大潜力。
这种显著的速度提升展示了将 GPU 集成到 图形分析 (graph analytics) 可以实现 100 倍的性能提升。
了解组件
这种颠覆性架构的核心是以下三个关键组件,每个组件都发挥着关键作用。
使用 cuGraph 实现 GPU 加速
cuGraph 是 NVIDIA GPU 加速的图形分析库,它在加速图形计算方面发挥着重要作用。传统的基于 CPU 的图形处理通常会成为瓶颈,尤其是在处理大规模图形时。cuGraph 利用了 NVIDIA A100 GPUs 的高性能计算 (HPC) 设计,能够以无与伦比的速度处理复杂的图形算法。
PageRank、Louvain 和 Betweenness Centrality 等图形算法本质上是可并行的,因此非常适合 GPU 加速。NVIDIA A100 GPU 中的数千个核心支持同时处理数据,与基于 CPU 的方法相比,大幅缩短了计算时间。
TigerGraph 图形数据库功能
cuGraph 利用 GPU 优化图形分析,而 TigerGraph 图形数据库则通过高效存储和查询互联数据来补充 GPU 加速。TigerGraph 的分布式架构、其 Turing 完备的 GSQL 语言以及对图形数据的原生支持,使其能够以非凡的灵活性处理复杂的关系,以及实时查询和更新。
TigerGraph 的数据结构称为 Graph 模型,可提供高度可扩展的图形数据表示。它可优化数据局部性和遍历,减少图形处理过程中的 I/O 瓶颈。TigerGraph 与 cuGraph 的无缝集成可确保数据在图形数据库和 GPU 加速分析之间轻松流动,从而更大限度地提高性能。
使用高级功能增强 GSQL
为了完成这一融合,ZettaBolt 设计了自定义用户定义函数 (UDF),充当 TigerGraph 和 cuGraph 之间的桥梁。UDF 使您能够编写自己的 C++代码,并将其无缝集成到 TigerGraph 生态系统中。
它们可在 Thrift RPC 层上实现 GSQL 和 cuGraph Python 服务之间的通信。这可在图形数据库和 GPU 加速分析之间实现数据和计算的流畅流动,从而为图形算法优化带来新的可能性。
传统和加速的 PageRank 计算
本节将探讨如何将这种强大的 GPU-CPU 融合与实际示例结合使用。它介绍了运行 PageRank 计算的两种不同方法:传统的基于 CPU 的方法tg_分页排名和加速的加速 PageRank它利用了 GPU-CPU 融合架构。
传统方法:tg_pagerank
这种传统方法采用 tg_ 分页排名查询以计算 PageRank 分数。它依赖于基于 CPU 的处理,适用于无法使用或不需要 GPU 加速的场景。想要了解更多详情,请访问 tigergraph/gsql-graph-algorithms GitHub。
Query tg_pagerank( v_type, # Vertex type representing persons in the graph e_type", # Edge type representing friendships between persons max_change=0.001, # Maximum change in PageRank scores for convergence maximum_iteration=25,# Maximum number of iterations for convergence damping=0.85,