CN112882819B - 芯片工作频率的设置方法和装置 - Google Patents

芯片工作频率的设置方法和装置 Download PDF

Info

Publication number
CN112882819B
CN112882819B CN201911201455.9A CN201911201455A CN112882819B CN 112882819 B CN112882819 B CN 112882819B CN 201911201455 A CN201911201455 A CN 201911201455A CN 112882819 B CN112882819 B CN 112882819B
Authority
CN
China
Prior art keywords
chip
subtask
frequency
task
data
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
Application number
CN201911201455.9A
Other languages
English (en)
Other versions
CN112882819A (zh
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 Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime 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 Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Priority to CN201911201455.9A priority Critical patent/CN112882819B/zh
Priority to PCT/CN2020/105195 priority patent/WO2021103618A1/zh
Priority to JP2021538698A priority patent/JP2022516549A/ja
Priority to KR1020217020535A priority patent/KR20210098508A/ko
Priority to TW109127158A priority patent/TWI743934B/zh
Publication of CN112882819A publication Critical patent/CN112882819A/zh
Application granted granted Critical
Publication of CN112882819B publication Critical patent/CN112882819B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Abstract

本公开实施例提供一种芯片工作频率的设置方法和装置,其中方法包括:获取目标任务的多个子任务以及每个子任务的任务参数,所述任务参数包括用于表示所述子任务的运算规模的参数;基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率;根据确定的每个子任务对应的所述目标芯片频率,设置芯片执行所述每个子任务的工作频率。

Description

芯片工作频率的设置方法和装置
技术领域
本公开涉及智能设备技术,具体涉及芯片工作频率的设置方法和装置。
背景技术
随着5G和人工智能技术的发展,端上设备(例如,智能手机,智能摄像机等)被赋予更多的计算需求,需要执行更多的任务。然而,端上设备中包括的用于计算处理的芯片大多存在功耗限制,不能完全发挥设备的计算峰值能力。降频是现在芯片防止功耗超标的主要方法之一,降频技术主要是通过临时降低芯片的工作频率(frequency)来减少芯片的功耗。
在一些技术中,可以在端上设备中运行应用程序执行前,设置一个初始工作频率,芯片以该初始工作频率运行以执行对应用程序的计算处理。并且,在应用程序的运行过程中,遇到芯片的功耗超标等情况时,对芯片可以采用固定降频策略,例如,将芯片的工作频率按照固定的比例降低,或者将其工作频率降低到一固定的数值。但是,这种设置芯片的工作频率的方式难以保证设备的运行性能。
发明内容
本公开实施例至少提供一种芯片工作频率的设置方法和装置。
第一方面,提供一种芯片工作频率的设置方法,该方法包括:
获取目标任务的多个子任务以及每个子任务的任务参数,所述任务参数包括用于表示所述子任务的运算规模的参数;
基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率;
根据确定的每个子任务对应的所述目标芯片频率,设置芯片执行所述每个子任务的工作频率。
根据本公开的任一实施例,所述方法还包括:对所述目标任务进行任务解析处理,得到所述多个子任务以及每个子任务的任务参数;存储所述多个子任务中每个子任务与所述每个子任务的任务参数的映射关系;所述获取目标任务的多个子任务以及每个子任务的任务参数包括:从存储的所述映射关系中查找所述每个子任务对应的任务参数。
根据本公开的任一实施例,所述任务参数包括如下至少一项:所述子任务的计算量、访存量。
根据本公开的任一实施例,所述基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率,包括:获取所述芯片所在设备的设备信息,所述设备信息包括设备资源信息;基于所述设备信息和所述多个子任务中每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率。
根据本公开的任一实施例,所述设备资源信息包括以下中的任意一项或多项:计算单元的数量、带宽、存储器容量。
根据本公开的任一实施例,所述设备信息还包括:所述芯片的芯片温度;所述基于所述设备信息和所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率,包括:基于每个子任务的任务参数、设备资源信息和所述每个子任务对应的芯片温度,确定所述每个子任务对应的目标芯片频率。
根据本公开的任一实施例,所述基于所述设备信息和所述多个子任务中每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率,包括:获取多个第一数据和多个第二数据之间的预设映射关系,所述第一数据包括预设任务参数和预设设备信息,所述第二数据包括预设芯片频率;根据所述预设映射关系、所述设备信息以及每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率。
根据本公开的任一实施例,所述根据所述预设映射关系、所述设备信息以及每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率,包括:确定第三数据与所述预设映射关系中的多个第一数据中每个第一数据之间的距离,所述第三数据包括所述每个子任务的任务参数和设备信息;将所述预设映射关系中与所述第三数据距离最近的目标第一数据对应的预设芯片频率,作为所述每个子任务对应的目标芯片频率。
根据本公开的任一实施例,所述获取多个第一数据和多个第二数据之间的预设映射关系之前,所述方法还包括:获取多组可选芯片频率、以及采样得到的离散的多个第一数据;对于每一个所述第一数据,由所述多组可选芯片频率中选择一组芯片频率作为与所述第一数据对应的第二数据;建立所述第一数据和选择的所述第二数据之间的映射关系。
根据本公开的任一实施例,所述对于每一个所述第一数据,由所述多组可选芯片频率中选择一组芯片频率作为与所述第一数据对应的第二数据,包括:确定在所述多组可选芯片频率中每组可选芯片频率与所述第一数据条件下的性能评估参数;基于所述性能评估参数,从所述多组可选芯片频率中选择一组芯片频率作为所述第一数据对应的第二数据。
根据本公开的任一实施例,所述性能评估参数包括任务处理性能参数和芯片运行功耗;所述基于所述性能评估参数,从所述多组可选芯片频率中选择一组芯片频率作为所述第一数据对应的第二数据,包括:将所述多组可选芯片频率中对应芯片运行功耗低于预设功耗且任务处理性能参数达到最优的可选芯片频率作为所述第一数据对应的第二数据。
根据本公开的任一实施例,所述方法还包括:接收用户输入的对于所述预设映射关系的配置信息。
根据本公开的任一实施例,所述基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率,包括:基于所述多个子任务中每个子任务对应的任务参数,由多组可选芯片频率中,选择能够使得所述芯片在芯片功耗限制条件下实现任务运行时间最低的芯片频率,作为所述目标芯片频率。
根据本公开的任一实施例,所述方法还包括:接收用户输入的频率设置策略信息;所述基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率,包括:基于所述频率设置策略信息和所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率。
根据本公开的任一实施例,所述频率设置策略信息包括打开或关闭针对子任务的芯片频率动态设置功能。
根据本公开的任一实施例,所述工作频率包括如下至少一项:所述芯片的核心频率、或者内存频率。
第二方面,提供一种芯片工作频率的设置装置,所述装置包括:
获取模块,用于获取目标任务的多个子任务以及每个子任务的任务参数,所述任务参数包括用于表示所述子任务的运算规模的参数;
频率控制模块,用于基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率;
频率设置模块,用于根据确定的每个子任务对应的所述目标芯片频率,设置芯片执行所述每个子任务的工作频率。
根据本公开的任一实施例,所述装置还包括:任务解析模块,用于对所述目标任务进行任务解析处理,得到所述多个子任务以及每个子任务的任务参数;并存储所述多个子任务中每个子任务与所述每个子任务的任务参数的映射关系;所述获取模块,在用于获取目标任务的多个子任务以及每个子任务的任务参数时,包括:由存储的所述映射关系中查找所述多个子任务以及每个子任务对应的任务参数。
根据本公开的任一实施例,所述任务参数包括如下至少一项:所述子任务的计算量、访存量。
根据本公开的任一实施例,所述频率控制模块,在用于基于所述多个子任务中每个子任务对应的任务参数确定所述每个子任务对应的目标芯片频率时,包括:获取所述芯片所在设备的设备信息,所述设备信息包括设备资源信息,基于所述设备信息和所述多个子任务中每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率。
根据本公开的任一实施例,所述设备资源信息包括以下中的任意一项或多项:计算单元的数量、带宽、存储器容量。
根据本公开的任一实施例,所述设备信息还包括:所述芯片的芯片温度;所述频率控制模块,用于:基于每个子任务的任务参数、设备资源信息和所述每个子任务对应的芯片温度,确定所述每个子任务对应的目标芯片频率。
根据本公开的任一实施例,所述频率控制模块,用于:获取多个第一数据和多个第二数据之间的预设映射关系,所述第一数据包括预设任务参数和预设设备信息,所述第二数据包括预设芯片频率;根据所述预设映射关系、所述设备信息以及每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率。
根据本公开的任一实施例,所述频率控制模块,在用于根据所述预设映射关系、所述设备信息以及每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率时,包括:确定第三数据与所述预设映射关系中的多个第一数据中每个第一数据之间的距离,所述第三数据包括所述每个子任务的任务参数和设备信息;将所述预设映射关系中与所述第三数据距离最近的目标第一数据对应的预设芯片频率,作为所述每个子任务对应的目标芯片频率。
根据本公开的任一实施例,所述频率控制模块,还用于在获取多个第一数据和多个第二数据之间的预设映射关系之前,获取多组可选芯片频率、以及采样得到的离散的多个第一数据;对于每一个所述第一数据,由所述多组可选芯片频率中选择一组芯片频率作为与所述第一数据对应的第二数据;建立所述第一数据和选择的所述第二数据之间的映射关系。
根据本公开的任一实施例,所述频率控制模块,在用于对于每一个所述第一数据,由所述多组可选芯片频率中选择一组芯片频率作为与所述第一数据对应的第二数据时,包括:确定在所述多组可选芯片频率中每组可选芯片频率与所述第一数据条件下的性能评估参数;基于所述性能评估参数,从所述多组可选芯片频率中选择一组芯片频率作为所述第一数据对应的第二数据。
根据本公开的任一实施例,所述频率控制模块,在用于基于所述性能评估参数,从所述多组可选芯片频率中选择一组芯片频率作为所述第一数据对应的第二数据时,包括:将所述多组可选芯片频率中对应芯片运行功耗低于预设功耗且任务处理性能参数达到最优的可选芯片频率作为所述第一数据对应的第二数据;所述性能评估参数包括任务处理性能参数和芯片运行功耗。
根据本公开的任一实施例,所述装置还包括:接口模块,用于接收用户输入的对于所述预设映射关系的配置信息。
根据本公开的任一实施例,所述频率控制模块,在用于基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率时,包括:基于所述多个子任务中每个子任务对应的任务参数,由多组可选芯片频率中,选择能够使得所述芯片在芯片功耗限制条件下实现任务运行时间最低的芯片频率,作为所述目标芯片频率。
根据本公开的任一实施例,所述接口模块,还用于:接收用户输入的频率设置策略信息;所述频率控制模块,用于基于所述频率设置策略信息和所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率。
根据本公开的任一实施例,所述频率设置策略信息包括打开或关闭针对子任务的芯片频率动态设置功能。
根据本公开的任一实施例,所述工作频率包括如下至少一项:所述芯片的核心频率、或者内存频率。
第三方面,提供一种电子设备,包括:存储器、处理器,所述存储器用于存储计算机可读指令,所述处理器用于调用所述计算机指令,实现本公开任一实施例所述的方法。
根据本公开的任一实施例,所述设备还包括:芯片,用于基于所述处理器设置的工作频率对目标任务中的每个子任务进行处理。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例所述的方法。
本公开实施例提供的芯片工作频率的设置方法和装置,通过基于目标任务中的每个子任务的任务参数确定与该子任务对应的目标芯片频率,能够使得芯片在执行该每个子任务时以该子任务对应的目标芯片频率运行,这种精细化的频率设置方式能够使得执行各个子任务时都尽可能的实现最优的运行性能,从而提高整个任务的运行速度。
附图说明
为了更清楚地说明本公开一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开至少一个实施例提供的一种芯片工作频率的设置方法;
图2示出了本公开至少一个实施例提供的另一种芯片工作频率的设置方法;
图3示出了本公开至少一个实施例提供的一种预设映射关系的建立过程;
图4示出了本公开至少一个实施例提供的又一种芯片工作频率的设置方法;
图5示出了本公开至少一个实施例提供的一种芯片工作频率的设置装置;
图6示出了本公开至少一个实施例提供的另一种芯片工作频率的设置装置。
具体实施方式
为了使本技术领域的人员更好地理解本公开一个或多个实施例中的技术方案,下面将结合本公开一个或多个实施例中的附图,对本公开一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
本公开实施例提供一种对端上设备中的芯片的工作频率进行设置的方法,该方法旨在使得芯片以该设置的工作频率运行时,设备的运行性能较好,例如,设备上运行的任务能够以更快的速度处理完成。其中,该芯片可以为AI芯片,但也可以为其他类型的芯片,本公开实施例对此不做限定。
图1示出了本公开至少一个实施例提供的一种芯片工作频率的设置方法,如图1所示,该方法可以包括如下处理:
在步骤100中,获取目标任务的多个子任务以及每个子任务的任务参数,所述任务参数包括用于表示所述子任务的运算规模的参数。
本步骤中,所述的目标任务可以是在设备上要执行和处理的任务。例如,该任务可以是深度学习模型的训练任务,或者处理一个神经网络的推理计算任务,或者,运行一个应用程序等。所述目标任务的执行需要使用到该设备上的芯片,由芯片负责任务执行过程中的计算等处理工作。
所述的子任务,可以是目标任务中包括的一个独立执行单元。
再例如,目标任务中可以包括多个函数,可以根据函数进行划分,每个函数作为目标任务中一个独立的子任务。
又例如,也可以根据代码块划分子任务,每段代码是相对完整的。比如,一个相对完整或独立的代码块作为一个子任务。
再例如,当目标任务是神经网络训练或推理任务时,该神经网络的每一层或多层可以看作一个子任务;或者,也可以是将每一层的实现过程的代码段作为一个子任务,或者,也可以将多个功能模块中的一个或至少两个功能模块作为一个子任务,等等。
本公开实施例不限制子任务的划分方式,可以有多种子任务的划分方式,比如上述提到的以函数为单位,或者以代码块为单位等,需要注意的是,尽管划分成多个子任务可以达到精细粒度的频率设置,提高设备运行性能,但是过多的子任务数量有可能会造成较为频繁的频率设置,对设备运行性能有一定影响,因此,可以平衡掌握子任务数量的设置,比如,目标任务包括的循环体的内部尽量不要再划分成子任务,以减少频率设置的次数。
在本公开实施例中,子任务对应的任务参数,可以包括用于表示子任务的运算规模的参数。例如,该任务参数可以包括但不限于如下至少一项:子任务的计算量、访存量(访存量即在子任务执行时芯片要访问存储器的次数和/或访问数据的总量)等等。
在本公开实施例中,可以通过多种方式获取子任务的任务参数。例如,从其他设备或从系统中的其他功能模块获取子任务的任务参数,或者,从本地存储器获取子任务的任务参数,或者,通过对目标任务进行任务解析,得到各个子任务的任务参数,等等。
在一个例子中,为了方便后续根据各个子任务的任务参数确定对应的芯片频率时更快速的获取到该任务参数,可以将各个子任务与各自的任务参数的映射关系进行预先存储。示例性的,可以预先对目标任务进行任务解析处理,得到该目标任务包括的多个子任务以及每个子任务的任务参数,并将该每个子任务及其任务参数的映射关系进行存储。这样后续在目标任务运行时可以根据该映射关系快速的查找到每个子任务对应的任务参数。在一些例子中,所述的映射关系可以通过key-value的形式存储,例如,可以将子任务的任务标识(可以为解析得到的多个子任务分别设置对应的任务标识)存储为key,将该子任务对应的任务参数存储为value,但本公开实施例不限于此。
在一个例子中,在获取每个子任务的任务参数之外,还可以进一步获取芯片所在设备的设备信息,可以依据该设备信息和任务参数共同确定每个子任务对应的目标芯片频率。
其中,上述的设备信息可以包括芯片所在设备的设备资源信息,例如,该设备资源信息包括但不限于如下的任意一项或多项设备资源信息:计算单元的数量、带宽、存储器容量等。如果目标任务划分得到的各个子任务之间是串行关系,那么每个子任务执行时都可以是占用该设备上的所有设备资源,比如占用设备上的所有计算单元和所有带宽,等等。
在步骤102中,基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率。
本步骤中,可以根据每个子任务的任务参数确定该子任务对应的目标芯片频率。或者,还可以基于芯片所在设备的设备信息和每个子任务的任务参数,共同确定所述每个子任务对应的目标芯片频率。
所述目标芯片频率的确定可以是一个最优化问题,例如,可以基于每个子任务对应的任务参数,由芯片可以设置的多组可选芯片频率中,选择能够使得所述芯片在芯片功耗限制条件下实现任务运行时间最低的芯片频率,作为所述目标芯片频率。其中,所述的多组可选芯片频率是设备中的芯片可以设置的离散的特定数量的频率。例如,以芯片可以设置核心频率为例,该核心频率可以包括x1、x2…xm等m种频率取值,即芯片的频率不是随意取值,而是包括可选的几种频率。
如下以根据子任务的任务参数和设备信息来确定目标芯片频率为例,示例一种最优化问题的求解原理。以其中一个子任务为例,该子任务对应的任务参数是kn(n维空间,比如访存量,计算量等),该子任务对应的设备信息是dm(m维空间,表示存储器容量等),并假设芯片的核心频率是x。P(kn,dm,x)表示芯片运行功耗,可以看到,该芯片运行功耗与任务参数、设备信息和核心频率有关,即使固定任务参数和设备信息,核心频率变化时P变化。T(kn,dm,x)表示任务运行时间,同理,即使固定任务参数和设备信息,核心频率变化时T变化。那么可以将上述子任务的任务参数和设备信息分别与多种芯片频率组合,得到对应的芯片运行功耗和任务运行时间。
可以按照如下的公式(1)选择最优的芯片频率:
Figure BDA0002295982950000101
上述公式(1)就表示:在芯片功耗限制条件下实现任务运行时间最低,这就是最优化问题的优化目标。以该优化目标寻找最优的芯片频率,在芯片可以设置的多组可选芯片频率中,如果采用某一芯片频率时,能够使得在芯片功耗限制条件下使得以最短的任务运行时间处理完该子任务,则该芯片频率就是该子任务对应的目标芯片频率。
由于每个子任务的任务参数和设备信息中的至少一个参数可以是不同的,所以各个子任务对应的目标芯片频率也可能不同。本步骤可以寻找到最匹配各个子任务的目标芯片频率,使得子任务以最快的速度完成且芯片不会功耗超标。
在步骤104中,根据确定的每个子任务对应的所述目标芯片频率,设置芯片执行所述每个子任务时的工作频率。
本步骤中,在目标任务的运行过程中,当运行到其中一个子任务时,将芯片的频率设置为该子任务对应的目标芯片频率即可。
此外,所述的芯片的工作频率可以包括如下至少一项:所述芯片的核心频率、或者内存频率。比如,可以通过本公开实施例的方法只设置芯片的核心频率,或者也可以通过该方法只设置内存频率,或者还可以是通过该方法对芯片的核心频率和内存频率都设置,并且将核心频率和内存频率作为一个频率组合进行设置,每一个子任务对应的目标芯片频率是该频率组合。
本公开实施例的芯片工作频率的设置方法,通过基于目标任务中的每个子任务的任务参数确定与该子任务对应的目标芯片频率,能够使得芯片在执行该每个子任务时以该子任务对应的目标芯片频率运行,这种精细化的频率设置方式能够使得执行各个子任务时都尽可能的实现最优的运行性能,从而提高整个任务的运行速度。
图2提供了本公开实施例的另一芯片工作频率的设置方法,该方法以根据子任务的任务参数和设备信息来共同确定对应的目标芯片频率为例,示例性地给出了一种确定目标芯片频率的方式。如图2所示,该方法可以包括如下处理,其中,与图1相同的步骤将不再详述:
在步骤200中,对设备上待运行的目标任务进行任务解析,得到多个子任务以及每个所述子任务分别对应的任务参数。例如,每个子任务分别对应的任务参数可以包括如下至少一项:该子任务对应的计算量和访存量。
在步骤202中,获取芯片所在设备的设备信息。
例如,所述的芯片所在设备的设备信息可以包括设备资源信息,该设备资源信息可以包括如下至少一项:带宽、计算单元的数量和存储器容量等。
在步骤204中,获取预设映射关系,所述预设映射关系包括:相对应的第一数据和第二数据。
本步骤中,可以预先存储有第一数据和第二数据之间的映射关系,其中的第一数据包括子任务的预设任务参数和预设设备信息,第二数据包括预设芯片频率。例如,该预设芯片频率可以是芯片的核心频率。又例如,该预设芯片频率可以是芯片的核心频率和内存频率的组合。
例如,如下的表1示例了多组第一数据和第二数据的预设映射关系:
表1映射关系示例
Figure BDA0002295982950000121
如下示例性说明如何建立上述的映射关系:
假设不论设备上执行何种任务,任务参数和设备信息的取值都会有一定的范围内,比如,任务参数的取值在范围F1内,设备信息的取值在范围F2内。该F1和F2都可以称为预设的第一数据取值范围。那么,可以在该第一数据取值范围内采样,得到一些离散的采样点,即得到多组第一数据,例如,(k1,d1)、(k2,d2)、(k3,d3)等,其中的各个k表示任务参数,d表示设备信息。此外,假设要设置的芯片频率是核心频率,可以包括芯片可能设置的多组可选芯片频率,例如,x1,x2,x3等。
暂且假设芯片的核心频率有十种,那么对于其中的每一组第一数据,可以由上述的多组可选芯片频率中选择一组芯片频率作为与该第一数据对应的第二数据,并建立该第一数据和第二数据之间的映射关系。其中,在由多组可选芯片频率中选择第二数据时,可以是依据性能评估参数来选择。例如,可以分别确定第一数据与每组可选芯片频率条件下的性能评估参数,比如根据第一数据与其中一组可选芯片频率得到一个性能评估参数;根据第一数据与另一组可选芯片频率得到另一个性能评估参数。
在分别得到第一数据与各组可选芯片频率对应的性能评估参数后,可以根据该性能评估参数从所述多组可选芯片频率中选择一组芯片频率作为第二数据。例如,该性能评估参数可以包括任务处理性能参数和芯片运行功耗,可以将上述多组可选芯片频率中对应芯片运行功耗低于预设功耗且任务处理性能参数达到最优的可选芯片频率作为第一数据对应的第二数据。示例性的,上述的任务处理性能参数包括但不限于任务处理时间。
如下通过图3,示例一种预设映射关系的建立过程,并且,在该示例描述中,以任务处理性能参数是任务运行时间,芯片频率是核心频率为例:
在步骤2041中,遍历所述多组可选芯片频率,分别根据每组可选芯片频率与第一数据得到在所述可选芯片频率和第一数据下运行时的芯片运行功耗和任务运行时间。
例如,上述芯片的核心频率有十种的例子中,一组第一数据就可以分别结合该十种核心频率,得到十种芯片运行功耗P和任务运行时间T。比如,当核心频率是x1时,对应的该子任务运行的芯片运行功耗是P1,任务运行时间是T1;当核心频率是x2时,对应的该子任务运行的芯片运行功耗是P2,任务运行时间是T2。
进一步的,具体可以根据功耗模型确定P,根据运行时间模型确定T。其中,
功耗模型:模型输入是任务参数、设备信息和核心频率,模型输出是P。
运行时间模型:模型输入是任务参数、设备信息和核心频率,模型输出T。
上述的功耗模型和运行时间模型的具体结构可以通过多种方式得到,例如,支持向量机、反馈神经网络、K-means聚合算法等。
如下以功耗模型和运行时间模型都是神经网络模型为例:该神经网络模型可以通过网络训练的方式得到。其中,训练样本集可以给定固定的任务列表X={r1,r2,……,rn},设备的频率集合为X={x1,x2,……,xm},这些集合作为神经网络的训练集。比如,对于某一任务r1,可以得到该任务对应的任务参数,并获取该设备的设备信息,再由上述设备频率集合中取一个频率x1,三者作为神经网络功耗模型的输入,经过功耗模型的处理后输出芯片运行功耗的预测值。该预测值与设备在任务参数、设备信息和频率x1下的芯片运行功耗的真实值(真实设备运行的结果)之间具有差异,根据该差异进行反向传播,训练该功耗模型。同理,运行时间模型也是按照上述方式训练,只是将输出改为任务运行时间,不再详述。
在得到训练完成的功耗模型和运行时间模型后,向功耗模型输入第一数据和芯片频率,就可以得到芯片运行功耗。向运行时间模型输入第一数据和芯片频率,就可以得到任务运行时间。
在步骤2042中,选择确定芯片运行功耗和任务运行时间最优的芯片频率,作为第二数据。
本步骤中,可以根据公式(1)的最优芯片频率的选择条件,在多组芯片频率中,选择在芯片运行功耗的限制范围内任务运行时间最低的频率。该芯片频率作为第二数据。
在步骤2043中,建立第一数据和第二数据之间的映射关系。
如上所述的,离散采样点对应的多组第一数据中,每一组第一数据都可以按照图3所示的流程得到该第一数据对应的第二数据,即最优的芯片频率。那么可以建立映射关系的集合,该集合中可以包括多组映射关系,每一组映射关系都包括一个第一数据和一个对应的第二数据。如表1的示例。
在步骤206中,根据预设映射关系、设备信息以及当前的子任务对应的任务参数,确定所述子任务在预设映射关系中对应的芯片频率为目标芯片频率。
例如,假设当前的子任务对应的任务参数是k1,当前的子任务对应的设备信息是d1,通过查表1,可以得到对应的目标芯片频率是x1。
此外,由于映射关系表中的第一数据是离散的,有时当前子任务的任务参数和设备信息并不完全与该第一数据一致,这种情况下,可以在映射关系表中找到与当前任务的设备信息和任务参数最接近的第一数据,用该最接近的第一数据对应的芯片频率作为当前任务对应的芯片频率。
例如,假设当前子任务对应的任务参数和设备信息可以称为第三数据(k3,d3),可以计算该第三数据与映射关系中的各个第一数据之间的距离。该距离的计算可以是将第三数据和第一数据都作为一个向量,计算向量之间的距离(例如,可以是欧式距离)。可以将与第三数据距离最近的目标第一数据对应的芯片频率,作为当前的子任务对应的目标芯片频率。
其中,上述的与第三数据距离最近的目标第一数据可以是向下取最近的,该向下取最近的是指尽量取对应芯片频率较低的第一数据。比如,假设当前的第三数据的两个相邻的第一数据分别是第一数据Y1和第一数据Y2,并且该第一数据Y1和第一数据Y2与第三数据的距离是相等的,第一数据Y1对应的芯片频率比第二数据Y2对应的芯片频率要低,那么可以选择使用Y2对应的芯片频率。如果第一数据Y1和第一数据Y2与第三数据的距离不相等,则仍然是选择距离较近的第一数据作为目标第一数据。
在步骤208中,根据确定的每个子任务对应的所述目标芯片频率,设置芯片执行所述每个子任务的工作频率。
本步骤中,在目标任务的运行过程中,当运行到其中一个子任务时,将芯片的频率设置为该子任务对应的目标芯片频率即可。
本公开实施例的设备芯片的工作频率的设置方法,通过对待执行的任务进行分解得到多个子任务,并分别得到各个子任务对应的目标芯片频率,这种精细化的频率设置方式能够使得让任务的各个子任务部分都尽可能的实现最优的运行性能,从而提高整个任务的运行速度;并且,通过预先建立任务参数、设备信息与芯片频率的映射关系,使得能够加快芯片频率的确定速度,提高设备性能。
图4提供了本公开实施例的又一芯片工作频率的设置方法,该示例中,以设置芯片的组合频率为例,并且,获取的设备信息中还可以包括芯片的芯片温度,该芯片温度可以是由芯片所在设备中的硬件采集单元(hardware counter)来负责采集。此外,这里假设要执行的目标任务是一个三层的神经网络推理任务。
其中,对于不同的端设备,比如GPU(Graphics Processing Unit,图形处理器)、CPU(central processing unit,中央处理器)或者DSP(digital signal processor,数字信号处理器),由于设备信息不同,训练得到的功耗模型和运行时间模型可能会完全不同。可以针对目标任务运行所在的特定端设备,离线训练确定模型。功耗模型和运行时间模型确定之后,可以将该确定的模型以及最优化问题求解引擎存储到端设备中。其中,最优化问题求解引擎所做的处理可以参见图2所示流程描述中的预设映射关系建立的过程,该最优化问题求解引擎可以根据采样的多组第一数据以及确定的模型,得到各芯片频率分别对应的芯片运行功耗和任务运行时间,再根据公式(1)选择出最优的芯片频率,从而建立起第一数据和第二数据之间的映射关系。可选的,由设备来执行预设映射关系的建立是可以的,或者也可以是在其他设备执行预设映射关系的建立处理,并将预先建立好的映射关系存储在该目标任务运行所在的设备中,设备在运行目标任务时可以直接查表使用。
在步骤400中,对设备上待运行的目标任务进行任务解析,得到多个子任务以及每个所述子任务分别对应的任务参数。
例如,该目标任务是三层的神经网络推理任务,其中的每一层可以是一个子任务。那么本步骤经过任务解析,可以得到一个子任务列表,该子任务列表中包括三个子任务:子任务1、子任务2和子任务3。并且,本步骤还分析得到每个子任务的任务参数,例如,子任务的访存量和计算量等。比如,子任务列表中可以包括:<子任务1、任务参数1>、<子任务2、任务参数2>、<子任务3、任务参数3>。其中的任务参数可以表示为kn(n维空间,比如访存量,计算量)。
在步骤402中,获取芯片所在设备的设备信息。
其中,设备信息可以包括设备资源信息。在一个示例中,子任务1、子任务2和子任务3之间是串行关系,这些子任务在运行时占用的设备资源信息可以是相同的。比如,带宽、计算单元数量等可以是相同的。
设备信息可以表示为dm(m维空间,表示带宽、存储器容量等)。
在步骤404中,在确定将要开始执行子任务1之前,采集设备上的芯片的芯片温度C1,并根据子任务1的任务参数、设备资源信息和芯片温度,确定子任务1在运行时所述设备上的芯片对应设置的目标芯片频率。
本公开一些实施例中,设备信息还可以包括芯片的芯片温度,因为芯片在执行任务的过程中,温度过高也会导致芯片采取降频的措施。也就是说,本公开实施例的设备信息中不仅包括计算单元数量、带宽、存储器容量等设备资源信息,还包括了芯片温度。并且,该芯片温度可以是动态获取的,即在目标任务的运行过程中的每个子任务开始执行前,获取该子任务对应的芯片温度。
在步骤406中,将芯片的工作频率设置成子任务1对应的目标芯片频率,并开始执行子任务1。
在步骤408中,在确定将要开始执行子任务2之前,采集设备上的芯片的芯片温度C2,并根据子任务2的任务参数、设备资源信息和芯片温度,确定子任务2在运行时所述设备上的芯片对应设置的目标芯片频率。
本公开实施例中,在目标任务的运行过程中,芯片的温度是变化的,那么可以在该目标任务运行过程中每次要执行一个子任务之前,都采集最新的芯片温度,并结合该芯片温度确定该子任务对应的目标芯片频率。
还需要说明的是,本公开实施例的芯片频率可以是一个组合频率,或者是组合频率中的一个频率,即同时设置芯片的核心频率和内存频率。例如,核心频率是x,内存频率是y。比如,当子任务的任务参数和设备信息是(k1,d1)时(其中的设备信息可以包括设备资源信息和芯片温度),对应采取的芯片频率可以是(x1,y1);当子任务的任务参数和设备信息是(k2,d2)时,对应采取的芯片频率可以是(x2,y2)。
并且,在确定功耗模型和运行时间模型时,例如,功耗模型的输入可以包括:k1,d1,x1,y1,模型的输出可以是芯片运行功耗P;同理,运行时间模型的输入可以包括:k1,d1,x1,y1,模型的输出可以是任务运行时间T。并且,在训练该功耗模型和运行时间模型时,设备信息中可以包括芯片温度。
在步骤410中,将芯片的工作频率设置成子任务2对应的目标芯片频率,并开始执行子任务2。
在步骤412中,在确定将要开始执行子任务3之前,采集设备上的芯片的芯片温度C3,并根据子任务2的任务参数、设备资源信息和芯片温度,确定子任务3在运行时所述设备上的芯片对应设置的目标芯片频率。
在步骤414中,将芯片的工作频率设置成子任务3对应的目标芯片频率,并开始执行子任务3。
当目标任务包括的所有的子任务都执行结束后,可以将设备芯片的工作频率重新设置为默认值,目标任务执行结束。
本公开实施例的芯片工作频率的设置方法,通过对待执行的任务进行分解得到多个子任务,并分别得到各个子任务对应的目标芯片频率,这种精细化的频率设置方式能够使得让任务的各个子任务部分都尽可能的实现最优的运行性能,从而提高整个任务的运行速度;并且,通过在任务运行的过程中,动态的采集芯片温度,并综合该芯片温度确定芯片的工作频率,能够使得芯片工作频率的确定考虑因素更加全面,从而频率设置更加合理,进一步提高设备运行性能。
此外,端设备也可以提供用户接口,通过该用户接口可以接收输入的对于预设映射关系的配置信息。比如,用户可以离线的计算出或者推理出每个子任务应使用的目标芯片频率,并将该各个子任务与对应目标芯片频率的预设映射关系存储在设备中,这样设备在运行时就根据该配置的预设映射关系设置子任务执行时对应的芯片的工作频率即可。
上述的用户接口还可以用于接收频率设置策略信息。该频率设置策略信息例如可以包括根据任务参数、设备信息确定芯片运行功耗和任务运行时间的模型、或者还可以包括如何根据功耗模型和任务运行时间模型选择确定某个子任务对应的目标芯片频率。根据所述频率设置策略信息,就可以基于该频率设置策略信息和多个子任务中每个子任务对应的任务参数,分别确定每个子任务在运行时所述设备上的芯片对应设置的目标芯片频率。
此外,该频率设置策略信息还可以包括:打开或关闭针对子任务的芯片频率动态设置功能。当频率设置策略信息包括打开针对子任务的芯片频率动态设置功能时,设备就可以按照本公开前述实施例中所述的芯片工作频率的设置方法,对目标任务的各个子任务确定对应的目标芯片频率,比如,可以采集子任务的任务参数、芯片温度、设备资源信息,并根据这些信息以及功耗模型和任务运行时间模型选择确定要使用的目标芯片频率。而当频率设置策略信息包括关闭针对子任务的芯片频率动态设置功能时,设备就可以按照通过用户接口配置的离线计算出的预设映射关系,直接获取每个子任务应使用的目标芯片频率。
通过上述用户接口,可以提供更为灵活的芯片频率设置方式,用户可以更方便的对芯片频率的确定方式进行更新,使得芯片频率的确定更为合理和快速。
图5是本公开实施例提供的芯片工作频率的设置装置的一示例性结构图,如图5所示,该装置可以包括:获取模块51、频率控制模块52和频率设置模块53。
获取模块51,用于获取目标任务的多个子任务以及每个子任务的任务参数,所述任务参数包括用于表示所述子任务的运算规模的参数。示例性的,所述任务参数包括如下至少一项:所述子任务的计算量、访存量。
频率控制模块52,用于基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率。
频率设置模块53,用于根据确定的每个子任务对应的所述目标芯片频率,设置芯片执行所述每个子任务的工作频率。
在一个例子中,如图6所示,该装置还可以包括:任务解析模块54,用于对所述目标任务进行任务解析处理,得到所述多个子任务以及每个子任务的任务参数;并存储所述多个子任务中每个子任务与所述每个子任务的任务参数的映射关系。获取模块51,在用于获取目标任务的多个子任务以及每个子任务的任务参数时,包括:由存储的所述映射关系中查找所述多个子任务以及每个子任务对应的任务参数。
例如,在实际实施中,要开始运行一个目标任务时,可以先由任务解析模块54对目标任务进行任务解析处理,比如解析得到多个子任务,再分别对每个子任务进行解析得到各个子任务的任务参数。任务解析模块54可以将解析得到的每个子任务及其对应的任务参数的映射关系进行存储。
获取模块51可以负责控制目标任务的运行过程,例如,获取模块51可以获取上述任务解析模块54解析并存储得到的映射关系,控制逐个执行其中的各个子任务。示例性的,假设有三个子任务,当要开始执行第一个子任务时,获取模块51可以由映射关系中获取到该第一个子任务的任务参数,并将任务参数以及芯片所在设备的设备信息发送至频率控制模块52,由频率控制模块52根据任务参数和设备信息确定第一个子任务对应的目标芯片频率。
接着,频率控制模块52可以将确定的目标芯片频率发送至频率设置模块53,该频率设置模块53可以将芯片的工作频率设置为所述的目标芯片频率。并且,频率设置模块53在设置芯片的工作频率完成后,可以向获取模块51发送一个反馈信号,以通知获取模块51频率设置已经完成。那么,获取模块51根据该反馈信号,就可以开始执行第一个子任务。
当第一个子任务执行结束后,获取模块51可以开始准确执行第二个子任务,同样的,在第二个子任务开始执行前,获取模块51可以由任务解析模块54得到的映射关系中获得第二个子任务的任务参数,发送至频率控制模块52确定第二个子任务对应的目标芯片频率。当频率设置模块53反馈芯片频率设置完成后,获取模块51开始执行第二个子任务。第三个子任务的执行同理,不再详述。当获取模块51确认目标任务的所有子任务都执行结束后,可以向频率控制模块52发送频率重置信号,频率控制模块52据此再向频率设置模块53发送频率重置信号,频率设置模块53可以将芯片的工作频率设置为默认值。此时目标任务执行结束。
在一个例子中,频率控制模块52,在用于基于所述多个子任务中每个子任务对应的任务参数确定所述每个子任务对应的目标芯片频率时,包括:获取所述芯片所在设备的设备信息,所述设备信息包括设备资源信息,基于所述设备信息和所述多个子任务中每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率。例如,该设备资源信息包括以下中的任意一项或多项:计算单元的数量、带宽、存储器容量。
在一个例子中,所述设备信息还包括:所述芯片的芯片温度;频率控制模块52,用于:基于每个子任务的任务参数、设备资源信息和所述每个子任务对应的芯片温度,确定所述每个子任务对应的目标芯片频率。
在一个例子中,频率控制模块52,用于:获取多个第一数据和多个第二数据之间的预设映射关系,所述第一数据包括预设任务参数和预设设备信息,所述第二数据包括预设芯片频率;根据所述预设映射关系、所述设备信息以及每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率。
在一个例子中,频率控制模块52,在用于根据所述预设映射关系、所述设备信息以及每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率时,包括:确定第三数据与所述预设映射关系中的多个第一数据中每个第一数据之间的距离,所述第三数据包括所述每个子任务的任务参数和设备信息;将所述预设映射关系中与所述第三数据距离最近的目标第一数据对应的预设芯片频率,作为所述每个子任务对应的目标芯片频率。
在一个例子中,频率控制模块52,还用于在获取多个第一数据和多个第二数据之间的预设映射关系之前,获取多组可选芯片频率、以及采样得到的离散的多个第一数据;对于每一个所述第一数据,由所述多组可选芯片频率中选择一组芯片频率作为与所述第一数据对应的第二数据;建立所述第一数据和选择的所述第二数据之间的映射关系。
在一个例子中,频率控制模块52,在用于对于每一个所述第一数据,由所述多组可选芯片频率中选择一组芯片频率作为与所述第一数据对应的第二数据时,包括:确定在所述多组可选芯片频率中每组可选芯片频率与所述第一数据条件下的性能评估参数;基于所述性能评估参数,从所述多组可选芯片频率中选择一组芯片频率作为所述第一数据对应的第二数据。
在一个例子中,频率控制模块52,在用于基于所述性能评估参数,从所述多组可选芯片频率中选择一组芯片频率作为所述第一数据对应的第二数据时,包括:将所述多组可选芯片频率中对应芯片运行功耗低于预设功耗且任务处理性能参数达到最优的可选芯片频率作为所述第一数据对应的第二数据;所述性能评估参数包括任务处理性能参数和芯片运行功耗。
在一个例子中,如图6所示,该装置还可以包括:接口模块55,用于接收用户输入的对于所述预设映射关系的配置信息。
在一个例子中,频率控制模块52,在用于基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率时,包括:基于所述多个子任务中每个子任务对应的任务参数,由多组可选芯片频率中,选择能够使得所述芯片在芯片功耗限制条件下实现任务运行时间最低的芯片频率,作为所述目标芯片频率。
在一个例子中,接口模块55,还用于:接收用户输入的频率设置策略信息;
所述频率控制模块52,用于基于所述频率设置策略信息和所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率。
在一个例子中,所述频率设置策略信息包括打开或关闭针对子任务的芯片频率动态设置功能。
在一个例子中,所述工作频率包括如下至少一项:所述芯片的核心频率、或者内存频率。
在一些实施例中,上述装置可以用于执行上文所述的对应任意方法,为了简洁,这里不再赘述。
本公开实施例还提供了一种电子设备,所述设备包括存储器、处理器,所述存储器用于存储计算机可读指令,所述处理器用于调用所述计算机指令,实现本说明书任一实施例的芯片工作频率的设置方法。在一个例子中,该装置还可以包括芯片,该芯片用于基于所述处理器设置的工作频率对目标任务中的每个子任务进行处理。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本说明书任一实施例的芯片工作频率的设置方法。
本领域技术人员应明白,本公开一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本公开一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开实施例还提供一种计算机可读存储介质,该存储介质上可以存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例描述的用于文字识别的神经网络的训练方法的步骤,和/或,实现本公开任一实施例描述的文字识别方法的步骤。
其中,本公开实施例所述的“和/或”表示至少具有两者中的其中一个,例如,“多和/或B”包括三种方案:多、B、以及“多和B”。
本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本公开中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本公开中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本公开中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本公开中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPG多(现场可编程门阵列)或多SIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PD多)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本公开包含许多具体实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的具体实施例的特征。本公开内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本公开一个或多个实施例的较佳实施例而已,并不用以限制本公开一个或多个实施例,凡在本公开一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开一个或多个实施例保护的范围之内。

