Skip to content

Optimizing Bit-Serial Matrix Multiplication for Reconfigurable Computing

Updated: at 15:06

1.Intro

BISMO: A Scalable Bit Serial Matrix Multiplication Overlay for Reconfigurable Computing 的改进,引入了P2S模块+FGPA上的优化+阶段调度的优化+LUT的优化

2.Background: Bit-Serial

改进的思想:内存提供的位顺序与加速器期望接收到他们的顺序要尽量一致,保证内存带宽尽量被高效利用。 传统方法计算的时候一个元素的所有bit都是连续的,因为所有bit是在一次处理过程中被同时用到的,data layout 类似[row][col][bit][row][col][bit];基于Bit-Serial的方法每次处理的是很多元素的同一个位,输入的时候就要尽量保证data layou变成[bit][row][col][bit][row][col]的形式。 为了实现这种bit-serial的data layout,引入了parallel-to-serial的新模块。

3.The Bit-Serial Matrix Multiplication Overlay

3.1. Overall

Untitled.png

新结构里面多了一个P2S模块,“as an optional, standalone accelerator”。

3.2. the Dot Product Unit DPU

电路上的优化,没看懂

3.3. Bit-Parallel to Bit-Serial Matrix Transformation

Untitled.png

“The total number of coalescing buffers defines the maximum supported precision M of the bit-parallel input matrix and is specified at synthesis time.” DMA读出来的数据按bit放入Buffer中,BufferiBuffer_i就是第i位,M的大小决定了P2S模块支持的最大精度。

3.4. Cost Model

和BISMO原文一样从LUT和BRAM两个方面分析

3.5. Programming BISMO

加了一个Running P2S指令,P2S是从DRAM读出再写回DRAM,和BISMO本身完全没有交互。

4.Evaluation


Previous Post
HAWQ: Hessian Aware Quantization of Neural Networks with Mixed-Precision
Next Post
TVM: An Automated End-to-End Optimizing Compiler for Deep Learning