CN113220306A - 操作执行方法、装置和电子设备 - Google Patents
操作执行方法、装置和电子设备 Download PDFInfo
- Publication number
- CN113220306A CN113220306A CN202110602180.0A CN202110602180A CN113220306A CN 113220306 A CN113220306 A CN 113220306A CN 202110602180 A CN202110602180 A CN 202110602180A CN 113220306 A CN113220306 A CN 113220306A
- Authority
- CN
- China
- Prior art keywords
- operator
- compiled
- cache
- compiling
- code
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004364 calculation method Methods 0.000 claims abstract description 38
- 238000005457 optimization Methods 0.000 claims description 36
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 150000004820 halides Chemical class 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4434—Reducing the memory space required by the program code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本说明书实施例提出了一种操作执行方法、装置和电子设备,其中,上述操作执行方法中,获取源代码中待编译的算子之后,在缓存中查找与上述待编译的算子模式相同的算子,如果查找到与上述待编译的算子模式相同的算子,则从缓存中获取上述模式相同的算子的编译代码,这样,就无需对待编译的算子执行编译优化的过程,可以直接获取上述待编译的算子的输入数据,根据上述模式相同的算子的编译代码,对上述待编译的算子的输入数据进行计算,获得计算结果,最后执行与上述计算结果对应的操作,从而可以减少占据的代码空间,节省编译优化时间。
Description
【技术领域】
本说明书实施例涉及互联网技术领域,尤其涉及一种操作执行方法、装置和电子设备。
【背景技术】
编译器是软件开发过程中一种非常重要的基础工具,其以高级计算机语言编写的源程序作为输入,经过词法分析、语法分析、语义分析、中间代码生成、代码优化和/或目标代码生成等步骤,最终得到可执行的目标机器代码。在实际开发过程中,编译之后的目标机器代码需要具有比较理想的性能,比如可执行代码规模小、执行速度快和/或功耗低等。因此,编译器提供了大量的编译优化选项,开发人员需要根据实际情况选择一组编译优化选项形成编译优化序列来编译程序。
编译优化的性能对于程序执行性能来说至关重要,在很多时候编译优化的时间占据了大部分的程序执行时间。
在目前流行的编译优化框架中,如:TVM或Halide中,如果遇到多个相同的算子,编译优化框架需要对这多个相同的算子进行编译优化。举例来说,ResNet-50模型最多可以有6个相同的卷积算子,这样,针对ResNet-50模型训练的优化器(Optimizer)在进行编译优化时,需要进行多个模式相同的卷积操作,从而产生多个编译过程和编译代码,不但占据了大量的代码空间,也耗费了更多重复的编译优化时间。
因此需要提供一种操作执行方法,减少编译优化产生的编译代码占据的代码空间,节省编译优化时间。
【发明内容】
本说明书实施例提供了一种操作执行方法、装置和电子设备,以实现减少编译代码所占据的代码空间,节省编译优化时间。
第一方面,本说明书实施例提供一种操作执行方法,包括:获取源代码中待编译的算子;在缓存中查找与所述待编译的算子模式相同的算子;如果查找到与所述待编译的算子模式相同的算子,则从所述缓存中获取所述模式相同的算子的编译代码;获取所述待编译的算子的输入数据,根据所述模式相同的算子的编译代码,对所述待编译的算子的输入数据进行计算,获得计算结果;执行与所述计算结果对应的操作。
上述操作执行方法中,获取源代码中待编译的算子之后,在缓存中查找与上述待编译的算子模式相同的算子,如果查找到与上述待编译的算子模式相同的算子,则从缓存中获取上述模式相同的算子的编译代码,这样,就无需对待编译的算子执行编译优化的过程,可以直接获取上述待编译的算子的输入数据,根据上述模式相同的算子的编译代码,对上述待编译的算子的输入数据进行计算,获得计算结果,最后执行与上述计算结果对应的操作,从而可以减少占据的代码空间,节省编译优化时间。
其中一种可能的实现方式中,所述在缓存中查找与所述待编译的算子模式相同的算子之后,还包括:如果在所述缓存中未查找到与所述待编译的算子模式相同的算子,则对所述待编译的算子进行编译优化,获得所述待编译的算子的编译代码;将所述待编译的算子和所述待编译的算子的编译代码保存到缓存中;获取所述待编译的算子的输入数据,根据所述待编译的算子的编译代码,对所述待编译的算子的输入数据进行计算,获得计算结果;执行与所述计算结果对应的操作。
其中一种可能的实现方式中,所述在缓存中查找与所述待编译的算子模式相同的算子包括:在缓存中查找与所述待编译的算子算法相同的算子;或者,在缓存中查找与所述待编译的算子算法相同,并且编译优化的方式相同的算子。
其中一种可能的实现方式中,所述编译优化的方式包括:算子的输入数据的尺寸和所述算子的配置。
第二方面,本说明书实施例提供一种操作执行装置,包括:获取模块,用于获取源代码中待编译的算子;查找模块,用于在缓存中查找与所述待编译的算子模式相同的算子;所述获取模块,还用于当所述查找模块查找到与所述待编译的算子模式相同的算子时,从所述缓存中获取所述模式相同的算子的编译代码;以及获取所述待编译的算子的输入数据;计算模块,用于根据所述模式相同的算子的编译代码,对所述待编译的算子的输入数据进行计算,获得计算结果;执行模块,用于执行与所述计算结果对应的操作。
其中一种可能的实现方式中,所述装置还包括:编译模块和保存模块;所述编译模块,用于当所述查找模块在所述缓存中未查找到与所述待编译的算子模式相同的算子时,对所述待编译的算子进行编译优化,获得所述待编译的算子的编译代码;所述保存模块,用于将所述待编译的算子和所述待编译的算子的编译代码保存到缓存中;所述获取模块,还用于获取所述待编译的算子的输入数据;所述计算模块,还用于根据所述待编译的算子的编译代码,对所述待编译的算子的输入数据进行计算,获得计算结果;所述执行模块,还用于执行与所述计算结果对应的操作。
其中一种可能的实现方式中,所述查找模块,具体用于在缓存中查找与所述待编译的算子算法相同的算子;或者,在缓存中查找与所述待编译的算子算法相同,并且编译优化的方式相同的算子。
其中一种可能的实现方式中,所述编译优化的方式包括:算子的输入数据的尺寸和所述算子的配置。
第三方面,本说明书实施例提供一种电子设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。
第四方面,本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的方法。
应当理解的是,本说明书实施例的第二~四方面与本说明书实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
【附图说明】
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书一个实施例提供的操作执行方法的流程图;
图2为本说明书一个实施例提供的缓存算子的运行过程的示意图;
图3为本说明书另一个实施例提供的操作执行方法的流程图;
图4为本说明书一个实施例提供的操作执行装置的结构示意图;
图5为本说明书另一个实施例提供的操作执行装置的结构示意图;
图6为本说明书一个实施例提供的电子设备的结构示意图。
【具体实施方式】
为了更好的理解本说明书的技术方案,下面结合附图对本说明书实施例进行详细描述。
应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。
在本说明书实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
编译优化的性能对于程序执行性能来说至关重要,在很多时候编译优化的时间占据了大部分的程序执行时间。在目前流行的编译优化框架中,如:TVM或Halide中,如果遇到多个相同的算子,编译优化框架需要对这多个相同的算子进行编译优化,从而产生多个编译过程和编译代码,这不但占据了大量的代码空间,也耗费了更多重复的编译优化时间。
基于以上问题,本说明书实施例提供一种操作执行方法,该方法使用基于模式识别的编译优化缓存技术,可以识别出相同模式的算子,针对模式相同的算子,复用编译优化的结果,从而可以减少占据的代码空间,节省编译优化时间。实验结果表明,本文的技术能够提升程序运行时间数倍以上。本说明书实施例以机器学习的编译框架为例进行说明,但本说明书实施例提供的操作执行方法并不限于机器学习的编译优化框架,也适用于其他可以基于模式识别运算的编译优化框架中。
图1为本说明书一个实施例提供的操作执行方法的流程图,如图1所示,上述操作执行方法可以包括:
步骤102,获取源代码中待编译的算子。
其中,算子是一个函数空间到函数空间上的映射,广义的讲,对任何函数进行某一项操作都可以认为是一个算子,甚至包括求幂次或开方都可以认为是一个算子。总而言之,算子就是映射,就是关系,就是变换。
步骤104,在缓存中查找与上述待编译的算子模式相同的算子。然后执行步骤106或步骤112。
步骤106,如果查找到与上述待编译的算子模式相同的算子,则从缓存中获取上述模式相同的算子的编译代码。
步骤108,获取上述待编译的算子的输入数据,根据上述模式相同的算子的编译代码,对上述待编译的算子的输入数据进行计算,获得计算结果。
参见图2,图2为本说明书一个实施例提供的缓存算子的运行过程的示意图,从图2可以看出,如果在缓存中查找到与待编译的算子模式相同的算子,那么可以直接从缓存中获取模式相同的算子的编译代码,然后根据该编译代码对输入数据进行计算,获得计算结果。也就是说,模式相同的算子可以使用相同的编译代码,无需再执行编译优化的过程,减少占据的代码空间,节省编译优化时间。
步骤110,执行与上述计算结果对应的操作。
步骤112,如果在缓存中未查找到与待编译的算子模式相同的算子,则对待编译的算子进行编译优化,获得上述待编译的算子的编译代码。
步骤114,将上述待编译的算子和上述待编译的算子的编译代码保存到缓存中。
本实施例中,如果在缓存中未查找到与待编译的算子模式相同的算子,那么在对待编译的算子进行编译优化,获得上述待编译的算子的编译代码之后,可以将上述待编译的算子和上述待编译的算子的编译代码保存到缓存中。这样,后续的运算过程中,如果碰到与上述待编译的算子模式相同的算子,就可以直接从缓存中获取上述模式相同的算子的编译代码,无需再进行编译优化的过程,从而可以减少占据的代码空间,节省编译优化时间。
步骤116,获取上述待编译的算子的输入数据,根据上述待编译的算子的编译代码,对待编译的算子的输入数据进行计算,获得计算结果。
步骤118,执行与上述计算结果对应的操作。
上述操作执行方法中,获取源代码中待编译的算子之后,在缓存中查找与上述待编译的算子模式相同的算子,如果查找到与上述待编译的算子模式相同的算子,则从缓存中获取上述模式相同的算子的编译代码,这样,就无需对待编译的算子执行编译优化的过程,可以直接获取上述待编译的算子的输入数据,根据上述模式相同的算子的编译代码,对上述待编译的算子的输入数据进行计算,获得计算结果,最后执行与上述计算结果对应的操作,从而可以减少占据的代码空间,节省编译优化时间。
图3为本说明书另一个实施例提供的操作执行方法的流程图,如图3所示,步骤104可以包括:
步骤302,在缓存中查找与上述待编译的算子算法相同的算子;或者,在缓存中查找与上述待编译的算子算法相同,并且编译优化的方式相同的算子;其中,上述编译优化的方式包括:算子的输入数据的尺寸和上述算子的配置。
本实施例中,上述算子的配置指的是在算子的计算过程中需要指定的配置信息。举例来说,对于卷积算子,它的计算需要指定的配置信息可以包括填充(padding)和/或步长(stride)等。
本实施例的一种实现方式中,模式相同的算子包括算法相同的算子,但输入数据的内容、尺寸和上述算子的配置可以不同,例如:ReLU算子或逐点加(Element-wise Add)算子。
本实施例的另一种实现方式中,模式相同的算子包括算法相同,并且算子的输入数据的尺寸和上述算子的配置均相同,但输入数据的内容可以不同,例如:矩阵乘算子或卷积算子。
以矩阵乘算子为例,在查找与矩阵乘算子模式相同的算子时,不仅需要算法相同,算子的输入数据的尺寸和上述算子的配置也需要相同。例如:缓存中存在input_0=[10,10],input_1=[10,10]的矩阵乘算子,但是下一个算子是input_0=[5,5],input_1=[5,5]的矩阵乘算子,因为尺寸不同,下一个算子不能复用缓存中的算子的编译代码。
具体实现时,可以根据不同的算子的特性,预先配置模式相同的算子的匹配规则,这里的匹配规则包括:在缓存中查找模式相同的算子时,是查找算法相同的算子,还是查找算法相同,并且编译优化的方式相同的算子。这样,在获取当前待编译的算子之后,可以根据与当前待编译的算子对应的匹配规则,在缓存中查找与当前待编译的算子模式相同的算子。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图4为本说明书一个实施例提供的操作执行装置的结构示意图,如图4所示,上述操作执行装置可以包括:获取模块41、查找模块42、计算模块43和执行模块44;
获取模块41,用于获取源代码中待编译的算子;
查找模块42,用于在缓存中查找与上述待编译的算子模式相同的算子;
获取模块41,还用于当查找模块42查找到与待编译的算子模式相同的算子时,从缓存中获取上述模式相同的算子的编译代码;以及获取上述待编译的算子的输入数据;
计算模块43,用于根据上述模式相同的算子的编译代码,对待编译的算子的输入数据进行计算,获得计算结果;
执行模块44,用于执行与上述计算结果对应的操作。
图4所示实施例提供的操作执行装置可用于执行本说明书图1所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
图5为本说明书另一个实施例提供的操作执行装置的结构示意图,与图4所示的操作执行装置相比,图5所示的操作执行装置还可以包括:编译模块45和保存模块46;
编译模块45,用于当查找模块42在缓存中未查找到与上述待编译的算子模式相同的算子时,对待编译的算子进行编译优化,获得上述待编译的算子的编译代码;
保存模块46,用于将待编译的算子和上述待编译的算子的编译代码保存到缓存中;
获取模块41,还用于获取上述待编译的算子的输入数据;
计算模块43,还用于根据待编译的算子的编译代码,对上述待编译的算子的输入数据进行计算,获得计算结果;
执行模块44,还用于执行与上述计算结果对应的操作。
本实施例中,查找模块42,具体用于在缓存中查找与上述待编译的算子算法相同的算子;或者,在缓存中查找与待编译的算子算法相同,并且编译优化的方式相同的算子;其中,编译优化的方式包括:算子的输入数据的尺寸和上述算子的配置。
图5所示实施例提供的操作执行装置可用于执行本申请图1~图3所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
图6为本说明书一个实施例提供的电子设备的结构示意图,如图6所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本说明书图1~图3所示实施例提供的操作执行方法。
其中,上述电子设备可以为服务器,例如:云服务器,本实施例对上述电子设备的形式不作限定。
图6示出了适于用来实现本说明书实施方式的示例性电子设备的框图。图6显示的电子设备仅仅是一个示例,不应对本说明书实施例的功能和使用范围带来任何限制。
如图6所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器410,通信接口420,存储器430,以及连接不同组件(包括存储器430、通信接口420和处理单元410)的通信总线440。
通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,或者使用多种总线结构中的任意总线结构的局域总线。举例来说,通信总线440可以包括但不限于工业标准体系结构(industry standardarchitecture,ISA)总线,微通道体系结构(micro channel architecture,MAC)总线,增强型ISA总线、视频电子标准协会(video electronics standards association,VESA)局域总线以及外围组件互连(peripheral component interconnection,PCI)总线。
电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器430可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory,RAM)和/或高速缓存存储器。存储器430可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本说明书图1~图3所示实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器430中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本说明书图1~图3所描述的实施例中的功能和/或方法。
处理器410通过运行存储在存储器430中的程序,从而执行各种功能应用以及数据处理,例如实现本说明书图1~图3所示实施例提供的操作执行方法。
本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本说明书图1~图3所示实施例提供的操作执行方法。
上述非暂态计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(read only memory,ROM)、可擦式可编程只读存储器(erasable programmable read onlymemory,EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频(radio frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localarea network,LAN)或广域网(wide area network,WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属技术领域的技术人员所理解。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
需要说明的是,本说明书实施例中所涉及的终端可以包括但不限于个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、无线手持设备、平板电脑(tablet computer)、手机、MP3播放器、MP4播放器等。
在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (10)
1.一种操作执行方法,包括:
获取源代码中待编译的算子;
在缓存中查找与所述待编译的算子模式相同的算子;
如果查找到与所述待编译的算子模式相同的算子,则从所述缓存中获取所述模式相同的算子的编译代码;
获取所述待编译的算子的输入数据,根据所述模式相同的算子的编译代码,对所述待编译的算子的输入数据进行计算,获得计算结果;
执行与所述计算结果对应的操作。
2.根据权利要求1所述的方法,其中,所述在缓存中查找与所述待编译的算子模式相同的算子之后,还包括:
如果在所述缓存中未查找到与所述待编译的算子模式相同的算子,则对所述待编译的算子进行编译优化,获得所述待编译的算子的编译代码;
将所述待编译的算子和所述待编译的算子的编译代码保存到缓存中;
获取所述待编译的算子的输入数据,根据所述待编译的算子的编译代码,对所述待编译的算子的输入数据进行计算,获得计算结果;
执行与所述计算结果对应的操作。
3.根据权利要求1或2所述的方法,其中,所述在缓存中查找与所述待编译的算子模式相同的算子包括:
在缓存中查找与所述待编译的算子算法相同的算子;或者,
在缓存中查找与所述待编译的算子算法相同,并且编译优化的方式相同的算子。
4.根据权利要求3所述的方法,其中,所述编译优化的方式包括:算子的输入数据的尺寸和所述算子的配置。
5.一种操作执行装置,包括:
获取模块,用于获取源代码中待编译的算子;
查找模块,用于在缓存中查找与所述待编译的算子模式相同的算子;
所述获取模块,还用于当所述查找模块查找到与所述待编译的算子模式相同的算子时,从所述缓存中获取所述模式相同的算子的编译代码;以及获取所述待编译的算子的输入数据;
计算模块,用于根据所述模式相同的算子的编译代码,对所述待编译的算子的输入数据进行计算,获得计算结果;
执行模块,用于执行与所述计算结果对应的操作。
6.根据权利要求5所述的装置,其中,还包括:编译模块和保存模块;
所述编译模块,用于当所述查找模块在所述缓存中未查找到与所述待编译的算子模式相同的算子时,对所述待编译的算子进行编译优化,获得所述待编译的算子的编译代码;
所述保存模块,用于将所述待编译的算子和所述待编译的算子的编译代码保存到缓存中;
所述获取模块,还用于获取所述待编译的算子的输入数据;
所述计算模块,还用于根据所述待编译的算子的编译代码,对所述待编译的算子的输入数据进行计算,获得计算结果;
所述执行模块,还用于执行与所述计算结果对应的操作。
7.根据权利要求5或6所述的装置,其中,
所述查找模块,具体用于在缓存中查找与所述待编译的算子算法相同的算子;或者,在缓存中查找与所述待编译的算子算法相同,并且编译优化的方式相同的算子。
8.根据权利要求7所述的装置,其中,所述编译优化的方式包括:算子的输入数据的尺寸和所述算子的配置。
9.一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至4任一所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110602180.0A CN113220306A (zh) | 2021-05-31 | 2021-05-31 | 操作执行方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110602180.0A CN113220306A (zh) | 2021-05-31 | 2021-05-31 | 操作执行方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113220306A true CN113220306A (zh) | 2021-08-06 |
Family
ID=77081737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110602180.0A Pending CN113220306A (zh) | 2021-05-31 | 2021-05-31 | 操作执行方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220306A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880537A (zh) * | 2022-05-13 | 2022-08-09 | 深圳宏鹏数字供应链管理有限公司 | 一种企业风险评估方法、系统及存储介质 |
WO2024016894A1 (zh) * | 2022-07-22 | 2024-01-25 | 华为云计算技术有限公司 | 一种神经网络的训练方法以及相关设备 |
CN118585199A (zh) * | 2024-08-06 | 2024-09-03 | 北京壁仞科技开发有限公司 | 编译器的优化方法、电子设备与存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679481A (zh) * | 2013-11-27 | 2015-06-03 | 上海芯豪微电子有限公司 | 一种指令集转换系统和方法 |
CN109710304A (zh) * | 2018-12-27 | 2019-05-03 | 潍柴动力股份有限公司 | 一种格式调整方法及装置 |
CN110515626A (zh) * | 2019-08-20 | 2019-11-29 | Oppo广东移动通信有限公司 | 深度学习计算框架的代码编译方法及相关产品 |
CN111026398A (zh) * | 2019-10-28 | 2020-04-17 | 贝壳技术有限公司 | 基于缓存的数据集成的构建方法与构建系统 |
CN111506900A (zh) * | 2020-04-15 | 2020-08-07 | 北京字节跳动网络技术有限公司 | 漏洞检测方法、装置、电子设备及计算机存储介质 |
CN111694571A (zh) * | 2019-03-15 | 2020-09-22 | 上海寒武纪信息科技有限公司 | 编译方法及装置 |
CN112328227A (zh) * | 2020-11-03 | 2021-02-05 | 清华大学 | 编译方法、装置、计算设备和介质 |
CN112597454A (zh) * | 2020-12-28 | 2021-04-02 | 深圳市欢太科技有限公司 | 代码混淆方法、代码运行方法、装置、介质与设备 |
-
2021
- 2021-05-31 CN CN202110602180.0A patent/CN113220306A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679481A (zh) * | 2013-11-27 | 2015-06-03 | 上海芯豪微电子有限公司 | 一种指令集转换系统和方法 |
CN109710304A (zh) * | 2018-12-27 | 2019-05-03 | 潍柴动力股份有限公司 | 一种格式调整方法及装置 |
CN111694571A (zh) * | 2019-03-15 | 2020-09-22 | 上海寒武纪信息科技有限公司 | 编译方法及装置 |
CN110515626A (zh) * | 2019-08-20 | 2019-11-29 | Oppo广东移动通信有限公司 | 深度学习计算框架的代码编译方法及相关产品 |
CN111026398A (zh) * | 2019-10-28 | 2020-04-17 | 贝壳技术有限公司 | 基于缓存的数据集成的构建方法与构建系统 |
CN111506900A (zh) * | 2020-04-15 | 2020-08-07 | 北京字节跳动网络技术有限公司 | 漏洞检测方法、装置、电子设备及计算机存储介质 |
CN112328227A (zh) * | 2020-11-03 | 2021-02-05 | 清华大学 | 编译方法、装置、计算设备和介质 |
CN112597454A (zh) * | 2020-12-28 | 2021-04-02 | 深圳市欢太科技有限公司 | 代码混淆方法、代码运行方法、装置、介质与设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114880537A (zh) * | 2022-05-13 | 2022-08-09 | 深圳宏鹏数字供应链管理有限公司 | 一种企业风险评估方法、系统及存储介质 |
WO2024016894A1 (zh) * | 2022-07-22 | 2024-01-25 | 华为云计算技术有限公司 | 一种神经网络的训练方法以及相关设备 |
CN118585199A (zh) * | 2024-08-06 | 2024-09-03 | 北京壁仞科技开发有限公司 | 编译器的优化方法、电子设备与存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7146613B2 (en) | JAVA DSP acceleration by byte-code optimization | |
CN102741812B (zh) | 通过元数据抽取执行动态语言 | |
CN113220306A (zh) | 操作执行方法、装置和电子设备 | |
CN113342346B (zh) | 深度学习框架的算子注册方法、装置、设备和存储介质 | |
CN111078230A (zh) | 一种代码生成方法和装置 | |
CN111460815A (zh) | 规则处理方法、装置、介质及电子设备 | |
US20220172044A1 (en) | Method, electronic device, and computer program product for deploying machine learning model | |
CN112558984A (zh) | 代码编译的方法、装置、电子设备以及服务器 | |
CN112416303B (zh) | 软件开发工具包热修复方法、装置及电子设备 | |
CN110647360A (zh) | 协处理器的设备执行代码的处理方法、装置、设备及计算机可读存储介质 | |
CN114490116A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112905931A (zh) | 页面信息的展示方法、装置、电子设备及存储介质 | |
CN115469931B (zh) | 一种循环程序的指令优化方法、装置、系统、设备及介质 | |
CN116893819A (zh) | 程序的编译方法、装置、芯片、电子设备和存储介质 | |
CN114035804B (zh) | 代码转换方法、装置、介质和电子设备 | |
CN112988194B (zh) | 基于设备信息的程序优化方法、装置、电子设备及存储介质 | |
CN113141407B (zh) | 一种页面资源加载方法、装置和电子设备 | |
CN111459584A (zh) | 页面渲染方法、装置和电子设备 | |
US20170115973A1 (en) | Operating method of semiconductor device and semiconductor system | |
CN117251387A (zh) | 一种数据预取方法、编译方法及相关装置 | |
US20210026630A1 (en) | Method executed by computing device, apparatus, device and computer-readable storage medium | |
CN114840256A (zh) | 一种程序数据级并行分析方法、装置及相关设备 | |
CN113031952A (zh) | 深度学习模型的执行代码的确定方法、装置及存储介质 | |
CN113031962B (zh) | 编译方法、编译装置、电子设备、存储介质和程序产品 | |
CN118151906B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210806 |