Claims (33)

1.一种芯片工作频率的设置方法,其特征在于,所述方法包括:
获取目标任务的多个子任务以及每个子任务的任务参数,所述任务参数包括用于表示所述子任务的运算规模的参数;
基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率;
根据确定的每个子任务对应的所述目标芯片频率,设置芯片执行所述每个子任务的工作频率;
所述基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率,包括:
基于所述多个子任务中每个子任务对应的任务参数,由多组可选芯片频率中,选择能够使得所述芯片在芯片功耗限制条件下实现任务运行时间最低的芯片频率,作为所述目标芯片频率。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述目标任务进行任务解析处理,得到所述多个子任务以及每个子任务的任务参数;
存储所述多个子任务中每个子任务与所述每个子任务的任务参数的映射关系;
所述获取目标任务的多个子任务以及每个子任务的任务参数包括:从存储的所述映射关系中查找所述每个子任务对应的任务参数。
3.根据权利要求1或2所述的方法,其特征在于,
所述任务参数包括如下至少一项:所述子任务的计算量、访存量。
4.根据权利要求1所述的方法,其特征在于,所述基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率,包括:
获取所述芯片所在设备的设备信息,所述设备信息包括设备资源信息;
基于所述设备信息和所述多个子任务中每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率。
5.根据权利要求4所述的方法,其特征在于,所述设备资源信息包括以下中的任意一项或多项:计算单元的数量、带宽、存储器容量。
6.根据权利要求4或5所述的方法,其特征在于,所述设备信息还包括:所述芯片的芯片温度;
所述基于所述设备信息和所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率,包括:
基于每个子任务的任务参数、设备资源信息和所述每个子任务对应的芯片温度,确定所述每个子任务对应的目标芯片频率。
7.根据权利要求4所述的方法,其特征在于,所述基于所述设备信息和所述多个子任务中每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率,包括:
获取多个第一数据和多个第二数据之间的预设映射关系,所述第一数据包括预设任务参数和预设设备信息,所述第二数据包括预设芯片频率;
根据所述预设映射关系、所述设备信息以及每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率。
8.根据权利要求7所述的方法,其特征在于,所述根据所述预设映射关系、所述设备信息以及每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率,包括:
确定第三数据与所述预设映射关系中的多个第一数据中每个第一数据之间的距离,所述第三数据包括所述每个子任务的任务参数和设备信息;
将所述预设映射关系中与所述第三数据距离最近的目标第一数据对应的预设芯片频率,作为所述每个子任务对应的目标芯片频率。
9.根据权利要求7或8所述的方法,其特征在于,所述获取多个第一数据和多个第二数据之间的预设映射关系之前,所述方法还包括:
获取多组可选芯片频率、以及采样得到的离散的多个第一数据;
对于每一个所述第一数据,由所述多组可选芯片频率中选择一组芯片频率作为与所述第一数据对应的第二数据;
建立所述第一数据和选择的所述第二数据之间的映射关系。
10.根据权利要求9所述的方法,其特征在于,所述对于每一个所述第一数据,由所述多组可选芯片频率中选择一组芯片频率作为与所述第一数据对应的第二数据,包括:
确定在所述多组可选芯片频率中每组可选芯片频率与所述第一数据条件下的性能评估参数;
基于所述性能评估参数,从所述多组可选芯片频率中选择一组芯片频率作为所述第一数据对应的第二数据。
11.根据权利要求10所述的方法,其特征在于,所述性能评估参数包括任务处理性能参数和芯片运行功耗;
所述基于所述性能评估参数,从所述多组可选芯片频率中选择一组芯片频率作为所述第一数据对应的第二数据,包括:
将所述多组可选芯片频率中对应芯片运行功耗低于预设功耗且任务处理性能参数达到最优的可选芯片频率作为所述第一数据对应的第二数据。
12.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收用户输入的对于所述预设映射关系的配置信息。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户输入的频率设置策略信息;
所述基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率,包括:基于所述频率设置策略信息和所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率。
14.根据权利要求13所述的方法,其特征在于,所述频率设置策略信息包括打开或关闭针对子任务的芯片频率动态设置功能。
15.根据权利要求1所述的方法,其特征在于,所述工作频率包括如下至少一项:所述芯片的核心频率、或者内存频率。
16.一种芯片工作频率的设置装置,其特征在于,所述装置包括:
获取模块,用于获取目标任务的多个子任务以及每个子任务的任务参数,所述任务参数包括用于表示所述子任务的运算规模的参数;
频率控制模块,用于基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率;
频率设置模块,用于根据确定的每个子任务对应的所述目标芯片频率,设置芯片执行所述每个子任务的工作频率;
所述频率控制模块,在用于基于所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率时,包括:基于所述多个子任务中每个子任务对应的任务参数,由多组可选芯片频率中,选择能够使得所述芯片在芯片功耗限制条件下实现任务运行时间最低的芯片频率,作为所述目标芯片频率。
17.根据权利要求16所述的装置,其特征在于,
所述装置还包括:任务解析模块,用于对所述目标任务进行任务解析处理,得到所述多个子任务以及每个子任务的任务参数;并存储所述多个子任务中每个子任务与所述每个子任务的任务参数的映射关系;
所述获取模块,在用于获取目标任务的多个子任务以及每个子任务的任务参数时,包括:由存储的所述映射关系中查找所述多个子任务以及每个子任务对应的任务参数。
18.根据权利要求16或17所述的装置,其特征在于,所述任务参数包括如下至少一项:所述子任务的计算量、访存量。
19.根据权利要求16所述的装置,其特征在于,
所述频率控制模块,在用于基于所述多个子任务中每个子任务对应的任务参数确定所述每个子任务对应的目标芯片频率时,包括:获取所述芯片所在设备的设备信息,所述设备信息包括设备资源信息,基于所述设备信息和所述多个子任务中每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率。
20.根据权利要求19所述的装置,其特征在于,所述设备资源信息包括以下中的任意一项或多项:计算单元的数量、带宽、存储器容量。
21.根据权利要求19或20所述的装置,其特征在于,
所述设备信息还包括:所述芯片的芯片温度;
所述频率控制模块,用于:基于每个子任务的任务参数、设备资源信息和所述每个子任务对应的芯片温度,确定所述每个子任务对应的目标芯片频率。
22.根据权利要求19所述的装置,其特征在于,
所述频率控制模块,用于:获取多个第一数据和多个第二数据之间的预设映射关系,所述第一数据包括预设任务参数和预设设备信息,所述第二数据包括预设芯片频率;根据所述预设映射关系、所述设备信息以及每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率。
23.根据权利要求22所述的装置,其特征在于,
所述频率控制模块,在用于根据所述预设映射关系、所述设备信息以及每个子任务的任务参数,确定所述每个子任务对应的目标芯片频率时,包括:确定第三数据与所述预设映射关系中的多个第一数据中每个第一数据之间的距离,所述第三数据包括所述每个子任务的任务参数和设备信息;将所述预设映射关系中与所述第三数据距离最近的目标第一数据对应的预设芯片频率,作为所述每个子任务对应的目标芯片频率。
24.根据权利要求22所述的装置,其特征在于,
所述频率控制模块,还用于在获取多个第一数据和多个第二数据之间的预设映射关系之前,获取多组可选芯片频率、以及采样得到的离散的多个第一数据;对于每一个所述第一数据,由所述多组可选芯片频率中选择一组芯片频率作为与所述第一数据对应的第二数据;建立所述第一数据和选择的所述第二数据之间的映射关系。
25.根据权利要求24所述的装置,其特征在于,
所述频率控制模块,在用于对于每一个所述第一数据,由所述多组可选芯片频率中选择一组芯片频率作为与所述第一数据对应的第二数据时,包括:确定在所述多组可选芯片频率中每组可选芯片频率与所述第一数据条件下的性能评估参数;基于所述性能评估参数,从所述多组可选芯片频率中选择一组芯片频率作为所述第一数据对应的第二数据。
26.根据权利要求25所述的装置,其特征在于,
所述频率控制模块,在用于基于所述性能评估参数,从所述多组可选芯片频率中选择一组芯片频率作为所述第一数据对应的第二数据时,包括:将所述多组可选芯片频率中对应芯片运行功耗低于预设功耗且任务处理性能参数达到最优的可选芯片频率作为所述第一数据对应的第二数据;所述性能评估参数包括任务处理性能参数和芯片运行功耗。
27.根据权利要求22所述的装置,其特征在于,所述装置还包括:接口模块,用于接收用户输入的对于所述预设映射关系的配置信息。
28.根据权利要求27所述的装置,其特征在于,
所述接口模块,还用于:接收用户输入的频率设置策略信息;
所述频率控制模块,用于基于所述频率设置策略信息和所述多个子任务中每个子任务对应的任务参数,确定所述每个子任务对应的目标芯片频率。
29.根据权利要求16所述的装置,其特征在于,所述频率设置策略信息包括打开或关闭针对子任务的芯片频率动态设置功能。
30.根据权利要求16所述的装置,其特征在于,所述工作频率包括如下至少一项:所述芯片的核心频率、或者内存频率。
31.一种电子设备,其特征在于,包括:存储器、处理器,所述存储器用于存储计算机可读指令,所述处理器用于调用所述计算机指令,实现权利要求1至15任一所述的方法。
32.根据权利要求31所述的设备,其特征在于,还包括:
芯片,用于基于所述处理器设置的工作频率对目标任务中的每个子任务进行处理。
33.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至15任一所述的方法。
CN201911201455.9A 2019-11-29 2019-11-29 芯片工作频率的设置方法和装置 Active CN112882819B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201911201455.9A CN112882819B (zh) 2019-11-29 2019-11-29 芯片工作频率的设置方法和装置
PCT/CN2020/105195 WO2021103618A1 (zh) 2019-11-29 2020-07-28 芯片工作频率的设置
JP2021538698A JP2022516549A (ja) 2019-11-29 2020-07-28 チップ動作周波数の設定
KR1020217020535A KR20210098508A (ko) 2019-11-29 2020-07-28 칩 동작 주파수의 설정
TW109127158A TWI743934B (zh) 2019-11-29 2020-08-11 晶片工作頻率的設置方法和裝置、電子設備及記錄媒體

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911201455.9A CN112882819B (zh) 2019-11-29 2019-11-29 芯片工作频率的设置方法和装置

