0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

riscv的fpga实现案例 基于RISC-V加速器实现现场可编程门阵列 CNN异构的控制方案

FPGA设计论坛 来源:吴海龙, 李金东, 陈翔, 作者:吴海龙, 李金东, 2023-08-21 10:30 次阅读

作者:吴海龙, 李金东, 陈翔,电子信息工程学院,中山大学,中国 (在此特别鸣谢!)

摘要:现场可编程门阵列(FPGA)具有低功耗、高性能和灵活性的特点。FPGA神经网络加速的研究正在兴起,但大多数研究都基于国外的FPGA器件。为了改善国内FPGA的现状,提出了一种新型的卷积神经网络加速器,用于配备轻量级RISC-V软核的国产FPGA(紫光同创PG2L100H)。所提出的加速器的峰值性能达到153.6 GOP/s,仅占用14K LUT(查找表)、32个DRM(专用RAM模块)和208个APM(算术处理模块)。所提出的加速器对于大多数边缘AI应用和嵌入式系统具有足够的计算能力,为国内FPGA提供了可能的AI推理加速方案。

背景

卷积神经网络在机器视觉任务中越来越流行,包括图像分类和目标检测。如何在有限的条件下充分发挥FPGA的最大性能是各研究者的主要方向。如今,大多数CCN使用外国FPGA器件。由于国内FPGA起步较晚,其相关开发工具和设备落后于其他外国制造商。因此,在国内FPGA上构建高性能CNN并替换现有成熟的异构方案是一项具有挑战性的任务。 Zhang[1]于2015年首次对卷积网络推理中的数据共享和并行性进行了深入分析和探索。Guo[2]提出的加速器在214MHz下达到了84.3 GOP/s的峰值性能。2016年,Qiu[3]更深入地探索了使用行缓冲器的加速器。

本文提出了一种更高效、更通用的卷积加速器。提出的加速器峰值性能达到153.6GOP/s,仅占用14K LUT、32个DRM和208个APM。本文的章节安排如下,第2节介绍了我们提出的加速器的详细设计以及基于RISC-V的加速器实现的控制调度方案。第3节给出了实验结果。

系统设计

整个RISC-V片上系统设计如图1所示。该系统主要由RISC-V软核CPU、指令/数据存储器、总线桥、外围设备、DMA(直接存储器访问)和卷积加速器组成。

ed96918c-3fc9-11ee-ac96-dac502259ad0.png


Fig. 1. 片上RISC-V系统设计图

我们的工作主要在三个方面。首先,我们使用软核CPU作为片上系统的主控,控制外设,DMA,CNN加速器来实现数据调度和操作。其次,1D(一维)加速器被设计用于改变缓冲机制。第三,为紫光同创的FPGA设备设计了一个DMA IP,用于卷积加速的应用。

A、RISC-V 软核CPU 架构

软核。使用RISC-V软核VexRiscv代替Ibex[4]构建RISC-V的片上系统和面向软件的方法可以使VexRiscv具有高度的灵活性和可扩展性。

接口I2C和SPI等外围设备通过APB3总线连接到RISC-V软核。DMA和加速器通过PMB总线连接到RISC-V软核。

指令与数据存储。程序被交叉编译以获得一个特定的文件,该文件由JTAG烧录到片上指令/数据存储器中。

B、CNN 加速器结构

输入缓存。使用乒乓缓存来实现缓冲区,可以有效地提高吞吐量。

输出缓存。权重缓存模块由一系列分布式RAM和串行到并行单元组成。

卷积。图2中的1D卷积模块分为四组,其中包含四个1D卷曲单元。每个单元负责1D卷积的一个信道。

合并。积分模块有四组加法器树。每组加法器树将每组卷积运算单元的结果相加,得到单向输出结果。

累加。累加模块中有四组FIFO和四个加法器。加速器一次只能接收四个通道的输入特征图数据。

量化。该量化模块由乘法单元和移位单元组成。它通过比例变换将24位累加结果重新转换为8位[5]。

激活。激活功能通过查找由一系列分布式RAM组成的表来实现。它存储ReLu、Leaky ReLu和sigmoid函数的INT8函数表。

池化。确定当前卷积层是否与池化层级联,然后决定是否使用池化模块来完成池化操作。

输出缓存。输出缓冲器由FIFO而不是乒乓缓存实现。输出高速缓存FIFO将结果存储回片外存储器,作为下一卷积层的输入。

edbad7d6-3fc9-11ee-ac96-dac502259ad0.png


Fig. 2.CNN 加速器实现

C、DMA 结构

