一种面向数据分析的矢量指令和标量指令混合执行系统技术方案

技术编号:37988170 阅读:32 留言:0更新日期:2023-06-30 10:02
本发明专利技术公开了一种面向数据分析的矢量和标量指令混合执行系统,该系统包括:预处理模块、候选节点生成器、代码转换生成器和优化器;预处理模块准备其他模块的依赖文件;候选节点生成器利用从预处理模块接收的文件生成一个接近最优结果的初始候选节点,并将其发送给代码转换生成器;代码转换生成器按照得到的初始候选节点和候选节点生成源代码文件并发送给优化器;优化器编译、运行源代码文件,通过其执行时间将其对应的候选节点分为候选节点和终止节点,并将候选节点发送给代码转换生成器。经过多轮次的迭代得到最优实现,并将其物化。本发明专利技术提高了处理器利用率,降低了指令执行间隔时间,从而提高了数据分析系统的吞吐量,降低了响应时间。低了响应时间。低了响应时间。

【技术实现步骤摘要】
一种面向数据分析的矢量指令和标量指令混合执行系统


[0001]本专利技术属于软件开发
,尤其涉及一种面向数据分析的矢量指令和标量指令混合执行系统。

技术介绍

[0002]随着信息技术的发展,产生的数据量也越来越大,处理这些数据所需存储与计算能力也越来越高。为了提高数据分析系统的数据吞吐量和降低响应延迟,数据分析系统能够将数据驻留在内存中。这是因为随着内存变得越来越便宜,其容量已经增长到TB级别,这使得数据分析系统能够驻留在内存中。内存数据分析系统利用这一趋势来满足不断增长的性能需求。通过消除传统数据分析系统中昂贵的磁盘I/O,磁盘访问不再是内存数据分析系统的瓶颈。相反,计算能力已经成为影响内存数据分析系统性能的主要因素。矢量指令是目前主流处理器中普遍存在的指令集,其通过数据并行的方式可以实现更高的计算性能。此外,它可以用来减少分支失误,降低收集和分发数据的开销。无论是工业界还是学术界,都对矢量指令在数据分析系统中的应用进行了广泛的研究,包括使用矢量指令来加速过滤、哈希链接、数据分组、数据切分等算子。使用矢量指令可以实现更高的计算效率,可以有效提高数据分析系统的数据分析效率,提高整个数据分析的吞吐量降低查询的等待时间。
[0003]在数据分析系统中,处理的数据主要是整数而不是浮点数,这是因为当精度足以满足应用程序时,用户经常将浮点数转换为整数。同时,对于主流处理器来说,矢量与浮点单元共享算术逻辑单元(ALU,Arithmetic Logical Unit)和寄存器,但它有独立的整数标量算术逻辑单元和寄存器。然而,目前主流的内存数据分析系统中的单个算子通常采用纯标量或者纯矢量的实现方式。需要指出的是,现有的解决方案没有最大限度地利用处理器资源,因为它们并没有同时利用矢量和标量单元,而是基本只利用它们中的一种。这就造成一种现象,那就是当利用矢量指令实现的矢量算子工作时,标量单元基本都处于闲置状态,只是用来实现程序执行流程的控制,而不参与计算。而当利用标量指令实现的标量算子工作时,矢量单元都处于闲置状态,这对处理器中的计算资源造成了极大地浪费。
[0004]直观的解决办法就是直接将混合执行应用于数据分析,但是直接在数据分析系统中应用矢量和标量指令的混合执行存在一些挑战。不同的微架构包含不同数量的解码器和调度器、微操作发射端口、执行单元和各种调度策略。即使是基于相同微架构的不同处理器也可能有不同数量的执行单元。例如,Silver系列处理器只有一个AVX

512执行单元,但Gold或更高规格的处理器有两个AVX

512执行单元,尽管它们都是基于Skylake。因此,矢量和标量语句的固定组合无法在基于不同微架构的不同处理器上实现最佳性能。此外,数据分析系统包含多种多样的算子,这些算子使用不同的指令实现,并具有不同的特征。因此,不同算子的最佳实现可能包含不相等数量的矢量和标量语句,甚至在基于相同微架构的硬件平台上也是如此。
[0005]综上所述,计算能力是当前数据分析系统性能的主要性能瓶颈。现有的解决方案没有最大限度的利用现代矢量化处理器的计算资源,只是单一地或是仅使用矢量化计算单
元,或是仅适用标量计算单元,而没有协同利用这些计算单元,来获得更高的计算能力,因此数据分析系统需要进一步地优化。

技术实现思路

