一种数据处理方法及相关产品技术

技术编号:24411946 阅读:23 留言:0更新日期:2020-06-06 09:37
本申请实施例公开了一种数据处理方法及相关产品,其中,数据处理方法包括:通用处理器获取端侧人工智能处理器的硬件架构信息以及对应的可配置的访存带宽,根据端侧人工智能处理器的硬件架构信息以及对应的访存带宽生成对应的二进制指令;通用处理器根据二进制指令生成对应的人工智能学习任务,将人工智能学习任务发送至云侧人工智能处理器上运行;云侧人工智能处理器接收人工智能学习任务,执行人工智能学习任务,生成运行结果;通用处理器接收人工智能学习任务对应的运行结果,根据运行结果确定访存带宽对应的离线运行文件;通用处理器根据同一端侧人工智能处理器的不同的访存带宽对应的离线运行文件确定离线运行文件映射表。

A data processing method and related products

【技术实现步骤摘要】
一种数据处理方法及相关产品本申请要求2019年4月18日提交,申请号为201910315962.9,专利技术名称为“一种数据处理方法及相关产品”的优先权。
本申请涉及人工智能处理器
,尤其涉及一种数据处理方法及相关产品。
技术介绍
现有技术中,当人工智能处理器成功流片后,算法应用开发者才能在对应版本的人工智能处理器(硬件实体)上进行开发和测试。从上述描述可以知道,现有技术中,只有在人工智能处理器流片之后,才能得知开发的人工智能算法在对应版本的人工智能处理器上运行的功能结果和性能结果。在实际应用场景下,人工智能处理器通常需要与其他处理器,比如CPU、GPU、DSP等抢占片外存储器的访存带宽;同时,如果人工智能处理器内部多个处理器核之间执行协同任务时相互之间也存在对于片外存储器带宽的抢占。在执行协同任务时,其中一个重要的参数为神经网络中的算子在某种拆分状态下在多核人工智能处理器上并行执行所用时间的估值取决于人工智能处理器的一个处理核可占用的片外存储器的访存带宽。这意味着,当实际带宽发生变化时,多核拆分的策略也将随之改变。那么,如何实现端侧人工智能处理器未流片时算法应用开发者即可展开不同的应用场景下人工智能算法模型与人工智能处理器之间的多核拆分方式的调试工作,是急需解决的问题。
技术实现思路
本申请实施例提供一种数据处理方法及相关产品,不管人工智能处理器是否流片,本技术方案都能够提前实现不同的应用场景下人工智能算法模型与人工智能处理器之间的多核拆分方式的调试工作。为实现上述目的,本申请提出一种数据处理方法,所述数据处理方法包括:读取离线运行文件集合;其中,所述离线运行文件集合是根据运行结果满足预设要求时对应的所述端侧人工智能处理器的硬件架构信息、访存带宽和二进制指令确定的离线运行文件构成的。对所述离线运行文件集合进行解析,获得离线运行文件映射表;其中,所述离线运行文件映射表是同一端侧人工智能处理器的硬件架构信息所对应的访存带宽与所述离线运行文件之间的对应关系。根据端侧人工智能处理器工作负荷情况,确定当前访存带宽;基于当前访存带宽从所述离线运行文件映射表中确定需执行的当前离线运行文件。执行当前离线运行文件。优选地,所述离线运行文件映射表的获得步骤包括:所述通用处理器获取端侧人工智能处理器的硬件架构信息以及对应的可配置的访存带宽,根据所述端侧人工智能处理器的硬件架构信息以及对应的访存带宽生成对应的二进制指令;其中,访存带宽为端侧人工智能处理器到片外存储器的访存宽度;所述通用处理器根据所述二进制指令生成对应的人工智能学习任务,将所述人工智能学习任务发送至云侧人工智能处理器上运行;所述云侧人工智能处理器接收人工智能学习任务,执行所述人工智能学习任务,生成运行结果;所述通用处理器接收所述人工智能学习任务对应的运行结果,根据所述运行结果确定所述访存带宽对应的离线运行文件;其中,所述离线运行文件是根据运行结果满足预设要求时的所述端侧人工智能处理器的硬件架构信息以及对应的访存带宽和二进制指令生成的;所述通用处理器根据同一端侧人工智能处理器的不同的访存带宽对应的离线运行文件确定离线运行文件映射表;其中,所述离线运行文件映射表是同一端侧人工智能处理器的硬件架构信息所对应的访存带宽与所述离线运行文件之间的对应关系。为实现上述目的,本申请提出一种数据处理装置,所述装置包括:存储器、通用处理器以及云侧人工智能处理器;所述存储器上存储有可在所述通用处理器和/或所述云侧人工智能处理器上运行上述所述方法的计算机程序。本技术方案的技术效果为:本技术方案提供一软件开发平台,客户可以在该软件开发平台上完成多核拆分方案与人工智能处理器之间的功能、性能、精度调试,调试完成后生成的离线运行文件映射表中不同访存带宽下离线运行文件集合可以在使用兼容架构上的多种SoC芯片上部署,带来的好处是客户无需拿到硬件实体就可提前对多核拆分方案与人工智能处理器之间功能、性能、精度调试,大大缩短了产品开发周期。并且,无需为每个SoC芯片单独开发或者适配一套开发环境。附图说明为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。图1是本技术方案的架构示意图;图2是人工智能处理器的软件栈结构示意图;图3是本技术方案的应用场景示意图之一;图4是本技术方案的应用场景示意图之二;图5是本申请提出的一种数据处理方法流程图之一;图6是人工智能学习库支持的多种类型的基本算子的示意图;图7是本申请提出的一种数据处理方法流程图之二;图8是本申请提出的一种数据处理方法流程图之三;图9是本申请提出的一种数据处理方法流程图之四;图10是本申请提出的一种数据处理装置功能框图;图11是本申请提出的根据所述端侧人工智能处理器的硬件架构信息以及对应的访存带宽生成对应的二进制指令的流程图;图12是本申请提出的本申请实施例提供的一种卷积算子的原始计算图的示意图。图13A是按照输入数据的N维度进行拆分得到的示意图;图13B是按照输出数据的C维度进行拆分的示意图;图13C是按照输入数据C维度进行拆分得到的示意图;图13D是按照输入数据的H维度进行拆分得到的示意图;图13E是按照输入数据的W维度进行拆分得到的示意图;图13F是本申请实施例提供的一种人脸识别神经网络模型的结构示意图;图13G是本申请实施例提供的一种车牌字符识别的神经网络模型的结构示意图;图13H是本申请实施例提供的一种神经网络模型的抽象示意图;图14A是本申请实施例提供的一种串行神经网络模型的抽象示意图;图14B是本申请实施例提供的一种通过胶水算子调整张量数据的拆分方式的示意图;图14C是本申请实施例提供的一种concat算子语义的示意图;图14D是本申请实施例提供的一种split算子语义的示意图;图14E是本申请实施例提供的一种插入胶水算子后的神经网络模型的抽象示意图;图14F是本申请实施例提供的另一种插入胶水算子后的神经网络模型的抽象示意图。具体实施方式下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述参考在附图中示出并在以下描述中详述的非限制性示例实施例,更加全面地说明本公开的示例实施例和它们的多种特征及有利细节。应注意的是,图中示出的特征不是必须按照比例绘制。本公开省略了已知材料、组件和工艺技术的描述,从而不使本公开的示例实施例模糊。所给出的示例仅旨在有利于理解本公开示例实施例的实施,以及进一步使本领域技术人员能够实施示例实施例。因而,这些示例不应被理解为对本公开的实施例的范围的限制。除非另外特别定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,所述数据处理方法包括:/n读取离线运行文件集合;其中,所述离线运行文件集合是根据运行结果满足预设要求时对应的所述端侧人工智能处理器的硬件架构信息、访存带宽和二进制指令确定的离线运行文件构成的。/n对所述离线运行文件集合进行解析,获得离线运行文件映射表;其中,所述离线运行文件映射表是同一端侧人工智能处理器的硬件架构信息所对应的访存带宽与所述离线运行文件之间的对应关系。/n根据端侧人工智能处理器工作负荷情况,确定当前访存带宽;基于当前访存带宽从所述离线运行文件映射表中确定需执行的当前离线运行文件。/n执行当前离线运行文件。/n

