当前位置:首页 > 智能硬件 > 人工智能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。

模型优化

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

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

中国,上海——2026年3月26日——低功耗可编程领域的领导者,莱迪思半导体(NASDAQ: LSCC)今日宣布正式加入英伟达(NVIDIA) Halos AI系统检测实验室生态体系。该实验室是首个获得美国国家标准协会认...

关键字: 物理人工智能 传感器 FPGA

在工业自动化的“神经网络”中,EtherCAT凭借其独特的“飞过处理”机制,已成为实时控制领域的王者。不同于传统以太网的存储转发,EtherCAT数据帧在经过每个从站时,硬件直接从中提取数据并插入响应,这种“边飞边修”的...

关键字: EtherCAT FPGA 总线

在复杂的SoC芯片设计流程中,硬件与软件的“割裂”往往是导致项目延期的元凶。当RTL代码还在仿真阶段时,软件团队只能基于指令集模拟器(ISS)进行开发,不仅速度慢如蜗牛,且无法捕捉真实硬件的时序细节。此时,FPGA原型验...

关键字: SoC 硬件加速 FPGA

在工业4.0浪潮中,边缘计算网关正成为连接物理世界与数字世界的核心枢纽。面对多路传感器产生的海量数据洪流,传统单芯片架构已难以满足实时性与算力的双重需求。NVIDIA Jetson与FPGA的异构组合,通过"前端FPGA...

关键字: 边缘计算 NVIDIA Jetson FPGA

在高速网络通信领域,FPGA凭借其并行处理能力成为实现以太网MAC(媒体访问控制)层的理想平台。然而,面对1G甚至10Gbps的线速流量,传统的“软件式”逐包处理早已力不从心。构建高效的包处理流水线(Packet Pro...

关键字: 以太网 MAC FPGA

在FPGA实现数字信号处理(DSP)算法时,DSP Slice作为专用硬件资源,其利用效率直接影响系统性能与成本。本文聚焦乘加运算(MAC)的优化实现,分享流水线设计与资源复用的实用技巧,帮助开发者在有限资源下实现更高吞...

关键字: FPGA DSP

在异构计算的浪潮中,FPGA凭借其可重构特性与高能效比,成为突破算力瓶颈的“利刃”。然而,当我们试图通过OpenCL将FPGA纳入统一计算平台时,一个巨大的幽灵始终盘旋在系统上方——内存带宽瓶颈。PCIe总线的有限带宽与...

关键字: OpenCL FPGA

将成熟的ASIC设计迁移至FPGA平台,绝非简单的“复制粘贴”。ASIC设计追求极致的能效比和定制化物理布局,而FPGA受限于固定的逻辑单元(LUT、FF、DSP、BRAM)架构,直接移植往往导致资源利用率低下甚至时序收...

关键字: ASIC FPGA

在高性能FPGA设计中,DSP48E2 Slice绝非仅仅是一个简单的乘法单元。若将其仅视为“硬件乘法器”,将极大浪费其潜在的算力。作为Xilinx UltraScale+架构的核心算术引擎,DSP48E2集成了预加器、...

关键字: DSP48E2 FPGA

在浩瀚宇宙中,高能粒子如隐形的子弹,时刻轰击着航天器的电子核心。对于FPGA而言,单粒子翻转(SEU)可能导致逻辑状态突变,引发灾/难性后果。此时,三模冗余(TMR)技术便成为守护系统可靠的“神盾”,它通过硬件代价换取极...

关键字: 抗辐射加固设计 FPGA 三模冗余
关闭