2.4 Flexible PE Array
4.1 节的 Flexible PE Array 是 PanGaea 加速器的计算核心。它的“灵活”体现在:同一套 12×12 的处理单元(PE)阵列,可以通过动态配置,分别支持线性链、WFA-Affine 对齐和 WFA-Edit 对齐三种截然不同的计算模式。 这样就不需要为每个流水线阶段单独设计专用硬件,从而节省面积、提高利用率,并减少阶段切换时的上下文开销。
下面分几层来解释。
1. 为什么需要“灵活”的 PE 阵列?
S2G 流水线中,不同阶段的计算模式差异很大:
- Linear Chaining(线性链):稀疏动态规划,每个 PE 评估一个锚点对 ,计算间隙惩罚,然后归约找最优 。
- WFA-Affine(仿射间隙波前对齐):密集动态规划,计算 五个矩阵,需要从多个 penalty level 读取数据。
- WFA-Edit(编辑距离波前对齐):也是密集 DP,但代价模型更简单,只需三个矩阵,从 层读取。
如果为每种模式都做专用硬件,面积会很大,而且每个阶段只用到一部分,利用率低。
所以 PanGaea 设计了一个可重构 PE 阵列:底层共享算术单元,上层通过多路复用器(MUX)切换数据通路和参数,不用的部分电源门控。这样一套硬件就能分时处理三种模式。
2. PE 阵列总体结构
- 规模: 个 PE。
- 共享算术单元:每个 PE 内部有加法器、减法器、比较器、绝对值、最小值、最大值、多路复用器等。
- 模式特定数据通路:根据当前模式,MUX 选择不同的输入、操作和输出路径。
- 电源门控:当前模式不用的逻辑块被关掉,降低功耗。
- 局部 scratchpad:PE 阵列直接连接一块局部 SRAM,用来存 WFA 的 DP 矩阵,访问延迟只有 1 个周期(从 GLB 读要 3 个周期),这对 WFA 的高频访问至关重要。
3. 三种模式详解
Mode 1:Linear Chaining(线性链)
任务:对固定的锚点 ,遍历所有可能的 ,计算链分数,找最优 。
公式(论文公式 7):
其中 ,。
PE 内部实现:
- 两个 32 位减法器算 ;
- 绝对值、最小值单元算惩罚项;
- 一个 256 项的查找表(2 KB,存在 scratchpad)算 ;
- 两个定点乘法器乘 和 ;
- 比较器检查线性条件 和带宽限制 。
数据流(4.2 节详述):
- 锚点数据广播到所有 PE;
- 每个 PE 独立算一个 对的分数;
- 然后通过 PE 网格做垂直-水平归约:每列先垂直比较找最大,再把各列最大值水平传到 ,得到全局最大分数和最佳 。
- 归约树直接嵌入 PE 的输出混合逻辑,不单独做专用树,节省约 15% 面积,减少 3 周期延迟。
Mode 2A:WFA-Affine(仿射间隙波前对齐)
任务:用两层仿射间隙模型做波前对齐,短间隙用 ,长间隙用 。
公式(论文公式 8):
PE 输入:查询碱基 、参考碱基 ,以及从 scratchpad 读出的五个 DP 值 。
PE 内部实现:
- 8 位比较器判断 match;
- 四个并行 max 单元算 ;
- 两个增量器给 矩阵加 1;
- 五路 max 树选最优状态。
关键点:每周期每个 PE 需要 9 次 scratchpad 读,因为要访问多个 penalty level 的矩阵。所以 scratchpad 必须多端口。
数据流(4.2 节):
- 波前沿对角线有依赖:计算 需要 的值。
- 相邻对角线共享大量数据,所以 PE 排成 2D 网格,邻居之间水平交换:
- 每个 PE 把 矩阵发给右邻居;
- 把 矩阵发给左邻居;
- 通过 All-reduce 通信传播。
Mode 2B:WFA-Edit(编辑距离波前对齐)
任务:计算编辑距离对齐,每个操作代价统一为 ,用于图 WFA 跨变异泡。
公式(论文公式 9):
特点:
- 只需三个 DP 矩阵,比 Mode 2A 少 40% 存储;
- 每周期只需 3 次 scratchpad 读,且都来自 层;
- 与 Mode 2A 共享算术单元:match 检测器、加法器、MAX 树复用,只通过 MUX 选择仿射参数或统一 常数。
- 这种共享让 PE 面积比复制一份硬件节省 23%。
4. 灵活性的体现
- 共享算术单元:加法、比较、max 等基础单元三种模式都用。
- MUX 动态切换:根据模式选择输入源、操作类型、输出路径。
- 电源门控:不用的数据通路断电,降低功耗。
- 统一 PE 网格:同一套 144 个 PE 分时处理链、对齐,减少阶段切换开销。
- 局部 scratchpad:为 WFA 提供低延迟、多端口访问,支持密集 DP。
5. 与整体架构的配合
- GLB:存储 anchors、图拓扑、中间结果。PE 阵列从 GLB 取数据,但 WFA 矩阵放在局部 scratchpad。
- 数据流映射:
- Mode 1 用广播-单播-归约;
- Mode 2A/2B 用对角线依赖 + 水平交换 + All-reduce。
- GPF 引擎:独立处理图遍历,PE 阵列专注链和对齐。
- Traceback:对齐完成后,回溯 DP 矩阵生成 CIGAR。
6. 一句话总结
Flexible PE Array 是一个 12×12 的可重构计算阵列,通过共享算术单元和动态 MUX,在三种模式间切换:线性链的稀疏 DP、WFA-Affine 的密集仿射 DP、WFA-Edit 的编辑距离 DP。它用一套硬件覆盖了 S2G 流水线的主要计算模式,既节省面积又提高利用率,是 PanGaea 实现跨阶段融合的关键。