[GNN]Understanding and Bridging the Gaps in Current GNN Performance Optimizations

论文题目:Understanding and Bridging the Gaps in Current GNN Performance Optimizations
文章时间:
会议/期刊:PPoPP 2021-02-17
作者背景:清华大学,阿里巴巴
笔记时间:2021年09月14日周二
论文地址: ppopp
作者视频: chinasys21

作者对图神经网络的系统特性进行了分析,发现了五个性能瓶颈,对此针对性的进行了改进。
性能瓶颈:

  • 图算子操作较差的locality
  • 不同节点有不同数量的边,会造成严重的负载不均衡 30%的空闲,数据集的差异也有非常大的影响
  • 图操作和神经操作是交互进行的,热点的操作会造成不均衡
  • 图结构中一些算子的重复冗余
  • 不同的特征大小也会对性能造成很大的影响
  • GNN 最近很火,他在图上的学习很快。
    优化他的性能很重要,但是我们目前对他只有粗浅的认识。
    本文,我们对当前比较流行的GNN框架进行深度的检验,提出五个性能提升问题。尤其是针对GNN处理传统图/DNN时的复杂性问题。
    基于我们的发现,我们提出一系列的优化方案。
    优化方案使用了最新的GPU优化技术,并且针对GNN量身定做。
    实验结果证明可以达到不错的性能提升。

    intro
    第一段:GNN最近在很多方面表现好

    第二段:GNN的性能问题。越深越大的模型效果越好,但是计算效率限制了模型的发展。人们从算法角度做了一些改进

    第三段:GNN包含两部分,图计算和神经网络计算,单纯把二者放在一起是不靠谱的。GNN中两者是相互交错的。二者的计算模式有很大区别,图计算是计算稀疏的,而神经网络是计算密集的。GNN框架中会有复杂的算子融合调度的问题。

    第四段:上诉问题导致人们开始开发针对GNN的编程框架。出现了数十种框架,但是我们的实验发现他们在v100上用了不到10%的计算和不到50%带宽。

    第五段:本文提出了五大问题。

    第六段:我们针对问题提出了解决方案。

    第七段:实验结果

    第八段:贡献总结

    第二章 GNN优化的复杂性
    2.1 GNN的流程

    2.2 优化的复杂性
    常规问题:
    1.图计算带来的随机性,2.内存开销大,神经网络的计算量大
    图节点变化多端,对负载均衡和内存优化影响很大。
    大规模的内存footprint 和计算开销,随着图规模的增长而指数增长

    特殊问题:

    GNN中图计算和神经网络的复杂依赖关系以及复杂的交互
    GNN无法使用DNN中的优化算法,如最常见的算子融合技术。
    因为graph operations in GNN have irregular thread mapping patterns, unpredictable memory accesses, and complex dependencies between operations, a clear contrast to regular element-wise and dense operations in DNNs
    2.神经网络计算以图的模式运行
    比如GNN中有很多center-neighbor的模式,和传统的DNN很不同。

    特征向量的长度一直变化
    第三章 现有GNN框架中的问题
    3.1 方法论
    我们选了四个框架,三个GNN模型,8个不同的图数据集。
    硬件设备V100
    cuda10.1
    pytorch 1.5.1

    3.2 观察到的性能瓶颈

    第四章 优化瓶颈