多核NPU调试信息采集与时间同步方法与流程
本技术实施例涉及数据处理,具体涉及一种多核npu调试信息采集与时间同步方法。
背景技术:
1、随着大模型推理需求的爆发,集成多个npu(neural processing unit,神经网络处理器)的计算核和专用核间通信模块的ai(artificial intelligence,人工智能)推理芯片已成为主流架构。在ai推理芯片的调试与性能调优过程中,精准采集各计算核和通信模块的内部运行状态,并对跨核事件进行时间对齐分析,是确保ai推理芯片快速量产和优化推理效率的关键。
2、现有技术中,调试工具主要通过软件插桩和驱动层面的性能计数器采样来实现调试功能,此类方案不仅对被调试任务的性能侵入较大,且难以捕捉硬件底层纳秒级的微指令时序。此外,部分npu采用的调试方案通常设置独立的调试信息采集单元,并利用固定位宽的本地计数器生成时间戳。然而,这类方法存在以下缺陷:
3、首先,针对时间戳计数器翻转问题,现有技术通常采用增大计数器位宽(如扩展至64位)的方案来规避,但这在硬件资源受限的npu场景下会显著增加芯片面积和功耗;若采用软件定期读取高位计数器的方案,频繁的软件介入又会引入延迟,导致在高精度时序分析场景下容易丢失翻转事件,无法准确还原绝对时间。
4、其次,在多核时间同步方面,现有方案多依赖软件写入或ieee 1588 ptp等协议进行同步,由于存在软件执行延迟和总线传输延迟,同步误差通常在微秒级别,无法满足npu内部纳秒级精度的微指令时序分析需求。
5、最后,现有处理器调试方案通常仅支持程序计数器追踪或单一事件类型,缺乏对npu特有的微指令执行时刻、同步指令、循环冗余校验结果、片上存储器读写地址等多种异构调试信息的统一采集和时间对齐能力,导致调试可视性不足,难以全面定位系统瓶颈。
技术实现思路
1、本技术实施例提供一种多核npu调试信息采集与时间同步方法,用以解决现有技术中多核npu时间戳计数器翻转处理开销大、多核时间同步精度不足以及异构调试信息难以统一采集的问题。
2、本技术实施例提供一种多核npu调试信息采集与时间同步方法,该方法应用于包括多个npu核和核间通信模块的硬件结构中,npu核和核间通信模块均配置有调试采集单元;方法包括:
3、响应于接收到的调试启动指令,通过全局硬件清零信号线同步复位各调试采集单元的定时器,使得各定时器在同一时钟沿同步启动计数;
4、监测定时器的计数值,当计数值由最大值跳变为零时,控制该调试采集单元生成包括当前翻转计数值和当前时间戳的翻转记录数据包,并将翻转记录数据包写入外部存储器;
5、捕获各npu核和核间通信模块中的硬件事件,依据预定义的格式将硬件事件封装为对应的调试数据包;
6、依据预设的固定优先级顺序对各路调试数据包和翻转记录数据包进行仲裁选择,将选中输出的数据包通过直接内存访问通道写入外部存储器。
7、这样,通过全局硬件清零信号线实现各神经网络处理单元核和核间通信模块定时器的硬件级同步启动,有利于消除软件同步方案中因指令执行延迟和总线传输延迟带来的误差,为多核并行推理任务的因果分析提供统一且精准的时间基准。同时,通过引入翻转记录数据包机制,相较于直接扩展计数器位宽的方案,有利于降低芯片面积与功耗。此外,通过定义统一的调试数据包格式与传输通道,实现对微指令、同步指令、循环冗余校验和片上存储器访问等多类型异构调试信息的全覆盖采集,提升npu芯片在启动调试阶段和性能调优阶段的系统可观测性。
8、在一些实施例中,通过全局硬件清零信号线同步复位各调试采集单元的定时器的步骤,包括:
9、将全局硬件清零信号线置为有效电平,以使各调试采集单元的定时器复位至零值;
10、在保持有效电平至少一个时钟周期后,将全局硬件清零信号线置为无效电平,各定时器响应于全局硬件清零信号线置为无效电平的同一时钟沿同步开始递增计数。
11、这样,通过先置1再置0的全局清零信号控制逻辑,并确保有效电平维持至少一个完整时钟周期,有效解决跨时钟域复位信号可能因亚稳态导致部分定时器未能成功复位的问题。保证所有定时器在检测到无效电平的同一时钟沿整齐划一地开始计数,将多核间的计时偏差严格控制在单时钟周期内,从而实现极高精度的硬件级时间对齐,为后续复杂的跨核微指令时序分析奠定坚实的物理基础。
12、在一些实施例中,多核npu调试信息采集与时间同步方法还包括:
13、各调试采集单元分别维护自身的翻转计数器;
14、响应于调试启动指令,且在同步复位完成后,生成包括初始翻转计数值和初始时间戳的初始翻转记录数据包,并将初始翻转记录数据包写入外部存储器;
15、在定时器计数过程中,监测任一调试采集单元的定时器计数值,当计数值由最大值跳变为零时,控制调试采集单元将自身的翻转计数器递增1;
16、将递增后的翻转计数值作为高位扩展值,与当前捕获的时间戳一并封装至翻转记录数据包中。
17、这样,通过为每个调试采集单元配置独立的翻转计数器,并在调试启动时刻自动生成初始翻转记录数据包,为软件解析提供确定的时间锚点。不仅解决定时器翻转后绝对时间无法确定的问题,还通过硬件自动递增翻转计数器并记录当前时间戳的方式,避免软件频繁轮询计数器高位带来的性能开销与丢失翻转事件的风险。即使在长时间运行的推理任务中,软件也能依据初始值与递增规律,准确、无歧义地重建任意事件的全局绝对时间戳。
18、在一些实施例中,调试数据包至少包括微指令执行打点数据、同步指令追踪数据、循环冗余校验结果数据和片上存储器访问数据中的一种;
19、预设的固定优先级顺序为:
20、翻转记录数据包的优先级高于调度器时间戳打点数据包的优先级;
21、调度器时间戳打点数据包的优先级高于微指令执行打点数据包的优先级、同步指令追踪数据包的优先级和循环冗余校验结果数据包的优先级;
22、微指令执行打点数据包的优先级、同步指令追踪数据包的优先级和循环冗余校验结果数据包的优先级高于片上存储器访问数据包的优先级。
23、这样,通过设定四级固定优先级仲裁顺序,确保在时间敏感或带宽竞争激烈的场景下,最关键的时间基准信息和流程骨架信息能够优先传输,避免因低优先级的大量片上存储器访问数据堵塞通道而导致的关键调试信息丢失。
24、在一些实施例中,依据预设的固定优先级顺序对各路调试数据包和翻转记录数据包进行仲裁选择,包括:
25、第一级仲裁器对同一优先级下的微指令执行打点数据包、同步指令追踪数据包和循环冗余校验结果数据包采用轮询方式进行仲裁,输出第一仲裁结果;
26、第二级仲裁器依据固定优先级顺序,对翻转记录数据包、调度器时间戳打点数据包、第一仲裁结果和片上存储器访问数据包进行逐级仲裁,输出最终选中结果。
27、这样,采用同优先级轮询和跨优先级固定的两级仲裁架构,既保障高优先级数据的绝对优先权,又通过第一级轮询仲裁机制在同优先级的数据源之间实现公平的带宽分配。有效避免因某一同级别数据源流量过大而饿死其他重要数据源的问题,在保证仲裁效率的同时兼顾了数据采集的全面性,优化整体调试信息的完整性。
28、在一些实施例中,调试数据包的包头包含2位类型标识域,通过类型标识域区分不同数据类型的调试数据包;
29、微指令执行打点数据包包含功能单元标识、打点类型标识、任务标识和微指令执行时刻对应的时间戳;
30、同步指令追踪数据包包含功能单元标识、同步指令字段和同步指令执行时刻对应的时间戳;
31、循环冗余校验结果数据包包含功能单元标识、任务标识和校验结果;
32、片上存储器访问数据包包含功能单元标识、访问地址、读写方向和存储器访问时刻对应的时间戳;
33、翻转记录数据包的包头包含2位类型标识域、翻转计数值和翻转时刻对应的时间戳。
34、这样,通过定义包含2位类型标识域的统一数据包格式,使得硬件能够以极简的逻辑完成数据包的组装,同时便于软件进行快速解析与分类。针对不同类型调试信息定制化的字段设计,在保证信息密度的同时,最大化地保留各类硬件事件的上下文信息,为后续进行精细化的性能剖析与错误溯源提供丰富的数据支撑。
35、在一些实施例中,将选中输出的数据包通过直接内存访问通道写入外部存储器,包括:
36、根据预配置的突发长度参数,以axi总线突发传输方式将仲裁选中的数据写入外部存储器的指定地址空间;
37、当连续多个时钟周期未接收到新的仲裁选中数据时,触发空闲超时机制,将当前缓冲区内已缓存的数据凑整至总线位宽后发起单次传输;
38、监测各数据缓冲区的存储状态,当任一调试采集单元对应的数据缓冲区发生溢出时,生成并存储对应的缓冲区溢出状态标识;
39、监测总线传输状态,当发生总线传输错误时,生成并存储对应的总线错误状态标识。
40、这样,通过配置axi突发传输与空闲超时机制,提升总线带宽利用率,减少总线事务的交互次数,降低外部存储器访问的功耗与延迟。同时,通过设置独立的溢出状态寄存器与总线错误状态寄存器,实现对数据传输过程的全方位硬件监控。使得软件能够显式地感知到数据丢失或传输异常,从而在分析调试结果时能够准确评估数据的完整性,避免因隐性数据丢失导致错误的性能分析结论。
41、在一些实施例中,微指令执行打点数据包的打点类型标识包括段开始标识和段结束标识,其中段开始标识在npu核的任务启动时生成,段结束标识在npu核的任务执行完成时生成;同步指令追踪数据包在同步管理模块执行等待类或更新类同步指令时生成。
42、这样,通过对微指令打点细化至段开始与段结束,以及对同步指令的精确追踪,使得调试系统能够捕捉到npu任务调度与核间同步的微观时序细节。为分析多核负载均衡、识别流水线气泡、定位同步死锁等问题提供精确到纳秒级的执行轨迹,增强调试工具对复杂并行计算任务的分析能力。
43、在一些实施例中,多核npu调试信息采集与时间同步方法还包括:
44、从外部存储器中读取翻转记录数据包和调试数据包;
45、维护当前翻转计数值,并按照时间顺序遍历所读取的翻转记录数据包和调试数据包;
46、当解析到的当前调试数据包的时间戳小于前一条已解析记录的时间戳时,且当前调试数据包非翻转记录数据包,判定发生定时器翻转,基于翻转记录数据包中携带的翻转计数值更新当前翻转计数值;
47、基于当前翻转计数值以和当前调试数据包携带的时间戳,计算当前调试数据包对应的绝对时间戳。
48、这样,提供的软件侧绝对时间重建方法,利用硬件产生的翻转记录作为参考,通过检测时间戳回绕并动态修正翻转计数值,成功地将分散在各个npu核、各个翻转周期内的离散时间戳,映射到一条连续的全局时间轴上。
49、在一些实施例中,从外部存储器中读取翻转记录数据包和调试数据包之后,还包括:
50、识别翻转记录数据包中的类型标识域,以区分翻转记录数据包与调试数据包;
51、提取首个翻转记录数据包中的初始翻转计数值,以校准当前翻转计数值的初始值。
52、这样,通过提取首个翻转记录数据包中的初始翻转计数值来校准软件解析变量的初始值,解决因定时器在调试启动前已发生多次翻转而导致的解析基准偏移问题。确保即使在长时间运行或反复启停的测试环境中,软件解析出的绝对时间戳依然具备全局一致性与准确性,进一步提升调试数据分析的鲁棒性与可信度。
53、本技术实施例提供一种多核npu调试信息采集与时间同步方法,包括:响应于接收到调试启动指令,通过全局硬件清零信号线同步复位各调试采集单元的定时器,使得各定时器在同一时钟沿同步启动计数;监测定时器的计数值,当计数值由最大值跳变为零时,控制该调试采集单元生成包括当前翻转计数值和当前时间戳的翻转记录数据包,并将翻转记录数据包写入外部存储器;捕获各npu核和核间通信模块中的硬件事件,依据预定义的格式将硬件事件封装为对应的调试数据包;依据预设的固定优先级顺序对各路调试数据包和翻转记录数据包进行仲裁选择,将选中输出的数据包通过直接内存访问通道写入外部存储器。
54、这样,通过全局硬件清零信号线实现各神经网络处理单元核和核间通信模块定时器的硬件级同步启动,有利于消除软件同步方案中因指令执行延迟和总线传输延迟带来的误差,为多核并行推理任务的因果分析提供统一且精准的时间基准。同时,通过引入翻转记录数据包机制,相较于直接扩展计数器位宽的方案,有利于降低芯片面积与功耗。此外,通过定义统一的调试数据包格式与传输通道,实现对微指令、同步指令、循环冗余校验和片上存储器访问等多类型异构调试信息的全覆盖采集,提升npu芯片在启动调试阶段和性能调优阶段的系统可观测性。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com