CN109799977B - 指令程序开发调度数据的方法及系统 - Google Patents

指令程序开发调度数据的方法及系统 Download PDF

Info

Publication number
CN109799977B
CN109799977B CN201910071055.4A CN201910071055A CN109799977B CN 109799977 B CN109799977 B CN 109799977B CN 201910071055 A CN201910071055 A CN 201910071055A CN 109799977 B CN109799977 B CN 109799977B
Authority
CN
China
Prior art keywords
data
neural network
layer
memory
transmission
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
CN201910071055.4A
Other languages
English (en)
Other versions
CN109799977A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201910071055.4A priority Critical patent/CN109799977B/zh
Publication of CN109799977A publication Critical patent/CN109799977A/zh
Application granted granted Critical
Publication of CN109799977B publication Critical patent/CN109799977B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开一种指令程序开发调度数据的方法及系统,本发明的方法是,1.获取用户输入的卷积神经网络模型参数和硬件资源参数;2.将户输入的卷积神经网络模型参数和硬件资源参数转化为.json类型文件;3.根据.json类型文件确定数据存储结构;4.解析.json类型文件和数据存储结构,生成中间结果文件;5.根据中间结果文件生成指令程序和层配置信息,来控制可编程神经网络处理器实现对图像、卷积神经网络的权值和偏执等数据的调度。本发明可自动化生成指令程序,缩短开发可编程神经网络处理器指令程序的周期,提高效率,并且系统具有可视化的操作界面使得系统操作简单。

Description

