CN113127062A - 指令优化方法及装置 - Google Patents

指令优化方法及装置 Download PDF

Info

Publication number
CN113127062A
CN113127062A CN201911426093.3A CN201911426093A CN113127062A CN 113127062 A CN113127062 A CN 113127062A CN 201911426093 A CN201911426093 A CN 201911426093A CN 113127062 A CN113127062 A CN 113127062A
Authority
CN
China
Prior art keywords
instruction
combination
processor
data
instruction combination
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
CN201911426093.3A
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.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies 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 Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN201911426093.3A priority Critical patent/CN113127062A/zh
Publication of CN113127062A publication Critical patent/CN113127062A/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/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请适用于人工智能技术领域,提供了一种指令优化方法及装置,所述方法包括:获取监控数据,监控数据为人工智能AI处理器在执行指令组合时,对AI处理器监控得到的,用于记录AI处理器中各个计算单元的运行效率;根据监控数据,结合指令组合进行解析,确定指令组合的优化数据;根据优化数据,对指令组合进行优化。通过获取监控得到的监控数据,并根据该监控数据和指令组合进行分析,确定优化指令组合的优化数据,再根据该优化数据对指令组合进行优化,避免了指令组合中出现冗余重复的指令,减少了AI处理器需要运行的指令,而AI处理器在运行优化后的指令组合时,可以减少运行指令组合所花费的时间,提高了AI处理器运行指令组合的运行效率。

Description