Publications (2)

Publication Number Publication Date
CN112882819A CN112882819A (zh) 2021-06-01
CN112882819B true CN112882819B (zh) 2022-03-08

Family

ID=76038734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911201455.9A Active CN112882819B (zh) 2019-11-29 2019-11-29 芯片工作频率的设置方法和装置

Country Status (5)

Country Link
JP (1) JP2022516549A (zh)
KR (1) KR20210098508A (zh)
CN (1) CN112882819B (zh)
TW (1) TWI743934B (zh)
WO (1) WO2021103618A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114779879B (zh) * 2022-05-06 2024-04-30 Oppo广东移动通信有限公司 频压调节方法和相关装置
CN114785376B (zh) * 2022-05-06 2023-07-21 Oppo广东移动通信有限公司 频压预配置方法和相关装置
CN114980165A (zh) * 2022-05-11 2022-08-30 Oppo广东移动通信有限公司 调频调压方法、调制解调器、移动终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169357A (zh) * 2011-02-23 2011-08-31 北京大学深圳研究生院 可调工作电压和时钟频率的dsp及其调节方法
EP2362297A1 (en) * 2010-02-25 2011-08-31 Telefonaktiebolaget L M Ericsson (publ) Technique for selecting a frequency of operation in a processor system
CN106527653A (zh) * 2016-10-12 2017-03-22 东软集团股份有限公司 调整cpu频率的方法及装置
CN109212306A (zh) * 2017-07-06 2019-01-15 龙芯中科技术有限公司 芯片功耗的调节方法、电路与装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003083693A1 (fr) * 2002-04-03 2003-10-09 Fujitsu Limited Planificateur de taches dans un systeme de traitement distribue
US7206950B2 (en) * 2004-06-16 2007-04-17 Matsushita Electric Industrial Co., Ltd. Processor system, instruction sequence optimization device, and instruction sequence optimization program
JP4082439B2 (ja) * 2004-07-26 2008-04-30 三菱電機株式会社 並列計算機
WO2008059471A1 (en) * 2006-11-16 2008-05-22 University Of Limerick A digital power controller
TWI336453B (en) * 2006-12-18 2011-01-21 Asustek Comp Inc Method for adjusting working frequency of chip
CN101821694B (zh) * 2007-10-11 2012-05-23 富士通株式会社 信息处理装置、以及动作控制方法
US8381004B2 (en) * 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
KR101885857B1 (ko) * 2012-01-04 2018-08-06 삼성전자주식회사 온도 관리 회로, 이를 포함하는 시스템 온 칩 및 온도 관리 방법
WO2014097362A1 (ja) * 2012-12-21 2014-06-26 ルネサスモバイル株式会社 半導体装置及びその制御方法
US9494996B2 (en) * 2013-03-15 2016-11-15 Intel Corporation Processor having frequency of operation information for guaranteed operation under high temperature events
US9400518B2 (en) * 2013-06-05 2016-07-26 Qualcomm Innovation Center, Inc. Temporary frequency adjustment of mobile device processors based on task migration
CN103955264B (zh) * 2014-05-15 2016-10-12 乐视致新电子科技(天津)有限公司 动态调节处理器工作频率的方法及系统
CN104407690B (zh) * 2014-12-19 2018-03-06 中科创达软件股份有限公司 调节cpu工作频率的方法、装置及移动终端
CN105045702B (zh) * 2015-07-22 2018-03-20 Tcl移动通信科技(宁波)有限公司 一种根据芯片温度来保护芯片的方法、系统及芯片
JP2018106591A (ja) * 2016-12-28 2018-07-05 ルネサスエレクトロニクス株式会社 半導体装置、動作制御方法、及びプログラム
CN108334405A (zh) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 频率异构cpu,频率异构实现方法、装置及任务调度方法
WO2018165111A1 (en) * 2017-03-06 2018-09-13 Sonics, Inc. An operating point controller for circuit regions in an integrated circuit
CN107357658A (zh) * 2017-06-29 2017-11-17 上海斐讯数据通信技术有限公司 一种调节移动终端cpu频率的方法及系统
CN107562682A (zh) * 2017-08-01 2018-01-09 华南理工大学 基于众核芯片上核心间热能的通信方法
CN107678855B (zh) * 2017-09-19 2020-06-12 中国电子产品可靠性与环境试验研究所 处理器动态调节方法、装置及处理器芯片
CN108268265A (zh) * 2018-01-24 2018-07-10 深圳市道通科技股份有限公司 公共代码库的链接映射方法、软件代码烧录方法及烧录主机

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2362297A1 (en) * 2010-02-25 2011-08-31 Telefonaktiebolaget L M Ericsson (publ) Technique for selecting a frequency of operation in a processor system
CN102169357A (zh) * 2011-02-23 2011-08-31 北京大学深圳研究生院 可调工作电压和时钟频率的dsp及其调节方法
CN106527653A (zh) * 2016-10-12 2017-03-22 东软集团股份有限公司 调整cpu频率的方法及装置
CN109212306A (zh) * 2017-07-06 2019-01-15 龙芯中科技术有限公司 芯片功耗的调节方法、电路与装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Implementation of dynamic voltage frequency scaling on a processor for wireless sensing applications;Ryan Albert Antonio;《IEEE》;20171231;全文 *
基于可变调频间隔的动态电压和频率缩放算法研究;肖俊;《中国优秀硕士学位论文全文数据库 (基础科学辑)》;20190415;全文 *

