Skip to content

BISMO: A Scalable Bit Serial Matrix Multiplication Overlay for Reconfigurable Computing

Updated: at 15:06

BISMOBI t S erial M atrix M ultiplication O verlay 摘要 : 矩阵乘法是科学和工程中众多应用的关键计算核心,具有丰富的并行性和数据局部性,非常适合高性能实现。许多依赖于矩阵乘法的应用可以使用降低精度的整数或定点表示来提高性能和能源效率,同时仍然提供足够的结果质量。然而,不同应用阶段之间或者依赖于输入数据时可能需要不同精度要求,使得恒定精度解决方案无效。本文介绍了BISMO,一种基于可重构计算的向量化位串行矩阵乘法叠加层。BISMO利用FPGA出色的二进制操作性能,在所需精度和并行性上提供可扩展的矩阵乘法性能。我们对BISMO在一系列参数下资源使用情况和性能进行表征以建立硬件成本模型,并在Xilinx PYNQ-Z1开发板上展示了6.5 TOPS峰值性能。

1.Intro

矩阵乘法是一种很重要的操作,目前的大部分加速器基本提供的是固定精度的矩阵乘法计算,但是新的机器学习技术中有很多采用了mix precision的方法,在传统的固定精度阵列上进行混合精度的计算耗时甚至不支持。 本文设计了BISMO,利用bit serial的方法实现了一种可以对任意精度、任意规模的矩阵进行矩阵乘法计算的加速器。代码开源在[https://github.com/EECS-NTNU/bismo]。

2.Bit-Serial Matrix Multiplication

Untitled.png

3.The Bit-Serial Matrix Multiplication Overlay

可以对整数和定点数做bit serial的乘法,把数bit slice成多个片以后在不同的阵列上面并行地计算。 BISMO的key features:Precision-scalable,Hardware-scalable,Software-programmable

3.1. working stages

Untitled.png

Untitled.png

Untitled.png

3.2. Cost Model

3.3. Programming BISMO

Instructions:

Untitled.png

Running Timeline:

Untitled.png

L0, R0都是bit-slice;流水线的形式,在E阶段可以继续F下一次计算要用的数据,通过wait和signal信号实现同步和互斥

4.Evaluation

设备:PYNQ-Z1, Xilinx Z7020 FPGA with 3200 LUTs, 140 BRAMs and 3.2 GB/s of BRAM bandwidth.

4.1. Synthesis Results and Resource Cost

详细看一下FPGA原理再补

4.2. Runtime Performance

bit-packed data layout : 可能多个数值保存在同一个变量中,“bit-packed”

4.2.1. Peak Binary Compute

更大位宽/更大同时能算的位数都能提高计算效率,原因比较显然;更大的DkD_k需要更大的Matrix width kk,要保证DPU流水线始终被填满,减少空置等待的时间(F)

Untitled.png

4.2.2. Peak Bit-Serial Compute:

这篇论文里面还没有用P2S的专门硬件来做,分析的是bit-serial方式的计算和传统的直接计算之间的差别

4.2.3. Stage Overlap

矩阵规模大的时候整个阵列类似一个流水线的状态,各个stage之间重叠可以提高效率减少cycle数

4.2.4. Power Consumption

5.Related Work & Conclusion


Previous Post
A Hardware-Software Blueprint for Flexible Deep Learning Specialization
Next Post
Code Transpilation for Hardware Accelerators