【技术特征摘要】
20190418 CN 20191031596291.一种数据处理方法,其特征在于,所述数据处理方法包括:
读取离线运行文件集合;其中,所述离线运行文件集合是根据运行结果满足预设要求时对应的所述端侧人工智能处理器的硬件架构信息、访存带宽和二进制指令确定的离线运行文件构成的。
对所述离线运行文件集合进行解析,获得离线运行文件映射表;其中,所述离线运行文件映射表是同一端侧人工智能处理器的硬件架构信息所对应的访存带宽与所述离线运行文件之间的对应关系。
根据端侧人工智能处理器工作负荷情况,确定当前访存带宽;基于当前访存带宽从所述离线运行文件映射表中确定需执行的当前离线运行文件。
执行当前离线运行文件。


2.如权利要求1所述的方法,其特征在于,所述离线运行文件映射表的获得步骤包括:
所述通用处理器获取端侧人工智能处理器的硬件架构信息以及对应的可配置的访存带宽,根据所述端侧人工智能处理器的硬件架构信息以及对应的访存带宽生成对应的二进制指令;其中,访存带宽为端侧人工智能处理器到片外存储器的访存宽度;
所述通用处理器根据所述二进制指令生成对应的人工智能学习任务,将所述人工智能学习任务发送至云侧人工智能处理器上运行;
所述云侧人工智能处理器接收人工智能学习任务,执行所述人工智能学习任务,生成运行结果;
所述通用处理器接收所述人工智能学习任务对应的运行结果,根据所述运行结果确定所述访存带宽对应的离线运行文件;其中,所述离线运行文件是根据运行结果满足预设要求时的所述端侧人工智能处理器的硬件架构信息以及对应的访存带宽和二进制指令生成的;
所述通用处理器根据同一端侧人工智能处理器的不同的访存带宽对应的离线运行文件确定离线运行文件映射表;其中,所述离线运行文件映射表是同一端侧人工智能处理器的硬件架构信息所对应的访存带宽与所述离线运行文件之间的对应关系。


