CN114237619A - 节点融合处理方法、装置及电子设备 - Google Patents

节点融合处理方法、装置及电子设备 Download PDF

Info

Publication number
CN114237619A
CN114237619A CN202111555793.XA CN202111555793A CN114237619A CN 114237619 A CN114237619 A CN 114237619A CN 202111555793 A CN202111555793 A CN 202111555793A CN 114237619 A CN114237619 A CN 114237619A
Authority
CN
China
Prior art keywords
floating point
node
fusion
nodes
directed acyclic
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
CN202111555793.XA
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.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp 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 Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN202111555793.XA priority Critical patent/CN114237619A/zh
Publication of CN114237619A publication Critical patent/CN114237619A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本申请实施例提供了一种节点融合处理方法、装置及电子设备,所述方法包括:获取源程序代码,对源程序代码进行预处理操作,得到与目标平台对应的中间代码,并对中间代码进行降级处理,得到第一有向无环图,再对第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并对第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据浮点融合节点对浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,并根据第二有向无环图中除浮点融合节点之外的其他节点对应的目标指令,以及目标浮点指令得到待处理业务对应的可执行程序。本申请降低了节点融合优化操作的难度,同时提高了节点融合优化操作的稳定性。

Description

节点融合处理方法、装置及电子设备
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种节点融合处理方法、装置及电子设备。
背景技术
编译器为一种将高级语言转换为二进制指令的程序,在获取到待实现业务对应的源代码之后,编译器的主要工作流程可以包括:源代码→预处理器→编译器→中间代码→链接器→可执行程序。而编译器在编译的过程中,可以通过节点融合的方式将多个节点(例如,数据节点、操作节点或其他未定义节点)融合为一个高效的节点,以提高后续生成的可执行程序的运行速度。
现有技术中,为了进一步提高可执行程序的运行速度,可以对节点融合过程进行优化。示例性的,可以使用节点融合优化将计算图中的多个算子融合为一个高效算子,还可以通过编译器中的内建函数实现对应节点的浮点乘加、浮点乘减等融合优化操作。
然而,在实现节点融合优化时,需要程序开发人员在程序中显式调用内建函数手动进行优化,对程序开发人员的编程水平提出了更高的要求,增加了节点融合优化操作的难度,同时也过于依赖程序开发人员的水平,主观性强,降低了节点融合优化操作的稳定性。
发明内容
本申请实施例提供一种节点融合处理方法、装置及电子设备,以降低节点融合优化操作的难度。
第一方面,本申请实施例提供一种节点融合处理方法,包括:
获取源程序代码,其中,所述源程序代码为待应用于目标平台的待处理业务对应的高级语言代码;
对所述源程序代码进行预处理操作,得到与所述目标平台对应的中间代码,并根据预设降级规则对与所述目标平台对应的中间代码进行降级处理,得到与所述目标平台对应的第一有向无环图;
根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令;
根据所述第二有向无环图中除浮点融合节点之外的其他节点对应的目标指令,以及所述目标浮点指令得到所述待处理业务对应的可执行程序。
可选的,所述根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作后,又与所述第三节点做加法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘加节点;
根据所述浮点乘加节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘加节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加指令。
可选的,所述根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作后,又与所述第三节点做减法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘减节点;
根据所述浮点乘减节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘减节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘减指令。
可选的,所述根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点做乘法操作,得到第一结果后,又将所述第一结果取反处理后与所述第三节点做加法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘加取反节点;
根据所述浮点乘加取反节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘加取反节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加取反指令。
可选的,所述根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作,得到第二结果后,又将所述第二结果取反处理后与所述第三节点做减法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘减取反节点;
根据所述浮点乘减取反节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘减取反节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘减取反指令。
可选的,在所述获取源程序代码之前,还包括:
获取目标平台对应的编译参数;
当从所述目标平台对应的编译参数中识别到目标参数后,开启预设操作节点的融合优化属性;
从预设指令集中获取与所述预设操作节点的融合优化属性对应的浮点匹配指令,得到浮点指令匹配表。
第二方面,本申请实施例提供一种节点融合处理装置,包括:
获取模块,用于获取源程序代码,其中,所述源程序代码为待应用于目标平台的待处理业务对应的高级语言代码;
处理模块,用于对所述源程序代码进行预处理操作,得到与所述目标平台对应的中间代码,并根据预设降级规则对与所述目标平台对应的中间代码进行降级处理,得到与所述目标平台对应的第一有向无环图;
所述处理模块,还用于根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令;
所述处理模块,还用于根据所述第二有向无环图中除浮点融合节点之外的其他节点对应的目标指令,以及所述目标浮点指令得到所述待处理业务对应的可执行程序。
第三方面,本申请实施例提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,实现如第一方面任一项所述的节点融合处理方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面任一项所述的节点融合处理方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面任一项所述的节点融合处理方法。
本申请实施例提供了一种节点融合处理方法、装置及电子设备,采用上述方案后,可以先获取源程序代码,然后对该源程序代码进行预处理操作,得到与目标平台对应的中间代码,并根据预设降级规则对与目标平台对应的中间代码进行降级处理,得到与目标平台对应的第一有向无环图,再根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据浮点融合节点对第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据浮点融合节点对浮点指令匹配表中的各浮点指令进行匹配,得到目标浮点,然后根据第二有向无环图中除浮点融合节点之外的其他节点对应的目标指令以及目标浮点指令得到待处理业务对应的可执行程序。通过对降级处理之后的有向无环图中的节点进行扫描匹配,并在扫描到节点符合节点融合优化的条件时,则将符合条件的节点优化为一个高效的融合节点的方式,降低了对程序开发人员的编程水平的要求,进而降低了节点融合优化操作的难度,同时提高了节点融合优化操作的稳定性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的节点融合处理方法的应用系统的架构示意图;
图2为本申请实施例提供的节点融合处理方法的流程示意图;
图3为本申请另一实施例提供的节点融合处理方法的流程示意图;
图4为本申请实施例提供的节点融合处理装置的结构示意图;
图5为本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例还能够包括除了图示或描述的那些实例以外的其他顺序实例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有技术中,为了提高可执行程序的运行速度,可以对节点融合过程进行优化(例如,可以对数据节点、操作节点或其他未定义节点进行优化)。示例性的,可以使用节点融合优化将计算图中的多个算子融合为一个高效算子,还可以通过编译器(例如,LLVM编译器)中的内建函数实现对应节点的浮点乘加、浮点乘减等融合优化操作。然而,在实现节点融合优化时,一种实现方式为需要程序开发人员在程序中显式调用内建函数手动进行优化,对程序开发人员的编程水平提出了更高的要求,增加了节点融合优化操作的难度,同时也过于依赖程序开发人员的水平,主观性强,降低了节点融合优化操作的稳定性。
此外,还有一种实现方式为在编译过程中,对所有源程序代码不加选择的进行节点融合优化,无法准确的对节点融合优化的代价进行评估,既增加了计算量,也可能造成优化后部分代码的质量下降的情况。
基于上述技术问题,本申请通过对降级处理之后的有向无环图中的节点进行扫描匹配,并在扫描到的节点符合节点融合优化的条件时,则将符合条件的节点优化为一个高效的融合节点的方式,达到了既降低了对程序开发人员的编程水平的要求,进而降低了节点融合优化操作的难度,又提高了节点融合优化操作的稳定性的技术效果。
图1为本申请实施例提供的节点融合处理方法的应用系统的架构示意图,如图1所示,所述应用系统可以包括:编译器101、处理器102和操作系统103,编译器101可以将获取的源程序代码编译为与目标平台对应的中间代码,并对该与目标平台对应的中间代码进行降级处理,得到与目标平台对应的有向无环图,然后可以对该有向无环图中的节点进行节点融合优化处理,最终得到与待处理业务对应的可执行程序。此外,操作系统103可以将产生的与待处理业务对应的可执行程序发送至处理器102执行。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的节点融合处理方法的流程示意图,本实施例的方法可以由编译器101执行。如图2所示,本实施例的方法,可以包括:
S201:获取源程序代码,其中,源程序代码为待应用于目标平台的待处理业务对应的高级语言代码。
在本实施例中,源程序代码是指未经编译的,按照一定的程序设计语言规范书写的,用户可读的文本文件。通常由高级语言编写,示例性的,可以采用C语言或C++等高级语言。
此外,源程序代码的内容可以由开发人员根据项目的实际内容确定,在此不再具体进行限定。
其中,目标平台可以为各种类型的处理器架构,比如RISC(Reduced InstructionSet Computing,精简指令集计算机)、CISC(Complex Instruction Set Computer,复杂指令集计算机),最终生成的可以直接执行的指令也为各类处理器架构对应的指令集。
S202:对源程序代码进行预处理操作,得到与目标平台对应的中间代码,并根据预设降级规则对与目标平台对应的中间代码进行降级处理,得到与目标平台对应的第一有向无环图。
在本实施例中,计算机本身不能直接执行源程序代码,因此,需要将源程序代码转换为计算机可以直接执行的指令,该过程叫做编译,由编译器来完成。其中,编译器可以为LLVM(Low Level Virtual Machine,底层虚拟机)编译器。
进一步的,在编译器编译的过程中,可以先对源程序代码进行预处理操作,得到与目标平台对应的中间代码,具体预处理过程可以为在编译器前端进行词法分析、语法分析和语义分析,进而生成与目标平台对应的中间代码,并传递至编译器后端。
其中,词法分析是编译过程的第一个阶段,这个阶段的主要任务是从左到右以字符为单位的读入源程序代码,即对构成源程序代码的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。
语法分析是编译过程的一个逻辑阶段,语法分析的主要任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等。语法分析程序还可以判断源程序代码在结构上是否正确,源程序代码的结构中是否包含与上下文无关的描述等。
语义分析是编译过程的一个逻辑阶段,语义分析的主要任务是对结构上正确的源程序代码进行上下文有关性质的审查,例如,进行类型审查等。
在进行了语法分析和语义分析阶段的工作之后,可以将源程序代码变成一种内部表示形式,这种内部表示形式叫做中间语言或中间表示或中间代码。所谓“中间代码”是一种结构简单、含义明确的记号系统,这种记号系统复杂性介于源程序语言和机器语言之间,容易将它翻译成目标代码。另外,还可以对中间代码进行与机器无关的优化,提高后续生成可执行程序的生成效率。
另外,在得到与目标平台对应的中间代码之后,可以对中间代码进行降级处理,即将与目标平台无关的中间代码降级为与目标平台相关的节点,并根据与目标平台相关的节点生成与目标平台对应的第一有向无环图。示例性的,目标平台可以为CISC类型的平台或者RISC类型的平台,即在编译器后端进行指令降级的过程中,可以遍历中间代码并生成与CISC类型的平台相对应的第一有向无环图,或者在编译器后端进行指令降级的过程中,可以遍历中间代码并生成与RISC类型的平台相对应的第一有向无环图。
进一步的,有向无环图为一种重要的数据结构,指的是一个无回路的有向图,在将与目标平台无关的中间代码降级为与目标平台相关的节点,并根据与目标平台相关的节点生成与目标平台对应的第一有向无环图时,具体可以包括:
遍历中间代码并构建初始有向无环图,然后根据预存的目标平台降级信息对初始有向无环图进行合并处理、类型合法化处理以及有向无环图合法化处理等过程,得到第一有向无环图,最后再进行指令选择处理过程,生成与第一有向无环图中各节点对应的目标指令,进而完成中间代码的降级处理过程。其中,对初始有向无环图进行合并处理、类型合法化处理、有向无环图合法化处理以及指令选择处理等过程可以采用现有的方式实现,在此不再详细进行描述。
示例性的,以a+b为例,降级前的中间表示为:
%3=add nsw i32%1,%0。
降级后的目标指令为:
add.w$r4,$r5,$r4。
其中,add是与目标平台无关的中间代码,add.w是与目标平台相关的指令。
S203:根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据浮点融合节点对第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据浮点融合节点对浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令。
在本实施例中,在得到有向无环图之后,可以对第一有向无环图中的节点进行优化。进一步的,可以对第一有向无环图中浮点类型的节点进行优化,即可以通过预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对第一有向无环图中的节点进行优化,并根据优化后的节点得到对应的目标浮点指令。
更进一步的,在一种实现方式中,根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据浮点融合节点对浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,具体可以包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作后,又与所述第三节点做加法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘加节点。
根据所述浮点乘加节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘加节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加指令。
具体的,在从有向无环图中获取节点时,只能按照有向无环图中各节点的走向依次获取节点。因此,在节点优化过程中,可以根据第一有向无环图中的节点走向依次从第一有向无环图中获取待匹配节点,当待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且第一节点、第二节点以及第三节点符合预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则时,可以根据对应的浮点节点操作规则对目标节点进行融合处理,得到浮点融合节点,并根据浮点融合节点对浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令。其中,浮点指令匹配表可以根据实际应用场景预先自定义进行设置,不同应用场景可能对应不同的浮点指令匹配表。此外,还可以根据浮点融合节点对第一有向无环图进行更新,得到节点融合后的第二有向无环图。
示例性的,浮点融合节点可以为浮点乘加节点,当第一有向无环图中获取到的待匹配节点为浮点类型的节点A、节点B和节点C,且节点A与节点B相乘后,与节点C相加时,则可以将节点A、节点B和节点C融合为一个浮点乘加节点D。还可以根据浮点乘加节点D对第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据浮点乘加节点D对浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加指令。其中,浮点指令匹配表可以为RISC类型的平台对应的指令集或者为CISC类型的平台对应的指令集。
在另一种实现方式中,根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据浮点融合节点对浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,具体可以包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且第一节点与第二节点在做乘法操作后,又与所述第三节点做减法操作,则对第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘减节点。
根据所述浮点乘减节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘减节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘减指令。
具体的,浮点融合节点可以为浮点乘减节点,当第一有向无环图中获取到的待匹配节点为浮点类型的节点A、节点B和节点C,且节点A与节点B相乘后,与节点C相减时,则可以将节点A、节点B和节点C融合为一个浮点乘减节点E。还可以根据浮点乘减节点E对第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据浮点乘减节点E对浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加指令。
在另一种实现方式中,根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,具体可以包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点做乘法操作,得到第一结果后,又将所述第一结果取反处理后与所述第三节点做加法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘加取反节点。
根据所述浮点乘加取反节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘加取反节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加取反指令。
具体的,浮点融合节点可以为浮点乘加取反节点,当第一有向无环图中获取到的待匹配节点为浮点类型的节点A、节点B和节点C,且节点A与节点B相乘后,得到第一结果后,将第一结果取反与节点C相加,则可以将节点A、节点B和节点C融合为一个浮点乘加取反节点F。还可以根据浮点乘加取反节点F对第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据浮点乘加取反节点F对浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加指令。
在另一种实现方式中,根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,具体可以包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作,得到第二结果后,又将所述第二结果取反处理后与所述第三节点做减法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘减取反节点。
根据所述浮点乘减取反节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘减取反节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘减取反指令。
具体的,浮点融合节点可以为浮点乘减取反节点,当第一有向无环图中获取到的待匹配节点为浮点类型的节点A、节点B和节点C,且节点A与节点B相乘后,得到第二结果后,将第二结果取反与节点C相减,则可以将节点A、节点B和节点C融合为一个浮点乘减取反节点G。还可以根据乘减取反节点G对第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据乘减取反节点G对浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加指令。
S204:根据第二有向无环图中除浮点融合节点之外的其他节点对应的目标指令,以及目标浮点指令得到待处理业务对应的可执行程序。
在本实施例中,在得到目标浮点指令之后,还可以再获取第二有向无环图中除浮点融合节点之外的其他非融合节点对应的目标指令,并将其他非融合节点对应的目标指令与各融合节点对应的目标浮点指令进行合并,得到待处理业务对应的可执行程序,后续可以根据该可执行程序实现待处理业务。其中,获取第二有向无环图中除浮点融合节点之外的其他非融合节点对应的目标指令可以采用现有的方式实现,在此不再详细进行论述。
采用上述方案后,可以先获取源程序代码,然后对该源程序代码进行预处理操作,得到与目标平台对应的中间代码,并根据预设降级规则对与目标平台对应的中间代码进行降级处理,得到与目标平台对应的第一有向无环图,再根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据浮点融合节点对第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据浮点融合节点对浮点指令匹配表中的各浮点指令进行匹配,得到目标浮点,然后根据第二有向无环图中除浮点融合节点之外的其他节点对应的目标指令以及目标浮点指令得到待处理业务对应的可执行程序。通过对降级处理之后的有向无环图中的节点进行扫描匹配,并在扫描到节点符合节点融合优化的条件时,则将符合条件的节点优化为一个高效的融合节点的方式,降低了对程序开发人员的编程水平的要求,进而降低了节点融合优化操作的难度,同时提高了节点融合优化操作的稳定性。
基于图2的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
图3为本申请另一实施例提供的节点融合处理方法的流程示意图,如图3所示,本实施例的方法,可以包括:
S301:获取目标平台对应的编译参数。
S302:当从目标平台对应的编译参数中识别到目标参数后,开启预设操作节点的融合优化属性。
S303:从预设指令集中获取与所述预设操作节点的融合优化属性对应的浮点匹配指令,得到浮点指令匹配表。
在本实施例中,在获取源程序代码之前,可以先设置目标平台对应的目标参数。示例性的,目标参数可以为:-mlfma。在编译程序中设置该目标参数后,编译器前端在编译过程中可以遍历编译参数,并在识别到目标参数(即-mlfma)后,可以开启浮点乘加等四类节点的融合优化属性,并传递至编译器的后端。编译器的后端接收到该属性后,可以将指令集中的浮点乘加指令等指令标记为可匹配状态,并加入指令匹配表中,得到浮点指令匹配表,然后存储该浮点指令匹配表。通过该浮点指令匹配表为四类节点提供了节点融合优化的基础,提高了节点融合优化的效率与准确性。示例性的,编译器的后端可以为CISC类型的平台或RISC类型的平台对应的后端,指令集可以为CISC类型的平台对应的指令集或RISC类型的平台对应的指令集。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置,图4为本申请实施例提供的节点融合处理装置的结构示意图,如图4所示,可以包括:
获取模块401,用于获取源程序代码,其中,所述源程序代码为待应用于目标平台的待处理业务对应的高级语言代码。
处理模块402,用于对所述源程序代码进行预处理操作,得到与所述目标平台对应的中间代码,并根据预设降级规则对与所述目标平台对应的中间代码进行降级处理,得到与所述目标平台对应的第一有向无环图。
所述处理模块402,还用于根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令。
所述处理模块402,还用于根据所述第二有向无环图中除浮点融合节点之外的其他节点对应的目标指令,以及所述目标浮点指令得到所述待处理业务对应的可执行程序。
在本实施例中,在一种实现方式中,所述处理模块402,还用于:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作后,又与所述第三节点做加法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘加节点;
根据所述浮点乘加节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘加节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加指令。
在另一种实现方式中,所述处理模块402,还用于:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作后,又与所述第三节点做减法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘减节点;
根据所述浮点乘减节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘减节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘减指令。
在另一种实现方式中,所述处理模块402,还用于:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点做乘法操作,得到第一结果后,又将所述第一结果取反处理后与所述第三节点做加法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘加取反节点;
根据所述浮点乘加取反节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘加取反节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加取反指令。
在另一种实现方式中,所述处理模块402,还用于:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作,得到第二结果后,又将所述第二结果取反处理后与所述第三节点做减法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘减取反节点;
根据所述浮点乘减取反节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘减取反节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘减取反指令。
在另一实施例中,所述处理模块402,还用于:
获取目标平台对应的编译参数。
当从所述目标平台对应的编译参数中识别到目标参数后,开启预设操作节点的融合优化属性。
从预设指令集中获取与所述预设操作节点的融合优化属性对应的浮点匹配指令,得到浮点指令匹配表。
本申请实施例提供的装置,可以实现上述如图2所示的实施例的方法,其实现原理和技术效果类似,此处不再赘述。
图5为本申请实施例提供的电子设备的硬件结构示意图,如图5所示,本实施例提供的设备500包括:处理器501,以及与所述处理器通信连接的存储器。其中,处理器501、存储器502通过总线503连接。
在具体实现过程中,处理器501执行所述存储器502存储的计算机执行指令,使得处理器501执行上述方法实施例中的节点融合处理方法。
处理器501的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图5所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述方法实施例的节点融合处理方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上所述的节点融合处理方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种节点融合处理方法,其特征在于,包括:
获取源程序代码,其中,所述源程序代码为待应用于目标平台的待处理业务对应的高级语言代码;
对所述源程序代码进行预处理操作,得到与所述目标平台对应的中间代码,并根据预设降级规则对与所述目标平台对应的中间代码进行降级处理,得到与所述目标平台对应的第一有向无环图;
根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令;
根据所述第二有向无环图中除浮点融合节点之外的其他节点对应的目标指令,以及所述目标浮点指令得到所述待处理业务对应的可执行程序。
2.根据权利要求1所述的方法,其特征在于,所述根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作后,又与所述第三节点做加法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘加节点;
根据所述浮点乘加节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘加节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加指令。
3.根据权利要求1所述的方法,其特征在于,所述根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作后,又与所述第三节点做减法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘减节点;
根据所述浮点乘减节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘减节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘减指令。
4.根据权利要求1所述的方法,其特征在于,所述根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点做乘法操作,得到第一结果后,又将所述第一结果取反处理后与所述第三节点做加法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘加取反节点;
根据所述浮点乘加取反节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘加取反节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘加取反指令。
5.根据权利要求1所述的方法,其特征在于,所述根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令,包括:
依次从所述第一有向无环图中获取待匹配节点,当所述待匹配节点中包括浮点类型的第一节点、第二节点以及第三节点,且所述第一节点与所述第二节点在做乘法操作,得到第二结果后,又将所述第二结果取反处理后与所述第三节点做减法操作,则对所述第一节点、所述第二节点以及所述第三节点进行节点融合操作,得到浮点乘减取反节点;
根据所述浮点乘减取反节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,并根据所述浮点乘减取反节点对预存的浮点匹配表中的各浮点指令进行匹配操作,得到浮点乘减取反指令。
6.根据权利要求1-5任一项所述的方法,其特征在于,在所述获取源程序代码之前,还包括:
获取目标平台对应的编译参数;
当从所述目标平台对应的编译参数中识别到目标参数后,开启预设操作节点的融合优化属性;
从预设指令集中获取与所述预设操作节点的融合优化属性对应的浮点匹配指令,得到包含若干浮点指令的浮点指令匹配表。
7.一种节点融合处理装置,其特征在于,包括:
获取模块,用于获取源程序代码,其中,所述源程序代码为待应用于目标平台的待处理业务对应的高级语言代码;
处理模块,用于对所述源程序代码进行预处理操作,得到与所述目标平台对应的中间代码,并根据预设降级规则对与所述目标平台对应的中间代码进行降级处理,得到与所述目标平台对应的第一有向无环图;
所述处理模块,还用于根据预存的浮点指令匹配表中各浮点指令对应的浮点节点操作规则对所述第一有向无环图中的浮点类型的节点进行节点融合操作,得到浮点融合节点,并根据所述浮点融合节点对所述第一有向无环图进行更新,得到节点融合后的第二有向无环图,再根据所述浮点融合节点对所述浮点指令匹配表中的各浮点指令进行匹配操作,得到目标浮点指令;
所述处理模块,还用于根据所述第二有向无环图中除浮点融合节点之外的其他节点对应的目标指令,以及所述目标浮点指令得到所述待处理业务对应的可执行程序。
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-6中任一项所述的节点融合处理方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至6任一项所述的节点融合处理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的节点融合处理方法。
CN202111555793.XA 2021-12-17 2021-12-17 节点融合处理方法、装置及电子设备 Pending CN114237619A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111555793.XA CN114237619A (zh) 2021-12-17 2021-12-17 节点融合处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111555793.XA CN114237619A (zh) 2021-12-17 2021-12-17 节点融合处理方法、装置及电子设备