指令程序开发调度数据的方法及系统
技术领域
本发明属于物理技术领域,更进一步涉及数据处理技术领域中的一种指令程序开发调度数据的方法及系统。本发明的方法及系统自动化生成的指令程序可用于控制可编程神经网络处理器实现对图像、卷积神经网络的权值和偏执等数据的调度。
背景技术
控制神经网络处理器调度数据的指令程序往往由人工手动一条一条的编写,而编写指令程序是一件复杂而繁琐的工作,需要开发者不仅要精通神经网络算法,还要熟知程神经网络处理器的硬件底层原理和错综复杂的数据流,这势必造成了指令程序的开发周期变长、增加时间成本、降低效率。而且现有的生产控制神经网络处理器调度数据的指令程序的系统不具有可视化的图型界面,且系统操作难度大。
中国科学院计算技术研究所在其拥有的专利技术“适用神经网络处理器的自动化设计方法、装置及优化方法”(申请日:2017年03月23日,申请号201710178679.7,授权公告号CN 107016175 B)中公开过一种编译器。该编译器可产生控制指令流来控制神经网络处理器调度和计算数据。该编译器根据神经网络拓扑结构、硬件电路结构及约束文件生产指令流,对处理器进行实施控制。所产生的指令包括载入/存储指令和运算指令,载入/存储指令格式包括操作码、发射间隔、数据首地址、操作模式、卷积核大小、输出图片大小、输入层数目、输出层数目和清零信号;运算指令格式包括操作码、计算核心数、发射间隔、操作模式和目标寄存器。该编译器存在的不足之处是:当神经网络模型参数发生变化时,该编译器所产生的指令程序便会失去意义,需要重新生成一个新的编译器来获得指令程序进行正确的数据传输调度,这就造成了重复工作、增加了时间成本。
深圳云天励飞技术有限公司在其拥有的专利技术“一种卷积神经网络的数据调度方法、系统及计算机设备”(申请日:2016年12月23日,申请号201611205487.2,授权公告号CN 106874219 B)中公开了一种卷积神经网络的数据调度系统,该系统包括划分模块,用于将图像数据分成N个目标图像数据;载入模块,用于将所述第一目标图像数据载入第一数据缓冲模块;计算单元,用于读取所述第一数据缓冲模块存储的所述第一目标图像数据后进行卷积计算;确定模块,用于根据当前可用的存储空间以及计算单元的数量,确定第一数据缓冲模块和第二数据缓冲模块可分配的最大存储空间。该系统存在的不足之处是没有可视化的前端图型界面,导致系统的操作难度加大。
深圳云天励飞技术有限公司在其拥有的专利技术“一种卷积神经网络的数据调度方法、系统及计算机设备”(申请日:2016年12月23日,申请号201611205487.2,授权公告号CN 106874219 B)中公开了一种卷积神经网络的数据调度方法。该方法将图像数据分成N个目标图像数据,所述N为大于1的整数,然后将第一目标图像数据载入第一数据缓冲模块,计算单元读取上述第一数据缓冲模块存储的上述第一目标图像数据后进行卷积计算,在这个过程中将第二目标图像数据载入第二数据缓冲模块。最后计算单元得到计算结果后将计算结果传到外部存储器。该方法存在的不足之处是,所调度的数据太单一,仅用于对图像数据的调度,当卷积神经网络的数据涉及权值、偏置等数据时,会有存储结构和数据调度的局限性。
发明内容
本发明的目的在于针对上述现有技术的问题,提出一种自动化生成指令程序的方法和系统,以克服现有技术中重复工作时间成本高、指令程序调度传输数据类型单一和系统的操作难度大的问题。
实现本发明目的的思路是:首先,获取用户输入的卷积神经网络模型参数和硬件资源参数;其次,将户输入的卷积神经网络模型参数和硬件资源参数转化为.json类型文件;然后,根据.json类型文件确定数据存储结构;再者,解析.json类型文件和数据存储结构,生成中间结果文件;最后,根据中间结果文件生成指令程序和层配置信息。
本发明方法的具体步骤如下:
(1)获取参数:
用户输入卷积神经网络模型的参数和硬件资源参数,卷积神经网络模型的参数包括:一幅特征图的尺寸、卷积层的卷积核尺寸、卷积层的滑动步长、卷积层的卷积核深度、卷积层的补零数量、池化层的池化步长、全连接层的输出个数;
(2)生成.json类型文件:
(2a)将硬件资源参数表示成键值对结构的硬件资源字符串;
(2b)将卷积神经网络模型参数表示成键值对结构;
(2c)遍历卷积神经网络模型参数键值对结构,分配卷积神经网络各层的前驱指针和后继指针,卷积神经网络模型参数中特征图层的后继指针指向第一层卷积层,前驱指针指向空,卷积层、池化层和全连接层各自的前驱指针和后继指针由用户输入的卷积神经网络模型参数的先后顺序来确定指向,全连接层的后继指针指向全连接层,最后一层全连接层的后继指针指向空,遍历结束后将所有的键值对结构表示成键值对结构的神经网络模型字符串;
(2d)将硬件资源字符串和神经网络模型字符串拼接在一起,按照json格式生成.json类型文件;
(3)确定数据存储结构:
(3a)读取.json类型文件,将文件内容表示成字典结构;
(3b)遍历字典结构,当卷积神经网络模型的特征图像素宽度值与可编程神经网络处理器的数据位宽值的乘积小于存储器位宽数值时,特征图的数据结构不变,直接存入存储器;反之,对特征图进行竖向切割存储,所切割块的总数如下:
Figure GDA0002960677440000031
其中,
Figure GDA0002960677440000032
表示向上取整操作、img_w表示特征图的像素宽度值、w表示卷积层的卷积核宽度值、pe_h表示可编程神经网络处理器的运算单元阵列的高度值、s表示卷积层的滑动步长值;
(3c)遍历字典结构,将卷积神经网络模型的存储器位宽值与可编程神经网络处理器的数据位宽值相除,得到的商作为存储器存储位宽存放数据的总数;
(3d)将一个卷积核的所有权值拉成一维数列竖向存于存储器中,将存储器存储位宽存放数据的总数中每个卷积核权值数据、每个卷积神经网络全连接层权值数据、每个偏置数据,按从左往右的顺序存储于存储器中;
(3e)当卷积核的总数、卷积神经网络全连接层权值数据总数、偏置数据总数中的任意一种类型数据的总数,超过存储器存储位宽存放数据的总数时,将卷积核权值数据、卷积神经网络全连接层权值数据、偏置数据在存储器中以从上往下的结构存放;
(4)生成中间结果文件:
(4a)遍历字典结构,当遍历到卷积层或者全连接层时,计算特征图的数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为图像数据传输文件;
(4b)计算卷积神经网络卷积层的权值数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为卷积权值数据传输文件;
(4c)计算偏置数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为偏置数据传输文件;
(4d)当卷积层的后继指针指向卷积层或遍历到池化层、全连接层时,计算回存数据的起止地址和回存次数记,将每次回存时回存数据的起止地址保存为数据回存文件;
(4e)将所有的数据传输文件和数据回存文件组成中间结果文件;
(5)生成指令程序和层配置信息:
(5a)将中间结果文件中的所有起止地址添加上指令码生成单个指令;
(5b)排列组合单个指令,横向形成并行传输指令,纵向形成传输调度数据的指令程序;
(5c)分别计算所有层的处理类型、所有层的卷积核尺寸、所有层的滑动步长、所有层的指令数量、所有层的指令起止地址以及所有层的全连接的权值个数生成所有层的可编程神经网络处理器的层配置信息。
本发明指令程序开发调度数据的系统,包括参数获取模块、.json类型文件生成模块、数据存储结构配置模块、中间结果文件生成模块、指令程序和层配置信息生成模块。
所述参数获取模块,用于获取用户输入的神经网络模型参数和硬件资源参数,该模块提供了可视化的图型界面。
所述.json类型文件生成模块,用于将硬件资源参数表示成键值对结构的硬件资源字符串,将卷积神经网络模型参数表示成键值对结构,遍历卷积神经网络模型参数键值对结构,分配卷积神经网络各层的前驱指针和后继指针,卷积神经网络模型参数中特征图层的后继指针指向第一层卷积层,前驱指针指向空,卷积层、池化层和全连接层各自的前驱指针和后继指针由用户输入的卷积神经网络模型参数的先后顺序来确定指向,全连接层的后继指针指向全连接层,最后一层全连接层的后继指针指向空,遍历结束后将所有的键值对结构表示成键值对结构的神经网络模型字符串,将硬件资源字符串和神经网络模型字符串拼接在一起,按照json格式生成.json类型文件。
所述数据存储结构配置模块,用于读取.json类型文件,将文件内容表示成字典结构,遍历字典结构,当卷积神经网络模型的特征图的像素宽度值与可编程神经网络处理器的数据位宽值的乘积小于存储器位宽数值时,特征图的数据结构不变,直接存入存储器;反之,对特征图进行竖向切割存储,将卷积神经网络模型的存储器位宽值与可编程神经网络处理器的数据位宽值相除,得到的商作为存储器存储位宽存放数据的总数,将一个卷积核的所有权值拉成一维数列竖向存于存储器中,将存储器存储位宽存放数据的总数中每个卷积核权值数据、每个卷积神经网络全连接层权值数据、每个偏置数据,按从左往右的顺序存储于存储器中,当卷积核的总数、卷积神经网络全连接层权值数据总数、偏置数据总数中的任意一种类型数据的总数,超过存储器存储位宽存放数据的总数时,将卷积核权值数据、卷积神经网络全连接层权值数据、偏置数据在存储器中以从上往下的结构存放。
所述中间结果文件生成模块,用于遍历字典结构和解读数据存储结构配置模块所确定的数据存储结构,当遍历到卷积层或者全连接层时,计算特征图的数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为图像数据传输文件,计算卷积神经网络卷积层的权值数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为卷积权值数据传输文件,计算偏置数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为偏置数据传输文件,当卷积层的后继指针指向卷积层或遍历到池化层、全连接层时,计算回存数据的起止地址和回存次数记,将每次回存时回存数据的起止地址保存为数据回存文件,将所有的数据传输文件和数据回存文件组成中间结果文件。
所述指令程序和层配置信息生成模块,用于将中间结果文件中的所有起止地址添加上指令码生成单个指令,排列组合单个指令,横向形成并行传输指令,纵向形成传输调度数据的指令程序,生成传输调度数据的指令程序,分别计算所有层的处理类型、所有层的卷积核尺寸、所有层的滑动步长、所有层的指令数量、所有层的指令起止地址以及所有层的全连接的权值个数生成所有层的可编程神经网络处理器的层配置信息。
本发明与现有的技术相比具有以下优点:
第一,由于本发明的方法采用了将用户输入卷积神经网络模型的参数和硬件资源参数生成.json类型文件的方法,克服了现有技术中重复工作、时间成本高的问题,使得本发明的方法具有处理数据的时间成本低、效率高的优点。
第二,由于本发明方法采用了配置数据存储结构的方法,克服了现有技术中指令程序调度传输数据类型单一的问题,使得本发明的方法具有指令程序调度传输数据类型多样化的优点。
第三,由于本发明系统中的参数获取模块,用户可通过该模块的可视化的图型界面输入卷积神经网络模型的参数和硬件资源参数,克服了现有技术中没有可视化的前端图型界面,导致系统的操作使用难度加大问题,使得本发明的系统具有操作使用简单、用户图型界面美观的优点。
附图说明
图1是本发明方法的流程图;
图2是本发明系统的结构示意图;
图3是本发明指令格式示意图。
具体实施方式
下面结合附图对本发明做进一步的描述。
参照图1对本发明方法的具体步骤做进一步的描述。
步骤1,获取参数。
用户输入卷积神经网络模型的参数和硬件资源参数,卷积神经网络模型的参数包括:一幅特征图的尺寸、卷积层的卷积核尺寸、卷积层的滑动步长、卷积层的卷积核深度、卷积层的补零数量、池化层的池化步长、全连接层的输出个数。
所述的硬件资源参数包括存储器的容量、可编程神经网络处理器的数据位宽、存储器与可编程神经网络处理器的数据传输位宽、可编程神经网络处理器的数据运算数制、可编程神经网络处理器的运算单元阵列的宽度和高度。
步骤2,生成.json类型文件。
将硬件资源参数表示成键值对结构的硬件资源字符串。
将卷积神经网络模型参数表示成键值对结构。
遍历卷积神经网络模型参数键值对结构,分配卷积神经网络各层的前驱指针和后继指针,卷积神经网络模型参数中特征图层的后继指针指向第一层卷积层,前驱指针指向空,卷积层、池化层和全连接层各自的前驱指针和后继指针由用户输入的卷积神经网络模型参数的先后顺序来确定指向,全连接层的后继指针指向全连接层,最后一层全连接层的后继指针指向空,遍历结束后将所有的键值对结构表示成键值对结构的神经网络模型字符串。
将硬件资源字符串和神经网络模型字符串拼接在一起,按照json格式生成.json类型文件。
步骤3,确定数据存储结构。
读取.json类型文件,将文件内容表示成字典结构。
遍历字典结构,当卷积神经网络模型的特征图的像素宽度值与可编程神经网络处理器的数据位宽值的乘积小于存储器位宽数值时,特征图的数据结构不变,直接存入存储器;反之,对特征图进行竖向切割存储,所切割块的总数如下:
Figure GDA0002960677440000061
其中,
Figure GDA0002960677440000071
表示向上取整操作、img_w表示特征图的像素宽度值、w表示卷积层的卷积核宽度值、pe_h表示可编程神经网络处理器的运算单元阵列的高度值、s表示卷积层的滑动步长值。
遍历字典结构,将卷积神经网络模型的存储器位宽值与可编程神经网络处理器的数据位宽值相除,得到的商作为存储器存储位宽存放数据的总数。
将一个卷积核的所有权值拉成一维数列竖向存于存储器中,将存储器存储位宽存放数据的总数中每个卷积核权值数据、每个卷积神经网络全连接层权值数据、每个偏置数据,按从左往右的顺序存储于存储器中。
当卷积核的总数、卷积神经网络全连接层权值数据总数、偏置数据总数中的任意一种类型数据的总数,超过存储器存储位宽存放数据的总数时,将卷积核权值数据、卷积神经网络全连接层权值数据、偏置数据在存储器中以从上往下的结构存放。
步骤4,生成中间结果文件。
遍历字典结构,当遍历到卷积层或者全连接层时,计算特征图的数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为图像数据传输文件。
计算卷积神经网络卷积层的权值数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为卷积权值数据传输文件。
计算偏置数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为偏置数据传输文件。
当卷积层的后继指针指向卷积层或遍历到池化层、全连接层时,计算回存数据的起止地址和回存次数记,将每次回存时回存数据的起止地址保存为数据回存文件。
将所有的数据传输文件和数据回存文件组成中间结果文件。
步骤5,生成指令程序和层配置信息。
将中间结果文件中的所有起止地址添加上指令码生成单个指令。
排列组合单个指令,横向形成并行传输指令,纵向形成传输调度数据的指令程序。
分别计算所有层的处理类型、所有层的卷积核尺寸、所有层的滑动步长、所有层的指令数量、所有层的指令起止地址以及所有层的全连接的权值个数生成所有层的可编程神经网络处理器的层配置信息。
所述可编程神经网络处理器的执行程序是指并行数据调度指令,用于控制可编程神经网络处理器对数据的传输调度且可以根据硬件的需求并行传输不同类型数据。
所述传输调度数据包括特征图数据、卷积神经网络权值数据、卷积神经网络偏置数据、回收中间结果数据。
所述可编程神经网络处理器的层配置信息用于配置可编程神经网络处理器,层配置信息包括当前层的处理类型:卷积类型,池化类型,全连接类型、当前层卷积核尺寸、当前层的滑动步长、当前层的指令数量、当前层的指令起止地址以及当前层全连接的权值个数。
参照图2对本发明系统做进一步的描述。
本发明的系统,包括参数获取模块、.json类型文件生成模块、数据存储结构配置模块、中间结果文件生成模块、指令程序和层配置信息生成模块。
所述参数获取模块,用于获取用户输入的神经网络模型参数和硬件资源参数,该模块提供了可视化的图型界面。
所述.json类型文件生成模块,用于将硬件资源参数表示成键值对结构的硬件资源字符串,将卷积神经网络模型参数表示成键值对结构,遍历卷积神经网络模型参数键值对结构,分配卷积神经网络各层的前驱指针和后继指针,卷积神经网络模型参数中特征图层的后继指针指向第一层卷积层,前驱指针指向空,卷积层、池化层和全连接层各自的前驱指针和后继指针由用户输入的卷积神经网络模型参数的先后顺序来确定指向,全连接层的后继指针指向全连接层,最后一层全连接层的后继指针指向空,遍历结束后将所有的键值对结构表示成键值对结构的神经网络模型字符串,将硬件资源字符串和神经网络模型字符串拼接在一起,按照json格式生成.json类型文件。
所述数据存储结构配置模块用于读取.json类型文件,将文件内容表示成字典结构,遍历字典结构,当卷积神经网络模型的特征图的像素宽度值与可编程神经网络处理器的数据位宽值的乘积小于存储器位宽数值时,特征图的数据结构不变,直接存入存储器;反之,对特征图进行竖向切割存储,将卷积神经网络模型的存储器位宽值与可编程神经网络处理器的数据位宽值相除,得到的商作为存储器存储位宽存放数据的总数,将一个卷积核的所有权值拉成一维数列竖向存于存储器中,将存储器存储位宽存放数据的总数中每个卷积核权值数据、每个卷积神经网络全连接层权值数据、每个偏置数据,按从左往右的顺序存储于存储器中,当卷积核的总数、卷积神经网络全连接层权值数据总数、偏置数据总数中的任意一种类型数据的总数,超过存储器存储位宽存放数据的总数时,将卷积核权值数据、卷积神经网络全连接层权值数据、偏置数据在存储器中以从上往下的结构存放。
所述中间结果文件生成模块,用于遍历字典结构和解读数据存储结构配置模块所确定的数据存储结构,当遍历到卷积层或者全连接层时,计算特征图的数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为图像数据传输文件,计算卷积神经网络卷积层的权值数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为卷积权值数据传输文件,计算偏置数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为偏置数据传输文件,当卷积层的后继指针指向卷积层或遍历到池化层、全连接层时,计算回存数据的起止地址和回存次数记,将每次回存时回存数据的起止地址保存为数据回存文件,将所有的数据传输文件和数据回存文件组成中间结果文件。
所述指令程序和层配置信息生成模块,用于将中间结果文件中的所有起止地址添加上指令码生成单个指令,排列组合单个指令,横向形成并行传输指令,纵向形成传输调度数据的指令程序,生成传输调度数据的指令程序,分别计算所有层的处理类型、所有层的卷积核尺寸、所有层的滑动步长、所有层的指令数量、所有层的指令起止地址以及所有层的全连接的权值个数生成所有层的可编程神经网络处理器的层配置信息。
参照图3对本发明指令格式做进一步的描述。
本发明所使用的并行数据传输指令格式,其中指令码用于控制传输数据的类型,开始地址表示要传输数据的起始位置,结束地址表示传输数据的结束位置,由于本发明所自动化生成的指令程序用于控制可编程神经网络处理器实现对图像、卷积神经网络的权值和偏执等数据的调度,因此可以根据硬件的需求并行传输多种数据。

