一种基于FPGA的NLP推理加速系统技术方案

技术编号:24499495 阅读:49 留言:0更新日期:2020-06-13 04:26
本发明专利技术涉及数据处理技术领域,提供一种基于FPGA的NLP推理加速系统,包括现场可编程门阵列FPGA和双倍速率同步动态随机存储器DDR,FPGA包括ARM内核和若干个并行执行运算动作的模型计算内核;ARM内核内部存储有已经训练完成的BERT模型,用于根据BERT模型执行包括各个模型计算内核的调度、缓存大小的配置以及数据读写地址的配置在内的动作,从而实现高速的人工智能推理任务,而且基于FPGA的NLP推理加速系统体积小、功耗低,并行的设置可实现大量的计算任务并行工作,实现低延时、高性能。

An NLP reasoning acceleration system based on FPGA

【技术实现步骤摘要】
一种基于FPGA的NLP推理加速系统
本专利技术属于数据处理
,尤其涉及一种基于FPGA的NLP推理加速系统。
技术介绍
CPU+GPU平台架构是目前通用的人工智能实现方案,CPU与GPU内部结构上的对比,总体上来说CPU和GPU均由控制器(Control)、寄存器(Cache、DRAM)以及逻辑单元(ALU)构成。在CPU中控制器和寄存器占据了结构中很大一部分,而在GPU中逻辑单元的规模则是远远超过其他二者之和。这种不同的构架就决定了CPU在指令的处理/执行,函数的调用上有着很好的发挥,但由于逻辑单元所占比重较小,相对于GPU而言,在数据的处理方面(算术运算或者逻辑运算)的能力就弱了很多。因此,在CPU+GPU架构中CPU实现人工智能方案的调度,而GPU实现并行算法计算。但是,CPU+GPU平台架构存在如下缺陷:(1)CPU+GPU架构常见于PC机或服务器这些体积比较笨重的设备,前端或移动端不常用,例如自动驾驶。这种组合架构常用于人工智能模型的大数据训练,而前端推理常用专用的人工智能芯片,因此,CPU+GPU的高性能并不能在前端推理的应用上发挥优势;(2)CPU+GPU架构成本较高,对于简单的应用得不偿失,若只用CPU,计算结果的延时太大,例如自动驾驶障碍物的判断,延时太大无法满足应用要求。
技术实现思路
针对现有技术中的缺陷,本专利技术提供了一种基于FPGA的NLP推理加速系统,旨在解决现有技术中CPU+GPU的框架结构不能在前端推理应用上发挥性能优势,也存在延时太大的问题。本专利技术所提供的技术方案是:一种基于FPGA的NLP推理加速系统,包括现场可编程门阵列FPGA和双倍速率同步动态随机存储器DDR,其中,所述现场可编程门阵列FPGA包括ARM内核和若干个并行执行运算动作的模型计算内核,若干个所述模型计算内核包括语料分词读内核、权重读内核、时序控制内核、数据分发内核、并行计算内核、加法内核、激活内核、软最大化内核、层归一化内核以及语料分词写DDR内核;所述ARM内核,内部存储有已经训练完成的BERT模型,用于根据所述BERT模型执行包括各个模型计算内核的调度、缓存大小的配置以及数据读写地址的配置在内的动作;所述语料分词读内核,用于从所述双倍速率同步动态随机存储器DDR中读取所述ARM内核已经向量化完成的token数据,并将读取到的所述token数据传输给所述数据分发内核,并存储到片上缓存RAM中;所述权重读内核,用于从所述双倍速率同步动态随机存储器DDR中读取所述ARM内核已经向量化完成的权重数据,并存储到片上缓存RAM中;所述时序控制内核,用于统计整个系统内模型计算内核运行的周期数,并反馈给所述数据分发内核;所述数据分发内核,用于根据所述ARM内核的配置,驱动每一个所述模型计算内核读取数据,启动并行计算内核的计算,并为所述计算内核提供计算数据,为所述加法内核提供加和控制,为所述激活内核提供是否启动的配置;所述并行计算内核,用于根据所述ARM内核向量化的数据量大小调用相应数量的DSP内核,进行全并行计算;所述加法内核,用于控制进行若干个所述模型计算内核中的各个加和运算;其中,若干个所述模型计算内核通过fifo的方式进行数据交互,且除所述软最大化内核和层归一化内核之外的若干个所述模型计算内核以级联流水的方式工作。作为一种改进的方案,所述ARM内核的具体执行步骤为:读取外部路径caffe训练完成的模型,并对读取到的模型进行解析,获取模型基础数据;对所述模型的权重数据进行向量化处理,并将向量化后的权重数据存储到双倍速率同步动态随机存储器DDR中;对所述模型的语料的分词数据行向量化处理,并将向量化后的语料的分词数据存储到双倍速率同步动态随机存储器DDR中;根据解析到的数据配置所述数据分发内核,使所述数据分发内核启动推理计算。作为一种改进的方案,所述模型基础数据包括模型每层的数据维度、计算量、根据FPGA的并行计算资源计算完成一层的所有计算所需的迭代次数、需要的缓存大小、配置缓存的起始地址、是否需要激活、是否需要层归一化以及是否需要软最大化。作为一种改进的方案,所述权重读内核不断读取权重数据,数据分发内核读取数据过程为阻塞读取;当数据分发内核不读取数据时,权重读内核写满数据交互fifo后,读取DDR的进程被挂起,等待fifo数据被读取。作为一种改进的方案,所述数据分发内核内部配置双缓存,分别用于缓存原始数据和计算输出数据,为所述软最大化内核和层归一化内核提供缓存数据。作为一种改进的方案,所述并行计算内核内部配置双缓存,分别用于缓存当前计算所需要的权重数据和下一次计算所需要的权重数据。作为一种改进的方案,若干个并行执行运算动作的模型计算内核封装为IP核。在本专利技术实施例中,基于FPGA的NLP推理加速系统包括现场可编程门阵列FPGA和双倍速率同步动态随机存储器DDR,FPGA包括ARM内核和若干个并行执行运算动作的模型计算内核;ARM内核内部存储有已经训练完成的BERT模型,用于根据BERT模型执行包括各个模型计算内核的调度、缓存大小的配置以及数据读写地址的配置在内的动作,从而实现高速的人工智能推理任务,而且基于FPGA的NLP推理加速系统体积小、功耗低,并行的设置可实现大量的计算任务并行工作,实现低延时、高性能。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。图1是本专利技术提供的基于FPGA的NLP推理加速系统的结构示意图;其中,1-ARM内核,2-语料分词读内核,3-权重读内核,4-时序控制内核,5-数据分发内核,6-并行计算内核,7-加法内核,8-激活内核,9-软最大化内核,10-层归一化内核,11-语料分词写DDR内核。具体实施方式下面将结合附图对本专利技术技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本专利技术的、技术方案,因此只作为示例,而不能以此来限制本专利技术的保护范围。图1示出了本专利技术提供的基于FPGA的NLP推理加速系统的结构示意图,为了便于说明,图中仅给出了与本专利技术实施例相关的部分。基于FPGA的NLP推理加速系统包括现场可编程门阵列FPGA(下文以FPGA进行说明)和双倍速率同步动态随机存储器DDR(下文以DDR进行说明),其中,所述现场可编程门阵列FPGA包括ARM内核1和若干个并行执行运算动作的模型计算内核,若干个所述模型计算内核包括语料分词读内核2、权重读内核3、时序控制内核4、数据分发内核5、并行计算内核6、加法内核7、激活内核8、软最大化内核9、层归一化内核10以及语料分词写DDR内核11;所述ARM内核1,内部存储有已经训练完成的BERT模型,本文档来自技高网...