神经网络不仅对计算能力有很高的要求,而且对内存也有很大的需求。中低端FPGA通常需要DDR SRAM(双数据速率同步动态随机存取存储器)来承载整个神经网络和所有中间运算结果的权重。紫光同创的FPGA的DDR3内存驱动器IP为用户提供了简化AXI4总线的内存访问接口。 由于Simpled AXI和AXI之间的标准差异,需要新的DMA设计。DMA设计如下。读和写地址通道由RISC-V软核直接控制。读写数据通道的FIFO用作卷积加速器和DDR3驱动器IP的缓冲器,以完成端口转换。

D、实现细节

1、一维卷积单元阵列设计 神经网络不仅对计算能力有很高的要求,而且对内存也有很大的需求。中低端FPGA通常需要DDR SRAM(双数据速率同步动态随机存取存储器)来承载整个神经网络和所有中间运算结果的权重。紫光同创的FPGA的DDR3内存驱动器IP为用户提供了简化AXI4总线的内存访问接口。 由于Simpled AXI和AXI之间的标准差异,需要新的DMA设计。DMA设计如下。读和写地址通道由RISC-V软核直接控制。读写数据通道的FIFO用作卷积加速器和DDR3驱动器IP的缓冲器,以完成端口转换。

2、卷积加速器控制

本文提出了一种基于指令队列的设计,以减少RISC-V软核中DMA和加速器的响应延迟。RISC-V CPU可以连续发送多个存储器读写请求指令和多个操作调度控制指令,而不用等待DMA和加速器的反馈。DMA和加速器从队列中获取指令,任务完成后直接从队列中取出下一条指令,无需等待相应的CPU,从而实现低延迟调度。

eddebd36-3fc9-11ee-ac96-dac502259ad0.png


Fig. 3. 1X3 一维卷积原理图

ee01c178-3fc9-11ee-ac96-dac502259ad0.png


Fig. 4. 一维卷积单元硬件实现

实现结果和备注

通过在PG2L100H和X7Z020上实现相同配置的CNN加速器,完成了CNN加速器的性能测试,验证了国产FPGA CNN加速方案的可行性。加速器的资源消耗和性能如表I和表II所示。

ee0df268-3fc9-11ee-ac96-dac502259ad0.png

TABLE I 资源利用 PG2L100H和X7Z020的资源消耗相似。PG2L100H需要额外的逻辑资源来构建VexRiscv CPU,而X7Z020为AXI DMA IP使用更多的逻辑资源。就加速器性能而言,可从表II中看出。由于FPGA器件架构的差异,与X7Z020相比,加速器的卷积运算在PG2L100H上只能在200MHz下实现更好的收敛。RISC-V软核只能在100MHz下实现定时收敛。

ee1ffbd4-3fc9-11ee-ac96-dac502259ad0.png

TABLE II 性能对比 我们提出了一种基于RISC-V的一维卷积运算的新设计。该加速器在国内FPGA上的实现和部署已经完成,其性能与具有相同规模硬件资源的国外FPGA相当。

本文论证了基于国产FPGA的CNN异构方案的可行性,该研究是国产FPGA应用生态中CNN加速领域的一次罕见尝试。

作者:吴海龙, 李金东, 陈翔,电子与信息工程学院,中山大学,中国 (在此特别鸣谢!)

REFERENCES:

[1]Zhang. C, et al. "Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks. " the 2015 ACM/SIGDA International Symposium ACM, 2015.

[2]K. Guo et al., "Angel-Eye: A Complete Design Flow for Mapping CNN Onto Embedded FPGA," in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 37, no. 1, pp. 35-47, Jan. 2018.

[3]Qiu.J, et al. "Going Deeper with Embedded FPGA Platform for Convolutional Neural Network." the 2016 ACM/SIGDA International Symposium ACM, 2016.

[4]E. Gholizadehazari, T. Ayhan and B. Ors, "An FPGA Implementation of a RISC-V Based SoC System for Image Processing Applications," 2021 29th Signal Processing and Communications Applications Conference (SIU), 2021, pp. 1-4.

[5]B. Jacob et al., "Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference," 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2018, pp. 2704-2713.

[6]B. Bosi, G. Bois and Y. Savaria, "Reconfigurable pipelined 2-D convolvers for fast digital signal processing," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 7, no. 3, pp. 299-308, Sept. 1999.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593201
  • 加速器
    +关注

    关注

    2

    文章

    743

    浏览量

    36600
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98749
  • cnn
    cnn
    +关注

    关注

    3

    文章

    327

    浏览量

    21298
  • RISC-V
    +关注

    关注

    41

    文章

    1901

    浏览量

    45045
