一种神经网络硬件低功耗定制化的开发工具的制作方法

文档序号:18256800发布日期:2019-07-24 10:18阅读:220来源:国知局
一种神经网络硬件低功耗定制化的开发工具的制作方法

本发明涉及开发工具领域,具体为一种神经网络硬件低功耗定制化的开发工具。



背景技术:

随着软硬件技术的不断发展,目前神经网络技术已经在移动端实现应用,而无需借助庞大的后台运算,但是功耗还是嵌入式应用的主要瓶颈之一,为了进一步降低功耗,在硬件方面设计人员通过改变芯片框架结构和优化电路降低单位时间功耗;在软件方面,通过优化算法、减小模型、降低精度等方法减少计算时间来降低功耗,这些方法具有通用性,即适合目前所有主流的神经网络,但为了在通用性和低功耗性能之间达到一个平衡,其功耗和性能并未达到硬件具有的最佳水平。

根据实际需求动态调整电压和频率,在保证性能的前提下降低嵌入式芯片的频率和电压是一种高效的节电方式,目前,较多的嵌入式芯片都支持动态电压与频率调节(如DVFS),也有专用的DVFS芯片用于不支持该功能的嵌入式芯片,该技术的主要工作过程是:采集T1时刻与系统负载有关的信号并计算当前负载;根据T1时刻负载预测T2时刻需要的性能;根据预测的性能调整电压和频率,实现低功耗目的,除了DVFS外,还有AVFS(自适应电压与频率调节)等其他解决方案,其能够适用于多种硬件及系统,具有可观的节电效果,但其存在较明显的缺点:不管采用什么算法,其核心都是根据T1时刻的负载情况预测T2时刻负载,然后根据预测结果调整电压和频率,但是在工程应用中,有时预测误差很大,尤其在实时性要求高的系统中,可能因为错误的电压、频率调节导致程序运行不流畅或死机,因此该方法在工业应用上还有一定的局限性。



技术实现要素:

本发明的目的在于提供一种神经网络硬件低功耗定制化的开发工具,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种神经网络硬件低功耗定制化的开发工具,包括以下步骤:

S1:源码加工;

S2:生成调节策略;

S3:生成工程码源。

优选的,在S1中,源码加工分为三个操作步骤,分别为用户提供编码、用户输入参数与开发工具输出。

优选的,用户提供编码包括编写完成的代码、获取硬件参数的钩子函数与电压频率调节函数,用户输入参数包括需监听代码的函数名与电压和频率调节的步长和门限参数,开发工具输出为嵌入钩子函数的代码。

优选的,钩子函数和调节函数根据硬件技术手册编写,并放入不同文件夹,其中钩子函数用于查看硬件负载、频率、电压等与功耗相关的数据,调节函数主要用于电压和频率的调节控制。

优选的,在S2中,生成调节策略有硬件运行获取包含电压、频率、负载等信息的文件,开发工具根据用户输入参数和钩子函数获取的信息制定电压、频率调节策略与输出调节前和输出调节后的性能曲线图。

优选的,开发工具按程序执行顺序扫描源码,在指定的被监听函数段插入钩子函数,并为每个钩子函数编号。

优选的,在S1中最后生成的源码下载到硬件上运行,钩子函数将需要监听的功能段负载、电压、频率等信息以文本格式输出,该文本输出功能由钩子函数完成。

优选的,在S3中,生成工程码源包括人工比对调节前后的性能图,并结合工程需求修改调节策略、开发工具去除钩子函数,并根据调节策略加入调节函数与生成工程应用的代码,生成并输出包含调节函数的工程应用代码。

与现有技术相比,本发明的有益效果是:提前将电压、频率调节策略写入,不依赖于现场预测,防止预测错误导致实时性要求高的应用无法正常使用(如视频流卡顿等),本专利生产的工程文件,没有大量的性能监测、预测等服务于电压、频率调节的任务,基本不占用硬件资源。

附图说明

图1为本发明的整体流程图;

图2为本发明的源码加工技术框图;

图3为本发明的生成调节策略技术框图;

图4为本发明的生成工程码源技术框图。

具体实施方式

下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-4,本发明提供一种技术方案:一种神经网络硬件低功耗定制化的开发工具,包括以下步骤:

S1:源码加工,请参阅图1和图2,源码加工分为三个操作步骤,分别为用户提供编码、用户输入参数与开发工具输出,用户提供编码包括编写完成的代码、获取硬件参数的钩子函数与电压频率调节函数,用户输入参数包括需监听代码的函数名与电压和频率调节的步长和门限参数,开发工具输出为嵌入钩子函数的代码,根据硬件技术手册编写钩子函数和调节函数,并放入不同文件夹,其中钩子函数用于查看硬件负载、频率、电压等与功耗相关的数据,调节函数主要用于电压和频率的调节控制,打开开发工具并将编写完成的代码、钩子函数、调节函数分别导入开发工具,填写需要监听的功能函数名以及电压和频率调节的步长和门限参数,开始运行后,开发工具按程序执行顺序扫描源码,在指定的被监听函数段插入钩子函数,并为每个钩子函数编号,程序执行结束后将生成已按要求插入钩子函数的源码;

S2:生成调节策略,请参阅图3,将S1中最后生成的源码下载到硬件上运行,钩子函数将需要监听的功能段负载、电压、频率等信息以文本格式输出,该文本输出功能由钩子函数完成,将输出的文本信息导入开发工具,开发工具根据S1中用户输入的参数制定电压、频率调节策略,并将调节前后的性能数据以曲线图(报表)的形式展示,客户参照对比调节前后的曲线并根据工程需要进行修改,因为S1中插入钩子函数时都编号了,可直接点击曲线跳转到源代码,可根据源代码人工判断是否需要修改;

S3:生成工程码源,请参阅图4,策略修改完成后,开发工具将原先的钩子函数全部去除,并根据调节策略加入调节函数,最终生成实际工程中应用的源码,生成并输出包含调节函数的工程应用代码。

本发明提前将电压、频率调节策略写入,不依赖于现场预测,防止预测错误导致实时性要求高的应用无法正常使用(如视频流卡顿等),本专利生产的工程文件,没有大量的性能监测、预测等服务于电压、频率调节的任务,基本不占用硬件资源。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1