CN117234514B - 将标量化程序转换为向量化程序的方法、系统及相关设备 - Google Patents
将标量化程序转换为向量化程序的方法、系统及相关设备 Download PDFInfo
- Publication number
- CN117234514B CN117234514B CN202311477553.1A CN202311477553A CN117234514B CN 117234514 B CN117234514 B CN 117234514B CN 202311477553 A CN202311477553 A CN 202311477553A CN 117234514 B CN117234514 B CN 117234514B
- Authority
- CN
- China
- Prior art keywords
- program
- dimension
- scalar
- data structure
- vectorization
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000006243 chemical reaction Methods 0.000 claims abstract description 55
- 230000011218 segmentation Effects 0.000 claims abstract description 36
- 230000006872 improvement Effects 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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)
- Complex Calculations (AREA)
Abstract
本发明适用于数据编译技术领域,尤其涉及一种将标量化程序转换为向量化程序的方法、系统及相关设备,所述方法包括:获取需要进行向量化转换的标量化程序文件;在标量化程序文件中标记待转换的包含多个维度的数据结构;根据数据结构的中不同维度的元素数量选取主维度和切分维度;根据主维度和切分维度构建循环程序,并根据循环程序对数据结构进行向量化转换;重复上述步骤,直至完成标量化程序中所有数据结构的向量化转换,输出向量化程序。本发明提出了一种基于数据结构的将标量化程序转换为向量化程序的方法,该方法基于数组这一数据结构中数据的维度决定循环程序的循环嵌套方式,实现了转换后的向量化程序综合性能的提高。
Description
技术领域
本发明适用于数据编译技术领域,尤其涉及一种将标量化程序转换为向量化程序的方法、系统及相关设备。
背景技术
向量处理器(Vector Processing Unit)是中央处理器(Central ProcessingUnit,简称CPU)通过数据并行提升性能的一种设计,RISC(精简指令集计算机,ReducedInstruction Set Computer)-V已经发布RVV-SEPC以支持RISC-V处理器做向量计算。面向标量处理器(Scalar Processor)开发的程序是现有的主流应用程序,这样的程序需要对其中代码进行向量化修改以后才能利用向量处理器的处理单元实现运算性能的提升。面向标量处理器开发的程序,可以通过一定的算法修改转换为可以利用向量处理器的处理单元执行的程序,在这个过程中,将程序向量化的算法是程序转换的关键手段。
相关技术已有标量程序自动向量化的研究及方法,例如标量演化(scalarevolution)、数据并行(data parallelism)、循环分析(loop analysis)、多面体优化(polyhydral optimization)等,但这些方法在使用的过程中存在程序向量化成功率不高的问题,这主要是因为对于存在多层循环处理代码的程序的向量化过程,大多仅依赖最内层循环,使得向量化后的程序无法利用向量处理单元达到最优执行效率。
因此,有必要提供一种新的将标量化程序转换为向量化程序的方法来解决上述问题。
发明内容
本发明提供一种将标量化程序转换为向量化程序的方法、系统及相关设备,旨在解决现有技术将程序向量化的算法对于多层循环代码的转换执行效率低的问题。
为解决上述技术问题,第一方面,本发明提供一种将标量化程序转换为向量化程序的方法,所述方法包括以下步骤:
S1、获取需要进行向量化转换的标量化程序文件;
S2、在所述标量化程序文件中标记待转换的数据结构,所述数据结构包含多个维度;
S3、根据所述数据结构的中不同维度的元素数量选取主维度和切分维度;
S4、根据所述主维度和所述切分维度构建循环程序,并根据所述循环程序对所述数据结构进行向量化转换;
S5、重复步骤S3和步骤S4,直至完成所述标量化程序中所有所述数据结构的向量化转换,将完成了向量化转换后的所述标量化程序输出为向量化程序。
更进一步地,所述数据结构为数组。
更进一步地,选取所述数据结构中元素数量最多的维度作为所述主维度。
更进一步地,选取所述数据结构中元素数量最少的维度作为所述切分维度。
更进一步地,步骤S3还包括步骤:
将当前进行向量化转换的所述数据结构中所述主维度、所述切分维度以外的维度作为循环维度。
更进一步地,步骤S4还包括步骤:
根据所述循环维度的数量构建所述循环程序中的内循环。
第二方面,本发明还提供一种将标量化程序转换为向量化程序的系统,包括:
文件获取模块,用于获取需要进行向量化转换的标量化程序文件;
标记模块,用于在所述标量化程序文件中标记待转换的数据结构,所述数据结构包含多个维度;
维度选取模块,用于根据所述数据结构的中不同维度的元素数量选取主维度和切分维度;
转换模块,用于根据所述主维度和所述切分维度构建循环程序,并根据所述循环程序对所述数据结构进行向量化转换;
迭代输出模块,用于重复执行所述维度选取模块和所述转换模块,直至完成所述标量化程序中所有所述数据结构的向量化转换,将完成了向量化转换后的所述标量化程序输出为向量化程序。
更进一步地,所述数据结构为数组。
第三方面,本发明还提供一种计算机设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的标量化程序转换为向量化程序的程序,所述处理器执行所述标量化程序转换为向量化程序的程序时实现如上述实施例中任意一项所述的将标量化程序转换为向量化程序的方法中的步骤。
第四方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有标量化程序转换为向量化程序的程序,所述标量化程序转换为向量化程序的程序被处理器执行时实现如上述实施例中任意一项所述的将标量化程序转换为向量化程序的方法中的步骤。
本发明所达到的有益效果,在于提出了一种基于数据结构的将标量化程序转换为向量化程序的方法,该方法基于数组这一数据结构中数据的维度决定循环程序的循环嵌套方式,并根据向量化程序的需要的决定寄存器宽度以及数据与矢量寄存器的对应来决定数据依赖,实现了转换后的向量化程序综合性能的提高。
附图说明
图1是本发明实施例提供的将标量化程序转换为向量化程序的方法的步骤流程框图;
图2是本发明实施例构建的循环程序的示意图;
图3是本发明实施例提供的将标量化程序转换为向量化程序的系统的结构示意图;
图4是本发明实施例提供的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1,图1是本发明实施例提供的将标量化程序转换为向量化程序的方法的步骤流程框图,所述方法包括以下步骤:
S1、获取需要进行向量化转换的标量化程序文件。
本发明实施例中,所述标量化程序文件是指按照标量处理器的运行逻辑和效率设计、编译的程序文件,该程序文件是与向量化程序文件(按照向量处理器的运行逻辑和效率设计、编译的程序文件)相对的程序概念,由于向量处理器包含标量处理器所没有的向量计算单元,因此标量化程序文件在向量处理器上运行时不会使用到向量计算单元,而向量化转换就是使程序能够利用到向量计算单元而进行的处理过程。
S2、在所述标量化程序文件中标记待转换的数据结构,所述数据结构包含多个维度。
所述数据结构为数组。现有技术的大多数应用程序通常包含多个传感器的数据汇总、视频的多通道、音频的左右声道等数据,在这样的场景下,使得其程序涉及到的数据结构体现为数组,一种典型的三维数组的表现形式为data[1][2][3],其中data为数组名,[1]、[2]、[3]为不同的维度,1、2、3分别为该维度所包含的元素数量。进一步的,由于数组的存在,在标量化程序文件中用于处理数组的程序结构体现为循环处理的结构。
S3、根据所述数据结构的中不同维度的元素数量选取主维度和切分维度。
选取所述数据结构中元素数量最多的维度作为所述主维度。以三维数组为例,data[6][5][4],选择其中元素数量为6的维度为主维度,data[6][7][4]中选择元素数量为7的维度为主维度。本发明实施例中选取主维度的目的是为向量化程序选择最长向量寄存器宽度以提高执行性能,RISC-V RVV中向量寄存器宽度通过对LMUL这一变量进行取值,最大可以扩展为基础宽度的8倍,例如,对于向量寄存器基础宽度为8个元素的向量处理器,当变量LMUL取值为8的时候,向量寄存器宽度最长为64个元素,在实际运行过程中,处理数据总量相同的情况,单条指令处理的数据(向量寄存器的宽度)越大,所需要的指令数量越少,则处理数据的性能越高。
选取所述数据结构中元素数量最少的维度作为所述切分维度。同样的,以三维数组为例,data[6][5][4],选择其中元素数量为4的维度为切分维度,data[6][7][5]中选择元素数量为5的维度为切分维度。本发明实施例中选取切分维度的目的是为向量化程序选择最短步进间距以提高读取性能,RISC-V RVV提供了跨步负载(Strided Load)功能,该功能可以使处理器中矢量寄存器的元素按照一定步进间距从内存中读入,本发明实施例将切分维度中的元素数量与跨步负载功能从矢量寄存器读取数据的数量对应,而在将切分维度与元素数量最少的维度对应后,可以使得跨步负载功能读取数据时的步进间距最短,从而提高处理器的缓存、内存系统的效率。
步骤S3还包括步骤:
将当前进行向量化转换的所述数据结构中所述主维度、所述切分维度以外的维度作为循环维度。
本发明实施例中,由于数组的存在,在标量化程序文件中用于处理数组的程序结构为循环处理结构,因此在原本的数据结构中,没有被选择作为主维度、切分维度以外的维度需要保持其循环,并以此来构建后续步骤中的循环程序。
S4、根据所述主维度和所述切分维度构建循环程序,并根据所述循环程序对所述数据结构进行向量化转换。
步骤S4还包括步骤:
根据所述循环维度的数量构建所述循环程序中的内循环。
如图2所示,图2是本发明实施例构建的循环程序的示意图,图2中的数组为三维数组,最外层循环用于控制当前数据结构的转换进度,由于其除了主维度(primary_lenth)和切分维度(split_width)外只有一个循环维度(other_lenth),因此在所述循环程序中具有一个内循环。其中,将所述标量化程序中逻辑代码(logical.or.arithmetic.codes)放置在所述循环程序的内循环中,以实现正常的程序功能执行。
需要说明的是,如果原有的标量化程序文件在执行计算中有特定的数据依赖,则可在本发明实施例的基础上适当调整主维度、切分维度、循环维度的选择方式,在满足原有数据依赖的情况下,完成程序的向量化转换;而对于比三维数据更高维度的数据结构,可以选择多个循环维度构建内循环,以完成程序向量化转换;对应的,比三维数据更低的数据结构,比如二维数据结构,只需选择主维度和切分维度,而不需要在循环程序中构建内循环来处理逻辑代码。
而对于一维数据结构的向量化转换问题,且因为其不存在多个维度的数据,因此本发明实施例的方法在一维数据结构中仅选取主维度,并按照图2的方式构建循环程序,此时,逻辑代码只需要放在最外层循环中。
本发明实施例中的所述将标量化程序转换为向量化程序的方法还具有实现SIMD(Single Instruction Multiple Data,单指令多数据)功能的技术效果,SIMD可以允许一个单一的操作指令在多个数据上同时进行,例如对于四个加法指令、每个加法指令处理一个加法数据对的情况,在SIMD时可以使用一个加法指令处理四个加法数据对的效果。具体的,如图2所示的循环程序中,逻辑代码可以是运用到内循环中向量数据(如0_register_vec)的计算代码,通过将标量化程序转换为向量化程序,对于原本标量化程序文件中的多个元素被统一作为一个向量数据进行处理,即实现了数据的向量化转换,该情况可以等同于将四个加法数据对转换为一个包含加法数据对的向量数据的情况,因此在后续的逻辑代码中,通过引用该向量数据,并由一条单独的加法指令实现计算四个加法数据对的效果,即本发明实施例的所述将标量化程序转换为向量化程序的方法能够实现SIMD的功能,从而提高程序的执行效率。
S5、重复步骤S3和步骤S4,直至完成所述标量化程序中所有所述数据结构的向量化转换,将完成了向量化转换后的所述标量化程序输出为向量化程序。
本发明所达到的有益效果,在于提出了一种基于数据结构的将标量化程序转换为向量化程序的方法,该方法基于数组这一数据结构中数据的维度决定循环程序的循环嵌套方式,并根据向量化程序的需要的决定寄存器宽度以及数据与矢量寄存器的对应来决定数据依赖,实现了转换后的向量化程序综合性能的提高。
本发明实施例还提供一种将标量化程序转换为向量化程序的系统200,请参照图3,图3是本发明实施例提供的将标量化程序转换为向量化程序的系统的结构示意图,其包括:
文件获取模块201,用于获取需要进行向量化转换的标量化程序文件;
标记模块202,用于在所述标量化程序文件中标记待转换的数据结构,所述数据结构包含多个维度;
维度选取模块203,用于根据所述数据结构的中不同维度的元素数量选取主维度和切分维度;
转换模块204,用于根据所述主维度和所述切分维度构建循环程序,并根据所述循环程序对所述数据结构进行向量化转换;
迭代输出模块205,用于重复执行所述维度选取模块203和所述转换模块204,直至完成所述标量化程序中所有所述数据结构的向量化转换,将完成了向量化转换后的所述标量化程序输出为向量化程序。
所述数据结构为数组。
选取所述数据结构中元素数量最多的维度作为所述主维度。
选取所述数据结构中元素数量最少的维度作为所述切分维度。
所述维度选取模块203还用于:
将当前进行向量化转换的所述数据结构中所述主维度、所述切分维度以外的维度作为循环维度。
所述转换模块204还用于:
根据所述循环维度的数量构建所述循环程序中的内循环。
所述将标量化程序转换为向量化程序的系统200能够实现如上述实施例中的将标量化程序转换为向量化程序的方法中的步骤,且能实现同样的技术效果,参上述实施例中的描述,此处不再赘述。
本发明实施例还提供一种计算机设备,请参照图4,图4是本发明实施例提供的计算机设备的结构示意图,所述计算机设备300包括:存储器302、处理器301及存储在所述存储器302上并可在所述处理器301上运行的标量化程序转换为向量化程序的程序。
所述处理器301调用所述存储器302存储的标量化程序转换为向量化程序的程序,执行本发明实施例提供的将标量化程序转换为向量化程序的方法中的步骤,请结合图1,具体包括以下步骤:
S1、获取需要进行向量化转换的标量化程序文件。
S2、在所述标量化程序文件中标记待转换的数据结构,所述数据结构包含多个维度。
所述数据结构为数组。
S3、根据所述数据结构的中不同维度的元素数量选取主维度和切分维度。
选取所述数据结构中元素数量最多的维度作为所述主维度。
选取所述数据结构中元素数量最少的维度作为所述切分维度。
步骤S3还包括步骤:
将当前进行向量化转换的所述数据结构中所述主维度、所述切分维度以外的维度作为循环维度。
S4、根据所述主维度和所述切分维度构建循环程序,并根据所述循环程序对所述数据结构进行向量化转换。
步骤S4还包括步骤:
根据所述循环维度的数量构建所述循环程序中的内循环。
S5、重复步骤S3和步骤S4,直至完成所述标量化程序中所有所述数据结构的向量化转换,将完成了向量化转换后的所述标量化程序输出为向量化程序。
本发明实施例提供的计算机设备300能够实现如上述实施例中的方法中的步骤,且能实现同样的技术效果,参上述实施例中的描述,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有标量化程序转换为向量化程序的程序,该标量化程序转换为向量化程序的程序被处理器执行时实现本发明实施例提供的方法中的各个过程及步骤,且能实现相同的技术效果,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过标量化程序转换为向量化程序的程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,简称RAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,所揭露的仅为本发明较佳实施例而已,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式用等同变化,均属于本发明的保护之内。
Claims (6)
1.一种将标量化程序转换为向量化程序的方法,其特征在于,所述方法包括以下步骤:
S1、获取需要进行向量化转换的标量化程序文件;
S2、在所述标量化程序文件中标记待转换的数据结构,所述数据结构包含多个维度,所述数据结构为数组;
S3、根据所述数据结构的中不同维度的元素数量选取主维度和切分维度,其中,选取所述数据结构中元素数量最多的维度作为所述主维度,选取所述数据结构中元素数量最少的维度作为所述切分维度;
S4、根据所述主维度和所述切分维度构建循环程序,并根据所述循环程序对所述数据结构进行向量化转换,其中,根据所述主维度的元素数量确定所述循环程序的最外层循环的循环数量,根据所述切分维度的元素数量确定所述循环程序中需要向量化转换的数据数量;
S5、重复步骤S3和步骤S4,直至完成所述标量化程序中所有所述数据结构的向量化转换,将完成了向量化转换后的所述标量化程序输出为向量化程序。
2.如权利要求1所述的将标量化程序转换为向量化程序的方法,其特征在于,步骤S3还包括步骤:
将当前进行向量化转换的所述数据结构中所述主维度、所述切分维度以外的维度作为循环维度。
3.如权利要求2所述的将标量化程序转换为向量化程序的方法,其特征在于,步骤S4还包括步骤:
根据所述循环维度的数量构建所述循环程序中的内循环。
4.一种将标量化程序转换为向量化程序的系统,其特征在于,包括:
文件获取模块,用于获取需要进行向量化转换的标量化程序文件;
标记模块,用于在所述标量化程序文件中标记待转换的数据结构,所述数据结构包含多个维度,所述数据结构为数组;
维度选取模块,用于根据所述数据结构的中不同维度的元素数量选取主维度和切分维度,其中,选取所述数据结构中元素数量最多的维度作为所述主维度,选取所述数据结构中元素数量最少的维度作为所述切分维度;
转换模块,用于根据所述主维度和所述切分维度构建循环程序,并根据所述循环程序对所述数据结构进行向量化转换,其中,根据所述主维度的元素数量确定所述循环程序的最外层循环的循环数量,根据所述切分维度的元素数量确定所述循环程序中需要向量化转换的数据数量;
迭代输出模块,用于重复执行所述维度选取模块和所述转换模块,直至完成所述标量化程序中所有所述数据结构的向量化转换,将完成了向量化转换后的所述标量化程序输出为向量化程序。
5.一种计算机设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的标量化程序转换为向量化程序的程序,所述处理器执行所述标量化程序转换为向量化程序的程序时实现如权利要求1-3中任意一项所述的将标量化程序转换为向量化程序的方法中的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有标量化程序转换为向量化程序的程序,所述标量化程序转换为向量化程序的程序被处理器执行时实现如权利要求1-3中任意一项所述的将标量化程序转换为向量化程序的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311477553.1A CN117234514B (zh) | 2023-11-08 | 2023-11-08 | 将标量化程序转换为向量化程序的方法、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311477553.1A CN117234514B (zh) | 2023-11-08 | 2023-11-08 | 将标量化程序转换为向量化程序的方法、系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117234514A CN117234514A (zh) | 2023-12-15 |
CN117234514B true CN117234514B (zh) | 2024-02-23 |
Family
ID=89098458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311477553.1A Active CN117234514B (zh) | 2023-11-08 | 2023-11-08 | 将标量化程序转换为向量化程序的方法、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117234514B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6465661A (en) * | 1987-09-07 | 1989-03-10 | Hitachi Ltd | Vectorizing processing system for induction variable |
JPH10105412A (ja) * | 1996-09-30 | 1998-04-24 | Hitachi Ltd | 主記憶の効率的アクセスを実現するオブジェクト生成方法 |
US6113650A (en) * | 1997-02-14 | 2000-09-05 | Nec Corporation | Compiler for optimization in generating instruction sequence and compiling method |
CN103279327A (zh) * | 2013-04-28 | 2013-09-04 | 中国人民解放军信息工程大学 | 面向异构simd扩展部件的自动向量化方法 |
CN103440229A (zh) * | 2013-08-12 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种基于mic架构处理器的向量化优化方法 |
CN104834532A (zh) * | 2015-06-03 | 2015-08-12 | 星环信息科技(上海)有限公司 | 一种分布式数据向量化处理方法和装置 |
CN104969179A (zh) * | 2013-03-15 | 2015-10-07 | 英特尔公司 | 用于将具有循环承载的依赖的标量计算机程序循环向量化的方法和系统 |
CN110806897A (zh) * | 2019-10-29 | 2020-02-18 | 中国人民解放军战略支援部队信息工程大学 | 面向多代码粒度的向量并行性发掘方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015688B2 (en) * | 2011-04-01 | 2015-04-21 | Intel Corporation | Vectorization of scalar functions including vectorization annotations and vectorized function signatures matching |
-
2023
- 2023-11-08 CN CN202311477553.1A patent/CN117234514B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6465661A (en) * | 1987-09-07 | 1989-03-10 | Hitachi Ltd | Vectorizing processing system for induction variable |
JPH10105412A (ja) * | 1996-09-30 | 1998-04-24 | Hitachi Ltd | 主記憶の効率的アクセスを実現するオブジェクト生成方法 |
US6113650A (en) * | 1997-02-14 | 2000-09-05 | Nec Corporation | Compiler for optimization in generating instruction sequence and compiling method |
CN104969179A (zh) * | 2013-03-15 | 2015-10-07 | 英特尔公司 | 用于将具有循环承载的依赖的标量计算机程序循环向量化的方法和系统 |
CN103279327A (zh) * | 2013-04-28 | 2013-09-04 | 中国人民解放军信息工程大学 | 面向异构simd扩展部件的自动向量化方法 |
CN103440229A (zh) * | 2013-08-12 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种基于mic架构处理器的向量化优化方法 |
CN104834532A (zh) * | 2015-06-03 | 2015-08-12 | 星环信息科技(上海)有限公司 | 一种分布式数据向量化处理方法和装置 |
CN110806897A (zh) * | 2019-10-29 | 2020-02-18 | 中国人民解放军战略支援部队信息工程大学 | 面向多代码粒度的向量并行性发掘方法 |
Non-Patent Citations (2)
Title |
---|
向量并行度指导的循环SIMD向量化方法;高伟;韩林;赵荣彩;徐金龙;陈超然;;软件学报;28(04);第925-937页 * |
面向SIMD向量化的循环优化技术研究;高伟;徐金龙;孙回回;李敏;;信息工程大学学报;17(04);第496-503页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117234514A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5274812A (en) | Method of compiling source code into vectorized object code by performing a one-dimensional analysis on each dimension of a multi-dimensional array within a loop | |
US7725409B2 (en) | Gene expression programming based on Hidden Markov Models | |
US6550059B1 (en) | Method for generating optimized vector instructions from high level programming languages | |
CN115034402A (zh) | 模型推理性能的优化方法、装置及相关产品 | |
CN113283613A (zh) | 深度学习模型的生成方法、优化方法、装置、设备及介质 | |
US8214818B2 (en) | Method and apparatus to achieve maximum outer level parallelism of a loop | |
Farzan et al. | Phased synthesis of divide and conquer programs | |
CN112579462A (zh) | 测试用例获取方法、系统、设备及计算机可读存储介质 | |
CN112463159A (zh) | 编译方法、装置、电子设备和存储介质 | |
CN116560984A (zh) | 一种基于调用依赖图的测试用例聚类分组方法 | |
CN117234514B (zh) | 将标量化程序转换为向量化程序的方法、系统及相关设备 | |
Sand et al. | zipHMMlib: a highly optimised HMM library exploiting repetitions in the input to speed up the forward algorithm | |
CN114117896B (zh) | 面向超长simd管线的二值规约优化实现方法及系统 | |
Freire et al. | Enhancing the sparse matrix storage using reordering techniques | |
Pasa et al. | Compact graph neural network models for node classification | |
Couto et al. | Strategies for generating tree spanners: Algorithms, heuristics and optimal graph classes | |
CN116090538A (zh) | 一种模型权重获取方法以及相关系统 | |
Corrêa et al. | A bit-parallel russian dolls search for a maximum cardinality clique in a graph | |
US7805413B2 (en) | Array compression method | |
Andronikos et al. | An efficient scheduling of uniform dependence loops | |
Bylina et al. | Data structures for Markov chain transition matrices on Intel Xeon Phi | |
CN117827283A (zh) | 指令生成方法、装置及电子设备 | |
CN118113720B (zh) | 适配异构计算架构的查询回答方法及计算机设备 | |
Nebel et al. | Pivot sampling in dual-pivot quicksort | |
Devaney et al. | A Genetic Programming Ecosystem. |
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 |