【技术保护点】
1.一种基于FPGA的NLP推理加速系统,其特征在于,包括现场可编程门阵列FPGA和双倍速率同步动态随机存储器DDR,其中,所述现场可编程门阵列FPGA包括ARM内核和若干个并行执行运算动作的模型计算内核,若干个所述模型计算内核包括语料分词读内核、权重读内核、时序控制内核、数据分发内核、并行计算内核、加法内核、激活内核、软最大化内核、层归一化内核以及语料分词写DDR内核;/n所述ARM内核,内部存储有已经训练完成的BERT模型,用于根据所述BERT模型执行包括各个模型计算内核的调度、缓存大小的配置以及数据读写地址的配置在内的动作;/n所述语料分词读内核,用于从所述双倍速率同步动态随机存储器DDR中读取所述ARM内核已经向量化完成的token数据,并将读取到的所述token数据传输给所述数据分发内核,并存储到片上缓存RAM中;/n所述权重读内核,用于从所述双倍速率同步动态随机存储器DDR中读取所述ARM内核已经向量化完成的权重数据,并存储到片上缓存RAM中;/n所述时序控制内核,用于统计整个系统内模型计算内核运行的周期数,并反馈给所述数据分发内核;/n所述数据分发内核,用于根据所述ARM内核的配置,驱动每一个所述模型计算内核读取数据,启动并行计算内核的计算,并为所述计算内核提供计算数据,为所述加法内核提供加和控制,为所述激活内核提供是否启动的配置;/n所述并行计算内核,用于根据所述ARM内核向量化的数据量大小调用相应数量的DSP内核,进行全并行计算;/n所述加法内核,用于控制进行若干个所述模型计算内核中的各个加和运算;/n其中,若干个所述模型计算内核通过fifo的方式进行数据交互,且除所述软最大化内核和层归一化内核之外的若干个所述模型计算内核以级联流水的方式工作。/n...

