[发明专利]循环向量化方法和设备有效
申请号: | 201280075455.9 | 申请日: | 2012-09-28 |
公开(公告)号: | CN104603755B | 公开(公告)日: | 2017-11-14 |
发明(设计)人: | C.J.休斯;M.普罗特尼科夫;A.纳赖金 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 中国专利代理(香港)有限公司72001 | 代理人: | 徐予红,陈岚 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 循环 量化 方法 设备 | ||
技术领域
本公开一般涉及计算平台,并且更具体地说,涉及循环向量化方法和设备。
背景技术
一些计算平台试图通过根据向量化技术转变代码来改进机器级代码执行。例如,对应于迭代循环的原始代码可被转换成向量化代码,以更好地利用计算平台的资源。
附图说明
图1是表示示例循环的伪代码。
图2是表示用于向量化图1示例的已知技术的伪代码。
图3是按照此公开的教导构造的示例循环向量化器的框图。
图4-6图示了与图3的示例循环向量化器关联的示例数据寄存器和示例阵列的示例内容。
图7是表示可执行以实现图3的示例循环向量化器的示例机器可读指令的流程图。
图8是表示由图3的示例循环向量化器生成的图1的循环的示例向量化的伪代码。
图9是按照此公开的教导构造的示例循环向量化器的框图。
图10是表示可执行以实现图9的示例循环向量化器的示例机器可读指令的流程图。
图11是表示由图9的示例循环向量化器生成的图1的循环的示例向量化的伪代码。
图12是能够执行图7的示例机器可读指令以实现图3的示例循环向量化器和/或图10的示例机器可读指令以实现图9的示例循环向量化器的示例处理系统的框图。
具体实施方式
要由处理器编译和执行的原始代码可包含一个或多个迭代循环。在此类实例中,数据被加载到一个或多个寄存器中,一个或多个操作在数据上执行,并且作为结果的信息存储在存储器中。计算平台可经由循环向量化改进原始代码的机器级执行。具体地说,通过对循环进行向量化使得同时执行循环的多个迭代可基本上减少循环的执行时间。循环迭代基本上同时执行被称为并行执行。循环向量化包含将循环的多个迭代的数据加载到单个向量中(例如经由向量寄存器实现的)并在整个向量上执行循环操作。作为包含循环的多个迭代数据的向量的结果,在整个向量上执行循环操作导致循环的多个迭代并行执行。
循环向量化有时在具有比要经由寄存器执行的原始代码(例如循环)所使用的数据类型大(例如根据系统的具体架构或硬件配置)的寄存器的系统中实现。例如,在具有128位寄存器的硬件上执行的循环可使用32位整数写或设计。为了向量化此类循环,与循环的第一迭代关联的数据被放入到寄存器中第一寄存器的较低位中,并且与循环的后面第二迭代(例如随后在循环定义中定义的一连串迭代中)关联的数据被加载到第一寄存器的较高位。在此类实例中,可同时执行的循环迭代的数量等于寄存器大小(例如硬件)与要加载的并且在循环内操作的数据类型的大小(例如软件)之比。例如,如果循环的原始代码将32位整数加载到变量中,并且循环要在具有128位寄存器的硬件上执行,则要在循环的第一迭代期间加载的整数被加载到128位整数的第一32位中。进一步说,要在循环的第二迭代期间加载的整数被加载到寄存器的第二32位中。进一步说,要在第三迭代期间加载的整数被加载到寄存器的第三32位中。进一步说,要在循环的第四迭代期间加载的整数被加载到寄存器的第四32位中。其中与循环的多个迭代关联的数据加载到单个寄存器中,在整个寄存器上执行循环的对应计算或操作。来自4个32位寄存器片段的结果被存储在适当存储器位置中。从而,在此类实例中,循环的执行时间减少了大致4倍(例如未将由向量化过程引起的开销考虑进去)。
在一些循环中,在循环的每个迭代开始时评估条件,并且仅在该条件被满足的情况下才执行循环的剩余命令。图1示出了此类循环100的示例伪代码。图1的示例循环100包含循环定义或声明102以及在循环100的迭代开始时要评估的条件104。在循环100被初始化之后,评估条件104。为了图示和简洁的目的,当要检查的条件评估引起要执行的代码中的随后计算的值时,那个值在本文被称为“真”。进一步说,为了图示和简洁的目的,当要检查的条件评估引起未执行的代码中的随后计算的值时,那个值在本文被称为“假”。从而,如果条件104对于具体迭代评估为真,则执行数据加载操作106,使用在加载操作106期间加载的数据执行计算操作108,并且计算操作108的结果经由写操作110存储。备选地,如果条件104对于具体迭代评估为假,则对于那个迭代不执行循环100的操作106、108和110,并且循环100跳到随后迭代(如果仍然存在任何迭代的话)。换句话说,当条件104评估为假时,操作106、108和110被绕过。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280075455.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于聚烯烃膜的增粘剂组合物
- 下一篇:基板处理方法