🔧 HPCA 2020 · GCN 硬件加速器

HyGCN: A GCN Accelerator with Hybrid Architecture

Mingyu Yan, Lei Deng, Xing Hu, Ling Liang, Yujing Feng, Xiaochun Ye*, Zhimin Zhang, Dongrui Fan, Yuan Xie
中科院计算所 · 中科院大学 · UC Santa Barbara
arXiv: 2001.02514 HPCA 2020 CPU 1509× / GPU 6.5× 加速 引擎:Aggregation + Combination
01

摘要

We design a GCN accelerator, HyGCN, using a hybrid architecture to efficiently perform GCNs. Compared to PyG on Intel Xeon CPU and NVIDIA V100 GPU, HyGCN achieves on average 1509× speedup with 2500× energy reduction and average 6.5× speedup with 10× energy reduction, respectively.

本文从计算机体系结构视角审视GCN(图卷积神经网络),发现GCN的执行包含两个截然不同的阶段:Aggregation(聚合)Combination(组合)。前者行为类似于图处理——动态、不规则;后者行为类似神经网络——静态、规则

现有架构(CPU、GPU、图加速器、NN加速器)都只擅长优化其中一种模式,无法同时应对GCN的混合执行模式。本文提出HyGCN——一个专用双引擎硬件架构,以混合方式高效执行GCN,并实现了片上引擎间流水线和优先级显存访问协调。

02

背景与动机

GCN 的两阶段执行

GCN 每一层包含两个核心阶段:

1 Sample(可选)
2 Aggregate ← 图处理
3 Combine ← 神经网络
Pool / Readout

从公式角度看,第 k 层:

// Aggregation: 聚合邻居特征 avk = Aggregate( { hu(k-1) : u ∈ N(v) ∪ {v} } ) // Combination: MLP 特征变换 hvk = ReLU( Wk · avk + bk )

现有方案为何不行?

CPU
缓存难以应对不规则的Aggregation访存
GPU
无法高效处理聚合阶段的稀疏性
专用加速器
只优化一种模式,无法兼顾两者

核心矛盾:Aggregation 阶段的访存模式是动态+不规则的(每个顶点的邻居数量和位置都不同),而 Combination 阶段是静态+规则的(矩阵向量乘法,参数全顶点共享)。现有架构没有一个能同时高效处理这两种模式。

关键观察

GCN 不同于传统图分析和传统神经网络:特征向量长且跨层变化(高 intra-vertex 并行度)、MLP参数在顶点间完全共享(高度可重用)、两阶段交替执行提供数据流融合机会。这些特性为专用架构设计提供了独特的设计空间。

03

HyGCN 架构总览

双引擎 + 协同调度

HyGCN 的核心是两大处理引擎和一个协调器:

Aggregation Engine
32× SIMD16 核心
Ping-Pong
Aggregation Buffer
16 MB
Combination Engine
8× 4×128 Systolic Arrays
Coordinator
流水线调度 + 访存仲裁
HBM 1.0 · 256 GB/s
  • Aggregation Engine:32个SIMD16核心,专为处理图结构不规则性和稀疏性设计,支持vertex-disperse并行模式
  • Combination Engine:8个4×128多粒度脉动阵列(Systolic Array),利用规则的MVM和参数共享高效执行
  • Coordinator:负责两引擎间的流水线调度和优先级配置的显存访问仲裁
04

Aggregation Engine:驯服不规则性

算法层面优化(在CPU/GPU上也有效)

论文提出了一个两层的静态图划分方法——Interval-Shard Partition

  • Interval(区间):按顶点ID分组,每组包含连续的一段顶点
  • Shard(分片):将邻接矩阵划分为 Interval × Interval 的二维分片

基于这种划分,聚合操作按 (目标区间 Ii, 源区间 Ij) 逐块执行:属于同一区间的顶点共享其邻接顶点的特征向量,极大提升数据复用

💡 算法效果:该优化在CPU上带来平均 2.3× 加速(更多特征数据可在L2 Cache中命中)。但在GPU上反而性能下降——分片后的并行度不够大,无法充分利用数千硬件线程。

硬件层面优化

数据感知的稀疏消除(Sparsity Eliminator):

尽管Interval-Shard分区提高了数据复用,但图连接是稀疏的,每个分片内仍有很多空边。论文提出窗口滑动+收缩的动态方法:

1. 窗口向下滑动,直到顶行出现边
2. 窗口底部向上收缩,直到底行出现边
3. 只加载有效分片内的特征

