gunrock/gunrock

Programmable CUDA/C++ GPU Graph Analytics

它解决了什么问题

在 GPU 上进行图分析通常很难编写,因为你需要管理底层的并行性和内存。Gunrock 通过提供一种高级的、以数据为中心的抽象来解决这个问题,该抽象专注于顶点或边前沿上的操作,因此你可以快速实现 BFS 或 PageRank 等算法,而无需深厚的 GPU 专业知识。

它是如何工作的

Gunrock 构建在批量同步/异步编程模型之上。你定义一个顶点或边前沿,然后应用诸如 advance(从前沿遍历)和 filter(丢弃元素)之类的操作。该库提供优化的 GPU 原语和细粒度的负载均衡,其 API 允许你从单 GPU 扩展到节点上的多 GPU。

它适合谁

它适合需要构建或运行 GPU 图算法的开发人员、研究人员和工程师——特别是那些希望在性能和表达能力之间取得平衡,而无需从头编写底层 CUDA 的人。

亮点

  • 支持 NVIDIA CUDA 和 AMD ROCm/HIP 后端
  • 包含预构建算法:BFS、SSSP、PageRank、Betweenness Centrality、Graph Coloring 等
  • 代码量小:BFS 实现可以用几个 lambda 表达式编写
  • 可从单 GPU 扩展到节点上的多 GPU
  • 通过 pygunrock 提供 Python 绑定
  • Apache 2.0 许可

相关

  • 项目
  • 项目
  • 项目
  • 项目