一种存算一体端侧推理芯片的多维度联合控制方法与流程

摘要: 本发明涉及人工智能及计算芯片,特别是涉及一种存算一体端侧推理芯片的多维度联合控制方法。背景技术:1、随着人工智能推理任务向端侧设备迁移,智能手表、无线耳机、移动...
一种存算一体端侧推理芯片的多维度联合控制方法与流程

本发明涉及人工智能及计算芯片,特别是涉及一种存算一体端侧推理芯片的多维度联合控制方法。

背景技术:

1、随着人工智能推理任务向端侧设备迁移,智能手表、无线耳机、移动终端和边缘感知节点需要在有限电池容量和有限散热条件下执行语音唤醒、心率异常识别、图像分类和生物特征识别等推理任务。此类端侧ai推理任务通常涉及大量卷积运算、矩阵乘法、全连接计算以及中间特征图的频繁搬运,对芯片的功耗、推理延迟和推理精度均提出了严苛要求。

2、存算一体架构被认为是解决端侧推理芯片能效瓶颈的关键技术路径之一。该架构通过在存储阵列内部或附近直接执行乘累加运算,有效减少了模型权重在存储单元与计算单元之间的长距离搬运,从而在一定程度上缓解了传统冯·诺依曼架构中固有的存储墙问题,降低了数据搬运功耗。

3、然而,存算一体架构虽能减少数据搬运,但芯片运行时面临输入数据变化、温度波动及任务负载切换等不确定性,需动态协调数据驻留、阵列激活、电压频率、量化位宽及adc转换等多个耦合维度。现有芯片中,上述维度通常由缓存控制器、电源管理单元、量化配置模块及adc控制器等各自独立管理,缓存调度未结合访问预测与搬运能耗,量化位宽与adc转换位宽缺乏联动,且实际功耗、延迟、adc饱和率及输出置信度等运行反馈未被闭环用于后续决策。这种开环、分离的控制方式导致芯片无法根据运行状态自适应调整各维度配置,易出现关键层精度损失、非关键层能耗冗余或阵列资源空转等问题,难以在动态端侧环境中持续逼近最优能效。

技术实现思路

1、为了解决现有技术存在的不足,本发明的目的在于提供一种存算一体端侧推理芯片的多维度联合控制方法,在满足精度与延迟约束下,多维度联合控制降低存算一体端侧推理芯片能耗。

2、为实现上述目的,本发明提供的存算一体端侧推理芯片的多维度联合控制方法,包括:

3、在推理窗口内,采集当前运行状态参数;

4、根据待访问数据块的历史访问频率、所述数据块在下一推理窗口被访问的预测概率、从当前存储层级搬运所述数据块的能耗代价、所述数据块的大小以及所述数据块距离下一次使用的预测距离,生成数据驻留评分,并根据所述数据驻留评分确定所述数据块在片上高速缓存、片上本地存储或外部存储中的驻留位置;

5、根据网络层敏感度参数,在满足精度约束和延迟约束的条件下,为各网络层或输出通道确定量化位宽;

6、根据所述数据驻留位置、所述量化位宽、存算阵列利用率、芯片温度、功耗预算和延迟约束,联合确定当前推理窗口的控制配置,所述控制配置至少包括各存算阵列bank的工作状态、工作电压、工作频率以及各网络层或输出通道对应的adc转换配置;

7、根据所述控制配置生成控制字,并分别发送至对应执行单元,以配置并执行当前推理窗口;

8、当前推理窗口结束后,采集推理反馈参数,并根据所述推理反馈参数更新下一推理窗口的控制参数。

9、进一步地,所述运行状态参数包括数据访问状态、网络层状态、阵列状态、芯片状态、推理约束和adc输出状态。

10、进一步地,所述数据访问状态包括各数据块的历史访问次数、最近访问时间、数据大小、当前存储层级和预计复用距离中的一个或多个;

11、所述网络层状态包括当前网络层标识、网络层类型、输入张量尺寸、输出张量尺寸和网络层敏感度参数中的一个或多个;

12、所述阵列状态包括存算阵列利用率、空闲bank数量、已激活bank数量和可休眠bank数量中的一个或多个;

13、所述芯片状态包括芯片温度、供电状态、当前工作电压、当前工作频率和功耗预算中的一个或多个;