Also Published As

Publication number Publication date
CN112882819A (zh) 2021-06-01
TW202121116A (zh) 2021-06-01
TWI743934B (zh) 2021-10-21
KR20210098508A (ko) 2021-08-10
WO2021103618A1 (zh) 2021-06-03
JP2022516549A (ja) 2022-02-28

Similar Documents

Publication Publication Date Title
CN112882819B (zh) 芯片工作频率的设置方法和装置
JP7389177B2 (ja) 連合学習方法、装置、機器及び記憶媒体
US9239740B2 (en) Program partitioning across client and cloud
EP4152154A1 (en) Adaptive artificial neural network selection techniques
CN103309738A (zh) 用户作业调度方法及装置
CN110717574B (zh) 一种神经网络运行方法、装置及异构智能芯片
CN114429195B (zh) 混合专家模型训练的性能优化方法和装置
CN112231117B (zh) 基于动态向量混合遗传算法的云机器人服务选择方法及系统
CN113961267B (zh) 一种业务处理方法、装置及设备
CN105786610B (zh) 计算密集型任务向云服务器中卸载的方法
CN111158893B (zh) 应用于雾计算网络的任务卸载方法、系统、设备及介质
CN110365799B (zh) 一种集群多节点调度方法、装置和计算机可读存储介质
CN116795553A (zh) 算力资源的调度方法及装置、存储介质及电子装置
CN112912849B (zh) 一种基于图数据的计算运行调度方法、系统、计算机可读介质及设备
WO2018168695A1 (ja) 分散機械学習装置、分散機械学習方法および分散機械学習記録媒体
CN116245163A (zh) 模型处理方法、系统及非易失性存储介质
CN103514042B (zh) 一种双调归并排序调优方法及装置
CN108762938A (zh) 一种云计算平台中的任务处理方法、装置及系统
CN115309502A (zh) 一种容器调度方法及装置
Zhu et al. Sky Computing: Accelerating Geo-distributed Computing in Federated Learning
de Bruin et al. Quantization of constrained processor data paths applied to convolutional neural networks
CN114035906A (zh) 虚拟机迁移方法、装置、电子设备及存储介质
CN114253701A (zh) 任务调度方法、装置以及计算机系统
CN113391928B (zh) 硬件的资源分配方法、装置、电子设备及存储介质
CN110888715B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40046309

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant