CN115951936A - 向量化编译程序的芯片适配方法、装置、设备及介质 - Google Patents
向量化编译程序的芯片适配方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115951936A CN115951936A CN202310060092.1A CN202310060092A CN115951936A CN 115951936 A CN115951936 A CN 115951936A CN 202310060092 A CN202310060092 A CN 202310060092A CN 115951936 A CN115951936 A CN 115951936A
- Authority
- CN
- China
- Prior art keywords
- data type
- vector data
- vector
- current
- instruction
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000006978 adaptation Effects 0.000 title claims abstract description 35
- 239000013598 vector Substances 0.000 claims abstract description 405
- 238000006243 chemical reaction Methods 0.000 claims abstract description 84
- 238000004364 calculation method Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 17
- 230000003044 adaptive effect Effects 0.000 claims 2
- 239000000126 substance Substances 0.000 claims 1
- 238000013473 artificial intelligence Methods 0.000 description 50
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种向量化编译程序的芯片适配方法、装置、设备及介质。该方法包括:获取待加载至AI芯片中运行的标量程序,并生成与标量程序匹配的向量化编译程序;在向量化编译程序中,识别至少一个VCC关联程序段;获取与各VCC关联程序段对应的标准化向量数据类型,并按照标准化向量数据类型,在各VCC关联程序段中加入向量数据类型转换指令,得到与AI芯片相适配的向量化编译适配程序。通过采用上述技术方案,能够获取与AI芯片相适配的向量化编译适配程序,从而解决因不同向量数据类型的向量操作数比较计算的向量条件状态码,在AI芯片中具有不同的底层硬件寄存器存储格式,所导致的无法正确执行向量运算指令的问题。
Description
技术领域
本发明涉及软件技术领域,尤其涉及一种向量化编译程序的芯片适配方法、装置、设备及介质。
背景技术
在AI(Artificial Intelligence,人工智能)芯片中,利用向量指令进行数据处理,能够提高数据处理并行度与计算能力。但开发人员在编写向量处理代码逻辑时,需要关注向量长度及线程数目,还需要处理循环边界、向量数据读写以及不同向量数据类型之间的相互转换等诸多问题,在一定程度上增加了向量处理代码逻辑编写的复杂度。
为了简化编写向量处理代码逻辑过程中所产生的上述问题,现有技术提供了一种程序编译方法,能够将开发人员编写的标量程序转化为向量程序。
但在AI芯片的开发过程中,由于不同向量数据类型的向量操作数比较计算的VCC(Vector Condition Code,向量条件状态码),在AI芯片中可能会具有不同的底层硬件寄存器存储格式,因此,若采用现有的程序编译方法将标量程序转化为向量程序,并将向量程序直接加载入AI芯片中,可能会导致向量程序在进行向量运算(典型的,布尔运算或者是所有依赖于布尔向量操作数的向量运算等)时,因底层硬件寄存器存储格式不同,而无法正确执行向量运算指令。
发明内容
本发明提供了一种向量化编译程序的芯片适配方法、装置、设备及介质,能够获取与AI芯片相适配的向量化编译适配程序,从而解决因不同向量数据类型的向量操作数比较计算的向量条件状态码,在AI芯片中具有不同的底层硬件寄存器存储格式,所导致的无法正确执行向量运算指令的问题。
根据本发明的一方面,提供了一种向量化编译程序的芯片适配方法,包括:
获取待加载至AI芯片中运行的标量程序,并生成与标量程序匹配的向量化编译程序,其中,不同向量数据类型的向量操作数比较计算的VCC,在AI芯片中具有不同的底层硬件寄存器存储格式;
在向量化编译程序中,识别至少一个VCC关联程序段;
获取与各VCC关联程序段对应的标准化向量数据类型,并按照标准化向量数据类型,在各所述VCC关联程序段中加入向量数据类型转换指令,得到与AI芯片相适配的向量化编译适配程序。
根据本发明的另一方面,提供了一种向量化编译程序的芯片适配装置,包括:
向量化编译程序生成模块,用于获取待加载至AI芯片中运行的标量程序,并生成与标量程序匹配的向量化编译程序,其中,不同向量数据类型的向量操作数比较计算的VCC,在AI芯片中具有不同的底层硬件寄存器存储格式;
VCC关联程序段识别模块,用于在向量化编译程序中,识别至少一个VCC关联程序段;
向量化编译适配程序获取模块,用于获取与各VCC关联程序段对应的标准化向量数据类型,并按照标准化向量数据类型,在各所述VCC关联程序段中加入向量数据类型转换指令,得到与AI芯片相适配的向量化编译适配程序。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的向量化编译程序的芯片适配方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的向量化编译程序的芯片适配方法。
本发明实施例的技术方案,通过在向量化编译程序中,识别至少一个VCC关联程序段,并根据所获取的标准化向量数据类型,在各VCC关联程序段中加入向量数据类型转换指令,以得到与AI芯片相适配的向量化编译适配程序的方式,能够获取与AI芯片相适配的向量化编译适配程序,以实现自动向量化编译对隐式数据类型转换及混合数据类型运算的支持,从而解决在AI芯片中具有不同的底层硬件寄存器存储格式的向量条件状态码,无法进行正确的向量运算的问题。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种向量化编译程序的芯片适配方法的流程图;
图2a是根据本发明实施例二提供的另一种向量化编译程序的芯片适配方法的流程图;
图2b是根据本发明实施例二提供的一种数据依赖图;
图2c是根据本发明实施例二提供的一种在数据依赖图中添加向量数据类型转换指令的位置示意图;
图2d是根据本发明实施例二提供的一种进行冗余处理后的数据依赖图;
图3是根据本发明实施例三提供的一种向量化编译程序的芯片适配装置的结构示意图;
图4是实现本发明实施例的向量化编译程序的芯片适配方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种向量化编译程序的芯片适配方法的流程图,本实施例可适用于通过分析并修改向量化编译程序中的VCC关联程序段,获取与AI芯片相适配的向量化编译适配程序的情况,该方法可以由向量化编译程序的芯片适配装置来执行,该向量化编译程序的芯片适配装置可以采用硬件和/或软件的形式实现,并一般可配置于具有数据处理功能的计算机或处理器中。如图1所示,该方法包括:
S110、获取待加载至AI芯片中运行的标量程序,并生成与标量程序匹配的向量化编译程序。
其中,标量程序可以指通过标量指令进行标量数据处理的程序,标量数据可以理解为单个数值;向量化编译程序可以指对标量程序向量化后生成的程序,向量化编译程序通过向量指令进行向量数据处理,向量数据可以理解为由多个标量数据组成的一维数据集合。
其中,不同向量数据类型的向量操作数比较计算的VCC,在某些特定的AI芯片中具有不同的底层硬件寄存器存储格式。
AI芯片是一种专门用于处理人工智能应用中的大量计算任务的模块。
在一个具体的例子中,向量数据类型可根据向量操作数的位数划分,如8bit(位)、16bit和32bit的向量操作数,为三种不同的向量数据类型。
VCC为两个向量操作数进行比较计算的比较结果,一般的,用于进行比较计算的两个向量操作数为同一向量数据类型。续前例,一般情况下,可以由两个32bit的向量操作数进行比较、两个16bit的向量操作数进行比较、或两个8bit的向量操作数进行比较,以获取分别对应的VCC。
进一步的,由两个32bit的向量操作数进行比较获取的VCC,与由两个16bit的向量操作数进行比较获取的VCC,在特定AI芯片中的底层硬件寄存器中的存储格式不同。在一个具体的例子中,由两个32bit的向量操作数进行比较获取的VCC的底层硬件寄存器存储格式可以为4bit,由两个16bit的向量操作数进行比较获取的VCC的底层硬件寄存器存储格式可以为2bit,由两个8bit的向量操作数进行比较获取的VCC的底层硬件寄存器存储格式可以为1bit。
续前例,虽然不同的向量数据类型的向量操作数比较计算的VCC,在AI芯片中具有不同的底层硬件寄存器存储格式,但在中间代码层进行相关向量运算时,VCC会以向量布尔值的形式进行运算,此时,底层硬件寄存器存储格式不同的VCC也可以通过相同的向量布尔值的形式进行运算,但在运算过程中还有可能会因为底层硬件寄存器存储格式不同从而导致不兼容的问题,进而无法正确执行向量运算指令。
其中,布尔值为向量操作数比较结果的一种形式,一般可以用0代表用于比较的两个向量操作数不同,可以用1代表用于比较的两个向量操作数相同。由于布尔值只有用于表示判断结果的两种形式,因此对于向量布尔值形式的VCC,即使底层硬件寄存器存储格式不同,也可进入到运算流程。
本发明考虑到将开发人员编写的标量程序转化为向量化编译程序并载入AI芯片中,能够有效减少开发人员的工作量,同时能够显著提高AI芯片的数据处理并行度与计算能力,但由于不同向量数据类型的向量操作数比较计算的VCC,在AI芯片中具有不同的底层硬件寄存器存储格式,可能会导致向量程序在进行向量运算时,因底层硬件寄存器存储格式不同,而无法正确执行向量运算指令。因此,本发明创造性的提出了在向量化编译程序中添加向量数据类型转换指令,以使得不同向量数据类型的向量操作数比较计算的VCC,在AI芯片中具有相同的底层硬件寄存器存储格式,从而保证修改后的向量化编译程序能够正确执行向量运算指令。
S120、在向量化编译程序中,识别至少一个VCC关联程序段。
在本发明实施例中,可以通过在向量化编译程序中,识别for循环语句标识符,以识别至少一个VCC关联程序段。
进一步的,VCC关联程序段可以包括对向量操作数进行比较计算以获取VCC的程序段,也可以包括将向量操作数比较结果作为输入的程序段,即将向量布尔值作为输入的程序段。
S130、获取与各VCC关联程序段对应的标准化向量数据类型,并按照标准化向量数据类型,在各VCC关联程序段中加入向量数据类型转换指令,得到与AI芯片相适配的向量化编译适配程序。
可以理解的是,对于一个利用不同向量数据类型的向量操作数进行数据运算的向量化编译程序,可以在向量操作数的不同向量数据类型中选择一个向量数据类型作为标准化向量数据类型。
其中,按照标准化向量数据类型,在各VCC关联程序段中加入向量数据类型转换指令,这样设置的目的在于:将不同向量数据类型的向量操作数转化为统一类型的向量操作数之后,再进行VCC相关运算,这样能够使得各运算输入与各运算结果在AI芯片中具有相同的底层硬件寄存器存储格式,保证了运算逻辑的正确性。
其中,可以在全部备选向量数据类型随机选择一个作为标准化向量数据类型,或者,还可以按照一定的策略从全部备选向量数据类型选择出满足策略最优条件的标准化向量数据类型等,本实施例对此并不进行限制。上述各备选向量数据类型可以为AI芯片中各底层硬件寄存器存储格式所适配的全部向量数据类型。
优选的,标准化向量数据类型的选择可以根据对向量化编译程序的改动代价值确定,可以选择代价值最小的向量数据类型作为标准化向量数据类型。
通过在各VCC关联程序段中加入向量数据类型转换指令,将不同向量数据类型的向量操作数统一为标准化向量数据类型的方式,能够使得各VCC关联程序段均能够正确执行向量运算指令。
本发明实施例的技术方案,通过在向量化编译程序中,识别至少一个VCC关联程序段,并根据所获取的标准化向量数据类型,在各VCC关联程序段中加入向量数据类型转换指令,以得到与AI芯片相适配的向量化编译适配程序的方式,能够获取与AI芯片相适配的向量化编译适配程序,以实现自动向量化编译对隐式数据类型转换及混合数据类型运算的支持,从而解决在AI芯片中具有不同的底层硬件寄存器存储格式的向量条件状态码,无法进行正确的向量运算的问题。
实施例二
图2a为本发明实施例二提供的另一种向量化编译程序的芯片适配方法的流程图,本实施例在上述实施例的基础上,具体说明了VCC关联程序段的识别过程,以及在各VCC关联程序段中加入向量数据类型转换指令过程。如图2a所示,该方法包括:
S210、获取待加载至AI芯片中运行的标量程序,并生成与标量程序匹配的向量化编译程序。
S220、在向量化编译程序中,识别至少一个for循环语句标识符。
其中,for循环语句为一种一般可用于有限循环的循环结构基本语句。
S230、获取每个for循环语句标识符所限定的代码段,分别作为VCC关联程序段。
S240、计算当前VCC关联程序段在各备选向量数据类型下的代价值。
其中,以计算当前VCC关联程序段在一个具体的备选向量数据类型下的代价值为例,计算当前VCC关联程序段在备选向量数据类型下的代价值,可以具体包括:
获取与当前VCC关联程序段匹配的当前数据依赖图;
遍历当前数据依赖图中的各向量计算指令,确定将当前数据依赖图与当前备选向量数据类型相适配时,需要额外增加的当前向量数据类型转换指令;
根据各当前向量数据类型转换指令,计算当前VCC关联程序段在当前备选向量数据类型下的代价值。
图2b为一种可选的数据依赖图形式。如图2b所示,v16i8可理解为该向量操作数具有16个标量数,且每个标量数为8bit的整型数(int),相似的,可理解v16i16与v16i32。在本例中,cmp可以表示能够生成VCC的向量计算指令,也可以理解为对两个向量操作数进行比较运算,以获取比较结果VCC;select可以表示用于条件选择的向量计算指令;ext、and与add也为向量计算指令,在此不进行具体解释。
续前例,备选向量数据类型可以为8bit、16bit与32bit,其具体类型与该AI芯片的底层设计架构关联。
优选的,向量数据类型转换指令可以添加在生成VCC的向量计算指令之前,以及用于条件选择的向量计算指令前后,但对于输入向量类型符合备选向量数据类型的情况,可以无需增加向量数据类型转换指令。
在本实施例中,针对8bit、16bit与32bit这三种备选向量数据类型,可以分别确定当前数据依赖图所需额外增加的各向量数据类型转换指令。
也即,假设将当前数据依赖图与8bit的备选向量数据类型进行适配,则需要在当前数据依赖图中依次遍历,确定需要插入向量数据类型转换指令的位置,以及所需插入的向量数据类型转换指令的指令类型,例如int32转int8或者int8转int16等。其中,可以仅根据各当前向量数据类型转换指令的指令数量值,计算当前VCC关联程序段在当前备选向量数据类型下的代价值,例如,指令数量值越大,代价值越大。
或者,还可以同时结合上述指令数量值,每种当前向量数据类型转换指令的指令类型以及每种指令类型的开销值,共同计算当前VCC关联程序段在当前备选向量数据类型下的代价值。
可选的,根据各所述当前向量数据类型转换指令,计算当前VCC关联程序段在当前备选向量数据类型下的代价值,可以具体包括:
获取各所述当前向量数据类型转换指令的指令总数量,以及各所述当前向量数据类型转换指令的指令总开销;
根据所述指令总数量和所述指令总开销,计算当前VCC关联程序段在当前备选向量数据类型下的代价值。
具体的,可以分别获取各所述当前向量数据类型转换指令的指令类型,以及每种指令类型的指令开销,进而,可以根据每种指令类型下当前向量数据类型转换指令的数量值与匹配的指令开销的乘积,作为每种指令类型的指令开销值,将全部指令类型的指令开销值进行累加求和,得到指令总开销。
在一个具体的例子中,假设将当前数据依赖图与8bit的备选向量数据类型进行适配,共需要插入4个指令类型为int32转int8的向量数据类型转换指令,以及7个指令类型为int8转int16的向量数据类型转换指令。假设指令类型为int32转int8的指令开销为C1,指令类型为int8转int16指令开销为C2,则当前VCC关联程序段在8bit的备选向量数据类型下的指令总开销为4*C1+7*C2。
进一步的,可以将所述指令总数量和所述指令总开销进行加权求和,得到当前VCC关联程序段在当前备选向量数据类型下的代价值。
S250、获取与最小代价值对应的备选向量数据类型,作为与当前VCC关联程序段对应的标准化向量数据类型。
其中,在得到与每个备选向量数据类型分别对应的代价值后,可以选择最小代价值对应的备选向量数据类型,作为与当前VCC关联程序段对应的标准化向量数据类型。
续前例,在如图2b所示的数据依赖图中,标准化向量数据类型可以为32bit,本实施例后续也将以32bit作为标准化向量数据类型进一步说明向量数据类型转换指令的添加过程。
S260、在与当前VCC关联程序段匹配的当前数据依赖图中,识别用于直接生成VCC的第一向量指令。
在图2b中,第一向量指令可以指cmp指令,即对两个向量操作数进行比较运算而直接产生VCC的指令。
S270、通过将各第一向量指令的输入向量数据类型与标准化向量数据类型进行比对,在当前数据依赖图中插入第一类向量数据类型转换指令。
其中,通过将第一向量指令的输入向量数据类型与标准化向量数据类型进行比对,在当前数据依赖图中插入第一类向量数据类型转换指令,可以具体包括:
获取当前第一向量指令的当前第一输入向量数据类型;
如果当前第一输入数据类型与标准化向量数据类型不匹配,则在当前第一向量指令的每个输入端中,加入将当前第一输入向量数据类型转换为标准化向量数据类型的第一类向量数据类型转换指令。
续前例,图2b中对每一个向量计算指令均用数字1-12进行标号,此步骤以图2b中向量计算指令1进行举例。向量计算指令1为cmp指令,输入向量数据类型为8bit,标准化向量数据类型为32bit,因此输入数据类型与标准化向量数据类型不匹配,需要在两个输入端加入向量数据类型转换指令,以使得将两个v16i8均转换为v16i32。相似的,向量计算指令2与向量计算指令5也应在两个输入端加入向量数据类型转换指令,以使得将v16i16均转换为v16i32。
S280、在当前数据依赖图中,识别第二向量指令。
其中,所述第二向量指令的输入向量操作数包含向量布尔值以及其他向量操作类型的操作数。
续前例,第二向量指令在图2b中为向量计算指令4、向量计算指令5、向量计算指令6和向量计算指令7此步骤利用向量计算指令4进行举例说明。
S290、通过将第二向量指令的输入向量数据类型和输出向量数据类型分别与标准化向量数据类型进行比对,在当前数据依赖图中插入第二类向量数据类型转换指令。
其中,通过将第二向量指令的输入向量数据类型和输出向量数据类型分别与所述标准化向量数据类型进行比对,在当前数据依赖图中插入第二类向量数据类型转换指令,可以具体包括:
获取当前第二向量指令的当前第二输入向量数据类型以及当前第二输出向量数据类型;
如果当前第二输入数据类型与标准化向量数据类型不匹配且所述当前第二输入数据类型不为布尔型,则在当前第二向量指令的每个输入端,加入将当前第二输入向量数据类型转换为标准化向量数据类型的第二类向量数据类型转换指令;
如果当前第二输出向量数据类型与标准化向量数据类型不匹配,则在当前第二向量指令的输出端,加入将标准化向量数据类型转换为当前第二输出向量数据类型的第二类向量数据类型转换指令。
向量计算指令4为条件选择的向量计算指令,输入分别为两个v16i8的向量操作数,以及1个v16i1向量布尔值的向量操作数,此时,计算指令4的三个输入向量数据类型与标准化向量数据类型均不匹配。但由于向量操作数为向量布尔值的输入是向量计算指令3的输出,向量计算指令3的输入为向量操作指令1和2的输出,且向量操作指令1和2的输入都已在上述实施例中转换为v16i32,因此,向量计算指令3的输出在AI芯片中的底层硬件寄存器存储格式与标准化向量数据类型相匹配,无需添加将int8转换为int32的向量数据类型转换指令。因此,仅需对向量计算指令4的两个v16i8的向量操作数加入向量数据转换指令即可。
进一步的,由于向量计算指令4的原本的输出向量数据类型为v16i8,当时因为前序的int8转换为int32的向量数据类型转换指令将向量计算指令4的输出向量数据类型修改为v16i32,此时,为了保证适配后的数据依赖图与适配前数据依赖图之间的计算一致性,也需在向量计算指令4的输出端添加将int32转换为int8的向量数据类型转换指令。
相似的,向量计算指令5的输出端也应添加向量数据类型转换指令。向量计算指令6和向量计算指令7则无需添加向量数据类型转换指令。
图2c为在数据依赖图中添加向量数据类型转换指令的位置示意图。如图2c所示,标号为13-22的位置即为需要添加向量数据类型转换指令的位置。
S2100、对当前数据依赖图进行指令去冗余处理,得到与当前VCC关联程序段匹配的向量化编译适配结果。
图2d为进行冗余处理后的数据依赖图,在图2d中,标号为17-21的位置为需要添加向量数据类型转换指令的位置。图2d在图2c的基础上,对向量计算指令进行去冗余处理,具体的去冗余处理方法可以根据具体的向量计算指令内容确定。
S2110、根据与当前VCC关联程序段匹配的向量化编译适配结果,得到与AI芯片相适配的向量化编译适配程序。
S2120、将向量化编译适配程序加载至AI芯片中运行,得到与向量化编译适配程序匹配的芯片运行结果。
本发明实施例的技术方案,通过获取与最小代价值对应的备选向量数据类型,作为与当前VCC关联程序段对应的标准化向量数据类型的方式,能够在一定程度上减少添加向量数据转换指令的代价,同时,通过在数据依赖图中获取第一向量指令与第二向量指令,并加入第一类向量数据类型转换指令与第二类向量数据类型转换指令的方式,能够保证向量计算指令前后的输入和输出向量在AI芯片中的底层硬件寄存器存储格式相同,维持语义的正确性。
实施例三
图3为本发明实施例三提供的一种向量化编译程序的芯片适配装置的结构示意图。如图3所示,该装置包括:向量化编译程序生成模块310、VCC关联程序段识别模块320以及向量化编译适配程序获取模块330。
向量化编译程序生成模块310,用于获取待加载至AI芯片中运行的标量程序,并生成与标量程序匹配的向量化编译程序,其中,不同向量数据类型的向量操作数比较计算的VCC,在AI芯片中具有不同的底层硬件寄存器存储格式。
VCC关联程序段识别模块320,用于在向量化编译程序中,识别至少一个VCC关联程序段。
向量化编译适配程序获取模块330,用于获取与各VCC关联程序段对应的标准化向量数据类型,并按照标准化向量数据类型,在各所述VCC关联程序段中加入向量数据类型转换指令,得到与AI芯片相适配的向量化编译适配程序。
本发明实施例的技术方案,通过在向量化编译程序中,识别至少一个VCC关联程序段,并根据所获取的标准化向量数据类型,在各VCC关联程序段中加入向量数据类型转换指令,以得到与AI芯片相适配的向量化编译适配程序的方式,能够获取与AI芯片相适配的向量化编译适配程序,以实现自动向量化编译对隐式数据类型转换及混合数据类型运算的支持,从而解决在AI芯片中具有不同的底层硬件寄存器存储格式的向量条件状态码,无法进行正确的向量运算的问题。
在上述各实施例的基础上,VCC关联程序段识别模块320,可以具体用于:
在所述向量化编译程序中,识别至少一个for循环语句标识符;
获取每个for循环语句标识符所限定的代码段,分别作为所述VCC关联程序段。
在上述各实施例的基础上,VCC关联程序段识别模块320,还可以具体用于:
获取与当前VCC关联程序段匹配的当前数据依赖图;
遍历当前数据依赖图中的各向量计算指令,确定将当前数据依赖图与当前备选向量数据类型相适配时,需要额外增加的当前向量数据类型转换指令;
根据各当前向量数据类型转换指令,计算当前VCC关联程序段在当前备选向量数据类型下的代价值。
在上述各实施例的基础上,VCC关联程序段识别模块320,还可以具体用于:
获取各所述当前向量数据类型转换指令的指令总数量,以及各所述当前向量数据类型转换指令的指令总开销;
根据所述指令总数量和所述指令总开销,计算当前VCC关联程序段在当前备选向量数据类型下的代价值。
在上述各实施例的基础上,向量化编译适配程序获取模块330,可以包括:
第一向量指令识别单元,用于在与当前VCC关联程序段匹配的当前数据依赖图中,识别用于直接生成VCC的第一向量指令;
第一类向量数据类型转换指令插入单元,用于通过将各第一向量指令的输入向量数据类型与标准化向量数据类型进行比对,在当前数据依赖图中插入第一类向量数据类型转换指令;
第二向量指令识别单元,用于在当前数据依赖图中,识别输入向量操作数包含向量布尔值的第二向量指令;
第二类向量数据类型转换指令插入单元,用于通过将第二向量指令的输入向量数据类型和输出向量数据类型分别与所述标准化向量数据类型进行比对,在当前数据依赖图中插入第二类向量数据类型转换指令。
在上述各实施例的基础上,第一类向量数据类型转换指令插入单元,可以具体用于:
获取当前第一向量指令的当前第一输入向量数据类型;
如果当前第一输入数据类型与标准化向量数据类型不匹配,则在当前第一向量指令的每个输入端中,加入将当前第一输入向量数据类型转换为标准化向量数据类型的第一类向量数据类型转换指令。
在上述各实施例的基础上,第二类向量数据类型转换指令插入单元,可以具体用于:
获取当前第二向量指令的当前第二输入向量数据类型以及当前第二输出向量数据类型;
如果当前第二输入数据类型与标准化向量数据类型不匹配且所述当前第二输入数据类型不为布尔型,则在当前第二向量指令的每个输入端,加入将当前第二输入向量数据类型转换为标准化向量数据类型的第二类向量数据类型转换指令;
如果当前第二输出向量数据类型与标准化向量数据类型不匹配,则在当前第二向量指令的输出端,加入将标准化向量数据类型转换为当前第二输出向量数据类型的第二类向量数据类型转换指令。
在上述各实施例的基础上,还可以包括向量化编译适配结果获取单元,用于在当前数据依赖图中插入第二类向量数据类型转换指令之后,对所述当前数据依赖图进行指令去冗余处理,得到与当前VCC关联程序段匹配的向量化编译适配结果。
在上述各实施例的基础上,还可以包括芯片运行结果获取模块,用于在得到与AI芯片相适配的向量化编译适配程序之后,将所述向量化编译适配程序加载至所述AI芯片中运行,得到与所述向量化编译适配程序匹配的芯片运行结果。
本发明实施例所提供的向量化编译程序的芯片适配装置可执行本发明任意实施例所提供的向量化编译程序的芯片适配方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备40的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备40包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(ROM)42、随机访问存储器(RAM)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(ROM)42中的计算机程序或者从存储单元48加载到随机访问存储器(RAM)43中的计算机程序,来执行各种适当的动作和处理。在RAM 43中,还可存储电子设备40操作所需的各种程序和数据。处理器41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。
电子设备40中的多个部件连接至I/O接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许电子设备40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器41可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器41的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器41执行上文所描述的各个方法和处理,例如如本发明实施例所述的向量化编译程序的芯片适配方法。也即:
获取待加载至AI芯片中运行的标量程序,并生成与标量程序匹配的向量化编译程序,其中,不同向量数据类型的向量操作数比较计算的VCC,在AI芯片中具有不同的底层硬件寄存器存储格式;
在向量化编译程序中,识别至少一个VCC关联程序段;
获取与各VCC关联程序段对应的标准化向量数据类型,并按照标准化向量数据类型,在各所述VCC关联程序段中加入向量数据类型转换指令,得到与AI芯片相适配的向量化编译适配程序。
在一些实施例中,向量化编译程序的芯片适配方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由ROM 42和/或通信单元49而被载入和/或安装到电子设备40上。当计算机程序加载到RAM 43并由处理器41执行时,可以执行上文描述的向量化编译程序的芯片适配方法的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行向量化编译程序的芯片适配方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (13)
1.一种向量化编译程序的芯片适配方法,其特征在于,包括:
获取待加载至人工智能AI芯片中运行的标量程序,并生成与标量程序匹配的向量化编译程序,其中,不同向量数据类型的向量操作数比较计算的向量条件状态码VCC,在AI芯片中具有不同的底层硬件寄存器存储格式;
在向量化编译程序中,识别至少一个VCC关联程序段;
获取与各VCC关联程序段对应的标准化向量数据类型,并按照标准化向量数据类型,在各所述VCC关联程序段中加入向量数据类型转换指令,得到与AI芯片相适配的向量化编译适配程序。
2.根据权利要求1所述的方法,其特征在于,在向量化编译程序中,识别至少一个VCC关联程序段,包括:
在所述向量化编译程序中,识别至少一个for循环语句标识符;
获取每个for循环语句标识符所限定的代码段,分别作为所述VCC关联程序段。
3.根据权利要求1所述的方法,其特征在于,获取与VCC关联程序段对应的标准化向量数据类型,包括:
计算当前VCC关联程序段在各备选向量数据类型下的代价值;
获取与最小代价值对应的备选向量数据类型,作为与当前VCC关联程序段对应的标准化向量数据类型。
4.根据权利要求3所述的方法,其特征在于,计算当前VCC关联程序段在备选向量数据类型下的代价值,包括:
获取与当前VCC关联程序段匹配的当前数据依赖图;
遍历当前数据依赖图中的各向量计算指令,确定将当前数据依赖图与当前备选向量数据类型相适配时,需要额外增加的当前向量数据类型转换指令;
根据各当前向量数据类型转换指令,计算当前VCC关联程序段在当前备选向量数据类型下的代价值。
5.根据权利要求4所述的方法,其特征在于,根据各所述当前向量数据类型转换指令,计算当前VCC关联程序段在当前备选向量数据类型下的代价值,包括:
获取各所述当前向量数据类型转换指令的指令总数量,以及各所述当前向量数据类型转换指令的指令总开销;
根据所述指令总数量和所述指令总开销,计算当前VCC关联程序段在当前备选向量数据类型下的代价值。
6.根据权利要求3-5中任一项所述的方法,其特征在于,按照标准化向量数据类型,在所述VCC关联程序段中加入向量数据类型转换指令,包括:
在与当前VCC关联程序段匹配的当前数据依赖图中,识别用于直接生成VCC的第一向量指令;
通过将各第一向量指令的输入向量数据类型与标准化向量数据类型进行比对,在当前数据依赖图中插入第一类向量数据类型转换指令;
在当前数据依赖图中,识别第二向量指令;
其中,所述第二向量指令的输入向量操作数包含向量布尔值以及其他向量操作类型的操作数;
通过将第二向量指令的输入向量数据类型和输出向量数据类型分别与所述标准化向量数据类型进行比对,在当前数据依赖图中插入第二类向量数据类型转换指令。
7.根据权利要求6所述的方法,其特征在于,通过将第一向量指令的输入向量数据类型与标准化向量数据类型进行比对,在当前数据依赖图中插入第一类向量数据类型转换指令,包括:
获取当前第一向量指令的当前第一输入向量数据类型;
如果当前第一输入数据类型与标准化向量数据类型不匹配,则在当前第一向量指令的每个输入端中,加入将当前第一输入向量数据类型转换为标准化向量数据类型的第一类向量数据类型转换指令。
8.根据权利要求6所述的方法,其特征在于,通过将第二向量指令的输入向量数据类型和输出向量数据类型分别与所述标准化向量数据类型进行比对,在当前数据依赖图中插入第二类向量数据类型转换指令,包括:
获取当前第二向量指令的当前第二输入向量数据类型以及当前第二输出向量数据类型;
如果当前第二输入数据类型与标准化向量数据类型不匹配且所述当前第二输入数据类型不为布尔型,则在当前第二向量指令的每个输入端,加入将当前第二输入向量数据类型转换为标准化向量数据类型的第二类向量数据类型转换指令;
如果当前第二输出向量数据类型与标准化向量数据类型不匹配,则在当前第二向量指令的输出端,加入将标准化向量数据类型转换为当前第二输出向量数据类型的第二类向量数据类型转换指令。
9.根据权利要求6所述的方法,其特征在于,在当前数据依赖图中插入第二类向量数据类型转换指令之后,还包括:
对所述当前数据依赖图进行指令去冗余处理,得到与当前VCC关联程序段匹配的向量化编译适配结果。
10.根据权利要求1所述的方法,其特征在于,在得到与AI芯片相适配的向量化编译适配程序之后,还包括:
将所述向量化编译适配程序加载至所述AI芯片中运行,得到与所述向量化编译适配程序匹配的芯片运行结果。
11.一种向量化编译程序的芯片适配装置,其特征在于,包括:
向量化编译程序生成模块,用于获取待加载至人工智能AI芯片中运行的标量程序,并生成与标量程序匹配的向量化编译程序,其中,不同向量数据类型的向量操作数比较计算的向量条件状态码VCC,在AI芯片中具有不同的底层硬件寄存器存储格式;
VCC关联程序段识别模块,用于在向量化编译程序中,识别至少一个VCC关联程序段;
向量化编译适配程序获取模块,用于获取与各VCC关联程序段对应的标准化向量数据类型,并按照标准化向量数据类型,在各所述VCC关联程序段中加入向量数据类型转换指令,得到与AI芯片相适配的向量化编译适配程序。
12.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的向量化编译程序的芯片适配方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-10中任一项所述的向量化编译程序的芯片适配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310060092.1A CN115951936B (zh) | 2023-01-17 | 2023-01-17 | 向量化编译程序的芯片适配方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310060092.1A CN115951936B (zh) | 2023-01-17 | 2023-01-17 | 向量化编译程序的芯片适配方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115951936A true CN115951936A (zh) | 2023-04-11 |
CN115951936B CN115951936B (zh) | 2023-05-26 |
Family
ID=85892815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310060092.1A Active CN115951936B (zh) | 2023-01-17 | 2023-01-17 | 向量化编译程序的芯片适配方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115951936B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303501A (zh) * | 1998-05-27 | 2001-07-11 | Arm有限公司 | 混合向量/标量寄存器文件 |
CN101501634A (zh) * | 2006-08-18 | 2009-08-05 | 高通股份有限公司 | 使用标量/向量指令处理数据的系统和方法 |
CN102804135A (zh) * | 2009-06-05 | 2012-11-28 | Arm有限公司 | 用于处理向量指令的数据处理设备和方法 |
US20130067196A1 (en) * | 2011-09-13 | 2013-03-14 | Qualcomm Incorporated | Vectorization of machine level scalar instructions in a computer program during execution of the computer program |
CN103440229A (zh) * | 2013-08-12 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种基于mic架构处理器的向量化优化方法 |
US20160299746A1 (en) * | 2015-04-07 | 2016-10-13 | Qualcomm Innovation Center, Inc. | Auto-vectorization in just-in-time compilers for dynamically typed programming languages |
US20170083323A1 (en) * | 2015-09-23 | 2017-03-23 | Qualcomm Incorporated | Speculative scalarization in vector processing |
CN107992330A (zh) * | 2012-12-31 | 2018-05-04 | 英特尔公司 | 对条件循环进行向量化的处理器、方法、处理系统以及机器可读介质 |
CN108139911A (zh) * | 2015-10-22 | 2018-06-08 | 德州仪器公司 | 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格 |
CN112148368A (zh) * | 2019-06-29 | 2020-12-29 | 英特尔公司 | 用于修改与卸载的指令关联的地址、数据或程序代码的设备和方法 |
CN113391813A (zh) * | 2020-12-04 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 程序编译方法和装置、存储介质及电子设备 |
CN113407351A (zh) * | 2021-07-20 | 2021-09-17 | 北京百度网讯科技有限公司 | 执行运算的方法、装置、芯片、设备、介质和程序产品 |
CN114924748A (zh) * | 2022-05-31 | 2022-08-19 | 上海阵量智能科技有限公司 | 编译方法、装置及设备 |
CN115328493A (zh) * | 2022-09-01 | 2022-11-11 | 安谋科技(中国)有限公司 | 用于带掩码的向量指令的编译方法、电子设备和介质 |
CN115495095A (zh) * | 2022-11-18 | 2022-12-20 | 上海燧原科技有限公司 | 张量程序的整程序编译方法、装置、设备、介质及集群 |
-
2023
- 2023-01-17 CN CN202310060092.1A patent/CN115951936B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303501A (zh) * | 1998-05-27 | 2001-07-11 | Arm有限公司 | 混合向量/标量寄存器文件 |
CN101501634A (zh) * | 2006-08-18 | 2009-08-05 | 高通股份有限公司 | 使用标量/向量指令处理数据的系统和方法 |
CN102804135A (zh) * | 2009-06-05 | 2012-11-28 | Arm有限公司 | 用于处理向量指令的数据处理设备和方法 |
US20130067196A1 (en) * | 2011-09-13 | 2013-03-14 | Qualcomm Incorporated | Vectorization of machine level scalar instructions in a computer program during execution of the computer program |
CN107992330A (zh) * | 2012-12-31 | 2018-05-04 | 英特尔公司 | 对条件循环进行向量化的处理器、方法、处理系统以及机器可读介质 |
CN103440229A (zh) * | 2013-08-12 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种基于mic架构处理器的向量化优化方法 |
US20160299746A1 (en) * | 2015-04-07 | 2016-10-13 | Qualcomm Innovation Center, Inc. | Auto-vectorization in just-in-time compilers for dynamically typed programming languages |
US20170083323A1 (en) * | 2015-09-23 | 2017-03-23 | Qualcomm Incorporated | Speculative scalarization in vector processing |
CN108139911A (zh) * | 2015-10-22 | 2018-06-08 | 德州仪器公司 | 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格 |
CN112148368A (zh) * | 2019-06-29 | 2020-12-29 | 英特尔公司 | 用于修改与卸载的指令关联的地址、数据或程序代码的设备和方法 |
CN113391813A (zh) * | 2020-12-04 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 程序编译方法和装置、存储介质及电子设备 |
CN113407351A (zh) * | 2021-07-20 | 2021-09-17 | 北京百度网讯科技有限公司 | 执行运算的方法、装置、芯片、设备、介质和程序产品 |
CN114924748A (zh) * | 2022-05-31 | 2022-08-19 | 上海阵量智能科技有限公司 | 编译方法、装置及设备 |
CN115328493A (zh) * | 2022-09-01 | 2022-11-11 | 安谋科技(中国)有限公司 | 用于带掩码的向量指令的编译方法、电子设备和介质 |
CN115495095A (zh) * | 2022-11-18 | 2022-12-20 | 上海燧原科技有限公司 | 张量程序的整程序编译方法、装置、设备、介质及集群 |
Non-Patent Citations (2)
Title |
---|
贺婷;: "基于数据级自动向量化的编译优化研究综述", 智能计算机与应用 * |
陈勇;徐超;: "基于符号执行和人机交互的自动向量化方法", 计算机科学 * |
Also Published As
Publication number | Publication date |
---|---|
CN115951936B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113342345A (zh) | 深度学习框架的算子融合方法、装置 | |
US20160321039A1 (en) | Technology mapping onto code fragments | |
US11507348B2 (en) | Method and apparatus for generating chip-based computing function, device, and storage medium | |
CN111158756B (zh) | 用于处理信息的方法和装置 | |
CN112925587A (zh) | 用于初始化应用的方法和装置 | |
CN115509522A (zh) | 面向低代码场景的接口编排方法、系统、电子设备 | |
CN115469931B (zh) | 一种循环程序的指令优化方法、装置、系统、设备及介质 | |
CN108959571A (zh) | Sql语句的运算方法、装置、终端设备及存储介质 | |
CN112817660A (zh) | 扩展小程序能力的方法、装置、设备以及存储介质 | |
CN117055851A (zh) | 一种软件架构恢复方法、装置、电子设备及存储介质 | |
CN115951936B (zh) | 向量化编译程序的芯片适配方法、装置、设备及介质 | |
CN116382658A (zh) | Ai模型的编译方法、装置、计算机设备及存储介质 | |
CN113141407B (zh) | 一种页面资源加载方法、装置和电子设备 | |
CN114840256A (zh) | 一种程序数据级并行分析方法、装置及相关设备 | |
CN114174983A (zh) | 使用测试向量自动验证高级构造的优化 | |
CN112861512A (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN111078230A (zh) | 一种代码生成方法和装置 | |
CN117075912B (zh) | 用于程序语言转换的方法、编译方法及相关设备 | |
CN114327643B (zh) | 机器指令预处理方法、电子设备及计算机可读存储介质 | |
CN116610362B (zh) | 一种处理器指令集译码方法、系统、设备和存储介质 | |
CN115906983B (zh) | 分布式模型训练方法、装置、设备、存储介质及程序产品 | |
CN113760765B (zh) | 代码测试方法、装置、电子设备和存储介质 | |
CN115729688B (zh) | 处理器的多线程调度方法、装置、电子设备和存储介质 | |
CN114816758B (zh) | 资源分配方法和装置 | |
CN110378471B (zh) | 运算方法、装置及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Patentee after: Shanghai Suiyuan Technology Co.,Ltd. Country or region after: China Address before: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Patentee before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd. Country or region before: China |