14、所述推理约束包括最大允许推理延迟和最低允许推理精度或输出置信度;

15、所述adc输出状态包括adc输出饱和率、输出动态范围、量化误差估计值和输出置信度中的中的一个或多个。

16、进一步地,所述数据驻留评分采用如下公式计算:

17、r_i(k) = a1 × f_i(k) + a2 × p_i(k) + a3 × c_i - a4 × m_i - a5 ×d_i(k);

18、其中,f_i(k) 为数据块 i 在历史推理窗口中的访问频率,p_i(k) 为数据块 i在下一推理窗口被访问的预测概率,c_i 为从当前存储层级搬运数据块 i 到存算阵列附近的能耗代价,m_i 为数据块 i 的大小,d_i(k) 为数据块 i 距离下一次使用的预测距离,a1 、a2、a3、 a4 和a5 为权重系数。

19、进一步地,所述根据所述数据驻留评分确定所述数据块在片上高速缓存、片上本地存储或外部存储中的驻留位置的具体步骤包括:

20、根据所述数据驻留评分与第一阈值、第二阈值的比较结果确定所述数据块的驻留位置;当数据驻留评分≥ 第一阈值时,将所述数据块i配置为热数据,并驻留于所述片上高速缓存或存算阵列附近缓存;当第二阈值≤数据驻留评分<第一阈值时,将所述数据块i配置为温数据,并驻留于所述片上本地存储或待激活阵列bank;当数据驻留评分< 第二阈值时,将所述数据块i配置为冷数据,并驻留于所述外部存储,并在预计使用前执行预取。

21、进一步地,所述预测概率由访问预测模型对所述数据块在未来推理窗口中的访问可能性进行预测后输出,所述访问预测模型的输入包括所述数据块的标识、最近多个推理窗口的访问序列、所述数据块所属网络层、所述数据块大小以及所述数据块当前存储层级。

22、进一步地,所述网络层敏感度参数表示网络层在不同量化位宽下分别对应的精度损失估计值,所述量化位宽选自多个可选量化位宽中的任意一个;所述网络层敏感度参数在离线阶段通过校准数据集生成,或在运行阶段根据输出置信度、输出熵、关键层输出分布漂移或量化误差估计值进行修正 。

23、进一步地,为各网络层或输出通道选择量化位宽时,以各网络层或输出通道的存算能耗与adc转换能耗之和最小化为优化目标,并以精度损失总量不超过允许精度损失阈值、推理延迟不超过最大允许推理延迟为约束条件,公式如下:

24、minimize: σ e_layer(l, b_l) + σ e_adc(l, b_l)

25、subject to: σ s_l(b_l) <= e_acc

26、l_total <= l_max

27、b_l ∈ b

28、其中,e_layer(l, b_l) 为网络层 l 在量化位宽 b_l 下的存算能耗,e_adc(l,b_l) 为网络层 l 在量化位宽 b_l 下的 adc 转换能耗,e_acc 为允许精度损失阈值,l_total 为估计推理延迟,l_max 为最大允许推理延迟,b为可选量化位宽集。

29、进一步地,当输出置信度低于置信度阈值、输出熵高于熵阈值、关键层输出分布漂移超过漂移阈值、adc饱和率超过饱和阈值或量化误差估计值超过误差阈值时,提高对应网络层或输出通道的量化位宽;

30、当输出置信度稳定且功耗压力高于功耗压力阈值时,降低非关键网络层或非关键输出通道的量化位宽。

31、进一步地,所述adc转换配置还包括adc量化阈值或量化边界、以及数据预取开始时刻和预取数据块标识;所述各存算阵列bank的工作状态包括激活、保持或休眠状态。

32、进一步地,所述控制配置通过查找配置表、求解能耗模型或二者结合得到,配置选择目标的公式如下:

33、minimize: e_move + e_compute + e_leak + e_adc

34、subject to: a_est >= a_min

35、l_est <= l_max

36、t_est <= t_limit

37、其中,e_move为数据搬运能耗,e_compute为存算阵列计算能耗,e_leak为空闲阵列漏电能耗,e_adc为adc转换能耗,a_est为精度估计值或输出置信度估计值,a_min为最低精度或置信度要求,l_est为推理延迟估计值,l_max为最大允许推理延迟,t_est为温度估计值,t_limit为温度上限。

