FPGA 如何进入 AI 领域的思考

        FPGA在AI领域如何发力,如何抢碗饭吃?大多数提到是硬件加速,在AI工程里,完成数据前处理(加速)。大家很少提到AI模型的本身的推理过程,让FPGA成为AI模型的推理/算力芯片,这自然是 FPGA厂商们的梦想。否则,仅仅是加速,那就是个配角。

        Intel(ateral)和 AMD(Xlinx) 已做过大量的尝试,但是效果似乎并不好,这是为什么呢?我们仔细来看看原因。

        在详细解决部署之前,我们还是先从头讲起,看看重要的历史。

一:微软与FPGA

        FPGA 的加速应用,最有名的就是为微软 Bing 搜索引擎加速了,

        在第一个阶段,具体的做法是:

        在数据中心1632台服务,安装了 Intel 的 Stratix V系列的FPGA 几千张。
        1:将核心的文件排名 C++算法(3万行的文件排名) 卸载到 FPGA上 ,完成硬件加速。
        2:CPU 通过 PCIe 总线访问FPGA。可以通过网络访问远端的FPGA。这是一个基础设施。
        结果还是不错的,获得了95%吞吐量提升,达到了加速的目标。可以看出,它利用的是FPGA的并行运算能力,当然,排序算法可能变化,所以,也用到FPGA的可编程性。但从代码量上看,据说有上万行代码,这种用法不是小玩家都完成的,想想都头疼。

        到了第二阶段,形成的这么大规模的 FPGA集群,微软拿来做了其它尝试,提供深度神经网络的部署/推理。

        1:导出已训练好的模型的计算流程图。(深度学习的模型实际上也就是一系列的数据运算流程),模型的训练与传统做法没有什么不同,这里不讲。
        2:计算流图的流程可以进行分解,分解成若干的小图,方便后续可映射到单块FPGA运行。
因为目前具有的集群FPGA,我们可以把任务分派到不同FPGA。
        3:不适合 FPGA运行的部分映射到与FPGA相连的 CPU上。
        4:在FPGA上完成一个 IP软核 :DPU,用于承载第2步的任务,开发者通过指令级IP核调用,降低开发难度。
        注意,微软的FPGA硬件是一个集群,而不是单张FPGA卡。所以,有几个特点:
        1:运算中数据缓存,并没有使用DDR,而是将数据全部存在FPGA的片上高速RAM中,因为集群中有过上千张的FPGA卡,频率高达 600G,基本可以形成35T左右的处理带宽。这只有微软的这种情况才能实现。使用高速RAM,速度自然会更快。DDR是较慢的,因为需要通过接口不停的读取有消耗。
        2:微软自定义了 ms-fp-8, ms-fp-9 这两种低精度的浮点数,可以理解就是量化,通过调低精度,降低算力和存储要求。
        3:硬件工程师会开发和维护 NPU 软核和指令集,软件工程师基于NPU IP 和指令集进行应用开发。注意:这个指令集类似SIMD(GPU的指令集)。我们可以理解,就是在模仿GPU的做法。

        上面形成的这个脑波NPU,微软也在Bing中应用了(TuringPrototype,DeepScan) ,效果如何,没有资料提及。

        从上面的例子可以看出,微软对FPGA使用很深。     

二:AMD 的 ACAP

        ADM几年前推出的ACAP,往往被认为是用来应对 AI 浪潮的,我们来看看它到底是如何策略的。

Adapt Compute Accerlate Platform
        Adapt:可适应的,可适配的。
        Compute:仍然立足于运算。
        Accerlerate:主要用途是数据加速。
        Platform:提供的是一个平台,可以理解是面向一个工程的整体解决方案,而非局部。

        从字面上理解,除了数据加速,并看不出和AI有什么直接关系。

仔细看一下ACAP的结构,可以看出点内容:

1:芯片固化了一组 AI Engine(实际后续还出了一款 AI Engine ML )。内置RISC处理器,一个向量处理器。可以进行SIMD的定点和浮点并行计算。配有分布式内存和组存,每个AI Block之间可以DMA方式共享内存。这妥妥的就是GPU的做法。可以理解为一个为了做AI运算的ASIC芯片,类似Google的TPU。(当然,也有说法,一开始并不是专为AI设计的,我后面会说)

2:提供了片上网络(NoC),提供高速的数据传输能力。将数据传输与运算做了分离。其实这很重要,因为运算速度并不是单由算力决定,还有数据传输能力和速度。

3:FPGA中的CLB架构变化,单个CLB中 LUT数量变大。还有一些其它变化,这可以提升运算性能(减少芯片后端实现时的走线压力),但好像和AI没啥关系。

4:如此复杂的芯片结构,采用了SSI技术(堆叠)来完成加工生产。

5:推出Vitis开发工具链,其中包括了收购的深鉴公司的 DNNDK(包含了模型的深度压缩,量化,剪枝功能)。并内置了一些深度模型,但据可靠人士反馈,真实可用的,很少(官方model zoom中的可用模型不多,也不包括transformer,并且更多要使用ML版本)。

我们曾经想用VCK5000的卡部署 Llamma的vicume模型,但发现根本就不支持。

所以,综上所述,ACAP 对于AI 有野心,但没有啥效果。我最近一次去参加了AMD线下的技术大会,会上对于AIE的介绍,基本上都用用来解决DSP的问题。基本上是基于Vitis的API编程,而不是AI编程。

三:AI模型需要近似处理

        对于AI模型(深度学习模型)推理的影响因素,最容易想到的是算力(计算复杂度),性能(推理准确度),存

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值