本申请涉及芯片验证,特别涉及一种基于软硬件联合验证的装置、方法、设备及存储介质。
背景技术:
1、npu(natural processingunit,神经网络处理单元)验证通常包括模块验证以及算子验证两部分,这两部分验证对于保证npu代码的准确性具有重要意义。其中,算子验证是指验证实际应用的算法运行在npu上是否正确,因此算子验证中npu运行所需的配置信息需要软件人员提供。模块验证用于保证各个单一模块的准确性,但npu的运行需要多个模块的协同作用,而多个模块的协同作用需要算子验证来保证其正确性。
2、相关技术中,大部分的算子验证环境是纯硬件环境,由硬件人员负责搭建算子验证环境,而软件人员提供算子运行所需的配置信息文件。
3、但是,上述验证方法,由于硬件人员还需负责模块验证,导致算子验证开始进行的时间点较晚,同时软件人员与硬件人员之间的沟通成本的增加也会导致算子验证的速度减慢。
技术实现思路
1、本申请实施例提供了一种基于软硬件联合验证的装置、方法、设备及存储介质,能够提前开始算子验证,并降低软件人员和硬件人员之间的沟通成本,进而提高算子验证的效率。该技术方案如下:
2、根据本申请实施例的第一方面,提供了一种基于软硬件联合验证的装置,该装置包括:
3、验证平台,该验证平台设有接口,该验证平台基于该接口与待验证的npu电连接;该接口是基于硬件语言得到的;
4、该验证平台,用于获取配置信息;通过该接口将该配置信息传输至该npu;该配置信息是基于软件语言得到的;该配置信息包括时钟参数、中断参数、模式参数以及处理参数;该时钟参数用于配置该npu的时钟,该中断参数用于配置该npu的中断源,该模式参数用于配置该npu的工作模式,该处理参数用于配置该npu的处理数据方式;
5、该验证平台,还用于基于该接口获取验证结果;该验证结果指示该npu是否正常,该验证结果是该软件语言解析运行结果得到的,该运行结果是该npu基于该中断源以及处理结果得到的,该处理结果是该npu基于该时钟、该工作模式以及该处理数据方式,处理验证数据得到的。
6、在一种可能的实现方式中,该接口为基础接口函数,该基础接口函数是基于该硬件语言得到的。
7、在一种可能的实现方式中,该验证平台,还用于基于该软件语言获取寄存器的写地址以及写信息,得到该配置信息,并调用写函数处理该写地址以及写信息;该寄存器设置在该npu中。
8、在一种可能的实现方式中,该验证平台,还用于获取预设配置文件,基于该软件语言解析该预设配置文件,得到该处理参数。
9、在一种可能的实现方式中,该npu包括时钟模块、同步管理模块以及执行模块;
10、该时钟模块分别与该同步管理模块以及该执行模块电连接,该同步管理模块与该执行模块电连接;
11、该时钟模块,用于基于该时钟参数向该同步管理模块以及该执行模块提供时钟信号;
12、该执行模块,用于基于该处理参数处理该验证数据,得到该处理结果;
13、该同步管理模块,用于获取该处理结果及协调各个该执行模块工作;基于该中断源生成中断使能信号,基于该处理结果以及中断使能信号,生成该运行结果。
14、在一种可能的实现方式中,该npu与cpu电连接;该npu还包括控制模块;
15、该模式参数,包括第一种模式以及第二种模式;
16、该第一种模式为该cpu、该控制模块以及该执行模块顺次电连接;该cpu用于控制该控制模块,该控制模块用于控制该执行模块;
17、该第二种模式为该cpu与该执行模块电连接;该cpu用于控制该执行模块。
18、在一种可能的实现方式中,该执行模块包括多个执行单元;
19、该执行模块的该处理结果包括每个该执行单元的计算结果以及执行中断。
20、在一种可能的实现方式中,该运行结果是基于每个该执行单元的该执行中断以及对应的该中断使能信号得到的。
21、在一种可能的实现方式中,该配置信息还包括复位参数以及启动参数;
22、该复位参数用于复位该npu;
23、该启动参数用于启动该npu。
24、根据本申请实施例的第二方面,提供了一种基于软硬件联合验证的方法,应用于上述的基于软硬件联合验证的装置,该方法包括:
25、获取配置信息;通过接口将该配置信息传输至该npu;该配置信息是基于软件语言得到的;该配置信息包括时钟参数、中断参数、模式参数以及处理参数;该时钟参数用于配置该npu的时钟,该中断参数用于配置该npu的中断源,该模式参数用于配置该npu的工作模式,该处理参数用于配置该npu的处理数据方式;该接口是基于硬件语言得到的;
26、该验证平台,还用于基于该接口获取验证结果;该验证结果指示该npu是否正常,该验证结果是该软件语言解析运行结果得到的,该运行结果是该npu基于该中断源以及处理结果得到的,该处理结果是该npu基于该时钟、该工作模式以及该处理数据方式,处理验证数据得到的。
27、根据本申请实施例的第三方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段程序,所述至少一段程序由所述处理器加载并执行如上述的基于软硬件联合验证的方法。
28、根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如上述的基于软硬件联合验证的方法。
29、在本申请实施例中,本申请实施例提供了一种基于软硬件联合验证的装置,基于软件语言对npu进行配置以及算子验证,硬件人员只需要提供一个npu和验证平台进行数据交互的接口,从而软件人员可以独立进行算子验证,进而减少了软件人员以及硬件人员的沟通,降低了软件人员以及硬件人员的沟通成本,提高了npu算子验证速率。此外,由于软件人员相对于硬件人员配置灵活,因此,软件人员在基于软件语言对npu进行算子验证时,不需要等待完成大约80%的模块验证之后,才会开始算子验证,而是可以在一小部分模块完成验证之后,就开始进行算子验证,从而算子验证开始时间相对于相关技术而言较早。当在算子验证过程中发现问题的时候,模块验证还远远没有结束,从而此时对存在问题的模块进行修改,会比较容易,进而进一步提高了算子验证的速率。
1.一种基于软硬件联合验证的装置,其特征在于,包括:
2.根据权利要求1所述的装置,其特征在于,所述接口为基础接口函数,所述基础接口函数是基于所述硬件语言得到的。
3.根据权利要求1所述的装置,其特征在于,所述验证平台,还用于基于所述软件语言获取寄存器的写地址以及写信息,得到所述配置信息,并调用写函数处理所述写地址以及写信息;所述寄存器设置在所述npu中。
4.根据权利要求1所述的装置,其特征在于,所述验证平台,还用于获取预设配置文件,基于所述软件语言解析所述预设配置文件,得到所述处理参数。
5.根据权利要求1所述的装置,其特征在于,所述npu包括时钟模块、同步管理模块以及执行模块;
6.根据权利要求5所述的装置,其特征在于,所述npu与cpu电连接;所述npu还包括控制模块;
7.根据权利要求5所述的装置,其特征在于,所述执行模块包括多个执行单元;
8.根据权利要求7所述的装置,其特征在于,所述运行结果是基于每个所述执行单元的所述执行中断以及对应的所述中断使能信号得到的。
9.根据权利要求1所述的装置,其特征在于,所述配置信息还包括复位参数以及启动参数;
10.一种基于软硬件联合验证的方法,应用于上述权利要求1至权利要求9中任意一项所述的基于软硬件联合验证的装置,其特征在于,包括:
11.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段程序,所述至少一段程序由所述处理器加载并执行如权利要求10所述的基于软硬件联合验证的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求10所述的基于软硬件联合验证的方法。