2. Reconfigurable PE Array
B. Reconfigurable PE Array 详细介绍
这一节介绍了 Locus 的核心计算单元:可重构 PE 阵列。它的设计目标是让线性链接(LC)、图链接(GC)和比对(AL)三个阶段能够在同一套硬件上执行,从而避免中间数据在专用计算单元之间搬运,保留片上复用机会。整个 PE 阵列采用 基于模式的重配置(mode-based reconfiguration):每个 PE 内部包含共享的算术单元(加法器、比较器、最大值选择器),这些单元在三种工作模式之间动态复用;未使用的模式数据通路会被电源门控(power-gated)以节省功耗。
下面分别介绍三种模式以及本地 scratchpad。
1. 总体思想:为什么需要可重构 PE 阵列
跨阶段融合要求 LC、GC、AL 在统一硬件上执行。如果每个阶段都使用专用计算单元,那么中间数据就必须经过不同的缓冲区,导致片上复用丢失,数据重新回到 DRAM。Locus 的 PE 阵列通过模式切换解决这个问题:
- 每个 PE 的算术单元是共享的,可在三种模式间重新利用;
- 模式特定的数据通路在不用时被电源门控;
- 这样既保持了融合执行的连续性,又避免了为每个阶段单独设计硬件的面积开销。
2. Mode 1:Chaining(链接模式)
用途:
- 主要用于线性链接(LC),把同一图 segment 内的 seed anchors 连接成共线链;
- 在图链接(GC)阶段,当 GPF 引擎提供图路径距离后,也复用该模式来计算跨 segment 转换的分数。
输入:
- 一对 anchors ,来自 GLB 的 Anchor Bank。
- 其中 被广播到所有 PE,它编码了查询位置、参考位置和 segment ID。
- 每个 PE 持有一个不同的前驱 anchor 候选 。
计算:
- PE 数据通路根据论文 Equation 1 计算链接分数:
- 它计算坐标差,通过 查找表评估 gap penalty,最终输出一个标量分数。
候选筛选与并行性:
- 链接递推需要从所有合法候选中选出得分最高的前驱。为了减少计算量,RMQ 引擎先用线段树在 时间内缩小候选集。
- PE 阵列只评估存活的配对,因此不需要 inter-PE reduction。
- 每个 PE 独立运行,没有 PE 间数据交换。
- PE 阵列每个周期处理一个 anchor ,所有候选并行评估。
输出:
- 获胜分数和前驱索引写入 GLB 的 IR Bank。
3. Mode 2:Wavefront alignment (affine gaps)(仿射 gap 的波前比对)
用途:
- 用于比对阶段(AL)的碱基级序列比较,采用仿射 gap penalty(区分 gap-open 和 gap-extend)。
- 这是最终比对模式,精度要求高。
并行方式:
- 每个 PE 处理波前比对矩阵的一条对角线。
输入:
- 一对序列:来自 Sequence Bank 的查询子序列,以及来自 IR Bank 的参考路径。
每个 PE 的操作:
- 从本地 scratchpad 读取五个波前分量:匹配状态,以及每个方向的两个仿射 gap 状态。
- 从相邻 PE 接收边界分数。
- 计算下一个分数的 furthest-reaching offsets。
- 将结果写回 scratchpad。
PE 间数据流:
- 插入分数(insertion scores)从左到右在水平相邻 PE 之间流动;
- 删除分数(deletion scores)从右到左流动;
- 匹配分数(match scores)沿对角线流动。
每周期工作量:
- 每个 PE 执行 9 次 scratchpad 读 和一次 5 路最大值选择。
输出:
- 完整的比对分数和一组回溯指针,存储在 scratchpad 中。
- 之后由 Traceback Engine 压缩成 CIGAR 字符串。
4. Mode 3:Wavefront alignment (edit distance)(编辑距离的波前比对)
用途:
- 是 Mode 2 的简化版本,用于图链接(GC)阶段验证通过 bubble 区域的候选路径。
- 它只计算编辑距离,不区分 gap-open 和 gap-extend。
并行方式:
- 每个 PE 处理编辑距离波前的一条对角线。
输入与数据流:
- 输入和 PE-to-PE 数据流与 Mode 2 完全相同。
评分简化:
- 所有编辑操作使用统一成本 ,而不是分开的 gap-open 和 gap-extend penalty。
- 这使计算从五个 DP 矩阵减少到三个,每周期 scratchpad 读从 9 次减少到 3 次。
输出:
- 编辑距离分数,用于评估通过 bubble 的候选路径是否有效。
实现:
- Mode 3 与 Mode 2 共享相同的物理互连。
- PE 通过一个由模式寄存器控制的多路复用器,在仿射评分和编辑距离评分之间选择。
5. 本地 Scratchpad(Local Scratchpad)
作用:
- PE 阵列连接到一个本地 scratchpad,用于在比对期间存储波前 DP 矩阵。
与 GLB 的区别:
- GLB 数据跨 tile 持续存在;
- scratchpad 内容在单个比对任务内是瞬态的。
组织方式:
- scratchpad 被组织成五个逻辑区域,分别对应 WFA 矩阵类型。
延迟优势:
- 将 DP 矩阵放在本地 scratchpad 而不是 GLB,可以把访问延迟从 3 个周期降低到 1 个周期。
- 这对于在内存密集型的波前计算中维持 PE 吞吐量至关重要。
6. 小结
Locus 的可重构 PE 阵列通过模式切换,在统一硬件上支持三种计算模式:
| 模式 | 用途 | 关键特征 |
|---|---|---|
| Mode 1: Chaining | 线性链接、图链接评分 | 广播 ,每个 PE 持有不同 ;RMQ 预筛选;无 inter-PE 通信 |
| Mode 2: WFA affine | 最终碱基级比对 | 每个 PE 一条对角线;9 次 scratchpad 读 + 5 路最大值;区分 gap-open/extend |
| Mode 3: WFA edit | 图链接中验证 bubble 路径 | Mode 2 的简化;3 次 scratchpad 读;统一编辑成本 |
配合本地 scratchpad 的低延迟访问,这种设计既实现了跨阶段融合,又保持了高吞吐和低功耗,是 Locus 架构的关键组成部分。