Muti-Pipeline Design of Systolic Array

Muti-Pipeline Design of Systolic Array


Summary

SpinalHDL, Synopsys-DC, Yosys, PTPX

  • 以低精度混合运算为前提的 Pipeline 及脉动⾏为设计
  • 与脉动数据流解耦合的多级可变 Pipeline 设计

Background

脉动阵列的Psum长度会随着多次累加的长度而上升(对数上升),其使得加法器的一个input及output长度的增加,Logic-Level(延时)增加


Main Idea

Systolic-Cell Architecture


Pipeline Architecture


使用可变pipeline设计,分阶段执行乘加运算,此方案与传统脉动设计有较明显差别。


Systolic-Array Architecture

增设了pipeline的脉动阵列的输入&控制行为与传统脉动 阵列相同。
由于增设了pipeline,输出数 据为多段数据,相邻数据段 相隔1clk延迟输出。


Accelerator Architecture

TPU架构(GEMM加速器),采用先脉动再移位的思想。在加速器层次进行多精度可重构设计。
每层阵列的精度为2bit*2bit,共16层阵列。可支持2-8bit混合精度数据进行矩阵乘法计算。
阵列模块后接累加模块&移位模块。累加也采用pipeline加法。


Outcome

To be continue..

Junzhuo Zhou

HaoYu lab, SUSTech