Claims (6)

1.一种指令程序开发调度数据的方法,其特征在于,用户输入卷积神经网络模型的参数和硬件资源参数,生成.json类型文件和配置数据存储结构,该方法的具体步骤包括如下:
(1)获取参数:
用户输入卷积神经网络模型的参数和硬件资源参数,卷积神经网络模型的参数包括:一幅特征图的尺寸、卷积层的卷积核尺寸、卷积层的滑动步长、卷积层的卷积核深度、卷积层的补零数量、池化层的池化步长、全连接层的输出个数;
(2)生成.json类型文件:
(2a)将硬件资源参数表示成键值对结构的硬件资源字符串;
(2b)将卷积神经网络模型参数表示成键值对结构;
(2c)遍历卷积神经网络模型参数键值对结构,分配卷积神经网络各层的前驱指针和后继指针,卷积神经网络模型参数中特征图层的后继指针指向第一层卷积层,前驱指针指向空,卷积层、池化层和全连接层各自的前驱指针和后继指针由用户输入的卷积神经网络模型参数的先后顺序来确定指向,全连接层的后继指针指向全连接层,最后一层全连接层的后继指针指向空,遍历结束后将所有的键值对结构表示成键值对结构的神经网络模型字符串;
(2d)将硬件资源字符串和神经网络模型字符串拼接在一起,按照json格式生成.json类型文件;
(3)确定数据存储结构:
(3a)读取.json类型文件,将文件内容表示成字典结构;
(3b)遍历字典结构,当卷积神经网络模型的特征图像素宽度值与可编程神经网络处理器的数据位宽值的乘积小于存储器位宽数值时,特征图的数据结构不变,直接存入存储器;反之,对特征图进行竖向切割存储,所切割块的总数如下:
Figure FDA0002960677430000011
其中,
Figure FDA0002960677430000012
表示向上取整操作、img_w表示特征图的像素宽度值、w表示卷积层的卷积核宽度值、pe_h表示可编程神经网络处理器的运算单元阵列的高度值、s表示卷积层的滑动步长值;
(3c)遍历字典结构,将卷积神经网络模型的存储器位宽值与可编程神经网络处理器的数据位宽值相除,得到的商作为存储器存储位宽存放数据的总数;
(3d)将一个卷积核的所有权值拉成一维数列竖向存于存储器中,将存储器存储位宽存放数据的总数中每个卷积核权值数据、每个卷积神经网络全连接层权值数据、每个偏置数据,按从左往右的顺序存储于存储器中;
(3e)当卷积核的总数、卷积神经网络全连接层权值数据总数、偏置数据总数中的任意一种类型数据的总数,超过存储器存储位宽存放数据的总数时,将卷积核权值数据、卷积神经网络全连接层权值数据、偏置数据在存储器中以从上往下的结构存放;
(4)生成中间结果文件:
(4a)遍历字典结构,当遍历到卷积层或者全连接层时,计算特征图的数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为图像数据传输文件;
(4b)计算卷积神经网络卷积层的权值数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为卷积权值数据传输文件;
(4c)计算偏置数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为偏置数据传输文件;
(4d)当卷积层的后继指针指向卷积层或遍历到池化层、全连接层时,计算回存数据的起止地址和回存次数记,将每次回存时回存数据的起止地址保存为数据回存文件;
(4e)将所有的数据传输文件和数据回存文件组成中间结果文件;
(5)生成指令程序和层配置信息:
(5a)将中间结果文件中的所有起止地址添加上指令码生成单个指令;
(5b)排列组合单个指令,横向形成并行传输指令,纵向形成传输调度数据的指令程序;
(5c)分别计算所有层的处理类型、所有层的卷积核尺寸、所有层的滑动步长、所有层的指令数量、所有层的指令起止地址以及所有层的全连接的权值个数生成所有层的可编程神经网络处理器的层配置信息。
2.根据权利要求1所述的指令程序开发调度数据的方法,其特征在于,步骤(1)中所述的硬件资源参数包括:存储器的容量、可编程神经网络处理器的数据位宽、存储器与可编程神经网络处理器的数据传输位宽、可编程神经网络处理器的数据运算数制、可编程神经网络处理器的运算单元阵列的宽度和高度。
3.根据权利要求1所述的指令程序开发调度数据的方法,其特征在于,步骤(5b)中所述指令程序是指并行数据调度指令,用于控制可编程神经网络处理器对数据的传输调度且可以根据硬件的需求并行传输不同类型数据。
4.根据权利要求1所述的指令程序开发调度数据的方法,其特征在于,步骤(5b)中所述传输调度数据包括特征图数据、卷积神经网络权值数据、卷积神经网络偏置数据、回收中间结果数据。
5.根据权利要求1所述的指令程序开发调度数据的方法,其特征在于,步骤(5c)中所述可编程神经网络处理器的层配置信息是用于配置可编程神经网络处理器,层配置信息包括当前层的处理类型:卷积类型,池化类型,全连接类型、当前层卷积核尺寸、当前层的滑动步长、当前层的指令数量、当前层的指令起止地址以及当前层全连接的权值个数。
6.一种指令程序开发调度数据的系统,包括参数获取模块、.json类型文件生成模块、数据存储结构配置模块、中间结果文件生成模块、指令程序和层配置信息生成模块,
所述参数获取模块,用于获取用户输入的神经网络模型参数和硬件资源参数,该模块提供了可视化的图型界面;
所述.json类型文件生成模块,用于将硬件资源参数表示成键值对结构的硬件资源字符串,将卷积神经网络模型参数表示成键值对结构,遍历卷积神经网络模型参数键值对结构,分配卷积神经网络各层的前驱指针和后继指针,卷积神经网络模型参数中特征图层的后继指针指向第一层卷积层,前驱指针指向空,卷积层、池化层和全连接层各自的前驱指针和后继指针由用户输入的卷积神经网络模型参数的先后顺序来确定指向,全连接层的后继指针指向全连接层,最后一层全连接层的后继指针指向空,遍历结束后将所有的键值对结构表示成键值对结构的神经网络模型字符串,将硬件资源字符串和神经网络模型字符串拼接在一起,按照json格式生成.json类型文件;
所述数据存储结构配置模块,用于读取.json类型文件,将文件内容表示成字典结构,遍历字典结构,当卷积神经网络模型的特征图的像素宽度值与可编程神经网络处理器的数据位宽值的乘积小于存储器位宽数值时,特征图的数据结构不变,直接存入存储器;反之,对特征图进行竖向切割存储,将卷积神经网络模型的存储器位宽值与可编程神经网络处理器的数据位宽值相除,得到的商作为存储器存储位宽存放数据的总数,将一个卷积核的所有权值拉成一维数列竖向存于存储器中,将存储器存储位宽存放数据的总数中每个卷积核权值数据、每个卷积神经网络全连接层权值数据、每个偏置数据,按从左往右的顺序存储于存储器中,当卷积核的总数、卷积神经网络全连接层权值数据总数、偏置数据总数中的任意一种类型数据的总数,超过存储器存储位宽存放数据的总数时,将卷积核权值数据、卷积神经网络全连接层权值数据、偏置数据在存储器中以从上往下的结构存放;
所述中间结果文件生成模块,用于遍历字典结构和解读存储器数据结构配置模块所确定的数据存储结构,当遍历到卷积层或者全连接层时,计算特征图的数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为图像数据传输文件,计算卷积神经网络卷积层的权值数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为卷积权值数据传输文件,计算偏置数据传输次数和每次传输时在存储器中的起止地址,将每次传输的起止地址保存为偏置数据传输文件,当卷积层的后继指针指向卷积层或遍历到池化层、全连接层时,计算回存数据的起止地址和回存次数记,将每次回存时回存数据的起止地址保存为数据回存文件,将所有的数据传输文件和数据回存文件组成中间结果文件;
所述指令程序和层配置信息生成模块,用于将中间结果文件中的所有起止地址添加上指令码生成单个指令,排列组合单个指令,横向形成并行传输指令,纵向形成传输调度数据的指令程序,生成传输调度数据的指令程序,分别计算所有层的处理类型、所有层的卷积核尺寸、所有层的滑动步长、所有层的指令数量、所有层的指令起止地址以及所有层的全连接的权值个数生成所有层的可编程神经网络处理器的层配置信息。
CN201910071055.4A 2019-01-25 2019-01-25 指令程序开发调度数据的方法及系统 Active CN109799977B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910071055.4A CN109799977B (zh) 2019-01-25 2019-01-25 指令程序开发调度数据的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910071055.4A CN109799977B (zh) 2019-01-25 2019-01-25 指令程序开发调度数据的方法及系统

Publications (2)

Publication Number Publication Date
CN109799977A CN109799977A (zh) 2019-05-24
CN109799977B true CN109799977B (zh) 2021-07-27

Family

ID=66558825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910071055.4A Active CN109799977B (zh) 2019-01-25 2019-01-25 指令程序开发调度数据的方法及系统

Country Status (1)

Country Link
CN (1) CN109799977B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110516795B (zh) * 2019-08-28 2022-05-10 北京达佳互联信息技术有限公司 一种为模型变量分配处理器的方法、装置及电子设备
CN112888076B (zh) * 2019-11-29 2023-10-24 华为技术有限公司 一种调度方法及装置
CN111737193B (zh) * 2020-08-03 2020-12-08 深圳鲲云信息科技有限公司 数据存储方法、装置、设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106355244A (zh) * 2016-08-30 2017-01-25 深圳市诺比邻科技有限公司 卷积神经网络的构建方法及系统
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107016175A (zh) * 2017-03-23 2017-08-04 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法
CN108431823A (zh) * 2015-11-05 2018-08-21 脸谱公司 用卷积神经网络处理内容的系统和方法
CN108537328A (zh) * 2018-04-13 2018-09-14 众安信息技术服务有限公司 用于可视化构建神经网络的方法
CN109086867A (zh) * 2018-07-02 2018-12-25 武汉魅瞳科技有限公司 一种基于fpga的卷积神经网络加速系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9147117B1 (en) * 2014-06-11 2015-09-29 Socure Inc. Analyzing facial recognition data and social network data for user authentication
JP6450053B2 (ja) * 2015-08-15 2019-01-09 セールスフォース ドット コム インコーポレイティッド 3dバッチ正規化を伴う三次元(3d)畳み込み
CN106649294B (zh) * 2016-12-29 2020-11-06 北京奇虎科技有限公司 一种分类模型的训练及其从句识别方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108431823A (zh) * 2015-11-05 2018-08-21 脸谱公司 用卷积神经网络处理内容的系统和方法
CN106355244A (zh) * 2016-08-30 2017-01-25 深圳市诺比邻科技有限公司 卷积神经网络的构建方法及系统
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107016175A (zh) * 2017-03-23 2017-08-04 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法
CN108537328A (zh) * 2018-04-13 2018-09-14 众安信息技术服务有限公司 用于可视化构建神经网络的方法
CN109086867A (zh) * 2018-07-02 2018-12-25 武汉魅瞳科技有限公司 一种基于fpga的卷积神经网络加速系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Instruction Scheduling for Dynamic Hardware Configurations;Elena Moscu Panainte;《HAL》;20050330;全文 *
Returnn: The RWTH extensible training framework for universal recurrent neural networks;Patrick Doetsch, Albert Zeyer;《IEEE》;20170619;全文 *
使用 json 进行神经网络结构信息的格式化;Inside_Zhang;《https://blog.csdn.net/lanchunhui/article/details/50112447》;20151130;全文 *