38、进一步地,所述控制字包括:

39、缓存控制字,用于指示数据预取、数据替换或数据保持;

40、阵列门控控制字,用于指示各存算阵列bank进入激活、保持或休眠状态;

41、电压频率控制字,用于指示工作电压和工作频率;

42、量化控制字,用于指示网络层或输出通道的量化位宽;

43、adc控制字,用于指示adc转换位宽、量化阈值或量化边界。

44、进一步地,所述推理反馈参数包括实际推理延迟、实际功耗或电流积分值、温度变化、数据预测命中率、adc饱和率、量化误差估计值、输出置信度和阵列bank空闲时间中的至少两项。

45、进一步地,所述当前推理窗口结束后,采集推理反馈参数,并根据所述推理反馈参数更新下一推理窗口的控制参数的具体步骤包括:

46、当数据预测命中率低于命中率阈值时,更新所述数据驻留评分中所采用的权重系数;

47、当adc饱和率高于饱和阈值时,提高对应网络层或输出通道的adc转换位宽,或者调整对应量化边界;

48、当量化误差估计值高于误差阈值时,提高对应网络层或输出通道的量化位宽;

49、当芯片温度接近温度上限时,降低激活bank数量、降低工作频率或提高数据预取提前量;

50、当实际推理延迟低于延迟上限且输出置信度高于置信度阈值时,降低非关键网络层量化位宽或减少激活bank数量;

51、当实际推理延迟接近延迟上限时,提高关键数据块的驻留优先级,或者增加激活bank数量

52、为实现上述目的,本发明还提供一种存算一体端侧推理芯片,包括:

53、多个可独立门控的存算阵列bank、片上高速缓存、片上本地存储、外部存储接口、阵列门控单元、电压频率控制单元、量化控制单元和可配置adc模块;

54、以及控制器,所述控制器被配置为执行如上所述的方法。

55、进一步的,所述控制器包括:

56、状态采集模块,用于采集推理窗口的当前运行状态参数;

57、数据驻留决策模块,与所述状态采集模块连接,用于生成数据驻留评分并确定数据块的驻留位置;

58、精度配置模块,与数据驻留决策模块连接,用于确定网络层或输出通道的量化位宽;

59、转换配置模块,与所述精度配置模块连接,用于确定adc转换配置;

60、功耗配置模块,与所述转换配置模块连接,用于确定各存算阵列bank的工作状态、工作电压和工作频率;

61、控制字生成模块,与所述转换配置模块和功耗配置模块连接,用于生成控制字;

62、反馈更新模块,与状态采集模块、数据驻留决策模块和精度配置模块连接,用于根据推理反馈参数更新下一推理窗口的量化位宽、adc转换配置或存算阵列计算单元的工作状态、工作电压和工作频率。

63、本发明提供的存算一体端侧推理芯片的多维度联合控制方法,通过数据驻留评分将历史访问频率、下一窗口预测概率、搬运能耗代价、数据块大小及预测复用距离统一纳入决策,使高复用且高搬运代价的数据优先驻留于片上高速缓存或片上本地存储,有效减少了外部存储访问和跨层级数据搬运,显著降低了数据搬运功耗。

64、本发明提供的存算一体端侧推理芯片的多维度联合控制方法,将网络层量化位宽与adc转换配置置于同一框架下联合确定,进而能够使非关键层采用较低转换位宽以降低冗余模数转换能耗,同时使关键层保持较高转换位宽以避免精度损失,实现了功耗与精度的精细化平衡,降低了关键层误差累积的风险。

65、本发明提供的存算一体端侧推理芯片的多维度联合控制方法,阵列bank的工作状态、工作电压频率及数据预取时刻纳入统一控制配置,使空闲阵列bank能够及时进入保持或休眠状态,并使工作电压频率与当前延迟裕量、温度状态和阵列利用率相匹配,从而兼顾了阵列空闲漏电功耗与动态计算功耗的协同降低。

66、本发明提供的存算一体端侧推理芯片的多维度联合控制方法,将实际功耗、延迟、温度变化、预测命中率、adc饱和率、量化误差及输出置信度等运行信息传递至下一推理窗口,使控制参数能够根据芯片实际运行状态持续修正,避免了固定配置表无法适应端侧动态环境的问题。

67、本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。