指令优化方法及装置
技术领域
本申请属于人工智能技术领域,尤其涉及一种指令优化方法及装置。
背景技术
随着人工智能技术的不断发展,终端设备在搭载AI(Artificial Intelligence,人工智能)处理器后,可以对终端设备的硬件处资源进行智能分配,并对用户对终端设备触发的操作、以及用户的行为进行预测。
相关技术中,终端设备可以通过预先设置的工具链对指令集中的多个指令进行组合,生成代码形式的指令组合,并向AI处理器发送指令组合,则AI处理器可以运行该指令组合,从而可以通过AI处理器中排布的多个计算单元执行矢量运算、浮点运算或卷积计算,进而完成指令组合所指示的功能。
但是,在AI处理器执行二进制指令代码的过程中,由于工具链对指令进行组合编码存在冗余重复的情况,导致AI处理器运行指令组合花费的时间较多,造成效率较低的问题。
发明内容
本申请实施例提供了一种指令优化方法及装置,可以解决运行指令组合花费的时间较多,造成效率较低的问题。
第一方面,本申请实施例提供了一种指令优化方法,包括:
获取监控数据,所述监控数据为人工智能AI处理器在执行指令组合时,对所述AI处理器监控得到的,用于记录所述AI处理器中各个计算单元的运行效率;
根据所述监控数据,结合所述指令组合进行解析,确定所述指令组合的优化数据;
根据所述优化数据,对所述指令组合进行优化。
可选的,所述根据所述监控数据,结合所述指令组合进行解析,确定所述指令组合的优化数据,包括:
对于所述指令组合中的每条指令,判断所述指令是否为常用指令;
若所述指令为常用指令,将封装指令作为所述指令组合的所述优化数据。
可选的,所述将封装指令作为所述指令组合的所述优化数据,包括:
对于所述指令组合中的每条指令,若所述指令在所述指令组合中循环多次出现,将循环封装作为所述指令组合的所述优化数据;
若所述指令在所述指令组合中随机多次出现,将函数调用封装作为所述指令组合的所述优化数据。
可选的,在所述根据所述优化数据,对所述指令组合进行优化之后,所述方法还包括:
获取多个指令组合,每个所述指令组合是根据上一指令组合优化得到的;
确定每个所述指令组合对应的监控数据;
根据多个所述监控数据,从多个所述指令组合中确定目标指令组合,所述目标指令组合对应的监控数据所指示的所述AI处理器中各个所述计算单元的运行效率最高。
可选的,在所述获取监控数据之前,所述方法还包括:
从预先设置的指令集中获取多个指令;
根据各个所述指令之间的逻辑关系,生成所述指令组合;
通过所述AI处理器运行所述指令组合。
第二方面,本申请实施例提供了一种指令优化装置,包括:
第一获取模块,用于获取监控数据,所述监控数据为人工智能AI处理器在执行指令组合时,对所述AI处理器监控得到的,用于记录所述AI处理器中各个计算单元的运行效率;
第一确定模块,用于根据所述监控数据,结合所述指令组合进行解析,确定所述指令组合的优化数据;
优化模块,用于根据所述优化数据,对所述指令组合进行优化。
可选的,所述第一确定模块,还用于对于所述指令组合中的每条指令,判断所述指令是否为常用指令;若所述指令为常用指令,将封装指令作为所述指令组合的所述优化数据。
可选的,所述第一确定模块,还用于对于所述指令组合中的每条指令,若所述指令在所述指令组合中循环多次出现,将循环封装作为所述指令组合的所述优化数据;若所述指令在所述指令组合中随机多次出现,将函数调用封装作为所述指令组合的所述优化数据。
可选的,所述装置还包括:
第二获取模块,用于获取多个指令组合,每个所述指令组合是根据上一指令组合优化得到的;
第二确定模块,用于确定每个所述指令组合对应的监控数据;
第三确定模块,用于根据多个所述监控数据,从多个所述指令组合中确定目标指令组合,所述目标指令组合对应的监控数据所指示的所述AI处理器中各个所述计算单元的运行效率最高。
可选的,所述装置还包括:
第三获取模块,用于从预先设置的指令集中获取多个指令;
生成模块,用于根据各个所述指令之间的逻辑关系,生成所述指令组合;
运行模块,用于通过所述AI处理器运行所述指令组合。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面中任一项所述的指令优化方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的指令优化方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的指令优化方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例与现有技术相比存在的有益效果是:
本申请实施例通过获取AI处理器在执行指令组合时监控得到的监控数据,并根据监控数据,结合指令组合进行解析,确定指令组合的优化数据,再根据优化数据,对指令组合进行优化。通过获取监控得到的监控数据,并根据该监控数据和指令组合进行分析,确定优化指令组合的优化数据,再根据该优化数据对指令组合进行优化,避免了指令组合中出现冗余重复的指令,减少了AI处理器需要运行的指令,而AI处理器在运行优化后的指令组合时,可以减少运行指令组合所花费的时间,提高了AI处理器运行指令组合的运行效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请提供的指令优化方法所涉及的指令优化系统的系统结构示意图;
图2示出了本申请提供的一种指令优化方法的示意性流程图;
图3示出了本申请提供的另一种指令优化方法的示意性流程图;
图4示出了本申请实施例提供的一种指令优化装置的结构框图;
图5示出了本申请实施例提供的另一种指令优化装置的结构框图;
图6示出了本申请实施例提供的又一种指令优化装置的结构框图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的指令优化方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
例如,所述终端设备可以是WLAN中的站点(STAION,ST),可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP)电话、无线本地环路(WirelessLocal Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、车联网终端、电脑、膝上型计算机、手持式通信设备、手持式计算设备、卫星无线设备、无线调制解调器卡、电视机顶盒(set top box,STB)、用户驻地设备(customer premise equipment,CPE)和/或用于在无线系统上进行通信的其它设备以及下一代通信系统,例如,5G网络中的移动终端或者未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)网络中的移动终端等。
图1示出了本申请提供的指令优化方法所涉及的指令优化系统的系统结构示意图,参见图1,该系统结构示意图可以包括:终端设备110、AI处理器120和Mac监控器130。
其中,终端设备110搭载有AI处理器120和Mac监控器130。而且,AI处理器120排布有Mac矩阵,该Mac矩阵中的每个Mac单元均可以为计算单元,在AI处理器120运行指令组合的过程中,每个计算单元均可运行指令组合,以提高AI处理器120运行指令组合的效率。
相对应的,Mac监控器130则可以监控AI处理器120中每个计算单元是否运行了指令组合,若运行了指令组合,每个计算单元是否完全发挥了计算单元的硬件性能,从而可以得到监控数据。
在一种可能的实现方式中,终端设备110可以根据预先设置的工具链应用程序,获取预先存储的指令集中的多个指令,并根据各个指令之间的逻辑关系,对多个指令进行组合,得到指令组合,以便通过指令组合实现某种功能,再通过AI处理器120运行该指令组合,同时,可以控制Mac监控器130对AI处理器120进行监控,得到监控数据,从而根据监控数据和指令组合生成优化数据,再根据优化数据对指令组合进行优化,得到AI处理器120能够更高效率运行的优化后的指令组合。
需要说明的是,在实际应用中,不但可以通过终端设备110对指令组合进行优化,还可以根据用户的经验对指令集中的指令、AI处理器120的Mac矩阵和指令组合的大小进行优化,本申请实施例对此不做限定。
例如,在尚未固化AI处理器120的Mac矩阵时,可以根据监控数据确定AI处理器120中Mac矩阵的非常用计算单元,从而对Mac矩阵的排布进行优化。
图2示出了本申请提供的一种指令优化方法的示意性流程图,作为示例而非限定,该方法可以应用于上述终端设备中,参见图2,该方法包括:
S201、获取监控数据,该监控数据为AI处理器在执行指令组合时,对该AI处理器监控得到的,用于记录AI处理器中各个计算单元的运行效率。
终端设备在通过AI处理器执行指令组合的过程中,可以根据AI处理器中排布的各个计算单元进行计算,从而提高运行指令组合的效率。但是,在实际应用中,受到指令组合和计算单元排布的影响,AI处理器中在运行指令组合的过程中,会受到指令组合中冗余重复的指令的影响,导致AI处理器的效率较低。
因此,可以在AI处理器运行指令组合之前,对指令组合进行优化,以提高AI处理器的运行效率。相应的,在对指令组合进行优化的过程中,可以先获取AI处理器的监控数据,以便在后续步骤中,可以根据该监控数据对指令组合进行优化。
例如,终端设备可以接收Mac监控器发送的监控数据,并建立监控数据与AI处理器所执行的指令组合之间的对应关系,以便根据该对应关系确定多个指令组合中,AI处理器的计算单元运行效率最高的目标指令组合。
S202、根据监控数据,结合指令组合进行解析,确定该指令组合的优化数据。
在得到监控数据后,终端设备可以根据该监控数据,并结合指令组合中的各个指令进行分析,确定优化该指令组合的优化方式,从而得到至少一种优化方式所组成的优化数据。
在一种可能的实现方式中,终端设备可以确定指令组合中每个相同的指令在指令组合中出现的位置和次数,并结合监控数据中指示的计算单元的运行效率,确定是否需要对该指令进行优化,若确定需要对该指令进行优化,则可以结合该指令的出现的位置和次数,确定优化该指令的优化方式,从而得到针对该指令的优化方式。
类似的,按照上述方式确定针对各个指令的优化方式后,即可得到针对该指令组合的优化数据。
S203、根据优化数据,对指令组合进行优化。
在终端设备生成优化数据后,则可以根据优化数据中的至少一种优化方式,对指令组合中的各个指令进行优化,得到优化后的指令组合,以便AI处理器在运行优化后的指令组合的过程中,可以提高AI处理器的运行效率。
在一种可能的实现方式中,终端设备可以根据优化数据中针对不同指令的优化方式,对指令组合中的各个指令采用相对应的优化方式,对各个指令进行进行优化,从而完成对指令组合的优化。
例如,若指令组合中的某个指令循环多次出现在指令组合中,则可以采用循环封装的方式对该指令进行优化,若指令组合中的某个指令随机多次出现在指令组合中,则可以采用函数调用封装的方式对该指令进行优化。
综上所述,本申请实施例提供的指令优化方法,通过获取AI处理器在执行指令组合时监控得到的监控数据,并根据监控数据,结合指令组合进行解析,确定指令组合的优化数据,再根据优化数据,对指令组合进行优化。通过获取监控得到的监控数据,并根据该监控数据和指令组合进行分析,确定优化指令组合的优化数据,再根据该优化数据对指令组合进行优化,避免了指令组合中出现冗余重复的指令,减少了AI处理器需要运行的指令,而AI处理器在运行优化后的指令组合时,可以减少运行指令组合所花费的时间,提高了AI处理器运行指令组合的运行效率。
图3示出了本申请提供的另一种指令优化方法的示意性流程图,作为示例而非限定,该方法可以应用于上述终端设备中,参见图3,该方法包括:
S301、生成指令组合。
终端设备在通过AI处理器运行指令组合的过程中,可以先根据预先设置的包括多个指令的指令集,并结合优化的生成指令组合的方式,生成指令组合,以便在后续步骤中,可以基于生成的指令组合再次进行优化。
可选的,终端设备可以从预先设置的指令集中获取多个指令,并根据各个指令之间的逻辑关系,生成指令组合,再通过AI处理器运行指令组合。
在一种可能的实现方式中,终端设备可以在指令集对应的存储空间中,获取多个指令,并确定各个指令之间的逻辑关系,从而根据各个指令之间的逻辑关系,结合各个指令,生成用于实现某个功能的指令组合。
相应的,在得到指令组合后,终端设备可以控制AI处理器运行该指令组合,并在AI处理器运行该指令组合的过程中,通过Mac监控器监控AI处理器的运行效率,也即是监控AI处理器中各个计算单元的运行效率,确定各个计算单元是否参与运行指令组合,并确定各个计算单元是否完全发挥了硬件性能,从而得到针对AI处理器运行指令组合的监控数据。
例如,终端设备需要实现写数据的功能,则可以从指令集中获取:文本获取指令、文本删除指令和文本添加指令,并基于各个指令之间的逻辑关系,按照文本删除指令、文本获取指令和文本添加指令的顺序进行组合,得到实现写数据功能的指令组合。
S302、获取监控数据,该监控数据为AI处理器在执行指令组合时,对该AI处理器监控得到的,用于记录AI处理器中各个计算单元的运行效率。
由于S302与S201类似,在此不再赘述。
S303、根据监控数据,结合指令组合进行解析,确定指令组合的优化数据。
在得到监控数据后,则可以根据监控数据确定优化指令组合的优化方式,从而可以根据至少一个优化方式生成优化数据,以便在后续步骤中,可以根据该优化数据对指令组合进行优化。
可选的,对于指令组合中的每条指令,终端设备可以判断该指令是否为常用指令,若该指令为常用指令,则可以将封装指令作为指令组合的优化数据。
在一种可能的实现方式中,终端设备可以遍历指令组合中的每条指令,而且针对每条指令,终端设备均可以判断该指令是否为常用指令,若不是常用指令,则无法对该指令进行优化。
但是,若该指令为常用指令,则可以确定该指令出现的位置和次数,并根据出现的位置和次数,确定对该指令进行优化的优化方式。在对每条指令进行遍历后,即可得到至少一个优化方式,从而得到由至少一个优化方式生成的优化数据。
进一步地,对于指令组合中的每条指令,若该指令在指令组合中循环多次出现,则可以将循环封装作为指令组合的优化数据。类似的,若该指令在指令组合中随机多次出现,则可以将函数调用封装作为指令组合的优化数据。
在一种可能的实现方式中,终端设备可以根据指令出现的位置和次数,判断该指令是否为指令组合中循环出现的指令,若是循环出现的指令,可以采用循环封装的方式对该指令进行优化,则可以将循环封装的优化方式作为优化数据中的一种优化方式。
类似的,若该指令不是循环出现的指令,则可以根据该指令出现的次数,确定指令组合中是否多次出现该指令,若多次出现该指令,可以采用函数调用封装的方式对该指令进行优化,则可以将函数调用封装的优化方式作为优化数据中的另一种优化方式。
另外,终端设备还可以根据预先设置的存储空间的大小,对指令组合进行优化。若指令组合所占用的存储空间的大小,大于预先设置的存储空间的大小,则在生成优化数据的过程中,可以结合减少存储空间的方式,生成优化数据。
例如,若预先设置的存储空间的大小为64Kb(千字节),而指令组合所占用的存储空间为70Kb,则需要对指令组合所占用的存储空间进行缩减。
当然,在实际应用中,还可以将其他优化方式作为优化数据,本申请实施例对优化方式不做限定。
S304、根据优化数据,对指令组合进行优化。
由于S304与S203类似,在此不再赘述。
S305、确定目标指令组合,该目标指令组合对应的监控数据所指示的AI处理器中各个计算单元的运行效率最高。
终端设备可以循环执行上述S301至S304,当优化的指令组合满足预先设置的优化条件时,或者,优化次数达到预先设置的优化阈值时,可以从优化得到的多个指令组合中,选取AI处理器运行效率最高的目标指令组合,从而完成对指令组合的优化,确定优化指令组合的方式。
可选的,终端设备可以获取多个指令组合,并确定每个指令组合对应的监控数据,再根据多个监控数据,从多个指令组合中确定目标指令组合。
其中,每个指令组合是根据上一指令组合优化得到的。例如,AI处理器在运行第一指令组合后,可以监控得到第一监控数据,并基于第一监控数据和第一指令组合,对第一指令组合进行优化,得到第二指令组合,之后AI处理器可以再次运行第二指令组合,并通过Mac监控器得到第二监控数据,从而可以得到多个指令组合,以及与每个指令组合相对应的监控数据。
而且,目标指令组合对应的监控数据所指示的AI处理器中各个所述计算单元的运行效率最高,也即是,当AI处理器运行目标指令组合时,AI处理器中各个计算单元的运行效率最高。
在一种可能的实现方式中,终端设备可以对优化的各个指令组合进行记录,并在AI处理器运行指令组合后,确定是否达到了预先设置的优化条件,若达到了优化条件中指示的目标运行效率,或者,优化次数达到了预先设置的优化阈值,则可以获取多个优化的指令组合,并确定每个指令组合对应的监控数据所指示的运行效率,从而从多个运行效率中选取参数值最大的运行效率所对应的指令组合,进而将选取的指令组合作为目标指令组合。
需要说明的是,优化条件指示的目标运行效率或优化阈值,可以根据其他AI处理器的运行效率进行设置,也可以根据用户的经验进行设置,本申请实施例对目标运行效率和优化阈值的设置方式不做限定。
综上所述,本申请实施例提供的指令优化方法,通过获取AI处理器在执行指令组合时监控得到的监控数据,并根据监控数据,结合指令组合进行解析,确定指令组合的优化数据,再根据优化数据,对指令组合进行优化。通过获取监控得到的监控数据,并根据该监控数据和指令组合进行分析,确定优化指令组合的优化数据,再根据该优化数据对指令组合进行优化,避免了指令组合中出现冗余重复的指令,减少了AI处理器需要运行的指令,而AI处理器在运行优化后的指令组合时,可以减少运行指令组合所花费的时间,提高了AI处理器运行指令组合的运行效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的指令优化方法,图4示出了本申请实施例提供的一种指令优化装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图4,该装置包括:
第一获取模块401,用于获取监控数据,该监控数据为人工智能AI处理器在执行指令组合时,对该AI处理器监控得到的,用于记录该AI处理器中各个计算单元的运行效率;
第一确定模块402,用于根据该监控数据,结合该指令组合进行解析,确定该指令组合的优化数据;
优化模块403,用于根据该优化数据,对该指令组合进行优化。
可选的,该第一确定模块402,还用于对于该指令组合中的每条指令,判断该指令是否为常用指令;若该指令为常用指令,将封装指令作为该指令组合的该优化数据。
可选的,该第一确定模块402,还用于对于该指令组合中的每条指令,若该指令在该指令组合中循环多次出现,将循环封装作为该指令组合的该优化数据;若该指令在该指令组合中随机多次出现,将函数调用封装作为该指令组合的该优化数据。
可选的,参见图5,该装置还包括:
第二获取模块404,用于获取多个指令组合,每个该指令组合是根据上一指令组合优化得到的;
第二确定模块405,用于确定每个该指令组合对应的监控数据;
第三确定模块406,用于根据多个该监控数据,从多个该指令组合中确定目标指令组合,该目标指令组合对应的监控数据所指示的该AI处理器中各个该计算单元的运行效率最高。
可选的,参见图6,该装置还包括:
第三获取模块407,用于从预先设置的指令集中获取多个指令;
生成模块408,用于根据各个该指令之间的逻辑关系,生成该指令组合;
运行模块409,用于通过该AI处理器运行该指令组合。
综上所述,本申请实施例提供的指令优化装置,通过获取AI处理器在执行指令组合时监控得到的监控数据,并根据监控数据,结合指令组合进行解析,确定指令组合的优化数据,再根据优化数据,对指令组合进行优化。通过获取监控得到的监控数据,并根据该监控数据和指令组合进行分析,确定优化指令组合的优化数据,再根据该优化数据对指令组合进行优化,避免了指令组合中出现冗余重复的指令,减少了AI处理器需要运行的指令,而AI处理器在运行优化后的指令组合时,可以减少运行指令组合所花费的时间,提高了AI处理器运行指令组合的运行效率。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种指令优化方法,其特征在于,包括:
获取监控数据,所述监控数据为人工智能AI处理器在执行指令组合时,对所述AI处理器监控得到的,用于记录所述AI处理器中各个计算单元的运行效率;
根据所述监控数据,结合所述指令组合进行解析,确定所述指令组合的优化数据;
根据所述优化数据,对所述指令组合进行优化。
2.如权利要求1所述的方法,其特征在于,所述根据所述监控数据,结合所述指令组合进行解析,确定所述指令组合的优化数据,包括:
对于所述指令组合中的每条指令,判断所述指令是否为常用指令;
若所述指令为常用指令,将封装指令作为所述指令组合的所述优化数据。
3.如权利要求2所述的方法,其特征在于,所述将封装指令作为所述指令组合的所述优化数据,包括:
对于所述指令组合中的每条指令,若所述指令在所述指令组合中循环多次出现,将循环封装作为所述指令组合的所述优化数据;
若所述指令在所述指令组合中随机多次出现,将函数调用封装作为所述指令组合的所述优化数据。
4.如权利要求1所述的方法,其特征在于,在所述根据所述优化数据,对所述指令组合进行优化之后,所述方法还包括:
获取多个指令组合,每个所述指令组合是根据上一指令组合优化得到的;
确定每个所述指令组合对应的监控数据;
根据多个所述监控数据,从多个所述指令组合中确定目标指令组合,所述目标指令组合对应的监控数据所指示的所述AI处理器中各个所述计算单元的运行效率最高。
5.如权利要求1至4任一所述的方法,其特征在于,在所述获取监控数据之前,所述方法还包括:
从预先设置的指令集中获取多个指令;
根据各个所述指令之间的逻辑关系,生成所述指令组合;
通过所述AI处理器运行所述指令组合。
6.一种指令优化装置,其特征在于,包括:
第一获取模块,用于获取监控数据,所述监控数据为人工智能AI处理器在执行指令组合时,对所述AI处理器监控得到的,用于记录所述AI处理器中各个计算单元的运行效率;
第一确定模块,用于根据所述监控数据,结合所述指令组合进行解析,确定所述指令组合的优化数据;
优化模块,用于根据所述优化数据,对所述指令组合进行优化。
7.如权利要求6所述的装置,其特征在于,所述第一确定模块,还用于对于所述指令组合中的每条指令,判断所述指令是否为常用指令;若所述指令为常用指令,将封装指令作为所述指令组合的所述优化数据。
8.如权利要求7所述的装置,其特征在于,所述第一确定模块,还用于对于所述指令组合中的每条指令,若所述指令在所述指令组合中循环多次出现,将循环封装作为所述指令组合的所述优化数据;若所述指令在所述指令组合中随机多次出现,将函数调用封装作为所述指令组合的所述优化数据。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
CN201911426093.3A 2019-12-31 2019-12-31 指令优化方法及装置 Pending CN113127062A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911426093.3A CN113127062A (zh) 2019-12-31 2019-12-31 指令优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911426093.3A CN113127062A (zh) 2019-12-31 2019-12-31 指令优化方法及装置