收藏 人收藏

    评论

    相关推荐

    现场可编程门阵列的基本结构和优缺点

    现场可编程门阵列FPGA)的基本结构主要包括可编程输入/输出单元、基本可编程逻辑单元、嵌入式块
    的头像 发表于 03-27 14:49 169次阅读

    现场可编程门阵列的原理和应用

    可以根据用户的设计进行配置,形成所需的逻辑功能。互连资源则是一组可编程的连接通道,用于将PLU连接在一起,以实现用户定义的电路拓扑结构。此外,FPGA还包括输入输出模块(IOB),用于与外部设备或电路进行连接。
    的头像 发表于 03-27 14:49 166次阅读

    现场可编程门阵列简介

    现场可编程门阵列FPGA)是一种由半导体材料制成的集成电路,用户购买后可以重新编程或配置,以满足特定功能或应用需求。其
    的头像 发表于 03-27 14:48 156次阅读

    fpgarisc-v处理器的区别

    FPGA现场可编程门阵列)和RISC-V处理器在多个方面存在显著的区别。
    的头像 发表于 03-27 14:21 206次阅读

    fpga实现什么功能

    FPGA现场可编程门阵列)是一种可编程逻辑芯片,其主要作用和功能体现在多个方面。
    的头像 发表于 03-27 14:11 218次阅读

    现场可编程门阵列设计流程

    现场可编程门阵列FPGA)设计流程是一个综合性的过程,它涵盖了从需求分析到最终实现的各个环节。下面将详细介绍
    的头像 发表于 03-16 16:38 1631次阅读

    现场可编程门阵列是什么

    现场可编程门阵列(Field Programmable Gate Array,简称FPGA)是一种超大规模可编程逻辑器件,由
    的头像 发表于 03-16 16:38 1695次阅读

    FPGA现场可编程门阵列的综合指南

    现场可编程门阵列 (FPGA) 是可以在制造后进行编程和重新编程
    的头像 发表于 12-07 17:15 277次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>现场</b><b class='flag-5'>可编程</b><b class='flag-5'>门阵列</b>的综合指南

    简单认识现场可编程门阵列

    现场可编程门阵列 (Field Programmable Gate Array, FPGA)也称为现场
    的头像 发表于 12-01 09:25 383次阅读

    可编程芯片:拼合成一个模拟解决方案

    可配置模拟IC已经出现了多年,表面看来对市场的影响不及其数字同胞FPGA现场可编程门阵列)。不过,当前的经济形势却使可编程模拟标准产品的概
    的头像 发表于 10-27 17:29 443次阅读

    什么是FPGAFPGA现场可编程门阵列的综合指南

    现场可编程门阵列 (FPGA) 是可以在制造后进行编程和重新编程
    发表于 09-14 16:30 713次阅读
    什么是<b class='flag-5'>FPGA</b>?<b class='flag-5'>FPGA</b><b class='flag-5'>现场</b><b class='flag-5'>可编程</b><b class='flag-5'>门阵列</b>的综合指南

    ARM Mps3现场可编程门阵列原型板技术参考手册

    )扩展端口和一个FPGA夹层卡高引脚数(FMC-HPC)扩展端口提供扩展。 板载主板配置控制器(MCC)控制主板并以类似于其他ARM开发板的方式配置现场
    发表于 08-18 06:15

    基于FPGA的深度学习CNN加速器设计方案

    因为CNN的特有计算模式,通用处理器对于CNN实现效率并不高,不能满足性能要求。 因此,近来已经提出了基于FPGA,GPU甚至ASIC设计的各种加速
    发表于 06-14 16:03 1614次阅读
    基于<b class='flag-5'>FPGA</b>的深度学习<b class='flag-5'>CNN</b><b class='flag-5'>加速器</b>设计<b class='flag-5'>方案</b>

    可编程逻辑器件测试

    可编程逻辑器件 (Programmable Loeie Device,PLD)是一种用户编程实现某种逻辑功能的逻辑器件,主要由可编程的与阵列
    发表于 06-06 15:37 443次阅读
    <b class='flag-5'>可编程</b>逻辑器件测试

    如何采用带专用CNN加速器的AI微控制实现CNN的硬件转换

    服务器农场或昂贵的现场可编程门阵列(FPGA)为载体。AI应用的挑战在于提高计算能力的同时保持较低的功耗和成本。当前,强大的智能边缘计算正在使AI应用发生巨大转变。与传统的基于固件的A
    的头像 发表于 05-16 01:05 514次阅读