CN114237714A - 命令包生成方法、装置、电子设备和存储介质 - Google Patents

命令包生成方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN114237714A
CN114237714A CN202111581086.8A CN202111581086A CN114237714A CN 114237714 A CN114237714 A CN 114237714A CN 202111581086 A CN202111581086 A CN 202111581086A CN 114237714 A CN114237714 A CN 114237714A
Authority
CN
China
Prior art keywords
command packet
chip
hardware
tested
input information
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.)
Pending
Application number
CN202111581086.8A
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Biren Intelligent Technology Co Ltd
Original Assignee
Shanghai Biren Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Biren Intelligent Technology Co Ltd filed Critical Shanghai Biren Intelligent Technology Co Ltd
Priority to CN202111581086.8A priority Critical patent/CN114237714A/zh
Publication of CN114237714A publication Critical patent/CN114237714A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种命令包生成方法、装置、电子设备和存储介质,其中方法包括:基于待测试芯片的硬件规格说明,确定所述待测试芯片执行目标任务所需的输入信息和所述输入信息在内存中的存储格式;基于所述输入信息、所述输入信息在内存中的存储格式,以及所述待测试芯片的解析软件支持的命令包格式协议,生成所述目标任务对应的命令包;其中,所述解析软件解析所述命令包以生成硬件命令包,并加载所述硬件命令包中的数据至所述内存以供所述待测试芯片读取。本发明提供的方法和装置,无需借助待测试芯片的软件栈就可以根据输入信息直接生成执行目标任务所需的命令包,不受软件栈开发状态的制约,简化了芯片的测试过程,提高了芯片的开发效率。

Description