3.如权利要求2所述的方法,其特征在于,根据所述端侧人工智能处理器的硬件架构信息以及对应的访存带宽生成对应的二进制指令的步骤包括:
所述通用处理器根据人工智能算法模型对应计算图中的目标算子,确定与所述目标算子相关联的张量数据的拆分状态集合;其中,所述张量数据包括输入张量数据和输出张量数据;
所述通用处理器遍历所述拆分状态集合,确定相邻拆分状态集合之间所述算子的张量数据的拆分路径以及所述拆分路径的权重;其中,所述拆分路径的权值基于所述访存带宽确定;
所述通用处理器根据所述拆分路径的权重,确定所述目标算子的张量数据的目标拆分路径,根据所述目标拆分路径对所述计算图中的目标算子进行拆分;
所述通用处理器根据所述端侧人工智能处理器的硬件架构信息对拆分后的神经网络模型进行编译,获得对应的二进制指令。


4.如权利要求2所述的方法,其特征在于,所述端侧人工智能处理器的硬件架构信息包括:片上存储大小、端侧人工智能处理器的核数、端侧人工智能处理器的运算器类型、端侧人工智能处理器的运行主频率。


5.如权利要求2所述的方法,其特征在于,所述通用处理器将端侧人工智能处理器的硬件架构信息写入驱动程序中,以根据所述驱动程序中的硬件架构信息适配云侧人工智能处理器。


6.如权利要求2所述的方法,其特征在于,根据所述运行结果确定所述离线运行文件,包括:
若所述运行结果满足预设要求,则根据满足所述预设要求的二进制指令生成对应的离线运行文件。


7.如权利要求2所述的方法,其特征在于,根据所述运行结果确定所述离线运行文件,还包括:
若所述运行结果不满足预设要求,执行如下过程中的至少一种优化方式,直至运行结果满足所述预设要求,并根据满足所述预设要求的二进制指令生成对应的离线运行文件;其中,所述优化方式包括:
调整所述端侧人工智能处理器的硬件架构信息;
或优化人工智能学习任务。


8.如权利要求7所述的方法,其特征在于,所述优化人工智能学习任务的步骤包括:
通过专用编程语言来优化人工智能学习任务。


9.如权利要求7或8所述的方法,其特征在于,所述优化人工智能学习任务的步骤还包括:
更新人工智能学习库的版本来优化人工智能学习任务。

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:北京;11

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

1