使用FPGA制作低延时高性能的深度学习处理器

图像识别和分析对于产品创新至关重要,但需要高工作负载,对服务质量要求严格。解决方案如GPU无法满足低延迟和高性能要求。DLP FPGA是一种可行的选择,本文将探讨如何实现这种技术。

微信搜索关注《Java学研大本营》

图像识别和分析在各种产品创新中具有重要作用。然而,这些应用通常涉及高工作负载,对服务质量有严格要求。目前的解决方案,如GPU,无法同时兼顾低延迟和高性能要求。

为了在应用深度学习的同时提供良好的用户体验,可以在FPGA上架构一个超低延迟和高性能的DLP(深度学习处理器)。

DLP FPGA可以同时支持稀疏卷积和低精度数据计算,同时定义了一个定制的ISA(指令集架构),以满足对灵活性和用户体验的要求。使用Resnet18(稀疏内核)的延迟测试结果显示,FPGA的延迟只有0.174ms。

在本文中,我们将简要讨论如何通过新的DLP FPGA实现这样的结果。

1 架构

新开发的DLP有4种模块,根据其功能进行分类:

  • 计算:卷积、批量归一化、激活和其他计算

  • 数据路径:数据存储、移动和重塑

  • 参数:存储权重和其他参数,解码

  • 指令:指令单元和全局控制

DLP中的Protocal Engine(PE)可以支持:

  • Int4数据类型输入。

  • Int32数据类型输出。

  • Int16量化

这种PE能提供超过90%的效率。此外,DLP的重量加载支持CSR解码器和数据预取。

2 训练

需要重新训练来开发一个高精确度的模型。下面有4个主要步骤来获得稀疏权重和低精度数据特征图。

我们用一种有效的方法将Resnet18模型训练到稀疏和低精度(1707.09870)。我们方法中的关键部分是离散化。我们专注于压缩和加速深度模型,其网络权重由非常小的比特数表示,被称为极低比特神经网络。然后我们将这个问题建模为一个离散约束的优化问题。

借用乘法交替方向法(ADMM)的思想,我们将连续参数与网络的离散约束解耦,并将原来的硬问题铸成几个子问题。我们建议使用梯度外算法和迭代量化算法来解决这些子问题,与传统的优化方法相比,这些算法会导致更快的收敛。

在图像识别和物体检测方面的大量实验证明,当涉及到极低比特的神经网络时,所提出的算法比最先进的方法更有效。

3 ISA/编译器

如前所述,对于大多数在线服务和使用场景,仅有低延迟是不够的,因为算法模型会经常变化。正如我们所知,FPGA的开发周期非常长;通常需要几周或几个月的时间来完成一个定制的设计。为了解决这一挑战,我们设计了工业标准架构(ISA)和编译器,以减少模型升级的时间,使之仅为几分钟。

SW-HW共同开发平台由以下项目组成:

  • 编译器:模型图分析和指令生成。

  • API/驱动:CPU-FPGA DMA图片重塑,重量压缩。

  • ISA控制器:指令解码、任务调度、多线程流水线管理。

4 硬件卡

DLP是在FPGA卡上实现的,它有PCIe和DDR4内存。DLP与该FPGA卡相结合,可以使在线图片搜索等应用场景更高效用户体验更好。

5 结果

使用Resnet18的FPGA测试结果表明,我们的设计实现了超低水平的延迟,同时在低于70W的芯片功率下保持了非常高的性能。

推荐书单

《微机原理与接口技术——基本原理、实用技术和基于FPGA的SOC技术》

《微机原理与接口技术--基本原理实用技术和基于FPGA的SOC技术(高等院校电子信息科学与工程规划教材)》系统地讲解了微型计算机系统的结构、工作原理、接口技术及其应用,特别是将这些内容与现代EDA技术、FPGA开发技术和SOC片上系统技术有机地融合起来,全方位强化和拓展了这一传统教学领域中的知识与技能传授的深度与广度。本书的基本内容包括80x86微处理器结构、指令系统、汇编语言程序设计、存储器系统、总线技术、中断技术、定时/计数接口技术和DMA技术、并行接口技术、串行接口技术、模拟接口技术和其他实用的接口技术,以及与这些内容相对应的基于超大规模F=PGA的SOC技术。 本书可作为高等院校电子工程、通信、工业自动化、计算机等专业的本科生或研究生教材,也可用作相关专业技术人员的参考书。

《微机原理与接口技术——基本原理、实用技术和基于FPGA的SOC技术》【摘要 书评 试读】- 京东图书京东JD.COM图书频道为您提供《微机原理与接口技术——基本原理、实用技术和基于FPGA的SOC技术》在线选购,本书作者:,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!icon-default.png?t=N658https://item.jd.com/10067827338575.html

精彩回顾

ChatGPT是如何运行起来的?(下)

ChatGPT是如何运行起来的?(中)

ChatGPT是如何运行起来的?(上)

Netty和原生Java的性能比较

Java对比Python,谁才是编程王者?

微信搜索关注《Java学研大本营》

访问【IT今日热榜】,发现每日技术热点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值