CN116629175B - 对npu中的译码单元进行验证的方法及相关装置、设备 - Google Patents
对npu中的译码单元进行验证的方法及相关装置、设备 Download PDFInfo
- Publication number
- CN116629175B CN116629175B CN202310923897.4A CN202310923897A CN116629175B CN 116629175 B CN116629175 B CN 116629175B CN 202310923897 A CN202310923897 A CN 202310923897A CN 116629175 B CN116629175 B CN 116629175B
- Authority
- CN
- China
- Prior art keywords
- instruction
- excitation
- verification
- information
- isa
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000005284 excitation Effects 0.000 claims abstract description 79
- 238000012795 verification Methods 0.000 claims abstract description 72
- 238000007689 inspection Methods 0.000 claims description 19
- 238000009877 rendering Methods 0.000 claims description 16
- 238000013528 artificial neural network Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 3
- 101000994167 Homo sapiens Iron-sulfur cluster assembly 1 homolog, mitochondrial Proteins 0.000 description 2
- 101000994149 Homo sapiens Iron-sulfur cluster assembly 2 homolog, mitochondrial Proteins 0.000 description 2
- 102100031404 Iron-sulfur cluster assembly 1 homolog, mitochondrial Human genes 0.000 description 2
- 102100031428 Iron-sulfur cluster assembly 2 homolog, mitochondrial Human genes 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 102100039951 Annexin A13 Human genes 0.000 description 1
- 108050002340 Annexin A13 Proteins 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004751 neurological system process Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/10—Processors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种对NPU中的译码单元进行验证的方法及相关装置、设备,从NPU的指令集中,选择验证指令,生成验证指令对应的激励指令,基于验证指令预设的约束信息,对激励指令进行基于超长指令字VLIW的约束处理,得到约束后的激励指令,向待验证的译码单元发送约束后的激励指令,约束后的激励指令驱动译码单元输出译码结果,基于预先配置的译码结果检查信息,对译码结果进行形式化验证,形式化验证的方法对待测译码单元进行验证,能够显著降低验证时长、保证验证的完备性,激励信号的产生以及验证流程均以预设的约束信息为依据,不仅能够使得验证与译码单元的实际工作情况更符合,也能进一步提高验证的效率。
Description
技术领域
本申请涉及领域,尤其涉及一种对NPU中的译码单元进行验证的方法及相关装置、设备。
背景技术
随着各领域对人工智能(Artificial intelligence,AI)的需求,用于支持AI算法和模型的神经网络处理器(Neural Process Unit,NPU)得到了快速发展。
译码单元是NPU中用于实现对指令进行译码的单元。对NPU中的译码单元的验证可以理解为,验证译码单元的译码结果是否符合设计预期。
与传统的CPU相比,NPU的ISA指令集不仅指令的类型较多,指令的数量也较多,并且在支持超长指令字(Very Long Instruction Word,VLIW)的微架构中,ISA译码不仅包括操作码(opcode)和运算对象(operand)的识别、读端口和写端口的分配,还包括指令槽信息的分配,以及是否符合VLIW 规则的检查,可见NPU对译码功能的要求更高。
在此背景下,现有的以通用验证方法(Universal Verification Methodology,UVM)为代表的验证方法,如随机约束与定向激励相结合的验证方法,存在耗时长以及效率低的问题。
发明内容
本申请提供了一种对NPU中的译码单元进行验证的方法及相关装置、设备,目的在于解决验证NPU中的译码单元存在的耗时长以及效率低的问题。
为了实现上述目的,本申请提供了以下技术方案:
本申请的第一方面提供一种对神经网络处理器NPU中的译码单元进行验证的方法,包括:
从NPU的指令集中,选择验证指令,所述验证指令为用于验证所述译码单元的ISA指令;
生成所述验证指令对应的激励指令;
基于所述验证指令预设的约束信息,对所述激励指令进行基于超长指令字VLIW的约束处理,得到约束后的激励指令;
向待验证的译码单元发送所述约束后的激励指令,所述约束后的激励指令驱动所述译码单元输出译码结果;
基于预先配置的译码结果检查信息,对所述译码结果进行形式化验证。
在一些实现方式中,所述基于所述验证指令预设的约束信息,对所述激励指令进行基于VLIW的约束处理,得到约束后的激励指令,包括:
读取预先配置的VLIW模型文件,所述VLIW模型文件指示各条ISA指令对应的VLIW约束信息;
基于所述验证指令对应的约束信息,对所述激励指令进行约束,得到约束后的激励指令。
在一些实现方式中,所述VLIW模型文件的配置流程包括:
基于VLIW规则,建立所述NPU中的ISA指令与激励信号项的对应关系,所述激励信号项包括所述约束信息,所述激励信号项基于所述译码单元的输入信号确定。
在一些实现方式中,所述激励信号项还包括:
操作数op_bus、读端口的信息、写端口的信息以及指令槽。
在一些实现方式中,所述基于预先配置的译码结果检查信息,对所述译码结果进行形式化验证,包括:
基于预先配置的所述NPU的ISA指令对应的读端口检查信息、写端口检查信息以及latency检查信息,对所述译码结果中的读端口信息、写端口信息以及latency进行形式化验证。
在一些实现方式中,在所述对所述译码结果进行形式化验证之前,还包括:
基于所述NPU的ISA指令描述文件中,ISA指令对应的读写端口和latency信息,使用python脚本生成检查模型文件。
本申请的第二方面提供一种对神经网络处理器NPU中的译码单元进行验证的装置,包括:
激励单元,用于从NPU的指令集中,选择验证指令,所述验证指令为用于验证所述译码单元的ISA指令,生成所述验证指令对应的激励指令,基于所述验证指令预设的约束信息,对所述激励指令进行基于超长指令字VLIW的约束处理,得到约束后的激励指令,并向待验证的译码单元发送所述约束后的激励指令,所述约束后的激励指令驱动所述译码单元输出译码结果;
检查单元,用于基于预先配置的译码结果检查信息,对所述译码结果进行形式化验证。
在一些实现方式中,所述装置还包括:
解析单元和模型渲染单元;
所述解析单元用于基于ISA描述文件,向所述模型渲染单元配置ISA指令的信息,并向所述检查单元配置译码结果检查信息;
所述模型渲染单元用于基于所述ISA描述文件,使用python脚本生成检查模型文件,所述检查模型文件中存储各条ISA指令以及对应的译码结果检查信息。
本申请的第三方面提供一种电子设备,包括:
存储器和处理器;
所述存储器用于存储应用程序,所述处理器用于运行所述应用程序,以实现本申请的第一方面提供的对神经网络处理器NPU中的译码单元进行验证的方法。
本申请的第四方面提供一种计算机存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本申请的第一方面提供的对神经网络处理器NPU中的译码单元进行验证的方法。
本申请的第五方面提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行本申请的第一方面提供的对神经网络处理器NPU中的译码单元进行验证的方法。
本申请实施例公开的对NPU中的译码单元进行验证的方法及相关装置、设备,从NPU的指令集中,选择验证指令,生成验证指令对应的激励指令,基于验证指令预设的约束信息,对激励指令进行基于超长指令字VLIW的约束处理,得到约束后的激励指令,向待验证的译码单元发送约束后的激励指令,约束后的激励指令驱动译码单元输出译码结果,基于预先配置的译码结果检查信息,对译码结果进行形式化验证,形式化验证的方法对待测译码单元进行验证,能够显著降低验证时长、保证验证的完备性,激励信号的产生以及验证流程均以预设的约束信息为依据,不仅能够使得验证与译码单元的实际工作情况更符合,也能进一步提高验证的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种对NPU中的译码单元进行验证的装置的结构示意图;
图2为LSU的指令集的示例图;
图3为本申请实施例公开的一种对NPU中的译码单元进行验证方法的流程图;
图4为本申请实施例公开的对对NPU中的译码单元进行验证方法的又一流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例涉及的多个,是指大于或等于两个。需要说明的是,在本申请实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1为本申请实施例公开的一种对NPU中的译码单元进行验证的装置,包括:解析单元、模型渲染单元、激励单元以及检查单元。
解析单元用于基于指令集架构(Instruction set architecture,ISA)描述文件,向模型渲染单元配置ISA指令的信息,并向检查单元配置译码结果检查信息。
ISA描述文件用于描述ISA指令集中的指令。图2为NPU的ISA指令集中部分ISA指令的示例。与传统的CPU相比,NPU的ISA指令集包括的指令的类型多,如不仅包含标量(Scalar)指令、矢量(vector)指令,还包含断言(predicate)指令以及浮点(float)指令。不仅指令的类型较多,指令的数量可以多达千余条。在一些实现方式中,ISA描述文件为表格文件如excel文件。
在一些实现方式中,解析单元采用Python脚本语言解析ISA描述文件,例如采用Python脚本语言中的xlwings python package包,从ISA描述文件中解析得到各条ISA指令的信息。结合图2可以看出,每条ISA指令的信息包括:指令槽(slot)、时间延迟(latency)以及读写接口(RW port)。可以理解的是,图2中每条ISA指令的信息仅为示例,而不作为限定,图2中也并不包含以上所述的每种类型的指令。图2中,0-31均表示操作数(Bitmap index),具体内容这里不再赘述。
在一些实现方式中,解析单元将解析得到的ISA指令的信息,按照ISA指令的维度形成数组,也就是说,每一条ISA指令形成一个数组,数组中存放该条指令的信息,每条指令的信息以图2为例,这里不再赘述。
在一些实现方式中,解析单元将ISA指令的信息存储在模型文件中,将存储ISA指令的信息的模型文件称为第一模型文件,第一模型文件的名称的示例为isa_gen.sv。
解析单元在解析得到ISA指令的信息后,向模型渲染单元发送ISA指令的信息。
译码结果检查信息是检查待测的译码单元输出的译码结果的依据。
可以理解的是,译码单元在接收到ISA指令后,输出译码结果。在支持超长指令字(Very Long Instruction Word,VLIW)的微架构中,译码单元的ISA译码功能不仅包括操作码(opcode)和运算对象(operand)的识别、读端口和写端口的分配,还包括slot信息(如index)的分配,以及是否符合VLIW 规则的检查。
在本申请的实施例中,对译码单元的验证主要包括对读写端口的分配、以及对是否符合VLIW 规则的检查结果的验证。读端口信息用于指示为读写单元分配的读端口,写端口信息用于指示为读写单元分配的写端口。是否符合VLIW 规则的检查结果表示符合或不符合VLIW 规则,使用latency表示是否符合VLIW 规则的检查结果。
基于此,译码结果检查信息包括读端口检查信息、写端口检查信息以及latency检查信息,读端口检查信息作为检查读端口信息的检查依据,写端口检查信息作为检查写端口信息的检查依据,latency检查信息作为检查latency的检查依据。
为了与待测译码单元的译码结果相兼容,译码结果检查信息不仅包括读写端口检查信息和latency检查信息,还包括操作码(opcode)信息、运算对象(oprand)信息、以及指令槽(slot)信息。
在一些实现方式中,解析单元基于ISA描述文件中ISA指令的信息,使用python脚本生成模型文件,称为第二模型文件,第二模型文件中存储各条ISA指令以及对应的译码结果检查信息。第二模型文件的名称的示例为checker.sv。
第二模型文件指示的信息项之间的对应关系以表1为例,包括:Input端口名称、Input端口类型、Output端口名称、以及Output端口类型。
Input端口名称表示ISA指令的名称,可以理解的是,表1示出的仅为信息项,而非信息项的具体值,以Input端口名称为例,表1中所示的Isa表示此处需要填写的是ISA指令的名称,而不表示具体的名称。Input端口类型表示第一列填入的数据的类型为枚举的ISA指令的名称(记为Isa_enumeration)。Output端口名称表示Input端口名称表示的ISA指令对应的译码结果检查信息,可以看出,一条ISA指令除了对应读端口检查信息(read_port0,read_port1)和写端口检查信息(write_port)之外,还对应其它信息,如前所述ISA指令的信息,这里不再赘述。Output端口类型表示译码结果检查信息的数据类型,表1中以Bit类型为例。
表1
可以理解的是,表2仅示出了第二模型文件中对应的各个信息项,而不再赘述每条指令对应的信息项的值。解析单元将第二模型文件配置在检查单元中。被配置在检查单元中的第二模型文件中包括每条ISA指令对应的检查信息的具体值,以作为检查依据。
模型渲染单元用于配置ISA指令对应的激励信号项。
在一些实现方式中,模型渲染单元基于isa_gen和VLIW规则,在接收到的ISA指令的信息如第一模型文件的基础上,建立ISA指令的信息与激励信号项的对应关系。
在一些实现方式中,将ISA指令的信息与激励信号项的对应关系形成第三模型,第三模型的名称的示例为vliw.sv。因为激励指令需要模拟实际输入待测的译码单元的信号,所以,激励信号项基于译码单元的在实际应用中的输入信号确定。
第三模型中包括的信息项以如表2所示,包括Input端口名称、Input端口类型、Output端口名称、以及Output端口类型。如表1类似的,信息项仅表示需要填写的项,而不表示各项的具体值。
Input端口名称表示4个ISA指令即Isa0、Isa1、Isa2、Isa3的名称。Input端口类型表示4个ISA指令的类型。Output端口名称表示4个ISA指令对应的激励信号项,其中,op_bus表示操作数,Read_p0表示Isa0对应的读端口的信息,Read_p1表示Isa1对应的读端口的信息,Read_p2表示Isa2对应的读端口的信息,Read_p3表示Isa3对应的读端口的信息。Write_p0表示Isa0对应的写端口的信息,Write_p1表示Isa1对应的写端口的信息,Write_p2表示Isa2对应的写端口的信息,Write_p3表示Isa3对应的写端口的信息。1atency0表示Isa0对应的约束信息,1atency1表示Isa1对应的约束信息,1atency2表示Isa2对应的约束信息,1atency3表示Isa3对应的约束信息。slot0表示Isa0使用的slot的信息,slot1表示Isa1使用的slot的信息,slot2表示Isa2使用的slot的信息,slot3表示Isa3使用的slot的信息。以slot0为例,slot0为0b1111,说明Isa0可以放在任意一个物理slot上,slot1为0b0010,说明Isa1只能放在物理slot1上。也就是说,要满足VLIW规则,通过约束输出信号slot[i]对应bit为1即可。
表2
模型渲染单元将第二模型文件配置在激励单元中。
下面将结合表1和表2所示的模型文件,对验证流程进行说明。
图3为本申请实施例公开的对NPU中的译码模块进行验证的方法的流程,在以下流程中,以VLIW的长度为4为例进行说明,图3中包括以下步骤:
S11、激励单元基于第一模型文件(如isa_gen.sv),从ISA指令集中选择4个ISA指令。
在一些实现方式中,从ISA指令集中随机选择4个ISA指令。在另一些实现方式中,从ISA指令集中基于预先配置的规则选择4个ISA指令。
S12、激励单元生成4个ISA指令对应的激励指令。
结合图4所示,产生激励指令的实例分别记为isa_gen0、isa_gen1、isa_gen2、isa_gen3,每个实例分别针对一个ISA指令产生激励指令。
S13、激励单元对激励指令进行基于VLIW的约束,得到约束后的激励指令。
可以理解的是,第三模型文件中记录的每4个ISA指令对应的约束信息,因此,在选择4个ISA指令后,基于第三模型文件(如vliw.sv)查询ISA指令对应的信息项,并通过查询第一模型文件,获得4个ISA指令的约束信息,使用约束信息处理激励指令,得到约束后的激励指令。
S14、激励单元向待测的译码单元发送约束后的激励指令。
可以理解的是,待测的译码单元基于约束后的激励信息,输出译码结果。译码结果的具体内容如前所述,这里不再赘述。
S15、检查单元基于第二模型文件,使用形式化验证的方式,对译码结果进行验证。
形式化验证可以理解为使用预先配置的一些规则、算法或性质等,基于译码结果检查信息,验证译码结果是否准确。
形式化验证不是随机仿真的方式,而是数学推导证明的方式,这是与如UVM等穷举方式的根本区别。
可以理解的是,基于已有的形式化验证平台,进行形式化验证。
在一些实现方式中,对译码结果中的读端口和/或写端口的信息、以及latency进行形式化验证。
图4对上述的验证方法的概括,从图4中可以看出,解析单元使用Python解析ISA描述文件,得到模型文件isa_gen.sv和模型文件checker.sv,并向模型渲染单元发送isa_gen.sv,向检查单元发送checker.sv。
图4中,模型渲染单元以Jinja2模型渲染单元为例。Jinja2模型渲染单元基于isa_gen.sv和VLIW规则,在isa_gen.sv的基础上生成模型文件vliw.sv,并将vliw.sv向激励单元发送。
激励单元中运行有ISA实例和VLIW实例。ISA实例isa_gen0、isa_gen1、isa_gen2、isa_gen3分别将1个ISA指令生成激励指令,可以理解的是,不同的ISA实例选择的ISA指令不同。VLIW实例基于ISA指令的约束信息,对激励指令进行约束,得到约束后的激励指令,并向待测的译码单元ISA DECODE发送约束后的激励指令。
ISA DECODE基于约束后的激励指令,输出译码结果,译码结果至少包括读和/或写端口的信息以及latency。检查单元基于checker.sv,对译码结果进行形式化验证。
基于本申请的实施例提供的上述方法,发明人在实际项目中对1100多条NPU的ISA指令进行译码,只需要3天就可以达到完毕(Signoff)标准,相比于UVM验证方法需要耗时1.5个月,大幅提高了验证进度,而且验证质量比较高。
综上所述,本申请的实施例提供的对NPU中的译码单元进行验证的方法及装置,以形式化验证的方法对待测译码单元进行验证,与随机穷举方式的验证方式相比,能够显著降低验证时长,并且保证验证的完备性。
并且,预先构建模型文件,激励信号的产生以及验证流程均以模型文件为依据,不仅能够使得验证与译码单元的实际工作情况更符合,也能够降低人工参与,而进一步提高验证的效率。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
Claims (10)
1.一种对神经网络处理器NPU中的译码单元进行验证的方法,其特征在于,包括:
从NPU的指令集中,选择验证指令,所述验证指令为用于验证所述译码单元的ISA指令;
生成所述验证指令对应的激励指令;
基于所述验证指令预设的约束信息,对所述激励指令进行基于超长指令字VLIW的约束处理,得到约束后的激励指令;
向待验证的译码单元发送所述约束后的激励指令,所述约束后的激励指令驱动所述译码单元输出译码结果;
基于预先配置的译码结果检查信息,对所述译码结果进行形式化验证。
2.根据权利要求1所述的方法,其特征在于,所述基于所述验证指令预设的约束信息,对所述激励指令进行基于超长指令字VLIW的约束处理,得到约束后的激励指令,包括:
读取预先配置的VLIW模型文件,所述VLIW模型文件指示各条ISA指令对应的VLIW约束信息;
基于所述验证指令对应的约束信息,对所述激励指令进行约束,得到约束后的激励指令。
3.根据权利要求2所述的方法,其特征在于,所述VLIW模型文件的配置流程包括:
基于VLIW规则,建立所述NPU中的ISA指令与激励信号项的对应关系,所述激励信号项包括所述约束信息,所述激励信号项基于所述译码单元的输入信号确定。
4.根据权利要求3所述的方法,其特征在于,所述激励信号项还包括:
操作数op_bus、读端口的信息、写端口的信息以及指令槽。
5.根据权利要求1所述的方法,其特征在于,所述基于预先配置的译码结果检查信息,对所述译码结果进行形式化验证,包括:
基于预先配置的所述NPU的ISA指令对应的读端口检查信息、写端口检查信息以及时间延迟latency检查信息,对所述译码结果中的读端口信息、写端口信息以及latency进行形式化验证。
6.根据权利要求5所述的方法,其特征在于,在所述对所述译码结果进行形式化验证之前,还包括:
基于所述NPU的ISA指令描述文件中,ISA指令对应的读写端口和latency信息,使用python脚本生成检查模型文件。
7.一种对神经网络处理器NPU中的译码单元进行验证的装置,其特征在于,包括:
激励单元,用于从NPU的指令集中,选择验证指令,所述验证指令为用于验证所述译码单元的ISA指令,生成所述验证指令对应的激励指令,基于所述验证指令预设的约束信息,对所述激励指令进行基于超长指令字VLIW的约束处理,得到约束后的激励指令,并向待验证的译码单元发送所述约束后的激励指令,所述约束后的激励指令驱动所述译码单元输出译码结果;
检查单元,用于基于预先配置的译码结果检查信息,对所述译码结果进行形式化验证。
8.根据权利要求7所述的装置,其特征在于,还包括:
解析单元和模型渲染单元;
所述解析单元用于基于ISA描述文件,向所述模型渲染单元配置ISA指令的信息,并向所述检查单元配置译码结果检查信息;
所述模型渲染单元用于基于所述ISA描述文件,使用python脚本生成检查模型文件,所述检查模型文件中存储各条ISA指令以及对应的译码结果检查信息。
9.一种电子设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储应用程序,所述处理器用于运行所述应用程序,以实现权利要求1-6任一项所述的对神经网络处理器NPU中的译码单元进行验证的方法。
10.一种计算机存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1-6任一项所述的对神经网络处理器NPU中的译码单元进行验证的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310923897.4A CN116629175B (zh) | 2023-07-26 | 2023-07-26 | 对npu中的译码单元进行验证的方法及相关装置、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310923897.4A CN116629175B (zh) | 2023-07-26 | 2023-07-26 | 对npu中的译码单元进行验证的方法及相关装置、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116629175A CN116629175A (zh) | 2023-08-22 |
CN116629175B true CN116629175B (zh) | 2023-12-15 |
Family
ID=87597729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310923897.4A Active CN116629175B (zh) | 2023-07-26 | 2023-07-26 | 对npu中的译码单元进行验证的方法及相关装置、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116629175B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426503A (zh) * | 2017-07-21 | 2019-03-05 | 华为技术有限公司 | 提供仿真激励的方法及装置 |
CN116185727A (zh) * | 2022-11-08 | 2023-05-30 | 飞腾信息技术有限公司 | 待测设计的验证方法及验证装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10402847B2 (en) * | 2009-11-20 | 2019-09-03 | Mobisave Llc | System and method of electronically verifying required proof-of-performance to secure promotional rewards |
US20210336789A1 (en) * | 2020-03-30 | 2021-10-28 | Facebook, Inc. | Deterministic sparse-tree based cryptographic proof of liabilities |
-
2023
- 2023-07-26 CN CN202310923897.4A patent/CN116629175B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109426503A (zh) * | 2017-07-21 | 2019-03-05 | 华为技术有限公司 | 提供仿真激励的方法及装置 |
CN116185727A (zh) * | 2022-11-08 | 2023-05-30 | 飞腾信息技术有限公司 | 待测设计的验证方法及验证装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116629175A (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9606978B2 (en) | Discovering relationships in tabular data | |
JP5690349B2 (ja) | レコード形式情報の管理 | |
US10019347B2 (en) | Systems and methods for selection of test cases for payment terminals | |
WO2021179809A1 (zh) | 缓存和执行智能合约的方法和装置 | |
US8549502B2 (en) | Compiler with user-defined type inference rules | |
US20080307006A1 (en) | File mutation method and system using file section information and mutation rules | |
Idris | NumPy: Beginner's Guide | |
CN111427578B (zh) | 一种数据转换方法、装置及设备 | |
CN111562965A (zh) | 基于决策树的页面数据校验方法和装置 | |
CN111679979A (zh) | 破坏性测试方法及装置 | |
CN110688111A (zh) | 业务流程的配置方法、装置、服务器和存储介质 | |
CN116629175B (zh) | 对npu中的译码单元进行验证的方法及相关装置、设备 | |
CN112181430A (zh) | 代码变更统计方法、装置、电子设备及存储介质 | |
CN111367894B (zh) | 基于数据库迁移的数据对比方法及装置 | |
CN114721922B (zh) | 一种服务器集群的性能评估方法、计算设备及存储介质 | |
US8015523B2 (en) | Method and system for sequential netlist reduction through trace-containment | |
CN116302079A (zh) | 一种业务数据处理方法、装置、电子设备及存储介质 | |
CN116204396A (zh) | 一种针对分析型数据库性能的测试方法和装置 | |
CN116049270A (zh) | 访问数据库的方法、装置及存储介质 | |
US7865793B2 (en) | Test case generation with backward propagation of predefined results and operand dependencies | |
CN116597886B (zh) | 对npu中的lsu进行验证的方法及相关设备 | |
CN108255802B (zh) | 通用文本解析架构及基于所述架构解析文本的方法和装置 | |
KR102122455B1 (ko) | 프로세서의 디코더 검증을 위한 테스트 벤치 생성 방법 및 이를 위한 장치 | |
CN115543323B (zh) | 一种页面开发方法及装置 | |
EP3989101A1 (en) | Improving unsupervised embedding methods for similarity based industrial component model requesting systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |