当前位置:首页 > 智能硬件 > 人工智能AI
[导读] 基于FPGA的通用CNN加速设计,可以大大缩短FPGA开发周期,支持业务深度学习算法快速迭代;提供与GPU相媲美的计算性能,但拥有相较于GPU数量级的延时优势,为业务构建最强劲的实时AI服务能力

基于FPGA的通用CNN加速设计,可以大大缩短FPGA开发周期,支持业务深度学习算法快速迭代;提供与GPU相媲美的计算性能,但拥有相较于GPU数量级的延时优势,为业务构建最强劲的实时AI服务能力。

WHEN?深度学习异构计算现状

随着互联网用户的快速增长,数据体量的急剧膨胀,数据中心对计算的需求也在迅猛上涨。同时,人工智能、高性能数据分析和金融分析等计算密集型领域的兴起,对计算能力的需求已远远超出了传统CPU处理器的能力所及。

异构计算被认为是现阶段解决此计算沟壑的关键技术,目前 “CPU+GPU”以及“CPU+FPGA” 是最受业界关注的异构计算平台。它们具有比传统CPU并行计算更高效率和更低延迟的计算性能优势。面对如此巨大的市场,科技行业大量企业投入了大量的资金和人力,异构编程的开发标准也在逐渐成熟,而主流的云服务商更是在积极布局。

WHY?通用CNN FPGA加速

业界可以看到诸如微软等巨头公司已经部署大批量的FPGA来做AI inference加速,FPGA相较于其他器件的优势是什么呢?

Flexibility:可编程性天然适配正在快速演进的ML算法

DNN、CNN、LSTM、MLP、reinforcement learning以及决策树等等

任意精度动态支持

模型压缩、稀疏网络、更快更好的网络

Performance:构建实时性AI服务能力

相较于GPU/CPU数量级提升的低延时预测能力

相较于GPU/CPU数量级提升的单瓦特性能能力

Scale

板卡间高速互联IO

Intel CPU-FPGA构架

与此同时,FPGA的短板也非常的明显,FPGA使用HDL硬件描述语言来进行开发,开发周期长,入门门槛高。以单独的经典模型如Alexnet以及Googlenet为例,针对一个模型进行定制的加速开发,往往需要数月的时间。业务方以及FPGA加速团队需要兼顾算法迭代以及适配FPGA硬件加速,十分痛苦。

一方面需要FPGA提供相较于CPU/GPU有足够竞争力的低延时高性能服务,一方面需要FPGA的开发周期跟上深度学习算法的迭代周期,基于这两点我们设计开发了一款通用的CNN加速器。兼顾主流模型算子的通用设计,以编译器产生指令的方式来驱动模型加速,可以短时间内支持模型切换;同时,对于新兴的深度学习算法,在此通用基础版本上进行相关算子的快速开发迭代,模型加速开发时间从之前的数月降低到现在的一到两周之内。

HOW?通用CNN FPGA架构

基于FPGA的通用CNN加速器整体框架如下,通过Caffe/Tensorflow/Mxnet等框架训练出来的CNN模型,通过编译器的一系列优化生成模型对应的指令;同时,图片数据和模型权重数据按照优化规则进行预处理以及压缩后通过PCIe下发到FPGA加速器中。FPGA加速器完全按照指令缓冲区中的指令集驱动工作,加速器执行一遍完整指令缓冲区中的指令则完成一张图片深度模型的计算加速工作。每个功能模块各自相对独立,只对每一次单独的模块计算请求负责。加速器与深度学习模型相抽离,各个layer的数据依赖以及前后执行关系均在指令集中进行控制。

简单而言,编译器的主要工作就是对模型结构进行分析优化,然后生成FPGA高效执行的指令集。编译器优化的指导思想是:更高的MAC dsp计算效率以及更少的内存访问需求。

接下来我们以Googlenet V1模型为例,对加速器的设计优化思路做简单的分析。IncepTIon v1的网络,将1x1、3x3、5x5的conv和3x3的pooling stack在一起,一方面增加了网络的width,另一方面增加了网络对尺度的适应性。下图为模型中IncepTIon的基本结构。

数据依赖关系分析

此部分主要分析挖掘模型中可流水化以及可并行化的计算。流水化的设计可以提高加速器中的计算单元利用率,并行化的计算可以在同一时刻利用尽量多的计算单元。

关于流水,分析部分包括数据从DDR加载到FPGA片上SRAM的操作与PE进行计算的流水,通过此项优化将内存访问的时间overlap;DSP计算整列的计算控制过程,保证DSP利用率的提升。

关于并行,需要重点分析PE计算阵列与激活、pooling以及归一化等“后处理”模块之间的并行关系,如何确定好数据依赖关系以及防止冲突是此处设计关键。在IncepTIon中,可以从其网络结构中看到,branch a/b/c的1x1的卷积计算与branch d中的pooling是可以并行计算的,两者之间并不存在数据依赖关系。通过此处优化,3x3 max pooling layer的计算就可以被完全overlap。

模型优化

在设计中主要考虑两个方面:寻找模型结构优化以及支持动态精度调整的定点化。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