第 4 章 多模混合图神经网络加速架构
HyGCN具体的实现那一部分暂时还没看,主要是看了一部分加速架构的设计动机(4.1)、设计理念(4.2)、实验评估(4.5)、结果分析(4.6)、相关工作(4.7),想找一些和PyG相关的内容先看一下,也和之前在PyG上做的实验进行一个对比分析,检验一下之前想的和这里面写的是否一致。
Aggregate阶段和Combine阶段的特性分析
在第二章中,主要将GNN分为了Aggregate阶段和Combine阶段,一开始感觉有点不太对劲,因为他说的和MPNN中的好像不太一样,但是后来想了想,又和师姐讨论了一下,发现这么划分还是很有道理的,并且和PyG结合起来分析会更加明确一些。
文章里面一直在强调针对这两个阶段的加速问题,也通过实验分析出了每个阶段的特点。
Aggregate阶段因为涉及到邻居的访问,所以可以去类比图计算中的遍历,它的特点是动态计算和不规则访问。聚合阶段的特点也可以说是痛点在于「访存」。为什么这么说呢?因为节点的邻居是随机的,所以我们并不能“高瞻远瞩”去提前预知最近都会去访问哪些节点。我们访问节点的目的其实是要获取节点自身的特征/属性向量,然而,由于图的结构特性(一种访存的随机性),节点属性数据的时间局部性又很差。如果我们依旧使用原先的存储层次,会导致更多的DRAM访问、较高的L2/L3 cache不命中率以及大量无效的访存。
通过上面的分析,Aggregate阶段的特点也很明确了,就是不规则的访存,或者说是访存密集型的操作&#