Publications (1)

Publication Number Publication Date
CN113127062A true CN113127062A (zh) 2021-07-16

Family

ID=76770920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911426093.3A Pending CN113127062A (zh) 2019-12-31 2019-12-31 指令优化方法及装置

Country Status (1)

Country Link
CN (1) CN113127062A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609292A (zh) * 2010-12-13 2012-07-25 微软公司 指令优化
US20140073432A1 (en) * 2012-09-07 2014-03-13 Dexin Corporation Gaming system with performance tuning and optimized data sharing functions
US20150277876A1 (en) * 2014-03-31 2015-10-01 Fujitsu Limited Compiling device, compiling method, and storage medium storing compiler program
CN107592924A (zh) * 2015-06-11 2018-01-16 英特尔公司 用于对由处理器执行的指令进行优化的方法和装置
CN110188022A (zh) * 2019-05-09 2019-08-30 国家计算机网络与信息安全管理中心 一种基于Java的集群性能测试方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609292A (zh) * 2010-12-13 2012-07-25 微软公司 指令优化
US20140073432A1 (en) * 2012-09-07 2014-03-13 Dexin Corporation Gaming system with performance tuning and optimized data sharing functions
US20150277876A1 (en) * 2014-03-31 2015-10-01 Fujitsu Limited Compiling device, compiling method, and storage medium storing compiler program
CN107592924A (zh) * 2015-06-11 2018-01-16 英特尔公司 用于对由处理器执行的指令进行优化的方法和装置
CN110188022A (zh) * 2019-05-09 2019-08-30 国家计算机网络与信息安全管理中心 一种基于Java的集群性能测试方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈艾, 周学海, 李曦, 王志刚, 王峰: "专用指令集处理器(ASIP)行为级设计方法研究", 计算机工程与应用, no. 29, 1 May 2006 (2006-05-01), pages 44 - 47 *