Publications (1)

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

Family

ID=80758409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111555793.XA Pending CN114237619A (zh) 2021-12-17 2021-12-17 节点融合处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN114237619A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115658749A (zh) * 2022-10-25 2023-01-31 工银瑞信基金管理有限公司 基于有向无环图的基金产品排序方法、装置和电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115658749A (zh) * 2022-10-25 2023-01-31 工银瑞信基金管理有限公司 基于有向无环图的基金产品排序方法、装置和电子设备

Similar Documents

Publication Publication Date Title
JP2834171B2 (ja) コンパイル方法
US11216258B2 (en) Direct function call substitution using preprocessor
US6289507B1 (en) Optimization apparatus and computer-readable storage medium storing optimization program
De Mol et al. Theorem Proving for Functional Programmers: Sparkle: A Functional Theorem Prover
US7694288B2 (en) Static single assignment form pattern matcher
US7917899B2 (en) Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus
CN109634869B (zh) 二进制翻译中间表示正确性测试方法及装置
US5790867A (en) Compiler with extended redundant copy elimination
JP2002536711A (ja) 動的分岐の行先の決定
JPH0667868A (ja) アルゴリズムを記号評価する方法およびアルゴリズムをトランスレートする装置
US20220067538A1 (en) Methods and systems for generating knowledge graphs from program source code
JPH0762825B2 (ja) コード生成方法及び装置
EP2700005A1 (en) Method and apparatus for generating resource efficient computer program code
Hamilton Distillation: extracting the essence of programs
CN114237619A (zh) 节点融合处理方法、装置及电子设备
US8117604B2 (en) Architecture cloning for power PC processors
CN115509514A (zh) 一种前端数据模拟方法、装置、设备及介质
JP2000040005A (ja) プログラム変換装置
JP6481515B2 (ja) 情報処理装置、コンパイル方法、及びコンパイラプログラム
US20230107200A1 (en) Program generation apparatus, program generation method and program
CN110489124B (zh) 源代码执行方法、装置、存储介质及计算机设备
Moyen et al. Loop quasi-invariant chunk motion by peeling with statement composition
De Mol et al. Theorem Proving for Functional Programmers.
JP7045846B2 (ja) プログラミング言語変換支援装置、プログラミング言語変換支援方法、およびプログラム
CN113050948A (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