一句话:提出 FPGA 加速器 VIBNN,通过定制高斯随机数生成与深度流水线架构加速 BNN 变分推断。
贝叶斯神经网络(BNN)通过条件概率分布权重和变分推断缓解过拟合并支持小数据训练,但推断过程中频繁采样高斯随机变量,传统高斯随机数生成器(GRNG)硬件开销高,使 FPGA 实现面临挑战。本文提出 VIBNN,一种面向 BNN 变分推断的 FPGA 硬件加速器。方法上设计两种高斯随机数生成器:基于 RAM 的线性反馈高斯随机数生成器(RLF-GRNG)和面向 BNN 的 Wallace 高斯随机数生成器,并采用深度流水线架构提升可扩展性与内存访问效率。实验表明,VIBNN 在 FPGA 上达到 321,543.4 Images/s 吞吐率和最高 52,694.8 Images/J 能效,同时保持与软件实现相近的精度。
Bayesian Neural Networks (BNNs) have been proposed to address the problem of model uncertainty in training and inference. By introducing weights associated with conditioned probability distributions, BNNs are capable of resolving the overfitting issue commonly seen in conventional neural networks and allow for small-data training, through the variational inference process. Frequent usage of Gaussian random variables in this process requires a properly optimized Gaussian Random Number Generator (GRNG). The high hardware cost of conventional GRNG makes the hardware implementation of BNNs challenging. In this paper, we propose VIBNN, an FPGA-based hardware accelerator design for variational inference on BNNs. We explore the design space for massive amount of Gaussian variable sampling tasks in BNNs. Specifically, we introduce two high performance Gaussian (pseudo) random number generators: 1) the RAM-based Linear Feedback Gaussian Random Number Generator (RLF-GRNG), which is inspired by the properties of binomial distribution and linear feedback logics; and 2) the Bayesian Neural Network-oriented Wallace Gaussian Random Number Generator. To achieve high scalability and efficient memory access, we propose a deep pipelined accelerator architecture with fast execution and good hardware utilization. Experimental results demonstrate that the proposed VIBNN implementations on an FPGA can achieve throughput of 321,543.4 Images/s and energy efficiency upto 52,694.8 Images/J while maintaining similar accuracy as its software counterpart.