【技术特征摘要】
1.一种基于FPGA的NLP推理加速系统,其特征在于,包括现场可编程门阵列FPGA和双倍速率同步动态随机存储器DDR,其中,所述现场可编程门阵列FPGA包括ARM内核和若干个并行执行运算动作的模型计算内核,若干个所述模型计算内核包括语料分词读内核、权重读内核、时序控制内核、数据分发内核、并行计算内核、加法内核、激活内核、软最大化内核、层归一化内核以及语料分词写DDR内核;
所述ARM内核,内部存储有已经训练完成的BERT模型,用于根据所述BERT模型执行包括各个模型计算内核的调度、缓存大小的配置以及数据读写地址的配置在内的动作;
所述语料分词读内核,用于从所述双倍速率同步动态随机存储器DDR中读取所述ARM内核已经向量化完成的token数据,并将读取到的所述token数据传输给所述数据分发内核,并存储到片上缓存RAM中;
所述权重读内核,用于从所述双倍速率同步动态随机存储器DDR中读取所述ARM内核已经向量化完成的权重数据,并存储到片上缓存RAM中;
所述时序控制内核,用于统计整个系统内模型计算内核运行的周期数,并反馈给所述数据分发内核;
所述数据分发内核,用于根据所述ARM内核的配置,驱动每一个所述模型计算内核读取数据,启动并行计算内核的计算,并为所述计算内核提供计算数据,为所述加法内核提供加和控制,为所述激活内核提供是否启动的配置;
所述并行计算内核,用于根据所述ARM内核向量化的数据量大小调用相应数量的DSP内核,进行全并行计算;
所述加法内核,用于控制进行若干个所述模型计算内核中的各个加和运算;
其中,若干个所述模型计算内核通过fifo的方式进行数据交互,且除所述软最大化内核和层归一化内核之外的若干个所述模型计算内核以级联流水的方式工作。


2.根据权利要求1所述的基于FPGA...

【专利技术属性】
技术研发人员:贾兆荣
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1