Also Published As

Publication number Publication date
CN109799977A (zh) 2019-05-24

Similar Documents

Publication Publication Date Title
CN109799977B (zh) 指令程序开发调度数据的方法及系统
CN107844837B (zh) 针对机器学习算法进行算法参数调优的方法及系统
US20220391678A1 (en) Neural network model processing method and apparatus, computer device, and storage medium
CN107145344B (zh) 在基于图的程序中指定组件
CN112395547A (zh) 对张量进行图块遍历以进行卷积运算的方法和装置
US10055808B1 (en) Distributed and parallelized visualization framework
US10338963B2 (en) System and method of schedule validation and optimization of machine learning flows for cloud computing
CN106462393B (zh) 用于统一应用编程接口和模型的系统和方法
CN116909985A (zh) 对数据分区的动态排序
US20200004514A1 (en) High parallelism computing system and instruction scheduling method thereof
CN102930580A (zh) 数据帧动画
CN101119485A (zh) 一种基于特征保留的三维模型递进传输方法
CN114008594A (zh) 调度计算图上的操作
WO2023093623A1 (zh) 计算图的优化方法、数据处理方法及相关产品
CN110008366A (zh) 一种施工图纸预览方法及其系统
CN109598250A (zh) 特征提取方法、装置、电子设备和计算机可读介质
DE102022124599A1 (de) Vorrichtung und verfahren zur baumstrukturdatenreduzierung
CN114461978A (zh) 数据处理方法、装置、电子设备及可读存储介质
WO2017139500A1 (en) System and method for manipulating acceleration structures
CN102930581A (zh) 对数据帧动画的通用表示
CN106998489A (zh) 一种焦点越界搜索方法及装置
Wen et al. A swap dominated tensor re-generation strategy for training deep learning models
CN104769559B (zh) 快速、动态高速缓存封装
KR20220121680A (ko) 딥러닝 네트워크 구성 방법, 딥러닝 자동화 플랫폼 서비스 시스템 및 이를 위한 컴퓨터 프로그램
EP4348511A1 (en) Dynamic activation sparsity in neural networks

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