CN110084363B - 一种基于fpga平台的深度学习模型加速方法 - Google Patents

一种基于fpga平台的深度学习模型加速方法 Download PDF

Info

Publication number
CN110084363B
CN110084363B CN201910400924.3A CN201910400924A CN110084363B CN 110084363 B CN110084363 B CN 110084363B CN 201910400924 A CN201910400924 A CN 201910400924A CN 110084363 B CN110084363 B CN 110084363B
Authority
CN
China
Prior art keywords
deep learning
learning model
fpga
model
hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910400924.3A
Other languages
English (en)
Other versions
CN110084363A (zh
Inventor
闵锐
王洁磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aegis Defense Technology Chengdu Co ltd
Original Assignee
Electric Coreda Chengdu Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Electric Coreda Chengdu Technology Co ltd filed Critical Electric Coreda Chengdu Technology Co ltd
Priority to CN201910400924.3A priority Critical patent/CN110084363B/zh
Publication of CN110084363A publication Critical patent/CN110084363A/zh
Application granted granted Critical
Publication of CN110084363B publication Critical patent/CN110084363B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于FPGA平台的深度学习模型加速方法。本发明在硬件平台设计上采用流式架构,通过将训练好的模型参数加载到FPGA片上内存,利用其可编程的硬件特性实现模型推理加速。在模型移植过程中,本发明从数据传输、数据存储访问、数据处理流程和卷积计算四个方面分别进行优化,使得系统可以充分利用FPGA的并发优势,并可以针对不同FPGA平台的资源特点选择优化参数,充分利用其丰富的片上资源,实现模型推理的加速。本发明在仅损失原模型很小的精度的情况下,实现了同等功耗下系统吞吐量的成倍提升,具备将深度学习模型大规模部署到资源受限场景中的能力。

Description

一种基于FPGA平台的深度学习模型加速方法
技术领域
本发明涉及一种基于FPGA平台的深度学习模型加速方法。
背景技术
近年来,深度学习算法持续火热,在图像处理、自然语言处理等传统领域深度学习都取得了巨大的成功,一大批优秀可靠的算法不断涌现。虽然目前大量应用卷积神经网络的算法在图像识别大赛上大放异彩,但是其庞大的参数量需要强大的算力来支撑,而在实际应用场景下计算平台通常不具备足够的计算资源。因此针对这一问题,学界和工程应用领域都提出了不同的解决方案。其中,对模型进行压缩和使用硬件平台进行加速是主流研究方向。
当下的硬件计算平台主要有有CPU,GPU,FPGA以及ASIC芯片,由于FPGA相对CPU和GPU有更好的功耗比,相比ASIC研发周期短且更新迭代更灵活,实验OPENCL能够很快实现深度学习算法迭代。此外,使用RTL语言编写的代码,能够用于芯片前端设计,以及其具备的大量的DSP计算资源和用于深度学习算法的并行计算能力。FPGA受到了众多研究人员和工程师的青睐。随着基于FPGA的深度学习算法加速研究的不断深入,基于FPGA平台的深度学习算法加速遇到了一些挑战,其中一个主要问题是:计算吞吐量不能很好的匹配内存带宽。
由于深度学习算法通常是在GPU/CPU端训练而成,所以为了使得基于FPGA的加速器能够获得较高的性能,需要在设计前对算法模型进行适当的优化,使得算法本身能够适用于FPGA硬件本身。但是基于FPGA的算法移植也存在一定的缺陷和挑战性。研究人员发现即使基于相同的FPGA器件在移植相同算法模型时,由于采用不同的优化方案,性能相差多达90%。因此,寻求一种性能稳定、加速效果优秀的移植和优化方法是所有研究人员共同追求的目标。
发明内容
针对上述存在的问题或不足,为了解决FPGA平台计算资源或内存带宽没有有效利用造成的移植后算法加速效果不佳的问题,本发明通过对原模型参数进行量化,并从数据传输、数据存储访问、数据处理流程和卷积计算四个方面针对目标硬件进行优化,将其移植到FPGA平台上实现硬件加速。大幅提高了原模型的推理速度,实现了系统吞吐量的成本增加,并且精确度不会有太大的损失。
本发明的技术方案是:
一种基于FPGA平台的深度学习模型加速方法,包括以下步骤:
步骤1:采用流式架构设计深度学习模型加速的硬件架构,将FPGA硬件划分为不同的硬件块,每个硬件块对应执行一个卷积层,将所有硬件块连接起来形成流水处理。
步骤2:对要移植的目标模型参数选择合适的量化位数进行量化。由于FPGA片上存储、计算资源的限制,需要对模型进行适当的优化,降低庞大的参数量对系统带宽和计算能力的要求。
步骤3:通过HLS高级综合工具进行配置,实现深度学习模型的加速,包括:
步骤31、对数据的传输进行配置。通过将量化后的模型参数尽可能存储于片上内存,并且在数据传输量不变的情况下,利用片上闲置的计算资源,尽可能地提高对数据的复用。并且在缓存部分使用双缓存,通过“乒乓”操作来提高片上内存的使用效率。这部分的优化可以提高内存数据的访问速度,进而达到模型加速的效果。
步骤32:对数据的存储访问进行配置。一是对于必须写入全局内存的数据采用“聚合访问模式”来进行访问。二是在HLS指令同时访问多个片上内存系统时,控制编译系统聚合的内存系统小于5个。从而使得FPGA片上本地内存性能最优。
步骤33:对数据处理流程进行配置。在使用综合工具时指定#pragma pipe指令来进行流水线复制,形成多流水处理。通常情况下,可以在多个工作组中共同执行同一个内核程序。
步骤34:对卷积计算进行配置。主要操作有三步分:一是对原有循环进行循环平铺,使其更适合流式架构。二是对完全独立的循环层进行循环展开,充分利用片上的计算资源。三是将循环流水切割成几个小块,将切割后的小块并行执行。
步骤4:进行移植和应用。将综合后的二进制模型文件部署到FPGA平台上进行推断应用。
本发明的有益效果为:为克服当前深度学习模型性能优异但难以在资源受限场景下大规模部署的技术难题提供了一种可行的技术方案。本发明采用FPGA平台实现深度学习模型,不仅在计算资源上可以匹敌高性能GPU,而且由于可编程硬件的高度并发性可以大大提高系统吞吐量,实际数据处理速度和功耗表现都远优于GPU和CPU平台的表现。
附图说明
图1为深度学习网络的FPGA移植和优化流程图;
图2为本发明实施例深度学习网络加速系统软硬件协同架构框图;
图3为本发明实施例中采用穷举法得到的roofline模型图;
图4为VGG-16原模型的部分推理测试结果图;
图5为本发明实施例中VGG-16模型移植优化后的部分推理测试结果图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细的说明。
实施例
本例中的FPGA平台是指集成了查找表(LTU)、触发器(FF)、数字处理单元(DSP)、存储单元RAM及锁相环PLL,并采用AXI总线进行片上片下的数据传输的系统。本实施例对VGG-16模型进行移植加速优化。
附图1为本实施例的深度学习算法的FPGA移植和优化方法流程图,依照附图1的处理流程对VGG-16模型进行移植和优化。步骤如下:
A、按照如图2所示硬件架构完成硬件设计,按照目标深度学习模型卷积层的结构完成FPGA硬件资源的划分。
B、对原VGG-16模型进行定点量化,本实施例将原VGG-16模型的32bit浮点型参数量化为8bit定点型参数。
C、在使用HLS综合工具进行综合时对数据传输过程进行优化。
D、在使用HLS综合工具进行综合时对存储访问过程进行优化。
E、依据roofline模型和穷举法,寻找出本实施例所采用平台2.4GB/S带宽对应的的最佳展开因子,如图2所示,最佳展开因子在C点。
F、在使用HLS综合工具进行综合时对数据处理过程进行优化。
G、在使用HLS综合工具进行综合时对卷积计算过程进行优化。
H、将量化后的VGG-16模型移植至目标平台上运行,对测试图片进行推理验证。
在ImageNet数据集上进行测试,测试结果显示,FPGA片上资源得到了有效地利用,具体利用情况如表1。并且本发明实施例在Top-5精确度上达到了90.53%,甚至略高于原模型。
表1 FPGA片上资源利用情况
Resourse DSP BRAM LUT FF
Used 2240 1024 186251 205704
Available 2520 1824 274080 548160
Utilization 88.9% 56.1% 68% 37.5%
本发明实施例也对网络上随机选取的210张图片进行了测试,测试结果显示精确度达到了68%,也高于原模型的65%,部分测试结果展示如附图4附图5。

Claims (1)

1.一种基于FPGA平台的深度学习模型加速方法,所述FPGA平台配置有DDR4片下数据存储器和BRAM片上存储器;其中,BRAM用于存储深度学习模型参数及推理过程中产生的待处理输入数据,DDR4用于存储输入数据和输出结果;其特征在于,包括:
S1、对FPGA平台的硬件进行配置:根据目标深度学习模型的结构,将FPGA硬件划分为对应的多个硬件块,使得每个硬件块对应执行一个卷积层,所有的硬件块连接起来形成流水线处理,使各卷积层的运算并行运行;
S2、对目标深度学习模型进行量化:根据选定的FPGA平台的性能以及设定的性能指标要求,设定比特位数,将目标深度学习模型的参数进行比特数的量化;
S3、通过HLS高级综合工具对深度学习模型的训练过程进行配置,实现对深度学习模型的加速,具体包括:
S31、将量化后的目标深度学习模型的参数存储在BRAM中,并通过乒乓操作提高BRAM的使用效率;
S32、对写入全局内存的数据采用内存访问模式进行访问,在HLS指令同时访问多个片上内存系统时,控制编译系统聚合的内存系统小于5个;
S33、指定#pragma pipe指令来进行流水线复制;
S34、采用循环卷积,并进行循环平铺,对完全独立的循环层进行循环展开和对循环流水进行切割,将循环切割后的小块进行并行执行;
S4、根据上述配置,将深度学习模型移植到FPGA平台中。
CN201910400924.3A 2019-05-15 2019-05-15 一种基于fpga平台的深度学习模型加速方法 Active CN110084363B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910400924.3A CN110084363B (zh) 2019-05-15 2019-05-15 一种基于fpga平台的深度学习模型加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910400924.3A CN110084363B (zh) 2019-05-15 2019-05-15 一种基于fpga平台的深度学习模型加速方法

Publications (2)

Publication Number Publication Date
CN110084363A CN110084363A (zh) 2019-08-02
CN110084363B true CN110084363B (zh) 2023-04-25

Family

ID=67420182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910400924.3A Active CN110084363B (zh) 2019-05-15 2019-05-15 一种基于fpga平台的深度学习模型加速方法

Country Status (1)

Country Link
CN (1) CN110084363B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110516795B (zh) * 2019-08-28 2022-05-10 北京达佳互联信息技术有限公司 一种为模型变量分配处理器的方法、装置及电子设备
CN110516796A (zh) * 2019-08-28 2019-11-29 西北工业大学 一种面向嵌入式平台的分组卷积过程优化方法
CN110738311A (zh) * 2019-10-14 2020-01-31 哈尔滨工业大学 基于高层次综合的lstm网络加速方法
CN112101537B (zh) * 2020-09-17 2021-08-03 广东高云半导体科技股份有限公司 Cnn加速器和电子设备
CN113780553B (zh) * 2021-09-09 2023-11-07 中山大学 一种基于高层次综合工具的深度学习模型优化方法及系统
CN114754801B (zh) * 2022-06-16 2022-08-26 北京理工导航控制科技股份有限公司 一种基于神经网络对光纤陀螺零偏温度补偿方法、装置及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106228240A (zh) * 2016-07-30 2016-12-14 复旦大学 基于fpga的深度卷积神经网络实现方法
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统
CN107862374A (zh) * 2017-10-30 2018-03-30 中国科学院计算技术研究所 基于流水线的神经网络处理系统和处理方法
CN108520300A (zh) * 2018-04-09 2018-09-11 郑州云海信息技术有限公司 一种深度学习网络的实现方法和装置
CN109583006A (zh) * 2018-10-16 2019-04-05 浙江工业大学 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法
KR20190038318A (ko) * 2017-09-29 2019-04-08 인피니온 테크놀로지스 아게 콘볼루션 신경망 계산 처리량의 가속화
CN109740731A (zh) * 2018-12-15 2019-05-10 华南理工大学 一种自适应卷积层硬件加速器设计方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10802992B2 (en) * 2016-08-12 2020-10-13 Xilinx Technology Beijing Limited Combining CPU and special accelerator for implementing an artificial neural network
US20180189641A1 (en) * 2017-01-04 2018-07-05 Stmicroelectronics S.R.L. Hardware accelerator engine

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统
CN106228240A (zh) * 2016-07-30 2016-12-14 复旦大学 基于fpga的深度卷积神经网络实现方法
KR20190038318A (ko) * 2017-09-29 2019-04-08 인피니온 테크놀로지스 아게 콘볼루션 신경망 계산 처리량의 가속화
CN107862374A (zh) * 2017-10-30 2018-03-30 中国科学院计算技术研究所 基于流水线的神经网络处理系统和处理方法
CN108520300A (zh) * 2018-04-09 2018-09-11 郑州云海信息技术有限公司 一种深度学习网络的实现方法和装置
CN109583006A (zh) * 2018-10-16 2019-04-05 浙江工业大学 一种基于循环切割和重排的现场可编程门阵列卷积层的动态优化方法
CN109740731A (zh) * 2018-12-15 2019-05-10 华南理工大学 一种自适应卷积层硬件加速器设计方法

Also Published As

Publication number Publication date
CN110084363A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
CN110084363B (zh) 一种基于fpga平台的深度学习模型加速方法
CN110378468B (zh) 一种基于结构化剪枝和低比特量化的神经网络加速器
CN111459877B (zh) 基于FPGA加速的Winograd YOLOv2目标检测模型方法
CN111416743B (zh) 一种卷积网络加速器、配置方法及计算机可读存储介质
KR102572757B1 (ko) 집약성을 개선하기 위한 머신 학습 모델들의 수정
CN111967468A (zh) 一种基于fpga的轻量级目标检测神经网络的实现方法
CN113220457A (zh) 模型部署方法、模型部署装置、终端设备及可读存储介质
CN113222133B (zh) 一种基于fpga的压缩lstm加速器及加速方法
CN113392973B (zh) 一种基于fpga的ai芯片神经网络加速方法
CN114580636B (zh) 基于三目标联合优化的神经网络轻量化部署方法
CN111563582A (zh) 一种在fpga上实现及优化加速卷积神经网络的方法
CN116755876A (zh) 一种大模型混合并行训练加速方法和系统
CN115186806A (zh) 一种支持跨节点自动微分的分布式图神经网络训练方法
CN112200310B (zh) 智能处理器、数据处理方法及存储介质
CN110648768B (zh) 一种pom海洋模式优化方法及装置
CN115130672B (zh) 一种软硬件协同优化卷积神经网络计算的方法及装置
CN109271344B (zh) 基于申威芯片架构并行文件读取的数据预处理方法
KR102508635B1 (ko) 딥 러닝 모델 학습 방법 및 학습기
CN109992413A (zh) 一种面向宽度优先搜索算法的加速装置、方法及存储介质
CN109756908B (zh) 无线网络缓存策略的优化方法/系统、存储介质及设备
CN116188239B (zh) 多请求并发的gpu图随机游走优化实现方法及系统
CN113469327B (zh) 执行转数提前的集成电路装置
CN111861860B (zh) 一种面向ai智能soc芯片的图像加速处理系统
CN113469328B (zh) 执行转数穿过的装置、板卡、方法及可读存储介质
CN110362399B (zh) 一种适用于云存储副本布局的植物根系优化方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240527

Address after: Room 24, Floor 2, Unit 1, Building 1, No. 73, Section 2, Second Ring Road West, Qingyang District, Chengdu, 610000, Sichuan

Patentee after: Aegis Defense Technology (Chengdu) Co.,Ltd.

Country or region after: China

Address before: 610041 floor 5, building 1, No. 21, Gaopeng Avenue, high tech Zone, Chengdu, Sichuan

Patentee before: Electric Coreda (Chengdu) Technology Co.,Ltd.

Country or region before: China