读《详解FPGA - 人工智能时代的驱动引擎》
Reading
2022-04-06 743字

最近业余研究的时候,读了石侃老师写的《详解FPGA - 人工智能时代的驱动引擎》这本书,以下是觉得比较重要的知识:

笔记

在人工智能应用中,FPGA的最大优势之一就是可以在运算时采用可变精度,而不是CPU等芯片中采用的固定定长,从而带来巨大的性能提升。通过支持不同精度的DSP配置,使得FPGA既可以使用浮点数进行AI模拟的训练,也可以使用更低精度的定点数进行AI模型的推断,提升AI推断的性能。

通过CPU + FPGA的架构,可以将电信的网络功能在通用服务器中实现,使用通用设备而非专用设备,提高了数据中心的弹性扩展能力。

如果结合“低延时”和“高带宽”这两点需求,传统的深度学习模型和硬件的解决方法是对神经网络进行剪枝和压缩,从而减少模型的大小,直到满足AI加速芯片有限的硬件资源为止。这种方法最主要的问题就是会对模型的精度和质量造成不可避免的损失,而且这些损失往往是不可修复的。FPGA资源池的设计可以看成是“无限的”,因此可以将一个大的DNN模型分解成若干小部分,每个小部分可以完整映射到单个FPGA上实现,然后各部分再通过高速数据中心网络互连。这样不仅保证了低延时和高带宽的性能要求,也保证了模型的完整性,不会造成精度和质量损失。

深度神经网络(DNN)中采用近似化的方法,可以在几乎不损失推断精度的情况下,极大地提升系统性能。业界一般采用DNN近视化方法包括:用低精度定点数替代浮点数,网络剪枝将密集型网络转换成稀疏型网络,深度压缩等方法。而GPU的SMIT和SMID架构并不适用于这些近视化后的低密度数据集,导致其性能优势丧失。

通常情况下,FPGA的时钟频率要比CPU或ASIC慢很多,往往只能达到CPU或者ASIC时钟频率的10% ~ 20%, 这主要受制于FPGA内部的逻辑延时与互连延时。