命令包生成方法、装置、电子设备和存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种命令包生成方法、装置、电子设备和存储介质。
背景技术
在GPU(Graphics Processing Unit,图形处理器)等芯片的测试过程中,通常需要根据指令和数据生成命令包(command packet)在设备上执行特定的任务。
现有技术中,命令包都是通过芯片的软件栈生成的。软件栈提供了计算资源、性能调优的运行框架以及功能多样的配套软件模块,各软件模块在软件栈中功能和作用相互依赖,构成了一套完整的解决方案。然而,整个软件栈中的软件模块比较多、开发周期长,尤其是在芯片开发早期,没有开发出相应的软件栈,使得芯片的测试过程比较复杂,开发效率低。
发明内容
本发明提供一种命令包生成方法、装置、电子设备和存储介质,用于解决现有技术中芯片测试过程比较复杂,开发效率低的技术问题。
本发明提供一种命令包生成方法,包括:
基于待测试芯片的硬件规格说明,确定所述待测试芯片执行目标任务所需的输入信息和所述输入信息在内存中的存储格式;
基于所述输入信息、所述输入信息在内存中的存储格式,以及所述待测试芯片的解析软件支持的命令包格式协议,生成所述目标任务对应的命令包;
其中,所述解析软件解析所述命令包以生成硬件命令包,并加载所述硬件命令包中的数据至所述内存以供所述待测试芯片读取。
根据本发明提供的命令包生成方法,所述输入信息包括所述目标任务对应的硬件命令包类型、硬件命令包描述符和寄存器配置参数中的至少一种。
根据本发明提供的命令包生成方法,所述命令包格式协议包括命令包存储形式、硬件命令包的存储位置、硬件命令包类型获取方式、数据与数据存储地址的关联方式、数据存储地址类型和寄存器配置存储方式中的至少一种。
根据本发明提供的命令包生成方法,所述硬件命令包描述符包括多个字段,所述多个字段至少包括地址字段,所述生成所述目标任务对应的命令包,包括:
基于所述输入信息中的所述硬件命令包类型,确定所述硬件命令包中的所述地址字段;
生成所述地址字段对应的数据存储地址,并将所述地址字段对应的数据和所述数据存储地址,按照所述命令包格式协议存储至所述命令包。
根据本发明提供的命令包生成方法,所述解析软件解析所述命令包时,若数据存储地址为硬件物理地址,则直接使用所述数据存储地址;若数据存储地址不为硬件物理地址,则使用动态分配物理地址替换所述数据存储地址。
根据本发明提供的命令包生成方法,所述基于待测试芯片的硬件规格说明,确定所述待测试芯片执行目标任务所需的输入信息和所述输入信息在内存中的存储格式,包括:
基于待测试芯片的硬件规格说明,以及运行于所述待测试芯片中的目标网络模型,确定所述待测试芯片执行目标任务所需的输入信息和所述输入信息在内存中的存储格式。
本发明提供一种命令包生成装置,包括:
确定单元,用于基于待测试芯片的硬件规格说明,确定所述待测试芯片执行目标任务所需的输入信息和所述输入信息在内存中的存储格式;
生成单元,用于基于所述输入信息、所述输入信息在内存中的存储格式,以及所述待测试芯片的解析软件支持的命令包格式协议,生成所述目标任务对应的命令包;
其中,所述解析软件解析所述命令包以生成硬件命令包,并加载所述硬件命令包中的数据至所述内存以供所述待测试芯片读取。
本发明提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现所述命令包生成方法的步骤。
本发明提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述命令包生成方法的步骤。
本发明提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述命令包生成方法的步骤。
本发明实施例提供的命令包生成方法、装置、电子设备和存储介质,根据待测试芯片的硬件规格说明,确定待测试芯片执行目标任务所需的输入信息和输入信息在内存中的存储格式,将输入信息按照待测试芯片的解析软件支持的命令包格式协议进行转换,生成目标任务对应的命令包,将命令包发送至解析软件,解析软件解析命令包以生成硬件命令包,并加载硬件命令包中的数据至内存以供待测试芯片读取,使得无需借助待测试芯片的软件栈就可以根据输入信息直接生成执行目标任务所需的命令包,不受软件栈开发状态的制约,同时命令包的生成不占用芯片的硬件资源,命令包格式协议可以根据不同的目标任务进行定制或者修改,简化了芯片的测试过程,提高了芯片的开发效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的命令包生成方法的流程示意图;
图2为本发明提供的命令包自动生成的示意图;
图3是本发明提供的命令包生成装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,测试芯片时,通常是借助软件栈来生成命令包,使得芯片可以运行该命令包,执行测试任务。软件栈通常是包含芯片测试所需的各类软件模块。以某AI(Artificial Intelligence,人工智能)芯片为例,其软件栈包括了4个层次和1个辅助工具链。4个层次分别为应用使能层、执行框架层、芯片使能层和计算资源层,每个层次又包含了多个软件模块。辅助工具链提供了程序开发、编译测试和日志管理等软件。在该芯片上运行应用程序或者测试过程中,在其软件栈的合适位置生成命令包,通过解析软件读取并解析,提交给该芯片,以实现让该芯片执行特定的任务。
然而,在芯片的研发早期,软件栈没有得到开发或者不完善,使得无法生成命令包,无法实现对芯片的测试。因此,导致芯片的测试过程比较复杂,开发效率低。
图1为本发明提供的命令包生成方法的流程示意图,如图1所示,该方法包括:
步骤110,基于待测试芯片的硬件规格说明,确定待测试芯片执行目标任务所需的输入信息和输入信息在内存中的存储格式。
具体地,本发明实施例提供的命令包生成方法适用于芯片研发的全过程,特别是芯片研发早期。待测试芯片可以为各类AI芯片,例如图形处理器、神经网络加速器等。
硬件规格说明为待测试芯片的硬件规格说明书(hardware specification),记载了对芯片中每一个电子元器件或者功能模块的使用说明,例如芯片支持的运算类型、接口说明、管脚说明和封装说明等,也记载了芯片执行具体的运算任务时所需要的输入信息。
目标任务为测试芯片时需要在芯片上执行的运算任务。例如,目标任务可以为在芯片上执行的加法运算任务、乘法运算任务或者图形绘制任务等。
输入信息为芯片执行目标任务时需要的原始信息,例如可以包括执行目标任务所需要的指令,以及被指令操作的数据,还可以包括芯片中寄存器的设置参数等。
例如,硬件规格说明规定了供硬件直接读取的硬件命令包(hardware commandpacket)类型和每种类型的描述符存储格式。描述符存储格式包括一个描述符占多少字节,有哪些字段,每个字段的含义,每个字段占哪些比特,每个字段的取值范围和取值含义。其中某些字段表示的是地址,即字段的值是某个地址,可以称该种类型的字段为地址字段,硬件规格说明也规定地址所指向的数据的描述符存储格式。
本发明实施例中的内存,是指对芯片可见的存储空间,可以是系统主存(支持访问系统主存的芯片),也可以是芯片内部存储。
步骤120,基于输入信息、输入信息在内存中的存储格式,以及待测试芯片的解析软件支持的命令包格式协议,生成目标任务对应的命令包;
其中,解析软件解析命令包,并加载命令包中的数据至内存以供待测试芯片读取。
具体地,可以制定待测试芯片的解析软件(replayer)所支持的命令包格式协议,然后按照该命令包格式协议,将输入信息直接转换为目标任务对应的命令包。
解析软件解析命令包以生成硬件命令包,并加载硬件命令包中的数据至内存以供待测试芯片读取和执行。
需要说明的是,硬件命令包可以被待测试芯片直接读取,并且只能在运行时存储在内存中,而本发明实施例提供的命令包可以持久化存储,可以随时被解析软件解析从而生成硬件命令包。由于本发明实施例中的命令包可以被解析软件解析,因此,本发明实施例中的命令包(command packet)也可以被称为replayer command packet。
相关技术中,待测试芯片通过软件栈将到任务直接按规定格式要求写到内存,并提交给芯片执行。而本发明实施例中,命令包可持久存储。采用命令包进行测试,对于同样的任务,命令包只需生成一次,可被多次重复执行,且命令包只包含跟待测试芯片任务相关的内容,可排除其他因素的干扰。
本发明实施例提供的命令包生成方法,根据待测试芯片的硬件规格说明,确定待测试芯片执行目标任务所需的输入信息和输入信息在内存中的存储格式,将输入信息按照待测试芯片的解析软件支持的命令包格式协议进行转换,生成目标任务对应的命令包,将命令包发送至解析软件,解析软件解析命令包以生成硬件命令包,并加载硬件命令包中的数据至内存以供待测试芯片读取,使得无需借助待测试芯片的软件栈就可以根据输入信息直接生成执行目标任务所需的命令包,不受软件栈开发状态的制约,同时命令包的生成不占用芯片的硬件资源,命令包格式协议可以根据不同的目标任务进行定制或者修改,简化了芯片的测试过程,提高了芯片的开发效率。
基于上述实施例,输入信息包括目标任务对应的硬件命令包类型、硬件命令包描述符和寄存器配置参数中的至少一种。
具体地,硬件命令包类型可以根据待测试芯片的硬件规格说明确定,例如计算任务或者绘图任务等。每一硬件命令包类型对应不同的硬件命令包描述符。硬件命令包描述符包括多个字段。例如,字段可以包括指令和数据,字段存储了指令和数据的地址。
此外,硬件命令包描述符中也可能有其他字段,例如描述目标图像数据内存格式的字段(长*宽、图像编码格式)。
指令是指控制待测试芯片执行某种运算、处理功能的命令。芯片中的硬件电路的作用是实现每条指令规定的功能。待测试芯片在设计时就规定了一系列与其硬件电路相配合的指令系统。
数据为指令所操作的数据。例如,让待测试芯片执行5加上6的运算任务,其中,指令可以为“ADD”,对应的数据为5和6。
寄存器是待测试芯片内部用来存放数据的一些小型存储区域,是有限存储容量的高速存储部件,它们可用来暂存指令、数据和位址。作为待测试芯片的内部元件,寄存器可以包括通用寄存器、专用寄存器和控制寄存器等。为了使待测试芯片能够读取寄存器中的指令或者数据,可以预先设置寄存器配置参数,来对寄存器进行设置。
例如,对于某GPU,硬件规格说明中规定了供硬件直接读取的硬件命令包类型和每种类型的描述符存储格式。描述符存储格式包括一个描述符占多少字节,有哪些字段,每个字段的含义,每个字段占哪些比特,每个字段的取值范围和取值含义。其中某些字段表示的是地址,即字段的值是某个地址,称该种类型的字段为地址字段,硬件规格说明也规定地址所指向的数据的描述符存储格式。
除了硬件命令包本身的内容,硬件执行一个硬件命令包可能还需要设置其关联的寄存器,硬件规格说明也规定了硬件命令包的每个字段所关联的寄存器,以及每个寄存器的含义。
基于上述任一实施例,命令包格式协议包括命令包存储形式、硬件命令包的存储位置、硬件命令包类型获取方式、数据与数据存储地址的关联方式、数据存储地址类型和寄存器配置存储方式中的至少一种。
具体地,命令包存储形式,是指命令包以文件夹形式存储还是单个文件形式存储,是否需要压缩,采用的文件格式等。例如文件夹形式存储一个命令包,文件夹中包含多个文件,有二进制文件和文本文件等。
硬件命令包的存储位置,是指硬件命令包中的内容(指令和数据等)在命令包中的存储位置。例如,文件夹中有一个文本文件叫replayer command packet配置文件,该配置文件有packet data字段,该字段直接记录了硬件命令包(包括指令和数据等)的内容。
硬件命令包类型获取方式,是指获取硬件命令包类型的方式。例如配置文件某个约定位置记录硬件命令包类型。
数据与数据存储地址的关联方式,是指地址与地址所指向数据的关联方式。例如地址所指向数据可以以单独的文件存储,文件名包含该地址,上述配置文件记录该文件名。
数据存储地址类型,是指命令包(replayer command packet)里的地址是虚拟地址(virtual address,硬件不能直接访问的地址)还是硬件物理地址(device address,硬件可直接访问的地址),是硬件地址时,要记录整个命令包所占用的地址范围(replayaddress range)。
寄存器配置存储方式,是指寄存器配置参数的存储方式。例如上述配置文件里有寄存器列表字段,该字段记录了需要执行该命令包(replayer command packet)需要设置的寄存器。
基于上述任一实施例,步骤120包括:
基于输入信息中的硬件命令包的类型,确定硬件命令包中的地址字段;
生成地址字段对应的数据存储地址,并将地址字段对应的数据和数据存储地址,按照命令包格式协议存储至命令包。
具体地,硬件命令包描述符包括多个字段,多个字段至少包括地址字段。
在生成命令包时,需要将数据和数据存储地址进行关联后存储。可以先根据硬件命令包的类型,确定硬件命令包中的地址字段,然后生成地址字段对应的数据存储地址,将数据和数据存储地址按照命令包格式协议中的要求进行关联后,存储至命令包。
例如,根据输入的硬件命令包类型,可知该硬件命令包有哪些字段,根据输入的硬件命令包字段键值对列表设置相应字段。对于地址字段,生成一个地址,将该地址填写到该字段,并将地址字段所对应的数据按协议存储到命令包(replayer command packet)。
地址生成方式,可选择生成virtual address或device address。
生成virtual address的方法:生成器保存一个virtual address全局偏移(global offset)。为某个字段生成virtual address时直接使用global offset作为virtual address,并更新global offset为global offset+字段地址指向数据的大小。
生成device address的方法:先生成virtual address,再转换virtual address为device address。转换规则硬件规格说明中有记录。
基于上述任一实施例,解析软件解析命令包时,若数据存储地址为硬件物理地址,则直接使用数据存储地址;若数据存储地址不为硬件物理地址,则使用动态分配物理地址替换数据存储地址。
具体地,解析软件(replayer)根据命令包格式协议解析命令包,可以得到寄存器配置、硬件命令包内容、地址所指向数据的内容。
解析软件对命令包里的地址有2种处理方式,包括:
第一种方式,直接使用命令包(replayer command packet)里的硬件物理地址(必须是device address)。具体做法是,解析软件(replayer)初始化时预先分配整个地址范围(replay address range),整个地址范围的地址对应的存储空间只用来存储命令包(replayer command packet)里的数据。
第二种方式,修改命令包(replayer command packet)里的地址。解析软件(replayer)使用运行时动态分配的硬件物理地址替换命令包(replayer command packet)里的地址。
基于上述任一实施例,步骤110包括:
基于待测试芯片的硬件规格说明,以及运行于待测试芯片中的目标网络模型,确定待测试芯片执行目标任务所需的输入信息和输入信息在内存中的存储格式。
具体地,当待测试芯片中运行目标网络模型时,可以根据目标网络模型的类型,对待测试芯片的硬件规格说明中直接得到的输入信息进行调整,确定待测试芯片执行目标任务所需的输入信息和所述输入信息在内存中的存储格式。
例如,对于GPU,可以获知该GPU执行何种任务,可以人工获知也可以自动获知。简单的任务由人工直接填写输入信息即可。复杂的任务可由专门的程序来根据目标网络模型生成输入信息。
基于上述任一实施例,图2为本发明提供的命令包自动生成的示意图,如图2所示,该方法包括:
步骤一、事先准备好命令包(Command packet)所需的所有原始信息,原始信息包括指令、被指令操作的数据、参数。参数指除了指令、被指令操作的数据之外的其他信息(例如寄存器设置以及硬件命令包里的其他字段)。
步骤二、制定一个Command packet格式的协议,使得解析软件(replayer)能够根据此协议将Command packet转换成驱动层的数据结构并提交给GPU。
步骤三、根据协议,编写一个Command packet生成器。由Command packet生成器完成原始信息到Command packet的转换。
步骤四、执行Command packet生成器生成Command packet。
例如:想让GPU执行一个计算任务,计算5+6的结果。
给生成器的输入是:
硬件命令包类型=计算任务;
指令=保存指令的文件kernel.bin(完成加法运算需要的指令);
操作数一=保存数据“5”的文件opt1.dat;
操作数二=保存数据“6”的文件opt2.dat、uva寄存器=1。
硬件规格说明中规定计算命令包的描述符格式:
总大小=256bit;
字段“任务类型”占0~63bit,值为0=计算1=绘图;
字段“指令”占64~127bit,值为存放指令数据的地址;
字段“操作数”占128~191bit,值为存放操作数描述符数据的地址;
字段“保留字段”占192~255bit,默认值为0。
操作数描述符格式:
总大小=128bit(16字节);
字段“操作数一”占0~63bit,值为存放操作数一数据的地址;
字段“操作数二”占64~127bit,值为存放操作数二数据的地址。
生成器生成硬件命令包的内容并写入配置文件“config.json”。
Virtual address版内容如下:
“packet_data”:“0x0000000000000000(0=计算任务);
0x0100000000000000(存放指令数据的地址=0x0100000000000000,globaloffset初始化配成0x01000000 00000000,生成器为指令数据生成地址=global offset,假如指令数据占0x200字节,然后global offset变成0x0100000000000200);
0x0100000000000200(存放操作数描述符数据的地址=0x0100000000000200,然后global offset变成0x0100000000000210,因为操作数描述符占0x10字节);
0x0000000000000000(保留字段的值,输入中没有指定,所以用默认值0)”。
生成器生成操作数描述符内容并写入配置文件“config.json”;
“address_0x0100000000000200”:{0x0100000000000210(存放操作数一数据的地址,操作数一数据opt1.dat占0x10字节,global offset更新为0x0100000000000220)0x0100000000000220(存放操作数二数据的地址)};
“register”:{uva:1}
“Files”:{0x0100000000000210.dat(操作数一数据文件,内容与opt1.dat内容一致)
0x0100000000000220.dat(操作数二数据文件,内容与opt2.dat内容一致)
0x0100000000000000.dat(指令数据文件,内容与kernel.bin内容一致)}
生成的replayer command packet结果如下:
virtual address版本:
一个名为packet文件夹,文件夹下有文件如下:“config.json”、“0x0100000000000210.dat”、“0x0100000000000220.dat”、0x0100000000000000.dat。
device address版与virtual address版区别仅是地址不一样:只需将virtualaddress根据硬件规格说明对device address的格式要求转换成device address。假如硬件规格说明要求device address第63bit为1,则转换virtual address0x01000000000000210为device address0x11000000000000210。
基于上述任一实施例,图3是本发明提供的命令包生成装置的结构示意图,如图3所示,该装置包括:
确定单元310,用于基于待测试芯片的硬件规格说明,确定待测试芯片执行目标任务所需的输入信息和输入信息在内存中的存储格式;
生成单元320,用于基于输入信息、输入信息在内存中的存储格式,以及待测试芯片的解析软件支持的命令包格式协议,生成目标任务对应的命令包;
其中,解析软件解析命令包以生成硬件命令包,并加载硬件命令包中的数据至内存以供待测试芯片读取。
具体地,命令包生成装置可以采用软件实现。例如,采用python软件进行编写,得到Command packet生成器。只需要有python运行环境,就可以运行Command packet生成器。
本发明实施例提供的命令包生成装置,根据待测试芯片的硬件规格说明,确定待测试芯片执行目标任务所需的输入信息和输入信息在内存中的存储格式,将输入信息按照待测试芯片的解析软件支持的命令包格式协议进行转换,生成目标任务对应的命令包,将命令包发送至解析软件,解析软件解析命令包以生成硬件命令包,并加载硬件命令包中的数据至内存以供待测试芯片读取,使得无需借助待测试芯片的软件栈就可以根据输入信息直接生成执行目标任务所需的命令包,不受软件栈开发状态的制约,同时命令包的生成不占用芯片的硬件资源,命令包格式协议可以根据不同的目标任务进行定制或者修改,简化了芯片的测试过程,提高了芯片的开发效率。
基于上述任一实施例,输入信息包括目标任务对应的硬件命令包类型、硬件命令包描述符和寄存器配置参数中的至少一种。
基于上述任一实施例,命令包格式协议包括命令包存储形式、硬件命令包的存储位置、硬件命令包类型获取方式、数据与数据存储地址的关联方式、数据存储地址类型和寄存器配置存储方式中的至少一种。
基于上述任一实施例,硬件命令包描述符包括多个字段,多个字段至少包括地址字段;生成单元用于:
基于输入信息中的硬件命令包类型,确定硬件命令包中的地址字段;
生成地址字段对应的数据存储地址,并将地址字段对应的数据和数据存储地址,按照命令包格式协议存储至命令包。
基于上述任一实施例,解析软件解析命令包时,若数据存储地址为硬件物理地址,则直接使用数据存储地址;若数据存储地址不为硬件物理地址,则使用动态分配物理地址替换数据存储地址。
基于上述任一实施例,确定单元用于:
基于待测试芯片的硬件规格说明,以及运行于待测试芯片中的目标网络模型,确定待测试芯片执行目标任务所需的输入信息和输入信息在内存中的存储格式。
基于上述任一实施例,图4为本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(Processor)410、通信接口(Communications Interface)420、存储器(Memory)430和通信总线(Communications Bus)440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑命令,以执行如下方法:
基于待测试芯片的硬件规格说明,确定待测试芯片执行目标任务所需的输入信息和输入信息在内存中的存储格式;基于输入信息、输入信息在内存中的存储格式,以及待测试芯片的解析软件支持的命令包格式协议,生成目标任务对应的命令包;其中,解析软件解析命令包以生成硬件命令包,并加载硬件命令包中的数据至内存以供待测试芯片读取。
此外,上述的存储器430中的逻辑命令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供的电子设备中的处理器可以调用存储器中的逻辑指令,实现上述方法,其具体的实施方式与前述方法实施方式一致,且可以达到相同的有益效果,此处不再赘述。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:
基于待测试芯片的硬件规格说明,确定待测试芯片执行目标任务所需的输入信息和输入信息在内存中的存储格式;基于输入信息、输入信息在内存中的存储格式,以及待测试芯片的解析软件支持的命令包格式协议,生成目标任务对应的命令包;其中,解析软件解析命令包以生成硬件命令包,并加载硬件命令包中的数据至内存以供待测试芯片读取。
本发明实施例提供的非暂态计算机可读存储介质上存储的计算机程序被执行时,实现上述方法,其具体的实施方式与前述方法实施方式一致,且可以达到相同的有益效果,此处不再赘述。
本发明实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如上述命令包生成方法的步骤。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种命令包生成方法,其特征在于,包括:
基于待测试芯片的硬件规格说明,确定所述待测试芯片执行目标任务所需的输入信息和所述输入信息在内存中的存储格式;
基于所述输入信息、所述输入信息在内存中的存储格式,以及所述待测试芯片的解析软件支持的命令包格式协议,生成所述目标任务对应的命令包;
其中,所述解析软件解析所述命令包以生成硬件命令包,并加载所述硬件命令包中的数据至所述内存以供所述待测试芯片读取。
2.根据权利要求1所述的命令包生成方法,其特征在于,所述输入信息包括所述目标任务对应的硬件命令包类型、硬件命令包描述符和寄存器配置参数中的至少一种。
3.根据权利要求2所述的命令包生成方法,其特征在于,所述命令包格式协议包括命令包存储形式、硬件命令包的存储位置、硬件命令包类型获取方式、数据与数据存储地址的关联方式、数据存储地址类型和寄存器配置存储方式中的至少一种。
4.根据权利要求3所述的命令包生成方法,其特征在于,所述硬件命令包描述符包括多个字段,所述多个字段至少包括地址字段,所述生成所述目标任务对应的命令包,包括:
基于所述输入信息中的所述硬件命令包类型,确定所述硬件命令包中的所述地址字段;
生成所述地址字段对应的数据存储地址,并将所述地址字段对应的数据和所述数据存储地址,按照所述命令包格式协议存储至所述命令包。
5.根据权利要求1至4任一项所述的命令包生成方法,其特征在于,所述解析软件解析所述命令包时,若数据存储地址为硬件物理地址,则直接使用所述数据存储地址;若数据存储地址不为硬件物理地址,则使用动态分配物理地址替换所述数据存储地址。
6.根据权利要求1至4任一项所述的命令包生成方法,其特征在于,所述基于待测试芯片的硬件规格说明,确定所述待测试芯片执行目标任务所需的输入信息和所述输入信息在内存中的存储格式,包括:
基于待测试芯片的硬件规格说明,以及运行于所述待测试芯片中的目标网络模型,确定所述待测试芯片执行目标任务所需的输入信息和所述输入信息在内存中的存储格式。
7.一种命令包生成装置,其特征在于,包括:
确定单元,用于基于待测试芯片的硬件规格说明,确定所述待测试芯片执行目标任务所需的输入信息和所述输入信息在内存中的存储格式;
生成单元,用于基于所述输入信息、所述输入信息在内存中的存储格式,以及所述待测试芯片的解析软件支持的命令包格式协议,生成所述目标任务对应的命令包;
其中,所述解析软件解析所述命令包以生成硬件命令包,并加载所述硬件命令包中的数据至所述内存以供所述待测试芯片读取。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述命令包生成方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述命令包生成方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述命令包生成方法的步骤。
CN202111581086.8A 2021-12-22 2021-12-22 命令包生成方法、装置、电子设备和存储介质 Pending CN114237714A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111581086.8A CN114237714A (zh) 2021-12-22 2021-12-22 命令包生成方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111581086.8A CN114237714A (zh) 2021-12-22 2021-12-22 命令包生成方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN114237714A true CN114237714A (zh) 2022-03-25

