面部识别系统硬件加速器与3D堆叠IC的TSV修复技术
1. 面部识别系统硬件加速器
1.1 定点计算实现
数据量化能够将位宽降低至16位,且精度损失可忽略不计。软件实现通常采用浮点运算进行计算,在Google Colab上获得的训练参数为32位浮点格式。从硬件角度看,定点运算比浮点运算更快,因为其硬件复杂度更低,资源利用率更少。采用定点运算替代浮点运算,可在性能下降极小的情况下减少推理时间。由于16位Q4.12定点格式具有可接受的精度,所有训练参数都被量化为Q4.12定点格式,并且硬件被设计为以定点表示进行计算。同时,还设计了定点格式的有符号加法和乘法模块。输入图像和参数被归一化,以将每层产生的输出值限制在{0,1}范围内。
1.2 全局控制器单元
全局控制器单元生成所有控制信号,其输入为主时钟和系统复位信号。它负责为每一层生成派生时钟信号,以及同步和控制各层之间所有数据流的控制信号。此外,它还负责生成从BRAM预取参数的控制信号和地址。
1.3 全连接(密集)层
卷积神经网络(CNN)的最后阶段是全连接/密集层,它以主时钟频率运行。第3层的输出逐像素串行输入到全连接层(实际上是扁平化处理)。该层的所有43个神经元都与这个输入相连。该层的每个神经元都有一个配置为ROM的独立BRAM,用于存储与该神经元对应的参数。每个地址位置存储一个16位参数。使用地址生成器从ROM中获取参数。累加器寄存器存储乘法和累加(MAC)操作的结果。乘积与累加器寄存器中存储的值相加,然后再存回累加器。所有43个神经元的累加器寄存器中存储的结果被输入到比较树中,以找到激活程度最高的神经元。比较树的结果通过激活层处理。为了降低硬件复杂度,