本发明涉及计算机,尤其涉及一种性能计数器数据的压缩/解压方法、装置及电子设备。
背景技术:
1、人工智能芯片是推动人工智能发展的关键技术之一,它们为人工智能算法提供必要的计算能力。目前,人工智能芯片包括gpu(graphics processing unit,图形处理器)、tpu(tensor processing unit,张量处理器)、npu(neural network processing unit,神经网络处理器)、dpu(deep learning processing unit,深度学习处理器)、apu(accelerated processing unit,加速处理器),以及gpgpu(general-purpose computingon graphics processing unit,通用图形处理器)等。
2、人工智能芯片的性能计数器是一种硬件监控工具,用于追踪和测量人工智能芯片在执行任务时的各种性能指标,如处理速度、内存带宽、指令执行效率和线程活动等。这些计数器为开发者和系统管理员提供了关键数据,帮助他们分析人工智能芯片的运行状况,识别性能瓶颈,优化计算密集型应用,并确保硬件资源得到最有效的利用。
3、目前,通常直接存储人工智能芯片的性能计数器中数值,或采用传统的基于字节流的串行方式对人工智能芯片的性能计数器中数值的进行压缩,例如,采用lz77和lz78压缩算法。但是这种方式未考虑到人工智能芯片性能计数器数据的特性,在压缩率和计算效率方面存在局限性。
技术实现思路
1、本发明提供一种性能计数器数据的压缩/解压方法、装置及电子设备,用以解决现有技术中采用传统的压缩方式对人工智能芯片性能计数器数据进行压缩,在压缩率和计算效率方面存在局限性。本发明基于人工智能芯片性能计数器数据的同质性对人工智能芯片性能计数器数据进行压缩,提供了更高的压缩率和更低的计算开销,从而更有效地处理人工智能芯片性能计数器数据。
2、本发明提供一种性能计数器数据的压缩方法,包括:获取人工智能芯片中至少两个目标执行单元的性能计数器的数据块;根据获取的数据块的相似性,确定待差分的数据块集合;从所述待差分的数据块集合中选取基准数据块;计算所述待差分的数据块中除基准数据块外的数据块中数据元素与基准数据块中对应的数据元素的差值;基于所述基准数据块以及计算出的差值生成压缩数据。
3、根据本发明提供的一种性能计数器数据的压缩方法,所述获取人工智能芯片中至少两个目标执行单元的性能计数器的数据块,包括:响应于目标核函数执行结束,获取所述目标核函数的至少两个执行单元的性能计数器的数据块。
4、根据本发明提供的一种性能计数器数据的压缩方法,所述根据获取的数据块的相似性,确定待差分的数据块集合,包括:计算所述至少两个目标执行单元间的任务分发均衡度;判断所述任务分发均衡度是否小于预先设置的均衡度阈值;若否,则将所述至少两个目标执行单元的性能计数器的数据块加入所述待差分的数据块集合。
5、根据本发明提供的一种性能计数器数据的压缩方法,所述计算所述至少两个目标执行单元间的任务分发均衡度,包括:根据所述至少两个目标执行单元的任务执行时间戳,计算所述至少两个目标执行单元间的任务分发均衡度。
6、根据本发明提供的一种性能计数器数据的压缩方法,所述根据获取的数据块的相似性,确定待差分的数据块,包括:根据所述至少两个目标执行单元的任务执行时间戳,对所述至少两个目标执行单元的的性能计数器的数据块进行聚类,得到至少一个待差分的数据块集合。
7、根据本发明提供的一种性能计数器数据的压缩方法,基于所述基准数据块以及计算出的差值生成压缩数据之前,所述方法还包括创建缓冲区,将所述基准数据块存储至所述缓冲区;所述基于所述基准数据块以及计算出的差值生成压缩数据,包括:构建差分列表,将计算出的差值中的非零值添加到所述差分列表中;将所述差分列表追加到所述缓冲区所述基准数据块的尾部;基于串行字节流的方法对所述缓冲区中数据进行压缩得到压缩数据。
8、本发明还提供一种性能计数器数据的压缩装置,包括:第一获取模块,被配置成获取人工智能芯片中至少两个目标执行单元的性能计数器的数据块;确定模块,被配置成根据获取的数据块的相似性,确定待差分的数据块集合;选取模块,被配置成从所述待差分的数据块集合中选取基准数据块;计算模块,被配置成计算所述待差分的数据块中除基准数据块外的数据块中数据元素与基准数据块中对应的数据元素的差值;压缩模块,被配置成基于所述基准数据块以及计算出的差值生成压缩数据。
9、本发明还提供一种性能计数器数据的解压方法,用于对上述任一种性能计数器数据的压缩方法生成的压缩数据进行解压,其特征在于,包括:获取至少两个目标执行单元的性能计数器的数据块的压缩数据;从所述压缩数据中提取基准数据块以及所述至少两个目标执行单元的性能计数器的数据块中除所述基准数据块外的其他数据块中数据元素与所述基准数据块中对应数据元素的差值;根据所述基准数据块以及提取出的差值,还原所述至少两个目标执行单元的性能计数器的数据块。
10、本发明还提供一种性能计数器数据的解压装置,用于对上述性能计数器数据的压缩装置生成的压缩数据进行解压,其特征在于,包括:第二获取模块,被配置成获取至少两个目标执行单元的性能计数器的数据块的压缩数据;提取模块,被配置成从所述压缩数据中提取基准数据块以及所述至少两个目标执行单元的性能计数器的数据块中除所述基准数据块外的其他数据块中数据元素与所述基准数据块中对应数据元素的差值;还原模块,被配置成根据所述基准数据块以及提取出的差值,还原所述至少两个目标执行单元的性能计数器的数据块。
11、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述性能计数器数据的压缩方法。
12、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述性能计数器数据的压缩方法。
13、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述性能计数器数据的压缩方法。
14、本发明提供的性能计数器数据的压缩/解压方法、装置及电子设备,根据数据块的相似性,确定待差分的数据块集合;计算待差分的数据块中除基准数据块外的数据块中数据元素与基准数据块中对应的数据元素的差值,基于基准数据块以及计算出的差值生成压缩数据,提高了人工智能芯片性能计数器数据的压缩率,降低了压缩的计算开销。
1.一种性能计数器数据的压缩方法,其特征在于,包括:
2.根据权利要求1所述的性能计数器数据的压缩方法,其特征在于,所述获取人工智能芯片中至少两个目标执行单元的性能计数器的数据块,包括:
3.根据权利要求1所述的性能计数器数据的压缩方法,其特征在于,所述根据获取的数据块的相似性,确定待差分的数据块集合,包括:
4.根据权利要求3所述的性能计数器数据的压缩方法,其特征在于,所述计算所述至少两个目标执行单元间的任务分发均衡度,包括:
5.根据权利要求1所述的性能计数器数据的压缩方法,其特征在于,所述根据获取的数据块的相似性,确定待差分的数据块,包括:
6.根据权利要求1所述的性能计数器数据的压缩方法,其特征在于,基于所述基准数据块以及计算出的差值生成压缩数据之前,所述方法还包括创建缓冲区,将所述基准数据块存储至所述缓冲区;
7.一种性能计数器数据的压缩装置,其特征在于,包括:
8.一种性能计数器数据的解压方法,用于对权利要求1至6任一项所述性能计数器数据的压缩方法生成的压缩数据进行解压,其特征在于,包括:
9.一种性能计数器数据的解压装置,用于对权利要求7所述性能计数器数据的压缩装置生成的压缩数据进行解压,其特征在于,包括:
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述性能计数器数据的压缩方法。