FPGA在AI时代的定位?
现如今,所有行业都想和AI扯上关系。作为算力芯片之一的FPGA,自然也不例外。我记得之前已经总结过几次,但总觉得有些附会。最近半年,AI芯片的概念再次暴火,所以,想再总结一下。从纯技术角度看看。
一:FPGA在AI运算中的优势
1.1:近存运算
我记得这两年的AI芯片大会上,讲得最多的就是存算一体,或者说近存运算。
FPGA芯片内有很多的BRAM(还可以使用LUT搭建DRAM),这就可以构建高效的分布式内存,实现近存访问,减少远程内存访问,缓解内存墙的问题。
1.2:流式运算
大家都是冯氏架构,不断的读写内存,完成运算,这样的效率是很低的。
FPGA可以通过布局布线,将数据像流水一样在计算单元间流动,避免内存访问。
1.3:大量并行
GPU较快,是因为大量的并行,但FPGA的并行度可以更高,因为所有的并行都是可以通过配置来达成的。上百万的LUTS单元,FF单元,可以任意配置,形成任意多的并行运算流程。(当然,这是理论上,还得保证合理的时序)。
1.4:算法的粒度可变
多个计算单元可以组合形成粗粒度的管道,这样运算效率更高。注意,实际上就是减少了调度的成本。让数据的运算过程,通过管道的方式固化下来。
1.5:可适配迭代AI算法
人工智能时代,AI算法会不断推陈出新,对于硬件的算力和灵活度要求很高。
FPGA可适配迭代AI 算法,不管AI算法如何变化,因为FPGA可编程(硬件电路)。
总之,FPGA使用AI运算,可以按要求进行算法定制,并采用合理的粒度,大量并行的,像流水一样的,在计算中流动。
二:EDA的作用
FPGA 的能力,离不开强大的EDA工具。
要形成像流水一样的数据管道,依赖FPGA的强大的EDA工具,该工具不是简单的编译器,通过布局布线,获得足够多的并行,通过时序优化,保证运算的合理配合,
可以处理复杂的电路网表,并运算变成海量的并行,优化形成DataFlow & Streaming方式,形成高效的AI运算。
三:AI技术对FPGA的影响
那AI的兴起,对FPGA有什么深远的影响呢?
3.1:Fabric架构变化
为了提升FPGA对AI运算的支持,需要在Fabric架构层面调整计算颗粒度,
在细粒度逻辑单元和粗粒度专用模块(如DSP)间找到最佳平衡,实现高效矩阵运算。
优化级联:减少计算单元间的连接延迟,打造高效流水线。
3.2:有效的动态重配
提升资源利用率,适应AI模型多变的需求。
阶段性重配:在运行不同模型阶段时,快速切换硬件电路,最大化利用芯片资源。
目标:近似ASIC的效率,保留FPGA的灵活性。
3.3:提升数据搬运的瓶颈,增强Routing架构
增加高速数据通路:像修建高速公路,实现计算单元间的高速数据流动。
支持宽位数据:原生支持128/256位等宽数据总线,匹配AI数据流
3.4:降低开发门槛,进一步优化EDA工具
高级综合工具:让算法工程师直接参与硬件设计。
系统级协同优化:工具链能对AI应用进行全栈优化。
四:融合方案
实际上还是以前的建议,在AI方面,FPGA提供与其它芯片融合的方案,而不是独立完成AI运算。
其它内容,在我之前的几篇博客中已提到,这里就不用再写了,可参考:
FPGA 如何进入 AI 领域的思考
学习FPGA之三:FPGA与人工智能