[0006]本专利技术结合处理器硬件特性与数据处理系统特性,实现了一个高效、易用、面向数据分析的矢量指令和标量指令混合执行系统,目的是解决现有技术路线对处理器计算资源利用率较低的问题,进而提高现有面向数据分析应用的吞吐量并降低其响应时间。
[0007]为解决上述技术问题,实现本专利技术的具体技术方案是:
[0008]一种面向数据分析的矢量指令和标量指令混合执行系统,包括:预处理模块、候选节点生成器、代码转换生成器和优化器;
[0009]预处理模块:准备所需的依赖文件,包括处理器信息、指令信息、算子模板、标量指令表以及矢量指令表;所述处理器信息是处理器标量流水线数量和矢量流水线数量;指令信息是标量指令和矢量指令的时延和吞吐量;算子模板是利用混合描述符实现的算子源代码文件,混合描述符是一套自定义抽象指令集,标量指令表是描述混合描述符与可执行标量指令对应关系的文件,矢量指令表是描述混合描述符与可执行矢量指令对应关系的文件;
[0010]所述候选节点生成器:连接预处理模块与代码转换生成器,利用预处理模块提供的依赖文件,得到一个接近最优结果的初始候选节点;将生成的初始候选节点发送给代码转换生成器;
[0011]所述最优结果是同一算子模板对应的多种不同实现中性能最优的实现;其中,所述的多种不同实现是按照算子模板生成的不同源代码文件包含不同混合比例的矢量指令与标量指令,且代码排列方式不同;所述性能最优的实现是指由当前源代码文件编译得到的可执行文件的执行时间最短;
[0012]所述初始候选节点包含三个参数:v、s和p,其中v表示矢量流水线的数量,s表示标量流水线的数量,p表示代码块的重复次数,代码块是v条矢量指令和s条标量指令组成的处理不同数据但功能相同的混合指令组合;
[0013]所述代码转换生成器:连接预处理模块与候选节点生成器,在接收到初始候选节点之后,根据初始候选节点信息生成另外七个候选节点;设初始候选节点是vsp,那么生成的七个候选节点为(v+1)sp,v(s+1)p,vs(p+1),(v

1)sp,v(s

1)p和vs(p

1);
[0014]七个候选节点生成之后,依照候选节点信息、标量指令表和矢量指令表将算子模板中的混合描述符转换成对应的标量指令和矢量指令,生成对应的源代码文件及其对应的配置信息,所生成的源代码文件为待筛选源代码文件;配置信息是待筛选源代码文件对应的候选节点的具体信息;所述源代码文件为矢量指令和标量指令混合的形式;
[0015]所述优化器:连接代码转换生成器,包含三个子模块,分别为编译子模块、执行子模块和分类器;编译子模块连接代码转换生成器与执行子模块,执行子模块连接分类器,分类器连接代码转换生成器,构成循环;
[0016]优化器通过接收代码转换生成器生成的待筛选源代码文件与其对应的配置信息,将接收到的源代码文件编译为可执行文件,然后执行可执行文件并记录其执行时间,再根据执行时间将源代码文件对应的候选节点进行分类,分为候选节点和终止节点;
[0017]将分类为候选节点的节点序列发送给代码转换生成器;并将终止节点添加到终止节点队列,终止队列中的节点不会进行其他的操作;
[0018]代码转换生成器接收到优化器发送的候选节点序列,会根据每一个输入的候选节点生成对应其他七个候选节点;设输入的候选节点是vsp,那么代码生成器生成的七个候选节点为(v+1)sp,v(s+1)p,vs(p+1),(v

1)sp,v(s

1)p,vs(p

1);
[0019]之后本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向数据分析的矢量指令和标量指令混合执行系统,其特征在于,包括:预处理模块、候选节点生成器、代码转换生成器和优化器;预处理模块:准备所需的依赖文件,包括处理器信息、指令信息、算子模板、标量指令表以及矢量指令表;所述处理器信息是处理器标量流水线数量和矢量流水线数量;指令信息是标量指令和矢量指令的时延和吞吐量;算子模板是利用混合描述符实现的算子源代码文件,混合描述符是一套自定义抽象指令集,标量指令表是描述混合描述符与可执行标量指令对应关系的文件,矢量指令表是描述混合描述符与可执行矢量指令对应关系的文件;所述候选节点生成器:连接预处理模块与代码转换生成器,利用预处理模块提供的依赖文件,得到一个接近最优结果的初始候选节点;将生成的初始候选节点发送给代码转换生成器;所述最优结果是同一算子模板对应的多种不同实现中性能最优的实现;其中,所述的多种不同实现是按照算子模板生成的不同源代码文件包含不同混合比例的矢量指令与标量指令,且代码排列方式不同;所述性能最优的实现是指由当前源代码文件编译得到的可执行文件的执行时间最短;所述初始候选节点包含三个参数:v、s和p,其中v表示矢量流水线的数量,s表示标量流水线的数量,p表示代码块的重复次数,代码块是v条矢量指令和s条标量指令组成的处理不同数据但功能相同的混合指令组合;所述代码转换生成器:连接预处理模块与候选节点生成器,在接收到初始候选节点之后,根据初始候选节点信息生成另外七个候选节点;设初始候选节点是vsp,那么生成的七个候选节点为(v+1)sp,v(s+1)p,vs(p+1),(v

1)sp,v(s

1)p和vs(p

1) ;七个候选节点生成之后,依照候选节点信息、标量指令表和矢量指令表将算子模板中的混合描述符转换成对应的标量指令和矢量指令,生成对应的源代码文件及其对应的配置信息,所生成的源代码文件为待筛选源代码文件;配置信息是待筛选源代码文件对应的候选节点的具体信息;所述源代码文件为矢量指令和标量指令混合的形式;所述优化器:连接代码转换生成器,包含三个子模块,分别为编译子模块、执行子模块和分类器;编译子模块连接代码转换生成器与执行子模块,执行子模块连接分类器,分类器连接代码转换生成器,构成循环;优化器通过接收代码转换生成器生成的待筛选源代码文件与其对应的配置信息,将接收到的源代码文件编译为可执行文件,然...

【专利技术属性】
技术研发人员:孙泽文翁楚良
申请(专利权)人:华东师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1