本申请公开了面向能量收集物联网的间歇性深度神经网络推理方法,具体涉及神经网络推理方法的领域。包括:从非易失性内存中获取深度神经网络模型的每个层的输入数据、模型参数,以及进度跟踪变量;通过每个层中的多个子操作对输入数据进行处理,在每个子操作完成时对进度跟踪变量进行更新,并将子操作的输出和对应的进度跟踪变量写入非易失性内存中;若在通过每个层中的多个子操作对输入数据进行处理的过程中出现处理中断,根据非易失性内存中的进度跟踪变量确定中断发生时已执行完的子操作,并获取剩余子操作所需的输入数据及模型参数,完成剩余子操作。无需对应用程序分区推理,进而避免进行能量估计。
背景技术
在智能物联网领域,物联网设备使用各式电池作为电源通常集成传感器、微控制器和无线通信功能。电池技术面临几项挑战:第一,电池的有限寿命要求定期更换,这在某些场合是颇为困难且高风险,例如,心脏起搏器。第二,使用大量电池带来的环境污染问题,众多微型物联网设备在投入使用后,其电池几乎无法被回收利用对环境造成严重污染。随着物联网设备的广泛应用,能量收集技术作为一种替代能源解决方案。由能量收集技术驱动的物联网设备统称为能量收集物联网设备。这些能量收集物联网设备的核心组成部分是能量收集器,负责从设备所处的环境中捕获能量,如太阳能、风能、热能或者是动能等。通过这种方式,能量收集物联网设备能够利用周边环境的自然资源,实现自我供电,从而降低对传统电池的依赖,减少维护成本,同时也减轻了对环境的影响。能量收集物联网设备已被开发用于各种设备,这些设备发展越来越智能化,在边端资源受限的设备上运行复杂的深度神经网络计算成为未来趋势。能量收集物联网设备目前面临着一个不可忽视的问题:从周围环境中收集的能量因为客观环境的变化性而具有不确定性,收集的能量输出通常是很小且不稳定的。由于能量来源的不稳定,设备在任务执行过程中,经常因电源故障导致程序中断和计算上下文丢失,恢复电源后需从头开始计算。
检查点是一种在容错计算中广泛使用的技术。当程序执行到达一个检查点时,系统状态会从易失性内存复制到非易失性内存中,程序可从该点恢复执行。这种技术在间歇性计算中被广泛应用。检查点技术对程序员友好,因为它通常不需要程序员指定具体需要保存的数据。这种方法为解决因电源不稳定导致的计算中断问题提供了一种有效的策略,尤其是对于能量收集物联网设备而言,能够确保即使在电力供应频繁中断的情况下也能保持程序的持续运行。基于任务的断点保存恢复技术将原始应用程序重写为一系列小型、幂等的任务序列。任务的执行是原子的,即它要么完成要么被中止。由于任务的幂等性,这些技术的关键在于任务的输出不被重写。
传统的基于检查点的间歇计算技术没有有效地重新初始化和唤醒加速器,从而可能导致CPU无法及时获得加速器完成信号并取得进展。此外,静态检查点设置可能由于缺乏适应性而产生不必要的开销或不足以保证运行效率,而动态评估和优化过程本身也会在能量受限的环境中带来尤其显著的时间和能量开销。基于任务的间歇计算技术在很大程度上依赖于应用程序分区的精确能量估计。但是深度神经网络具有多个复杂程度不同的计算层,因此很难对其进行适当的分区。此外,估算任务的能源成本和可用能源预算并不简单。能量误估可能会导致代价高昂的任务重新执行,从而影响推理响应时间,增加了程序员的编程负担,复杂的任务划分和管理增加了实现和维护的难度。
实现思路