CN111830390B - 一种测试方法及相关产品 - Google Patents
一种测试方法及相关产品 Download PDFInfo
- Publication number
- CN111830390B CN111830390B CN201910315915.4A CN201910315915A CN111830390B CN 111830390 B CN111830390 B CN 111830390B CN 201910315915 A CN201910315915 A CN 201910315915A CN 111830390 B CN111830390 B CN 111830390B
- Authority
- CN
- China
- Prior art keywords
- value
- processor
- register
- preset
- cloud device
- 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
- 238000010998 test method Methods 0.000 title claims description 9
- 238000012360 testing method Methods 0.000 claims abstract description 201
- 238000000034 method Methods 0.000 claims description 86
- 238000013473 artificial intelligence Methods 0.000 claims description 69
- 230000008569 process Effects 0.000 claims description 55
- 238000004590 computer program Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 33
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 238000010801 machine learning Methods 0.000 description 13
- 230000006978 adaptation Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000007711 solidification Methods 0.000 description 2
- 230000008023 solidification Effects 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2851—Testing of integrated circuits [IC]
- G01R31/2855—Environmental, reliability or burn-in testing
-
- 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)
- Environmental & Geological Engineering (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种测试方法及相关产品,处理器通过不同的设备信息配置不同的测试环境,以实现对云端设备运行参数的配置。通过本申请,可以实现在同一个人工智能处理器上模拟多种目标芯片的测试环境,并且还可以解决两种功耗调节方式处于并行状态下的冲突问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种测试方法及相关产品。
背景技术
本领域技术人员的在研方案中,可以根据频率值间接调节功耗,也可以直接根据功耗值调节功耗,以使目标芯片处理预设任务时的功耗始终小于预设条件,例如,预设条件为最大限额功率。
具体地,以上的根据频率值调节功耗以及根据功耗值调节功耗的实现方式,均需要重新设置同一寄存器的值。例如,该寄存器为第一寄存器。当上述两种调节方式处于并行状态时,容易带来冲突问题。这里,冲突问题体现在,前一次修改好的频率值对应的第一寄存器值被后一次的调节操作所覆盖。
那么,如何解决两种功耗的调节方式在并行状态下的冲突问题是本领域技术人员正在研究的技术问题。
发明内容
本申请实施例提供一种测试方法及相关产品,解决两种功耗调节方式处于并行状态下的冲突问题,进而提高测试效率。
第一方面,本申请实施例提供了一种测试方法,该方法包括:
接收云端设备的人工智能处理器在当前运行环境参数下处理预设任务时,获得的第一测试结果;其中,所述云端设备的人工智能处理器的当前运行环境参数是根据目标芯片的第一设备信息确定的;
若所述第一测试结果不符合预设条件,则根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件。
实施本申请实施例,处理器通过不同的设备信息配置不同的测试环境,并将该测试环境发送给云端设备,以使云端设备根据获取到的测试环境设置云端设备中的人工智能处理器的当前运行环境参数,并基于该确定好的测试环境实现目标芯片的调试以及测试过程。进一步地,在测试结果(例如,功耗)不满足预设条件的情况下,通过设置两种功耗调节方式处于互斥状态来避免出现前一次功耗调节的操作被后一次的功耗调节操作所覆盖,解决了两种功耗调节方式处于并行状态下的冲突问题。
在其中一个可能的实现方式中,所述根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
根据所述预设切换条件,重新获取所述目标芯片的第一设备信息;
根据所述第一设备信息配置寄存器的值,并将所述寄存器的值发送至所述云端设备,以使所述云端设备根据所述第一配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
在其中一个可能的实现方式中,所述第一设备信息包括所述目标芯片的运行环境参数,所述目标芯片的运行环境参数包括所述目标芯片的运行主频率;所述根据所述第一设备信息配置寄存器的值,包括:
根据获取的所述目标芯片的运行环境参数,确定至少一个第一寄存器的值;其中,所述第一寄存器用于记录并存储所述目标芯片的运行主频率;
发送所述至少一个第一寄存器的值至所述云端设备,以使所述云端设备根据所述至少一个第一寄存器的值重新设置所述云端设备的人工智能处理器的当前运行环境参数。
在其中一个可能的实现方式中,所述第一设备信息还包括所述目标芯片的硬件架构信息;所述根据所述第一设备信息配置寄存器的值,还包括:
将所述目标芯片的硬件架构信息传送至所述云端设备的人工智能处理器。
在其中一个可能的实现方式中,所述根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
根据预设切换条件,重新获取所述目标芯片的功耗值;
根据所述功耗值配置寄存器的值,并将所述寄存器的值传送至所述云端设备,以使所述云端设备根据第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
在其中一个可能的实现方式中,所述根据所述功耗值配置寄存器的值,包括:
根据获取的功耗值,确定至少一个第三寄存器的值;其中,所述第三寄存器用于记录并存储功耗值;
发送所述至少一个第三寄存器的值至所述云端设备,以使所述云端设备根据预置的频率和功耗的对应关系确定至少一个第一寄存器的值,以重新设置所述云端设备的人工智能处理器的当前运行环境参数。
在其中一个可能的实现方式中,所述预设切换条件包括标志位的值,所述标志的值用于指示选择第一配置方式或选择第二配置方式,所述根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,包括:
获取第一标志位的值和/或第二标志位的值;
当所述第一标志位的值为第一预设值时,则确定选择所述第一配置方式;
当所述第二标志位的值为第一预设值时,则确定选择所述第二配置方式。
在其中一个可能的实现方式中,所述方法还包括:
获取所述目标芯片的运行主频率对应的第一寄存器的值;
若所述第一寄存器的值为第二预设值,则将所述第一标志位的值从所述第一预设值调整为第三预设值;
或者,
获取所述目标芯片的运行主频率对应的第一寄存器的值;
若所述第一寄存器的值为所述第二预设值,则将所述第二标志位的值从所述第一预设值调整为所述第三预设值。
第二方面,本申请实施例提供了一种测试装置,该装置用于执行上述第一方面的方法的单元。具体地,所述测试装置包括处理器单元;其中,
所述处理器单元,用于接收云端设备的人工智能处理器在当前运行环境参数下处理预设任务时,获得的第一测试结果;其中,所述云端设备的人工智能处理器的当前运行环境参数是根据目标芯片的第一设备信息确定的;
所述处理器单元,还用于在所述第一测试结果不符合预设条件时,根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件。
第三方面,本申请实施例提供了一种测试设备,包括存储器及处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器被配置用于调用所述计算机程序,执行上述第一方面的方法。
第四方面,本申请实施例还提供了另一种测试设备,所述测试设备应用于测试***,所述测试***包括处理器单元和云端设备;其中,
所述处理器单元,用于获取目标芯片的第一设备信息;
所述处理器单元,还用于根据所述目标芯片的第一设备信息确定第一测试环境;
所述处理器单元,还用于发送所述第一测试环境至所述云端设备,以确定所述云端设备中人工智能处理器的当前运行环境参数;
所述云端设备,用于根据所述第一测试环境设置所述人工智能处理器的当前运行环境参数,使所述人工智能处理器的当前运行环境参数与所述目标芯片的第一设备信息一致;
所述云端设备,还用于在所述当前运行环境参数下处理预设任务,获得第一测试结果,并将所述第一测试结果发送给处理器单元;
所述处理器单元,还用于接收所述第一测试结果;
所述处理器单元,还用于在所述第一测试结果不符合预设条件时,根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件。
第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
第六方面,本申请实施例还提供了一种计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种人工智能软件开发平台的***架构图;
图2是本申请实施例提供的一种测试方法的应用场景示意图;
图3是本申请另一实施例提供的一种测试方法的应用场景示意图;
图4是本申请实施例提供的一种测试方法的流程示意图;
图5A是本申请实施例提供的一种硬件设备配置频率值、访存带宽值以及计算能力模式值的过程示意图;
图5B是本申请实施例提供的一种硬件设备配置功耗值的过程示意图;
图6A是本申请实施例提供的一种两种功耗调节方式的具体实现示意图;
图6B是本申请实施例提供的另一种测试方法的流程示意图;
图7是本申请实施例提供的一种测试装置的结构示意图;
图8是本申请实施例提供的一种测试设备的结构示意图;
图9是本申请实施例提供的一种云端设备的结构示意图;
图10是本申请实施例提供的一种测试***的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为了便于更好的理解本技术方案,下面先解释本申请实施例所涉及的技术术语:
流片:在集成电路设计领域,流片是指试生产,也即在设计完满足预设功能的集成电路之后,先生产几片或几十片供测试用,如果满足测试需求,则按照当前满足测试需求的集成电路的结构进行大规模生产。
二进制指令:是底层的人工智能处理器可以识别的信息。
人工智能处理器:也称之为专用处理器,针对特定应用或者领域的处理器。例如:图形处理器(Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的专用处理器。又例如:神经网络处理器(Neural Processing Unit,缩写:NPU),是一种在人工智能领域的应用中针对矩阵乘法运算的专用处理器,采用“数据驱动并行计算”的架构,特别擅长处理视频、图像类的海量多媒体数据。
可重构体系结构:如果某一人工智能处理器能够利用可重用的硬件资源,根据不同的应用需求,灵活的改变自身的体系结构,以便为每个特定的应用需求提供与之相匹配的体系结构,那么这一人工智能处理器就称为可重构的计算***,其体系结构称为可重构的体系结构。
首先,介绍下本申请的主要发明构思。
现有技术中,算法应用开发者只有在对应版本硬件实体上完成人工智能算法模型与人工智能处理器之间的适配调试工作。可以理解的是,现有技术的实现方案并不能实现未流片的芯片与算法之间的调试过程,这样就需要专门的时间去完成算法模型与芯片之间的适配工作,因而产品问市的期限就要往后拖延,很容易因时间问题错过占领市场的机会。
基于此,本申请提出一种技术方案,不管人工智能处理器是否流片,根据端侧的人工智能处理器的设备信息,从云端设备中匹配出合适的人工智能处理器来模拟端侧的人工智能处理器,其中,该云端设备包含的人工智能处理器可以是人工智能处理器硬件实体。具体地,用户可以通过一人工智能软件开发平台输入端侧的人工智能处理器的设备信息,该软件开发平台可以将该设备信息转换为云端设备中人工智能处理器的测试环境,并将该测试环境发送至云端设备。之后,云端设备可以根据其接收到的测试环境,通过云端设备的硬件电路配置其中的人工智能处理器的运行环境参数,从而使得该云端设备中的人工智能处理器的当前运行环境参数与端侧的人工智能处理器的设备信息一致,进而可以通过在云端设备的人工智能处理器上模拟端侧的人工智能处理器的运行过程。应当清楚的是,本申请实施例中,云端设备的人工智能处理器的当前运行环境参数可以与其实际运行环境参数相同,也可以与其实际运行参数不同。进一步地,还可以根据云端设备地人工智能处理器对特定处理任务的测试结果,确定端侧的人工智能处理器的设备信息是否符合预期条件。当端侧的人工智能处理器的设备信息不符合预期条件时,可以进一步调整端侧的人工智能处理器的设备信息,直至该端侧的人工智能处理器的设备信息符合预期条件。
例如,云端设备的人工智能处理器对特定处理任务的测试结果可以包括功耗。当人工智能处理器处理任务时的功耗不满足预期条件时,可以根据频率值调节功耗,也可以根据功耗值调节功耗,直至功耗符合预期条件。
具体地,根据频率值调节功耗是指,人工智能软件开发平台所在的处理器(即指运行所述人工智能软件开发平台的处理器)可以根据其获取的目标芯片的主频率(该目标芯片的主频率可以是用户通过人工智能软件开发平台输入的),重新配置目标芯片的运行主频率对应的第一寄存器值。之后,云端设备中的处理器(例如,云端设备的MCU)可以从该第一寄存器中读取重新配置好的频率值,继而云端设备可以根据其读取的频率值,配置云端设备的人工智能处理器的当前运行环境参数(包括云端设备的人工智能处理器的主频率),直至云端设备的人工智能处理器在当前运行环境参数获得的第一测试结果符合功耗的要求,从而达到调节功耗的目的。
上述的根据功耗值调节功耗是指,人工智能软件开发平台所在的处理器(即指运行所述人工智能软件开发平台的处理器)可以接收用户输入的功耗(power)值,并将该power值存储在第三寄存器中。之后,云端设备可以从该第三存储器中读取power值,并根据power值从预置的频率和功耗的对应关系中确定当前power值对应的频率值,继而,通过调整第一寄存器的值,直至云端设备的人工智能处理器在当前运行环境参数获得的第一测试结果符合功耗的要求,从而实现功耗调节。从上述描述可以知道的是,根据频率值调节功耗的间接调节方式与根据功耗值调节功耗的直接调节方式均为重新设置目标芯片的运行主频率的第一寄存器值,当上述两种调节方式处于并行状态时,容易带来冲突问题。在此基础上,通过设置上述两种调节方式处于互斥状态,可以解决上述冲突问题。
本申请实施例中,通过对云端设备的运行环境参数进行调整,使得云端设备中的同一人工智能处理器能够模拟多个不同的端侧的人工智能处理器,从而即使端侧的人工智能处理器处于未流片状态,也能够实现对该未流片的人工智能处理器的设备信息进行调试,及算法模型与该未流片的人工智能处理器的匹配及调试。进一步地,当人工智能处理器处理任务时的功耗不满足预设条件时,可以根据频率值调节功耗,也可以根据功耗值调节功耗,并提出了一种冲突解决方法来解决两种调节方式处于并行状态时带来的冲突问题,可以提高测试效率。
而现有技术中,只有当人工智能芯片流片成功后,开发者才能在对应版本的人工智能处理器(硬件实体)上进行开发和测试。基于现有技术的技术现状,本领域的技术人员并不会想到在同一人工智能处理器上模拟多个不同的人工智能处理器,更不会想到在人工智能处理器处理任务时的功耗不满足预设条件的情况下,通过设置两种功耗调节方式处于互斥状态,来解决两种功耗调节方式处于并行状态时带来的冲突问题。
进一步可选地,软件开发平台对客户提供的算法模型经过一系列处理,得到对应的机器学***台上对机器学习任务进行调整,实现端侧的人工智能处理器与算法模型之间的适配。
基于此,本申请实施例提供了一种测试方法,用户通过在人工智能软件开发平台设置不同型号的芯片所需的测试环境,从而进一步实现在同一云端设备(如板卡)上针对多种端侧人工智能芯片的调试以及测试过程。进一步地,当测试结果不满足预设条件时(例如,功耗过大),可以通过设置两种功耗调节方式处于互斥状态,来解决两种功耗调节方式处于并行状态时带来的冲突问题。可以理解的是,由于这一实现方式可以避免出现冲突问题,从而可以提高测试效率。
参见图1所示,是本申请实施例提供的一种人工智能软件开发平台的***架构图,如图 1所示,该***架构可以包括:云端设备101、人工智能软件开发平台102以及端侧设备103,其中,该端侧设备可以是手机等终端设备,也可以是摄像头等边缘端设备。
其中,人工智能软件开发平台102提供了用于应用开发、性能调优、功能调试等一系列工具包。其中,应用开发工具包括机器学***台可以运行在云端设备上,也可以运行在本地(host)的计算机设备上,该本地的计算机设备可以包括通用处理器(如CPU)和显示器等,此处不做具体限定。进一步可选地,上述人工智能软件开发平台可以以客户端的形式运行在本地的计算机设备上,或者云端设备上,本申请实施例不作具体限定。
可选地,云侧设备101是完整的计算机***,云端设备101中包括服务器板卡,该服务器板卡可以包括至少一个人工智能处理器,该人工智能处理器可以是基于非重构体系结构的处理器或基于可重构体系结构的处理器。进一步可选地,该服务器板卡还可以包括CPU等通用处理器,FPGA等处理器等等。
具体实现中,端侧设备可以是未流片状态的设备,也可以是已流片的设备。端侧设备103用于部署离线运行文件以及已经流片成功的目标芯片。可选地,离线运行文件为云端设备中的人工智能处理器在处理预设任务的过程中,其运行结果满足设定好的条件时对应的二进制指令经过固化操作得到的。基于云端设备101生成的离线运行文件可以迁移部署在本申请实施例所涉及的端侧设备103中,从而可以实现离线运行文件的无缝迁移。本申请实施例中,为了能够实现离线运行文件既可以运行在云端设备的人工智能处理器上,也可以运行在端侧设备上,且机器学习任务在云端设备的人工智能处理器上执行时生成的运行结果与在端侧设备上执行时生成的运行结果完全一致或在一定的允许误差范围之内,在本技术方案中,云端设备的人工智能处理器的硬件架构信息兼容端侧设备的硬件架构信息,云端设备的人工智能处理器的指令集兼容端侧设备的指令集,从而可以实现离线运行文件的无缝迁移。这样,可以提高该离线运行文件的可移植性,进而提高该***架构的运算能力及效率。同时,编程人员无需针对端侧设备和云端设备分别进行编程及调试,简化了编程过程。
进一步可选地,当云端设备中存在多种不同架构的人工智能处理器时,软件开发平台可以根据该目标芯片的设备信息,从云端设备的多种人工智能处理器中选择一个与其硬件架构信息适配的人工智能处理器,之后再将根据该目标芯片的设备信息确定的第一测试环境发送至云端设备,以配置该云端设备中该选定的人工智能处理器的当前运行环境参数。
为了便于更好的理解本申请实施例提供的一种测试方法,下面先对本申请实施例所描述的方法可以适用的应用场景进行阐述。
在其中一个可能的实现方式中,如图2所示的本申请实施例提供的测试方法的应用场景示意图,可以包括云端设备以及人工智能软件开发客户端。具体地,云端设备可以包括处理器和至少一个人工智能处理器。在本申请实施例中,人工智能处理器可以包括8个集群 (cluster),每个cluster中包括4个人工智能处理器核。进一步可选地,云端设备上运行有人工智能软件开发客户端。
具体实现中,云端设备上的处理器获取目标芯片的第一设备信息,这里,第一设备信息包括所述目标芯片的芯片运行环境参数(例如,芯片运行环境参数包括目标芯片的运行主频率以及所述目标芯片的访存带宽)。之后,处理器根据目标芯片的第一设备信息确定第一测试环境,这里,第一测试环境包括所述目标芯片的主频率、所述目标芯片的访存带宽以及所述目标芯片的计算能力。其中,目标芯片的访存带宽可以是各个cluster的访存带宽值,也可以是各个人工智能处理器核的访存带宽。
在软件开发平台102确定了第一测试环境之后,将其发送给云端设备。在这种情况下,云端设备可以将其上的人工智能处理器的当前运行环境参数设置为与所述目标芯片的第一设备信息一致,从而人工智能处理器在该运行环境参数下处理预设任务。可选地,在人工智能处理器处理预设任务时,通过硬件监测程序监控人工智能处理器在当前运行环境参数下的测试结果,该测试结果用于指示人工智能处理器处理预设任务的处理性能。例如,测试结果可以包括功耗。当功耗不满足预设条件时,可以根据频率值调节功耗,也可以根据功耗值调节功耗,直至功耗满足预设条件,从而可以基于该人工智能处理芯片实现目标芯片的提前调试、测试过程。进一步地,通过设置两种功耗调节方式处于互斥状态来避免出现前一次功耗调节的操作被后一次的功耗调节操作所覆盖,解决了两种功耗调节方式处于并行状态下的冲突问题。
需要说明的是,在实际应用中,人工智能处理器处理预设任务的过程,从实质上来看,是指:运行与预设任务适配的二进制指令,得到上述二进制指令对应的运行结果的过程。这里,运行结果包括目标芯片处理预设任务的精度等。当运行结果满足设定好的条件时(例如,目标芯片处理预设任务的精度满足设定好的阈值),可以对二进制指令进行固化,从而可以得到经过固化后的离线运行文件。具体实现中,离线运行文件可以运行在待部署的端侧设备上。从上述实现流程可以知道,通过将云端设备中的人工智能处理器的芯片运行环境参数设置为与目标芯片的运行环境参数相等,从而可以基于该人工智能处理芯片实现目标芯片的提前调试、测试过程。
需要说明的是,在本申请实施例中,云端设备中的人工智能处理器的计算能力大于或等于目标芯片的计算能力,人工智能处理器的运行环境参数范围可以涵盖目标芯片的运行环境参数(例如,所述目标芯片的运行主频率小于或等于所述人工智能处理器的实际主频率;所述目标芯片的访存带宽小于或等于所述人工智能处理器的实际访存带宽),也就是说,云端设备的人工智能处理器的硬件架构信息兼容端侧设备的硬件架构信息,从而可以实现在同一个人工智能处理器上模拟多种未流片的目标芯片的测试环境,进而基于确定好的测试环境实现目标芯片的提前调试、测试过程。进一步地,通过设置两种功耗调节方式处于互斥状态来避免出现前一次功耗调节的操作被后一次的功耗调节操作所覆盖,解决了两种功耗调节方式处于并行状态下的冲突问题。
在其中另一个可能的实现方式中,如图3示出的本申请实施例提供的另一种测试方法的应用场景示意图,可以包括端侧设备、云端设备以及人工智能软件开发客户端。
具体实现中,人工智能软件开发客户端运行在本地计算机设备上。如前所述,该本地的计算机设备可以包括通用处理器(如CPU)和显示器等。用户1通过第一账号登录该人工智能软件开发客户端,在用户1成功登录人工智能软件开发客户端之后,通过本地计算机设备中的处理器获取目标芯片的第一设备信息,如前所述,第一设备信息包括所述目标芯片的芯片运行环境参数(例如,芯片运行环境参数包括目标芯片的运行主频率、访存带宽)。之后,本地计算机设备中的处理器根据目标芯片的第一设备信息确定第一测试环境,这里,第一测试环境包括所述目标芯片的主频率、所述目标芯片的访存带宽以及所述目标芯片的计算能力。在确定了第一测试环境之后,处理器通过本地计算机设备中的收发器将第一测试环境发送给云端设备。在这种情况下,云端设备可以将其上的人工智能处理器的当前运行环境参数设置为与所述目标芯片的第一设备信息一致,从而人工智能处理器在该运行环境参数下处理预设任务。进一步可选地,在人工智能处理器处理预设任务时,通过硬件监测程序监控人工智能处理器在当前运行环境参数下的测试结果,该测试结果用于指示人工智能处理器处理预设任务的处理性能。例如,测试结果可以包括功耗。当功耗不满足预设条件时,可以根据频率值调节功耗,也可以根据功耗值调节功耗,直至功耗满足预设条件,从而可以基于该人工智能处理芯片实现目标芯片的提前调试、测试过程。进一步地,通过设置两种功耗调节方式处于互斥状态来避免出现前一次功耗调节的操作被后一次的功耗调节操作所覆盖,解决了两种功耗调节方式处于并行状态下的冲突问题。
需要说明的是,在实际应用中,人工智能处理器处理预设任务的过程,从实质上来看,是指:运行与预设任务适配的二进制指令,得到上述二进制指令对应的运行结果的过程。这里,运行结果包括目标芯片处理预设任务的精度等。当运行结果满足设定好的条件时(例如,目标芯片处理预设任务的精度满足设定好的阈值),可以对二进制指令进行固化,从而可以得到经过固化后的离线运行文件。具体实现中,离线运行文件可以运行在待部署的端侧设备上。从上述实现流程可以知道,通过将云端设备中的人工智能处理器的芯片运行环境参数设置为与目标芯片的运行环境参数相等,从而可以基于该人工智能处理芯片实现目标芯片的提前调试、测试过程。
需要说明的是,在本申请实施例中,云端设备中的人工智能处理器的硬件架构信息(例如,硬件架构信息包括版本信息以及型号信息,其中,型号信息可以表征人工智能处理器的计算能力)大于或等于目标芯片的计算能力,人工智能处理器的运行环境参数范围可以涵盖目标芯片的运行环境参数(例如,所述目标芯片的运行主频率小于或等于所述人工智能处理器的实际主频率;所述目标芯片的访存带宽小于或等于所述人工智能处理器的实际访存带宽),也就是说,云端设备的人工智能处理器的硬件架构信息兼容端侧设备的硬件架构信息,从而可以实现在同一个人工智能处理器上模拟多种不同型号的目标芯片的测试环境,进而基于确定好的测试环境实现端侧人工智能芯片的提前调试、测试过程。进一步地,通过设置两种功耗调节方式处于互斥状态来避免出现前一次功耗调节的操作被后一次的功耗调节操作所覆盖,解决了两种功耗调节方式处于并行状态下的冲突问题。
基于上述应用场景,下面结合图4所示的本申请实施例提供的一种测试方法的流程示意图,具体说明在本申请实施例中是如何实现针对目标芯片的提前调试以及测试过程,可以包括但不限于如下步骤:
步骤S400、处理器获取目标芯片的第一设备信息;
具体实现中,目标芯片可以为处于未流片状态下的芯片,也可以为已流片的芯片。该处理器可以是云端设备的处理器,也可以是本地计算机设备的处理器。
具体地,所述目标芯片的第一设备信息可以包括目标芯片的硬件架构信息和芯片运行环境参数。例如,目标芯片的硬件架构信息可以包括目标芯片的版本、目标芯片的型号信息(在实际应用中,目标芯片的型号信息可以表征目标芯片的计算能力)。目标芯片的运行环境参数可以包括目标芯片的运行主频率和访存带宽。这里,目标芯片的运行主频率是指芯片在单位时间内发出的脉冲数。具体来说,脉冲是一种特殊的电压或电流变化。在实际应用中,芯片的运行主频率用于衡量芯片的处理速度。例如,芯片的主频率越高,其运算速度就越快。访存带宽是指,外部动态随机存取存储器DRAM到芯片之间的存储带宽。
步骤S402、处理器根据所述目标芯片的第一设备信息确定第一测试环境。
具体地,在本申请实施例中,第一设备信息与第一测试环境之间一一对应,如前所述,第一设备信息包括所述目标芯片的硬件架构信息、目标芯片的运行主频率以及访存带宽,处理器根据第一设备信息确定好的第一测试环境中,第一测试环境包括所述目标芯片的主频率、所述目标芯片的访存带宽和所述目标芯片的计算能力。
在其中一个可能的实现方式中,所述根据所述目标芯片的第一设备信息确定第一测试环境,包括:
根据预置的设备信息和测试环境之间的对应关系,确定所述目标芯片的第一设备信息对应的第一测试环境。
具体来说,处理器可以根据不同的目标芯片的设备信息确定不同的测试环境,也即,设备信息与测试环境之间存在一一对应关系。例如,设备信息和测试环境之间的对应关系可以包括但不限于表1所示:
表1设备信息与测试环境之间的对应关系表
设备信息 | 测试环境 |
设备信息1 | 测试环境1 |
设备信息2 | 测试环境2 |
设备信息3 | 测试环境3 |
如表1所示,处理器根据设备信息1确定好的测试环境为测试环境1;处理器根据设备信息2确定好的测试环境为测试环境2;处理器根据设备信息3确定好的测试环境为测试环境3。
在一种可能的实现方式中,处理器根据第一设备信息确定好的第一测试环境与云端设备中的人工智能处理器的实际环境相同,例如,根据第一设备信息确定好的第一测试环境为:目标芯片的计算能力为第一计算能力,目标芯片的运行主频率为1GHz,目标芯片的访存带宽为32GB/s。而云端设备中人工智能处理器的实际环境为:计算能力为第一计算能力,运行主频率为1GHz,访存带宽为32GB/s。在这种情况下,云端设备中的人工智能处理器可以基于自身原本的实际环境模拟目标芯片的测试环境。
在其中一个可能的实现方式中,处理器根据第一设备信息确定好的第一测试环境与云端设备中的人工智能处理器的实际环境不同,例如,根据第一设备信息确定好的第一测试环境为:目标芯片的计算能力为第二计算能力(该第二计算能力可能小于或等于云端设备的人工智能处理器的实际计算能力),目标芯片的运行主频率为500Hz,目标芯片的访存带宽为 32GB/s。而云端设备中人工智能处理器的实际环境为:人工智能处理器的计算能力为第一计算能力,运行主频率为1GHz,访存带宽为32GB/s。在这种情况下,云端设备可以将其上的人工智能处理器的实际环境调整为与上述测试环境一致,从而可以模拟目标芯片的测试环境。
在其中一个可能的实现方式中,所述根据所述目标芯片的第一设备信息确定第一测试环境,还包括:
接收输入的配置文件;
根据所述配置文件确定所述目标芯片的第一设备信息对应的第一测试环境。
例如,输入的配置文件可以如下所示:
/proc/driver/cambricon/mlus/(bdf number)/config
enable 1
freq 500 cluster 8 bandwidth 32 32 32 32 32 32 32 32 capability 1H8(这里,1H8可以表征计算能力)
enable 0
这里,bdf number,也即标识信息,用于区分不同的多卡环境。
enable为使能标志位,1表示的enable,0表示disable。
根据上述配置文件确定好的所述目标芯片的第一设备信息对应的测试环境为:目标芯片的频率为500Hz,目标芯片8个集群(cluster)的访存带宽为30GB/s,目标芯片的计算能力为第一计算能力。
步骤S404、处理器发送所述第一测试环境至云端设备,以确定所述云端设备中人工智能处理器的当前运行环境参数。
可选地,所述的根据所述目标芯片的第一设备信息确定第一测试环境,发送所述第一测试环境至云端设备,还包括:
根据所述目标芯片的芯片运行环境参数,确定至少一个第一寄存器的值以及至少一个第二寄存器的值;
发送所述至少一个第一寄存器的值和所述至少一个第二寄存器的值至所述云端设备。
例如,在本申请实施例中,第一寄存器用于记录并存储频率值,第二寄存器用于记录并存储访存带宽值。具体地,第一寄存器以及第二寄存器的数量均为至少一个,例如,第一寄存器的数量为1个,第二寄存器的数量可以等于人工智能处理器中集群的数量,具体可以为 8个。软件开发平台对应的处理器可以根据其获取的目标芯片的芯片运行环境参数,确定第一寄存器的值以及各个第二寄存器的值。
步骤S406、云端设备接收所述第一测试环境,根据所述第一测试环境设置云端设备的人工智能处理器的当前运行环境参数,使所述人工智能处理器的当前运行环境参数与所述目标芯片的第一设备信息一致。
具体地,云端设备在接收到第一测试环境之后,将其中的人工智能处理器的当前运行环境参数设置为与所述第一设备信息相等。可以理解的是,云端设备将人工智能处理器的当前运行环境参数设置为与所述第一设备信息相等的这一过程,依赖于对应的硬件设备(例如,云端设备的微控制单元MCU)来完成,例如,MCU可以通过屏蔽云端设备的人工智能处理器的部分功能,使得云端设备的人工智能处理器能够模拟端侧设备。当然,在其他实施例中,云端设备的人工智能处理器还可以根据其当前运行环境参数屏蔽其自身的部分功能,使得云端设备的人工智能处理器能够模拟端侧设备。参见图5A,是本申请实施例提供的一种硬件设备配置频率值、访存带宽值以及计算能力模式值的过程示意图。
本申请实施例中,软件开发平台102通过驱动更改同一云端设备的人工智能处理器所支持的不同的运行环境参数,使得高配置版本的人工智能处理器中的部分功能被屏蔽,仅仅在实现的功能上与对应的端侧设备的功能相适配。因此,高配置版本的人工智能处理器的芯片运行环境参数的取值范围包含端侧的人工智能处理器所支持的不同的芯片运行环境参数。
可选地,通过硬件监测程序获取人工智能处理芯片在处理预设任务时的第一测试结果。在实际应用中,硬件监测程序可以运行在处理器上,也可以运行在人工智能处理器上,本申请实施例不作具体限定。进一步可选地,该硬件监测程序可以是软件开发平台的一部分,用户可以通过该硬件监测程序实时获得云端设备的人工智能处理器的当前运行环境参数。
为了便于阐述,在本申请实施例中,以硬件监测程序(Cambricon NeuwareMinitor, CNMON)运行在人工智能处理器为例进行阐述。
具体实现中,硬件监测程序将人工智能处理器的主频率、访存带宽值以及计算能力模式值写入到proc文件中,proc_write将频率值和访存带宽值换算为对应的寄存器值,并分别写入各自对应的寄存器中。这里,主频率对应的寄存器为第一寄存器,n个cluster各自的带宽对应的n个寄存器分别为第二寄存器[n],计算能力模式值保存到人工智能处理器的私密数据(private data)中。
这里,主频率与寄存器值之间的换算关系可以表示为:
主频率=25*(fbdiv*refdiv)/(postdiv1*postdiv2)
在上述主频率与寄存器值的换算关系表达式中,fbdiv(PLL feedback dividevalue,fbdiv) 表示PLL反馈分频系数,refdiv(reference divide value,refdiv)表示参考时钟分频系数,postdiv1 (post divide1,postdiv1)表示输出分频系数1,postdiv2(post divide2,postdiv2)表示输出分频系数2。
访存带宽值与寄存器值之间的换算关系可以表示为:
访存带宽值=对应寄存器值/0×100
在上述访存带宽值与寄存器值的换算关系表达式中,这里100为用十六进制表示的十进制数256。
之后,硬件监测器工具CNMON通过调用获取频率或带宽的接口,读取寄存器值,并将其换算为对应的真实值。而计算能力模式值传递给运行时(runtime)。这里,运行时是指一个程序在运行的状态。也就是说,当你打开一个程序使它在计算机设备上运行的时候,那个程序就是处于运行时。
最终,处理器会根据对应至少一个第一寄存器中写入的频率值以及至少一个第二寄存器写入的访存带宽值分别进行频率和带宽的调节工作,从而将人工智能处理器的当前运行环境参数设置为与目标芯片的第一设备信息相等。人工智能处理器根据其接收到的计算能力模式值设置其自身的硬件架构信息。具体地,将自身的芯片运行环境参数设置为与目标芯片的运行环境参数相等。可以理解的是,人工智能处理器在设置好了自身的芯片的运行环境参数之后,可以在运行环境下处理预设任务。
进一步可选地,当云端设备中存在多个不同型号的人工智能处理器时,云端设备可以根据其接收到的目标芯片的硬件架构信息,从多个不同型号的人工智能处理器中选定一个与该目标芯片适配的人工智能处理器。
步骤S408、当人工智能处理器设置完自身的运行环境参数之后,在所述当前运行环境参数下处理预设任务,获得第一测试结果。
这里,处理预设任务是指在当前的运行环境参数下运行与预设任务匹配的离线运行文件,继而得到运行离线运行文件对应的运行结果。
接下来具体阐述处理器是如何生成离线运行文件的:
具体实现中,处理器根据获取到目标芯片的第一设备信息,在人工智能软件开发平台中设置编译接口对应的软件参数,软件参数是指为目标芯片配置的机器学习库CNML中不同功能模块间的传递参数。之后,处理器根据该软件参数生成目标芯片的二进制指令。
具体地,处理器根据软件参数生成目标芯片的二进制指令,可以包括:
处理器结合编程框架获取的机器学习模型,调用机器学习库内部编译接口进行编译,在编译过程完成之后,可以得到二进制指令。进一步地,通过上述步骤S400-步骤S406,通过驱动配置相应的硬件运行环境,之后,通过人工智能处理器运行生成的二进制指令,可以得到二进制指令对应的运行结果。
当处理器确定人工智能处理器发送的运行某一个二进制指令时的运行结果满足设定好的阈值时,处理器获取所述运行结果对应的二进制指令,并对该二进制指令进行固化,得到固化后的离线运行文件。这里,离线运行文件为允许运行在目标芯片上,并且离线运行文件包括用于表征自身属性的信息。例如,离线运行文件包括:离线模型的版本、人工智能处理器核的版本信息、二进制指令、常数表、输入/输出数据规模、数据布局描述信息和参数信息。
具体来说,离线模型的版本是指离线运行文件的版本信息;人工智能处理器核的版本信息是指目标芯片的硬件架构信息;数据布局描述信息是指基于硬件特性对输入/输出数据进行处理;常数表、输入/输出数据规模和参数信息基于开发好的深度学习算法模型。在常数表中,存储有执行二进制指令运算过程中需要使用的数据。
在实际应用中,处理器可以通过设备(例如,云端设备)的通信接口将上述离线运行文件发送至端侧设备。在这种情况下,对于端侧设备来说,端侧设备在接收了云端设备发送的离线运行文件之后,可以在端侧设备上解析并运行所述离线运行文件,并得到满足前述设定好的阈值的运行结果。
需要说明的是,在其中一个可能的实现方式中,端侧设备上的目标芯片在运行上述离线运行文件得到的运行结果与云端设备上的人工智能处理器运行同一个离线运行文件得到的运行结果一致。
在其中一个可能的实现方式中,端侧设备上的目标芯片在运行上述离线运行文件得到的运行结果与云端设备上的人工智能处理器运行同一个离线运行文件得到的运行结果之间满足预设的误差范围。
可以理解的是,对于端侧设备来说,在端侧设备的硬件流片之前,云端设备可以实现目标芯片的调试以及测试过程,继而,可以将运行结果满足设定好的阈值所对应的离线运行文件部署在与目标芯片的设备信息匹配的端侧设备上,从而可以实现离线运行文件的无缝迁移。
在实际应用中,前述所描述的配置驱动运行环境以及生成离线运行文件之后,人工智能处理器可以处理预设任务。在本申请实施例中,并不限定配置驱动运行环境和生成离线运行文件的步骤的先后顺序。
当人工智能处理器在处理预设任务时,运行在人工智能处理器上的硬件监测器工具 CNMON获取人工智能处理器在当前运行环境下处理上述预设任务时的第一测试结果,这里,第一测试结果用于指示所述人工智能处理器处理所述预设任务的处理性能。进一步地,第一测试结果可以包括所述目标芯片处理所述预设任务的功耗。
具体地,预设条件中的功耗可以包括设定好的目标芯片处理预设任务时的最大限额功耗,也可以为设定好的目标芯片处理预设任务时的功耗范围,本申请实施例不作具体限定。
步骤S4010、人工智能处理器将第一测试结果发送给处理器。
步骤S4012、处理器接收所述人工智能处理器在所述当前运行环境下,处理所述预设任务时的第一测试结果。
步骤S4014、若所述第一测试结果不符合预设条件,则根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件。
在本申请实施例中,预设切换条件可以包括标志位的值。
具体地,所述标志位的值可以为软件开发平台的处理器根据用户输入的使能指令设置第一配置方式或者第二配置方式的使能标志位得到的。这里,使能指令包括频率调节使能指令或者功耗调节使能指令。当使能指令为频率调节使能指令时,该指令用于指示软件开发平台的处理器根据第一配置方式调节功耗,在这种情况下,设置第一配置方式的使能标志位处于使能状态,例如,enable_a=1。当使能指令为功耗调节指令时,该指令用于指示软件开发平台的处理器根据第二配置方式调节功耗,在这种情况下,设置第二配置方式的使能标志位处于使能状态,例如,enable_b=1。
在本申请实施例中,第一配置方式包括根据频率值调节功耗;第二配置方式包括根据功耗值调节功耗。进一步地,软件开发平台的处理器为第一配置方式设置了一个使能标志位(例如,第一标志位),该使能标志位用于记录第一配置方式处于使能状态(enable)或非使能状态(disable)。同样地,软件开发平台的处理器为第二配置方式设置了一个使能标志位(例如,第二标志位),该使能标志位用于记录第二配置方式处于使能状态(enable)或非使能状态 (disable)。例如,1表示enable,0表示disable。
如前所述,第一寄存器用于记录并存储运行主频率值。而不管是第一配置方式还是第二配置方式都需要设置第一寄存器的值,从而使得第一配置方式和第二配置方式之间存在冲突。在本申请实施例通过设置频率调节功能的第一标志位与功耗调节功能的第二标志位不能同时为1,也即,频率调节功能与功耗调节功能处于互斥状态,以解决上述冲突问题。
具体地,当第二配置方式的标志位为1时,软件开发平台所在的处理器根据其接收的功耗值配置第三寄存器的值,云端设备可以根据该第三寄存器的值配置第一寄存器值。其中,第三寄存器用于记录并存储功耗值。进一步可选地,第三寄存器包括至少N个比特位,例如, N=8,其中,所述至少N个比特位中的第一比特位用于表征第二配置方式的标志位,所述第一比特位包括所述至少N个比特位中的第0比特位或第N-1比特位。例如,第7比特位为使能标志位。第一比特位可以为使能状态或非使能状态。具体地,参见图5B,是本申请实施例提供的一种硬件设备配置功耗值的过程示意图。例如,第三寄存器包括8个比特位,其中,第7比特位为使能标志位,此时,第0比特位-第6比特位之间的这7个比特位用于写入功耗值。之后,云端设备的微控制单元MCU通过获取写入的功耗值来实现功耗的调节。
在其中一个可能的实现方式中,上述步骤S4014,根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
根据预设切换条件,重新获取所述目标芯片的功耗值;
根据所述功耗值配置寄存器的值,以根据第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
具体地,所述根据所述功耗值配置寄存器的值,包括:
A1、根据接收到的功耗值,确定至少一个第三寄存器的值;其中,所述第三寄存器用于记录并存储功耗值;其中,该功耗值可以是用户通过软件开发平台输入的。进一步地,用户可以根据预设的调节步长调整功耗值,例如,该调节步长可以为5W。当然,在其他实施例中,该功耗的调节步长也可以是变步长,即可以根据第一测试结果与预期功耗值之间的误差进行调整。此处仅举例说明功耗值的调节方式,并不用限定具体的调节方式。
A2、发送所述至少一个第三寄存器的值至所述云端设备,以使所述云端设备根据预置的频率和功耗的对应关系确定所述功耗值对应的频率值,其中,所述功耗值对应的频率值用于重新确定所述至少一个第一寄存器的值,以重新设置所述云端设备的人工智能处理器的当前运行环境参数。
接下来具体介绍如何根据第二配置方式进行功耗调节:
例如,软件开发平台的处理器在接收到功耗调节使能指令时,此时,功耗调节功能开启,该处理器根据功耗调节使能指令设置第二配置方式的使能标志位处于使能状态,也即,将第二标志位设置为处于使能状态。在这种情况下,软件开发平台的处理器获取第二标志位的值,例如,第二标志位的值为1,此时,处理器确定选择第二配置方式,也就意味着,在功耗调节使能指令的触发下,处理器根据功耗值调节功耗。在这种情况下,软件开发平台的处理器可以接收用户输入的power值,并将该power值存储在第三寄存器中。之后,云端设备可以从该第三寄存器中读取该power值,并power值从预置的频率和功耗的对应关系中确定当前的power值对应的频率值,继而,通过调整频率值对应的第一寄存器实现功耗的调节。
进一步地,在根据power值完成功耗的调节后,可以将第二配置方式对应的标志位设置为0。可选地,软件开发平台的处理器可以根据获取的第一寄存器的值确定是否将第二配置方式对应的标志位设置为0。具体地,当需要将第二配置方式对应的标志位从1调整为0时,可以通过轮询机制确定所述第一寄存器的值是否已经恢复成第二预设值,只有第一寄存器中的频率值已经被恢复成第二预设值的情况下,将第二配置方式的使能标志位设置为第三预设值,例如,第三预设值为0,表示非使能状态。当第二配置方式的使能标志位为第三预设值时,表明功耗调节功能关闭。这里,如前所述,第二预设值为设定的频率值数值范围内的某个值,并且,该第二预设值小于人工智能处理器当前运行环境参数中的目标芯片的运行主频率。类似的,当MCU执行上述恢复操作的时长大于设定好的预设时长时,报错。可以理解的是,若MCU检测到功耗调节功能的第一比特位为0时,第一寄存器中的频率值为上述第二预设值,此时,MCU无需将第一寄存器值恢复成第二预设值。需要说明的是,当第一寄存器的值恢复为第二预设值时,这说明功耗调节操作已经执行完毕,不会对下一次根据频率值调节功耗的操作产生影响,从而可以避免两种功耗调节方式出现冲突的情形。
在其中一个可能的实现方式中,上述步骤S4014,根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
根据所述预设切换条件,重新获取所述目标芯片的第一设备信息;
根据所述第一设备信息配置寄存器的值,以根据所述第一配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
具体实现中,所述第一设备信息包括所述目标芯片的运行环境参数,所述目标芯片的运行环境参数包括所述目标芯片的运行主频率;所述根据所述第一设备信息配置寄存器的值,包括:
根据所述目标芯片的运行环境参数,确定至少一个第一寄存器的值;其中,所述第一寄存器用于记录并存储所述目标芯片的运行主频率;
发送所述至少一个第一寄存器的值至所述云端设备,以使所述云端设备根据所述至少一个第一寄存器的值重新设置所述云端设备的人工智能处理器的当前运行环境参数。
进一步地,所述第一设备信息还包括所述目标芯片的硬件架构信息;所述根据所述第一设备信息配置寄存器的值,还包括:
将所述目标芯片的硬件架构信息传送至所述云端设备的人工智能处理器。
在实际应用中,两种功耗调节的具体实现可以如图6A所示,例如,软件开发平台的处理器在接收到频率调节使能指令时,频率调节功能开启,此时,该处理器根据频率调节使能指令设置第一配置方式的使能标志位处于使能状态,也即,将第一标志位设置为处于使能状态。在这种情况下,软件开发平台的处理器获取第一标志位的值,例如,第一标志位的值为 1,此时,处理器确定选择第一配置方式,也就意味着,在频率调节使能指令的触发下,处理器根据频率值调节功耗。例如,当前的目标芯片的运行主频率小于之前的目标芯片的运行主频率。
进一步地,在根据频率值完成功耗的调节后,可以将第一配置方式对应的标志位设置为 0。可选地,软件开发平台的处理器可以根据获取的第一寄存器的值确定是否将第二配置方式对应的标志位设置为0。具体地,软件开发平台的处理器获取目标芯片的运行主频率对应的第一寄存器的值,在选择第一配置方式时,通过轮询机制确定所述第一寄存器的值是否已经恢复成第二预设值,只有第一寄存器中的频率值已经被恢复成第二预设值的情况下,将第一配置方式的使能标志位设置为第三预设值,例如,第三预设值为0,表示非使能状态。当第一配置方式的使能标志位为第三预设值时,表明频率调节功能关闭。这里,第二预设值为设定的频率值数值范围内的某个值,并且,该第二预设值小于人工智能处理器当前运行环境参数中的目标芯片的运行主频率。可以理解的是,在MCU将第一寄存器中的频率值设置为第二预设值的过程中,需要花费一定的时长,当MCU执行上述恢复操作的时长大于设定好的预设时长时,报错。需要说明的是,当第一寄存器的值恢复为第二预设值时,这说明频率驱动操作已经执行完毕,不会对下一次根据功耗值调节功耗的操作产生影响,从而可以避免两种功耗调节方式出现冲突的情形。
为了便于更好的理解本申请实施例所提供的一种测试方法,下面结合具体的实例进行阐述:云端设备中包括处理器和第一人工智能处理器,该第一人工智能处理器的计算能力为第一计算能力(这里,第一计算能力大于或等于第二计算能力),运行主频率为1GHz,访存带宽值为32GB/s。在第一人工智能处理器上,可以模拟第二人工智能处理器(这里,第二人工智能处理器为与第一人工智能处理器不同的芯片)的测试环境,这里,第二人工智能处理器的计算能力为第二计算能力,频率为500Hz,访存带宽为32GB/s。具体来说,处理器在获取到第二人工智能处理器的第一设备信息之后,根据该第一设备信息确定第一测试环境,这里,确定好的第一测试环境为计算能力为第二计算能力,频率为500Hz,访存带宽为32GB/s,之后,将第一测试环境发送给云端设备,云端设备在接收到上述第一测试环境之后,将第一人工智能处理器的当前运行环境参数设置为频率500Hz,访存带宽为32GB/s,并在当前的运行环境参数下处理预设任务。当第一人工智能处理器在当前的运行环境参数下处理预设任务时,运行在人工智能处理器上的硬件监测器工具CNMON获取第一人工智能处理器在当前运行环境下处理上述预设任务时的第一测试结果,整个实现过程可以实现目标芯片的提前调试、测试过程。
进一步地,当云端设备中的处理器确定第一测试结果(例如,功耗)不满足预设条件时,可以根据预设切换条件,选择第一配置方式或者第二配置方式重新配置云端设备中的人工智能处理器的当前运行环境参数,例如,若云端设备的处理器获取第一标志位的值为1,此时,云端设备的处理器根据第一配置方式重新配置云端设备中的人工智能处理器的当前运行环境参数,以实现第一测试结果满足预设条件。此时,可以根据目标芯片的设备信息确定测试环境,并基于该测试环境调整云端设备的人工智能处理器的运行环境参数,以在云端设备的人工智能处理器上实现目标芯片的调试以及测试。再如,若云端设备的处理器获取第二标志位的值为1,此时,云端设备的处理器根据第二配置方式重新配置云端设备中的人工智能处理器的当前运行环境参数,以实现第一测试结果满足预设条件。此时,可以根据获取的功耗值调整目标芯片的主频率,并基于调整后的目标芯片的主频率调整云端设备的人工智能处理器的运行环境参数,以在云端设备的人工智能处理器上实现目标芯片的调试以及测试。
进一步地,第一配置方式和第二配置方式的标志位不能同时为1。即在测试结果(例如,功耗)不满足预设条件的情况下,通过设置两种功耗调节方式处于互斥状态来避免出现前一次功耗调节的操作被后一次的功耗调节操作所覆盖,解决了两种功耗调节方式处于并行状态下的冲突问题。
如图6B所示,为本申请提供的另一种测试方法流程图。所述方法应用于处理器上;包括:
步骤S601):接收云端设备的人工智能处理器在当前运行环境参数下处理预设任务时,获得的第一测试结果;其中,所述云端设备的人工智能处理器的当前运行环境参数是根据目标芯片的第一设备信息确定的;
步骤S602):若所述第一测试结果不符合预设条件,则根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件。
需要强调的是,图4所示的所有相关技术方案内容均适用于图6B所示的技术方案,这里不再赘述。
实施本申请实施例,可以实现在同一个人工智能处理器上模拟多种不同型号的目标芯片的测试环境,进而基于确定好的测试环境实现端侧人工智能芯片的提前调试、测试过程。进一步地,在测试结果(例如,功耗)不满足预设条件的情况下,通过设置两种功耗调节方式处于互斥状态来避免出现前一次功耗调节的操作被后一次的功耗调节操作所覆盖,解决了两种功耗调节方式处于并行状态下的冲突问题。
以上实施例中仅以软件开发平台运行在云端设备上的情况举例说明具体的实现过程,如上文记载,本申请的软件开发平台也可以运行在本地计算机设备上。当该软件开发平台运行在本地计算机设备上时,对云端设备的人工智能处理器的运行环境参数的配置过程与上述实施例基本一致,具体可参见上文的描述。
如图7所示,为本申请实施例提供的一种测试装置70的结构示意图,所述装置包括:处理器单元;其中,
所述处理器单元,用于接收云端设备的人工智能处理器在当前运行环境参数下处理预设任务时,获得的第一测试结果;其中,所述云端设备的人工智能处理器的当前运行环境参数是根据目标芯片的第一设备信息确定的;
所述处理器单元,还用于在所述第一测试结果不符合预设条件时,根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件。
在其中一个可能的实现方式中,所述处理器单元,还用于根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
所述处理器单元,还用于根据所述预设切换条件,重新获取所述目标芯片的第一设备信息;
所述处理器单元,还用于根据所述第一设备信息配置寄存器的值,并将所述寄存器的值发送至所述云端设备,以使所述云端设备根据所述第一配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
在其中一个可能的实现方式中,所述第一设备信息包括所述目标芯片的运行环境参数,所述目标芯片的运行环境参数包括所述目标芯片的运行主频率;所述处理器单元,还用于根据所述第一设备信息配置寄存器的值,包括:
所述处理器单元,还用于根据所述目标芯片的运行环境参数,确定至少一个第一寄存器的值;其中,所述第一寄存器用于记录并存储所述目标芯片的运行主频率;
所述处理器单元,还用于发送所述至少一个第一寄存器的值至所述云端设备,以使所述云端设备根据所述至少一个第一寄存器的值重新设置所述云端设备的人工智能处理器的当前运行环境参数。
在其中一个可能的实现方式中,所述第一设备信息还包括所述目标芯片的硬件架构信息;所述处理器单元,还用于根据所述第一设备信息配置寄存器的值,还包括:
所述处理器单元,还用于将所述目标芯片的硬件架构信息传送至所述云端设备的人工智能处理器。
在其中一个可能的实现方式中,所述处理器单元,还用于根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
所述处理器单元,还用于根据预设切换条件,重新获取所述目标芯片的功耗值;
所述处理器单元,还用于根据所述功耗值配置寄存器的值,并将所述寄存器的值传送至所述云端设备,以使所述云端设备根据第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
在其中一个可能的实现方式中,所述处理器单元,还用于根据所述功耗值配置寄存器的值,包括:
所述处理器单元,还用于根据获取的功耗值,确定至少一个第三寄存器的值;其中,所述第三寄存器用于记录并存储功耗值;
所述处理器单元,还用于发送所述至少一个第三寄存器的值至所述云端设备,以使所述云端设备根据预置的频率和功耗的对应关系确定至少一个第一寄存器的值,以重新设置所述云端设备的人工智能处理器的当前运行环境参数。
在其中一个可能的实现方式中,所述预设切换条件包括标志位的值,所述标志的值用于指示选择第一配置方式或选择第二配置方式;所述处理器单元,还用于根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,包括:
所述处理器单元,还用于获取第一标志位的值和/或第二标志位的值;
所述处理器单元,还用于当所述第一标志位的值为第一预设值时,确定选择所述第一配置方式;
所述处理器单元,还用于当所述第二标志位的值为第一预设值时,确定选择所述第二配置方式。
在其中一个可能的实现方式中,所述处理器单元还用于:
获取所述目标芯片的运行主频率对应的第一寄存器的值;
若所述第一寄存器的值为第二预设值,则将所述第一标志位的值从所述第一预设值调整为第三预设值;
或者,
获取所述目标芯片的运行主频率对应的第一寄存器的值;
若所述第一寄存器的值为所述第二预设值,则将所述第二标志位的值从所述第一预设值调整为所述第三预设值。
实施本申请实施例,可以根据目标芯片的设备信息确定测试环境,并基于该测试环境下实现目标芯片的调试以及测试。进一步地,在测试结果(例如,功耗)不满足预设条件的情况下,通过设置两种功耗调节方式处于互斥状态来避免出现前一次功耗调节的操作被后一次的功耗调节操作所覆盖,解决了两种功耗调节方式处于并行状态下的冲突问题。
如图8所示,为本申请实施例提供的一种测试设备的结构示意图,所述设备包括:存储器及处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现数据处理流程包括:
接收云端设备的人工智能处理器在当前运行环境参数下处理预设任务时,获得的第一测试结果;其中,所述云端设备的人工智能处理器的当前运行环境参数是根据目标芯片的第一设备信息确定的;
若所述第一测试结果不符合预设条件,则根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件。
其中,所述处理器根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件,可以包括:
根据所述预设切换条件,重新获取所述目标芯片的第一设备信息;
根据所述第一设备信息配置寄存器的值,并将所述寄存器的值发送至所述云端设备,以使所述云端设备根据所述第一配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
其中,所述第一设备信息包括所述目标芯片的运行环境参数,所述目标芯片的运行环境参数包括所述目标芯片的运行主频率;所述处理器根据所述第一设备信息配置寄存器的值,包括:
根据获取的所述目标芯片的运行环境参数,确定至少一个第一寄存器的值;其中,所述第一寄存器用于记录并存储所述目标芯片的运行主频率;
发送所述至少一个第一寄存器的值至所述云端设备,以使所述云端设备根据所述至少一个第一寄存器的值重新设置所述云端设备的人工智能处理器的当前运行环境参数。
其中,所述第一设备信息还包括所述目标芯片的硬件架构信息;所述处理器根据所述第一设备信息配置寄存器的值,还可以包括:
将所述目标芯片的硬件架构信息传送至所述云端设备的人工智能处理器。
其中,所述处理器根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
根据预设切换条件,重新获取所述目标芯片的功耗值;
根据所述功耗值配置寄存器的值,并将所述寄存器的值传送至所述云端设备,以使所述云端设备根据第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
其中,所述处理器根据所述功耗值配置寄存器的值,包括:
根据获取的功耗值,确定至少一个第三寄存器的值;其中,所述第三寄存器用于记录并存储功耗值;
发送所述至少一个第三寄存器的值至所述云端设备,以使所述云端设备根据预置的频率和功耗的对应关系确定至少一个第一寄存器的值,以重新设置所述云端设备的人工智能处理器的当前运行环境参数。
其中,所述预设切换条件包括标志位的值,所述标志的值用于指示选择第一配置方式或选择第二配置方式,所述处理器据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,包括:
获取第一标志位的值和/或第二标志位的值;
当所述第一标志位的值为第一预设值时,则确定选择所述第一配置方式;
当所述第二标志位的值为第一预设值时,则确定选择所述第二配置方式。
其中,所述处理器实现测试流程,还可以包括:
获取所述目标芯片的运行主频率对应的第一寄存器的值;
若所述第一寄存器的值为第二预设值,则将所述第一标志位的值从所述第一预设值调整为第三预设值;
或者,
获取所述目标芯片的运行主频率对应的第一寄存器的值;
若所述第一寄存器的值为所述第二预设值,则将所述第二标志位的值从所述第一预设值调整为所述第三预设值。
需要说明的是,本申请实施例中的存储器和处理器实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
在本实施方式中,所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方法的媒体加以存储。本实施方式所述的存储器又可以包括:利用电能方式存储信息的装置,如RAM、ROM等;利用磁能方式存储信息的装置,如硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置,如CD或DVD。当然,还有其他方式的存储器,例如量子存储器、石墨烯存储器等等。
在本实施方式中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit, ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
进一步地,如图9所示,本申请实施例还提供了一种云端设备的结构示意图,该云端设备90至少可以包括:接收单元900、设置单元902、处理单元904以及发送单元906;其中,
接收单元900,用于接收第一测试环境,以确定人工智能处理器的当前运行环境参数;
设置单元902,用于根据所述第一测试环境设置人工智能处理器的当前运行环境参数,使所述人工智能处理器的当前运行环境参数与目标芯片的第一设备信息一致;
处理单元904,用于在所述当前运行环境参数下处理预设任务,获得第一测试结果;
发送单元906,用于将所述第一测试结果发送给处理器。
进一步地,如图10所示,本申请实施例还提供了一种测试***100的示意性框图,该测试***包括计算机设备1010和云端设备1020。其中,所述计算机设备1110包括处理器。
可以理解的是,在本申请实施例中的处理器以及云端设备的具体实现请参考前述描述,此处不多加赘述。
实施本申请实施例,可以实现在同一个人工智能处理器上模拟多种未流片的目标芯片的测试环境,进而基于确定好的测试环境实现目标芯片的提前调试、测试过程。进一步地,在测试结果(例如,功耗)不满足预设条件的情况下,通过设置两种功耗调节方式处于互斥状态来避免出现前一次功耗调节的操作被后一次的功耗调节操作所覆盖,解决了两种功耗调节方式处于并行状态下的冲突问题。
在本实施例中,本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述图4、图6B所示的测试方法。
由上可见,本申请实施例提供一种测试方法及相关产品,可以实现在同一个人工智能处理器上模拟多种未流片的目标芯片的测试环境,进而基于确定好的测试环境实现目标芯片的提前调试、测试过程。进一步地,在测试结果(例如,功耗)不满足预设条件的情况下,通过设置两种功耗调节方式处于互斥状态来避免出现前一次功耗调节的操作被后一次的功耗调节操作所覆盖,解决了两种功耗调节方式处于并行状态下的冲突问题。。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现客户端和服务器以外,完全可以通过将方法步骤进行逻辑编程来使得客户端和服务器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种客户端和服务器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对客户端和服务器的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (18)
1.一种测试方法,其特征在于,包括:
接收云端设备的人工智能处理器在当前运行环境参数下处理预设任务时,获得的第一测试结果;其中,所述云端设备的人工智能处理器的当前运行环境参数是根据端侧设备的目标芯片的第一设备信息确定的,使所述云端设备的人工智能处理器的当前运行环境参数与所述第一设备信息一致;
若所述第一测试结果不符合预设条件,则根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件,所述第一配置方式为根据频率值调节功耗,所述第二配置方式为根据功耗值调节功耗。
2.根据权利要求1所述的方法,其特征在于,所述根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
根据所述预设切换条件,重新获取所述目标芯片的第一设备信息;
根据所述第一设备信息配置寄存器的值,并将所述寄存器的值发送至所述云端设备,以使所述云端设备根据所述第一配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
3.根据权利要求2所述的方法,其特征在于,所述第一设备信息包括所述目标芯片的运行环境参数,所述目标芯片的运行环境参数包括所述目标芯片的运行主频率;所述根据所述第一设备信息配置寄存器的值,包括:
根据获取的所述目标芯片的运行环境参数,确定至少一个第一寄存器的值;其中,所述第一寄存器用于记录并存储所述目标芯片的运行主频率;
发送所述至少一个第一寄存器的值至所述云端设备,以使所述云端设备根据所述至少一个第一寄存器的值重新设置所述云端设备的人工智能处理器的当前运行环境参数。
4.根据权利要求2所述的方法,其特征在于,所述第一设备信息还包括所述目标芯片的硬件架构信息;所述根据所述第一设备信息配置寄存器的值,还包括:
将所述目标芯片的硬件架构信息传送至所述云端设备的人工智能处理器。
5.根据权利要求1所述的方法,其特征在于,所述根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
根据预设切换条件,重新获取所述目标芯片的功耗值;
根据所述功耗值配置寄存器的值,并将所述寄存器的值传送至所述云端设备,以使所述云端设备根据第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
6.根据权利要求5所述的方法,其特征在于,所述根据所述功耗值配置寄存器的值,包括:
根据获取的功耗值,确定至少一个第三寄存器的值;其中,所述第三寄存器用于记录并存储功耗值;
发送所述至少一个第三寄存器的值至所述云端设备,以使所述云端设备根据预置的频率和功耗的对应关系确定至少一个第一寄存器的值,以重新设置所述云端设备的人工智能处理器的当前运行环境参数。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述预设切换条件包括标志位的值,所述标志的值用于指示选择第一配置方式或选择第二配置方式;所述根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,包括:
获取第一标志位的值和/或第二标志位的值;
当所述第一标志位的值为第一预设值时,则确定选择所述第一配置方式;
当所述第二标志位的值为第一预设值时,则确定选择所述第二配置方式。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取所述目标芯片的运行主频率对应的第一寄存器的值;
若确定所述第一寄存器的值为第二预设值,则将所述第一标志位的值从所述第一预设值调整为第三预设值;
或者,
获取所述目标芯片的运行主频率对应的第一寄存器的值;
若所述第一寄存器的值为所述第二预设值,则将所述第二标志位的值从所述第一预设值调整为所述第三预设值。
9.一种测试装置,其特征在于,包括处理器单元,包括:
所述处理器单元,用于接收云端设备的人工智能处理器在当前运行环境参数下处理预设任务时,获得的第一测试结果;其中,所述云端设备的人工智能处理器的当前运行环境参数是根据端侧设备的目标芯片的第一设备信息确定的,使所述云端设备的人工智能处理器的当前运行环境参数与所述第一设备信息一致;
所述处理器单元,还用于在所述第一测试结果不符合预设条件时,根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件,所述第一配置方式为根据频率值调节功耗,所述第二配置方式为根据功耗值调节功耗。
10.根据权利要求9所述的装置,其特征在于,所述处理器单元,还用于根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
所述处理器单元,还用于根据所述预设切换条件,重新获取所述目标芯片的第一设备信息;
所述处理器单元,还用于根据所述第一设备信息配置寄存器的值,并将所述寄存器的值发送至所述云端设备,以使所述云端设备根据所述第一配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
11.根据权利要求10所述的装置,其特征在于,所述第一设备信息包括所述目标芯片的运行环境参数,所述目标芯片的运行环境参数包括所述目标芯片的运行主频率;所述处理器单元,还用于根据所述第一设备信息配置寄存器的值,包括:
所述处理器单元,还用于根据获取的所述目标芯片的运行环境参数,确定至少一个第一寄存器的值;其中,所述第一寄存器用于记录并存储所述目标芯片的运行主频率;
所述处理器单元,还用于发送所述至少一个第一寄存器的值至所述云端设备,以使所述云端设备根据所述至少一个第一寄存器的值重新设置所述云端设备的人工智能处理器的当前运行环境参数。
12.根据权利要求10所述的装置,其特征在于,所述第一设备信息还包括所述目标芯片的硬件架构信息;所述处理器,还用于根据所述第一设备信息配置寄存器的值,还包括:
所述处理器,还用于将所述目标芯片的硬件架构信息传送至所述云端设备的人工智能处理器。
13.根据权利要求9所述的装置,其特征在于,所述处理器单元,还用于根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,直至所述第一测试结果符合所述预设条件包括:
所述处理器单元,还用于根据预设切换条件,重新获取所述目标芯片的功耗值;
所述处理器单元,还用于根据所述功耗值配置寄存器的值,并将所述寄存器的值传送至所述云端设备,以使所述云端设备根据第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数。
14.根据权利要求13所述的装置,其特征在于,所述处理器,还用于根据所述功耗值配置寄存器的值,包括:
所述处理器,还用于根据获取的功耗值,确定至少一个第三寄存器的值;其中,所述第三寄存器用于记录并存储功耗值;
所述处理器,还用于发送所述至少一个第三寄存器的值至所述云端设备,以使所述云端设备根据预置的频率和功耗的对应关系确定至少一个第一寄存器的值,以重新设置所述云端设备的人工智能处理器的当前运行环境参数。
15.根据权利要求9-14任一项所述的装置,其特征在于,所述预设切换条件包括标志位的值,所述标志的值用于指示选择第一配置方式或选择第二配置方式,所述处理器单元,还用于根据预设切换条件,选择第一配置方式或第二配置方式重新配置所述云端设备的人工智能处理器的当前运行环境参数,包括:
所述处理器单元,还用于获取第一标志位的值和/或第二标志位的值;
所述处理器单元,还用于当所述第一标志位的值为第一预设值时,则确定选择所述第一配置方式;
所述处理器单元,还用于当所述第二标志位的值为第一预设值时,则确定选择所述第二配置方式。
16.根据权利要求15所述的装置,其特征在于,所述处理器还用于:
获取所述目标芯片的运行主频率对应的第一寄存器的值;
若确定所述第一寄存器的值为第二预设值,则将所述第一标志位的值从所述第一预设值调整为第三预设值;
或者,
获取所述目标芯片的运行主频率对应的第一寄存器的值;
若所述第一寄存器的值为所述第二预设值,则将所述第二标志位的值从所述第一预设值调整为所述第三预设值。
17.一种测试设备,其特征在于,所述设备包括:存储器及处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器被配置用于调用所述计算机程序,执行如权利要求1-8任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910315915.4A CN111830390B (zh) | 2019-04-18 | 2019-04-18 | 一种测试方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910315915.4A CN111830390B (zh) | 2019-04-18 | 2019-04-18 | 一种测试方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111830390A CN111830390A (zh) | 2020-10-27 |
CN111830390B true CN111830390B (zh) | 2023-08-25 |
Family
ID=72915030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910315915.4A Active CN111830390B (zh) | 2019-04-18 | 2019-04-18 | 一种测试方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111830390B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112672405B (zh) * | 2020-12-15 | 2023-12-08 | Oppo广东移动通信有限公司 | 功耗计算方法、装置、存储介质、电子设备以及服务器 |
CN113434421B (zh) * | 2021-06-30 | 2023-10-24 | 青岛海尔科技有限公司 | 虚拟设备的测试方法及其装置 |
CN117310454B (zh) * | 2023-11-30 | 2024-03-15 | 珠海市芯动力科技有限公司 | 芯片测试方法及相关装置 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778016A (zh) * | 2010-01-01 | 2010-07-14 | 江苏华丽网络工程有限公司 | 网络设备虚拟测试***的设计方法 |
CN103020401A (zh) * | 2013-01-06 | 2013-04-03 | 北京经纬恒润科技有限公司 | Ecu的测试方法、装置和*** |
CN103576073A (zh) * | 2012-07-30 | 2014-02-12 | 合肥科盛微电子科技有限公司 | 一种测试芯片功能的***和方法 |
CN104502690A (zh) * | 2014-12-30 | 2015-04-08 | 中科创达软件股份有限公司 | 一种cpu功耗测试方法和*** |
CN104699214A (zh) * | 2013-12-10 | 2015-06-10 | 展讯通信(上海)有限公司 | 动态电压频率调整装置及方法 |
CN106502361A (zh) * | 2016-10-19 | 2017-03-15 | 盛科网络(苏州)有限公司 | 芯片的功耗调节方法、装置及*** |
CN106569942A (zh) * | 2015-10-08 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种测试方法和装置 |
CN107092555A (zh) * | 2016-08-05 | 2017-08-25 | 北京小度信息科技有限公司 | 一种测试应用程序的方法及*** |
WO2017188749A1 (ko) * | 2016-04-28 | 2017-11-02 | ㈜이노티오 | Ic 칩 테스트 장치, ic 칩 테스트 방법, 및 ic 칩 테스트 시스템 |
CN108226751A (zh) * | 2017-12-14 | 2018-06-29 | 芯海科技(深圳)股份有限公司 | 一种多处理器协同芯片性能评估***及方法 |
CN108710429A (zh) * | 2018-05-22 | 2018-10-26 | Oppo广东移动通信有限公司 | 功耗调节方法、电子装置及计算机可读存储介质 |
CN108803860A (zh) * | 2018-06-26 | 2018-11-13 | 联想(北京)有限公司 | 一种功耗调节方法及电子设备 |
CN108958449A (zh) * | 2017-05-26 | 2018-12-07 | 中兴通讯股份有限公司 | 一种cpu功耗调整方法与装置 |
CN109116970A (zh) * | 2018-08-31 | 2019-01-01 | 中国电子科技集团公司第五十八研究所 | 一种动态电压频率调节***及方法 |
CN109342928A (zh) * | 2018-11-01 | 2019-02-15 | 南京工业大学 | 一种芯片测试装置及方法 |
CN109376055A (zh) * | 2018-09-30 | 2019-02-22 | 联想(北京)有限公司 | 供电管理方法、***和电子设备 |
CN109407986A (zh) * | 2018-10-17 | 2019-03-01 | 深圳市硅格半导体有限公司 | 实时更新设备运行参数的方法、***、服务器及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2849024A1 (en) * | 2013-09-16 | 2015-03-18 | ST-Ericsson SA | Power consumption management system and method |
-
2019
- 2019-04-18 CN CN201910315915.4A patent/CN111830390B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778016A (zh) * | 2010-01-01 | 2010-07-14 | 江苏华丽网络工程有限公司 | 网络设备虚拟测试***的设计方法 |
CN103576073A (zh) * | 2012-07-30 | 2014-02-12 | 合肥科盛微电子科技有限公司 | 一种测试芯片功能的***和方法 |
CN103020401A (zh) * | 2013-01-06 | 2013-04-03 | 北京经纬恒润科技有限公司 | Ecu的测试方法、装置和*** |
CN104699214A (zh) * | 2013-12-10 | 2015-06-10 | 展讯通信(上海)有限公司 | 动态电压频率调整装置及方法 |
CN104502690A (zh) * | 2014-12-30 | 2015-04-08 | 中科创达软件股份有限公司 | 一种cpu功耗测试方法和*** |
CN106569942A (zh) * | 2015-10-08 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种测试方法和装置 |
WO2017188749A1 (ko) * | 2016-04-28 | 2017-11-02 | ㈜이노티오 | Ic 칩 테스트 장치, ic 칩 테스트 방법, 및 ic 칩 테스트 시스템 |
CN107092555A (zh) * | 2016-08-05 | 2017-08-25 | 北京小度信息科技有限公司 | 一种测试应用程序的方法及*** |
CN106502361A (zh) * | 2016-10-19 | 2017-03-15 | 盛科网络(苏州)有限公司 | 芯片的功耗调节方法、装置及*** |
CN108958449A (zh) * | 2017-05-26 | 2018-12-07 | 中兴通讯股份有限公司 | 一种cpu功耗调整方法与装置 |
CN108226751A (zh) * | 2017-12-14 | 2018-06-29 | 芯海科技(深圳)股份有限公司 | 一种多处理器协同芯片性能评估***及方法 |
CN108710429A (zh) * | 2018-05-22 | 2018-10-26 | Oppo广东移动通信有限公司 | 功耗调节方法、电子装置及计算机可读存储介质 |
CN108803860A (zh) * | 2018-06-26 | 2018-11-13 | 联想(北京)有限公司 | 一种功耗调节方法及电子设备 |
CN109116970A (zh) * | 2018-08-31 | 2019-01-01 | 中国电子科技集团公司第五十八研究所 | 一种动态电压频率调节***及方法 |
CN109376055A (zh) * | 2018-09-30 | 2019-02-22 | 联想(北京)有限公司 | 供电管理方法、***和电子设备 |
CN109407986A (zh) * | 2018-10-17 | 2019-03-01 | 深圳市硅格半导体有限公司 | 实时更新设备运行参数的方法、***、服务器及存储介质 |
CN109342928A (zh) * | 2018-11-01 | 2019-02-15 | 南京工业大学 | 一种芯片测试装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111830390A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3754495B1 (en) | Data processing method and related products | |
US11847554B2 (en) | Data processing method and related products | |
Kobayashi et al. | OpenCL-ready high speed FPGA network for reconfigurable high performance computing | |
CN111830390B (zh) | 一种测试方法及相关产品 | |
US20180240010A1 (en) | Technologies for optimized machine learning training | |
Le et al. | Distributed digital real-time control system for TCV tokamak | |
CN110750359B (zh) | 硬件资源配置方法、装置、云侧设备和存储介质 | |
CN114565102A (zh) | 部署机器学习模型的方法、电子设备和计算机程序产品 | |
Chowdhury et al. | Emulating I/O behavior in scientific workflows on high performance computing systems | |
US7856348B2 (en) | System and method for generation of synthetic parallel application kernels using tracing information | |
CN111831539A (zh) | 一种测试方法及相关产品 | |
US20190004926A1 (en) | Methods and systems that probabilistically generate testing loads | |
CN114461225A (zh) | 编译方法及装置、电子设备和存储介质 | |
CN111124833A (zh) | 一种gpio端口控制方法、装置、设备及存储介质 | |
Dai et al. | Toward efficient execution of mainstream deep learning frameworks on mobile devices: Architectural implications | |
CN116594830B (zh) | 硬件仿真工具、调试方法和存储介质 | |
US11449337B1 (en) | Pseudorandom keephot instructions to mitigate large load steps during hardware emulation | |
CN114816574A (zh) | 一种bmc适配多配置pcie设备的方法、***、设备和存储介质 | |
CN117112070A (zh) | 应用配置方法、***及服务器 |
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 |