Similar Documents

Publication Publication Date Title
CN110933497A (zh) 视频图像数据插帧处理方法及相关设备
CN109542512B (zh) 一种数据处理方法、装置和存储介质
CN110442498A (zh) 异常数据节点的定位方法、装置、存储介质及计算机设备
CN112667405B (zh) 信息处理方法、装置、设备及存储介质
CN114610650A (zh) 内存压缩方法、装置、存储介质及电子设备
CN111352913A (zh) 一种文件的压缩方法、装置、存储介质及终端设备
US20200242467A1 (en) Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product
CN113127062A (zh) 指令优化方法及装置
CN111179369A (zh) 一种基于安卓系统的gpu渲染方法及装置
CN112132271A (zh) 神经网络加速器运行方法、架构及相关装置
CN107301017B (zh) 一种数据存储方法及装置
CN110851433A (zh) 键值存储系统键优化方法、存储介质、电子设备及系统
CN111475488B (zh) 一种数据处理方法、装置、终端设备及可读存储介质
CN111191612B (zh) 视频图像匹配方法、装置、终端设备及可读存储介质
CN113805854A (zh) 基于Linux系统的应用层Hook实现方法、系统、装置及存储介质
CN111198807A (zh) 数据流分析方法、装置、计算机设备及存储介质
CN115826961B (zh) 设计器及引擎分离重用的数据分析系统设计方法及装置
CN111353320B (zh) 一种扫码识别方法及装置
CN111580925B (zh) 应用伸展的方法和装置
CN108769695B (zh) 一种帧类别的转换方法、系统及终端
CN117354741A (zh) 消息处理方法、装置、设备及存储介质
CN118194079A (zh) 模型训练方法、装置、存储介质及电子设备
CN116824018A (zh) 渲染异常检测方法、装置、存储介质及电子设备
CN115391138A (zh) 页面浏览数据的上传方法及电子设备
CN117290843A (zh) 基于jni的vmp壳函数语义还原方法、系统、设备及介质

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