Family

ID=80761257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111581086.8A Pending CN114237714A (zh) 2021-12-22 2021-12-22 命令包生成方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN114237714A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114706376A (zh) * 2022-06-06 2022-07-05 南京宏泰半导体科技有限公司 一种基于软件解耦的硬件控制装置及方法
CN115586972A (zh) * 2022-11-25 2023-01-10 成都登临科技有限公司 命令生成方法、装置、ai芯片、电子设备及存储介质
CN115902595A (zh) * 2023-02-20 2023-04-04 之江实验室 一种芯片测试系统以及芯片测试方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114706376A (zh) * 2022-06-06 2022-07-05 南京宏泰半导体科技有限公司 一种基于软件解耦的硬件控制装置及方法
CN114706376B (zh) * 2022-06-06 2022-08-26 南京宏泰半导体科技有限公司 一种基于软件解耦的硬件控制装置及方法
CN115586972A (zh) * 2022-11-25 2023-01-10 成都登临科技有限公司 命令生成方法、装置、ai芯片、电子设备及存储介质
CN115902595A (zh) * 2023-02-20 2023-04-04 之江实验室 一种芯片测试系统以及芯片测试方法

Similar Documents

Publication Publication Date Title
US11010681B2 (en) Distributed computing system, and data transmission method and apparatus in distributed computing system
US10908925B2 (en) Dynamic loading method, and target file creation method and apparatus
CN114237714A (zh) 命令包生成方法、装置、电子设备和存储介质
US9906622B2 (en) Automated service interface optimization
US7155379B2 (en) Simulation of a PCI device's memory-mapped I/O registers
US20040003377A1 (en) Converting byte code instructions to a new instruction set
WO2021057807A1 (zh) 深度学习模型生成方法、装置、设备及存储介质
US11321090B2 (en) Serializing and/or deserializing programs with serializable state
CN113886162A (zh) 一种计算设备性能测试方法、计算设备及存储介质
EP4239474A1 (en) Serverless container starting method and related device
CN100472469C (zh) 运行日志获取方法
CN101196848B (zh) 运行日志获取方法
CN104598409A (zh) 一种处理输入输出请求的方法及设备
CN113821194A (zh) 一种微前端系统
US20100180269A1 (en) Domains with polymorphic type implementations
US11651130B2 (en) Method, device, and storage medium for simulating a design
EP3791274B1 (en) Method and node for managing a request for hardware acceleration by means of an accelerator device
JPWO2020158347A1 (ja) 情報処理装置、方法およびプログラム
US20230350593A1 (en) Method, system, and circuit for deploying file system on embedded memory in programmable computing device
CN108874468A (zh) 应用程序的加载方法、装置、计算机设备及存储介质
EP1183596B1 (en) Generating optimized computer data field conversion routines
CN115586972B (zh) 命令生成方法、装置、ai芯片、电子设备及存储介质
CN116881086B (zh) 应用运行时内存监控方法、装置、计算设备及存储介质
US20040098708A1 (en) Simulator for software development and recording medium having simulation program recorded therein
WO2021245758A1 (ja) 情報処理装置、情報処理方法およびプログラム

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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai

Applicant after: Shanghai Bi Ren Technology Co.,Ltd.

Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai

Applicant before: Shanghai Bilin Intelligent Technology Co.,Ltd.

Country or region before: China