这避免了大量无用的特征向量加载,对于GCN尤其是自然——因为特征向量长达数百/数千维,每次冗余加载都非常昂贵。

Vertex-Disperse 处理模式:

将每个顶点的特征向量元素分散到所有SIMD核心并行处理,而不是让每个核心处理一个完整顶点。这充分利用了intra-vertex 并行度,避免了快顶点等待慢顶点的负载不均问题。

05

Combination Engine:利用规则性

多粒度脉动阵列(Multi-Granular Systolic Array)

Combination是规则的MVM计算,适合传统的脉动阵列。但为了与Aggregation Engine的工作模式匹配,论文做了关键改进:

  • 独立模式(Independent):每个4×128模块独立处理一个顶点的MVM。Aggregation每完成一个顶点,立即开始Combination——低延迟
  • 协同模式(Cooperative):将多个4×128模块拼成更大的阵列,多个顶点共享权重参数。高能效
// 协同模式:8个模块共享权重矩阵 Module 1-4: 处理顶点 1..4 的 MVM // 共享 W Module 5-8: 处理顶点 5..8 的 MVM // 同样共享 W // 权重只从HBM加载一次,8个顶点复用

因为GCN的参数在所有顶点间完全共享,协同模式在多个顶点上复用权重,大幅减少了对外显存的访问次数。

06

引擎间流水线与访存协调

Ping-Pong Aggregation Buffer

两个引擎之间通过一个 16MB 的 Ping-Pong 缓冲连接。Aggregation Engine 写一份,Combination Engine 读另一份,实现引擎间并行

Aggregation Engine
处理 Interval I1
Chunk A
写入中
Chunk B
读取中
Combination Engine
处理 Interval I0

提供了两种流水线模式:

  • 延迟感知(Latency-Aware):Combination Engine 在独立模式下工作,Aggregation 每完成一组顶点就立即处理——端到端延迟最小化。
  • 能效感知(Energy-Aware):Combination Engine 在协同模式下工作,等待批量的Aggregation结果后再处理——权重复用最大化,能耗最低。

优先级访存协调

两个引擎共享 HBM 带宽,需要仲裁。论文提出优先级策略

  • Combination Engine 的权重访问优先级最高——权重在所有顶点间共享,延迟会阻塞大量计算
  • Aggregation Engine 的边数据次之——需要边信息才能知道加载哪些特征
  • 特征向量访问最后——通过Sparsity Eliminator过滤后,这部分已经大大减少
07

实验结果

实验设置

1 GHz
时钟频率
12 nm
制程工艺
256 GB/s
HBM 带宽
~24 MB
片上缓存

基准测试:4种GCN模型(GCN, GraphSAGE, GIN, DFP)× 6个数据集(引文网络/社交网络等)。

加速比

1,509×
v.s. CPU (Xeon E5-2680 v3)
6.5×
v.s. GPU (NVIDIA V100)
✅ 加速来源分解:
(1) SIMD核心+脉动阵列的并行计算
(2) Interval-Shard分区的数据复用
(3) 滑动窗口的稀疏消除
(4) 权重共享的高效利用
(5) 引擎间流水线融合

精度最高的 GIN 模型加速比最大——因为GIN先做Aggregation,特征向量维度大,CPU/GPU的冗余访存问题最严重,而HyGCN的优化正好对症。

能耗

0.04%
v.s. CPU 能耗
10%
v.s. GPU 能耗

HyGCN 的能耗只有 CPU 方案的 0.04%,GPU 方案的 10%。注意这已经包含了 HBM 显存的能耗。Aggregation Engine 和 Combination Engine 分别贡献约 35~60% 和 25~50% 的能耗,Coordinator 仅占 5% 左右。

面积与功率

采用TSMC 12nm工艺综合,HyGCN 整体面积约为 50.3 mm²,峰值功耗约 14.7 W。其中片上SRAM(边缘缓冲、输入缓冲、权重缓冲、输出缓冲和聚合缓冲)占芯片面积的主导地位。

📊 结论:HyGCN 以专用硬件设计证明了GCN加速的巨大潜力——在合理面积和功耗下,相比CPU实现 三个数量级的加速和 2500倍的能效提升,即使对比最先进的V100 GPU也有显著优势。

论文:HyGCN: A GCN Accelerator with Hybrid Architecture (arXiv:2001.02514) · HPCA 2020 · 整理:王小红 · 2026-05-22