共查询到20条相似文献,搜索用时 62 毫秒
1.
支持多重循环软件流水的循环控制机制 总被引:1,自引:0,他引:1
ILSP-内外层交替执行的多重循环的软件流水算法是对多重循环进行优化的有效方法。为了保证ILSP算法具有良好的时间效益和空间效益,就必须有一套支持这个算法的行之有效的多重循环软件流水机制。文中将比较详细地介绍一套控制机制。它与多重循环优化编译器相配合,可以有效地支持多重循环的软件流水,并且可以保证ILSP算法具有较高的加速比和较低的空间代价。 相似文献
2.
RISC多发射结构中循环优化的软件流水算法 总被引:2,自引:0,他引:2
软件流水技术是一种很有效的循环优化方法。本文综述了软件流水的基本思想和算法分类;详细描述了三个典型的算法——LAM的算法,完善流水法和增强流水调度法;从时间优化效益,空间效益和计算复杂度等方面对它们作了分析比较;最后,对软件流水技术作了评价。 相似文献
3.
4.
软件流水技术是对微程序及程序中循环进行优化的有效手段,现已从传统的对只含基本块的循环进行优化的技术发展到全局软件流水技术,但现有的全局软件流水方法的三项主要技术指标即优化的时间效益及空间效益和计算复杂性不能令人满意。为此本文提出一种新的全局软件流水技术GURPR,介绍其基本思想及主要算法,通过分析及实例可表明GURPR法的全面性能优于其它全局软件流水方法。 相似文献
5.
软件流水是一种循环程序的优化技术,它可以有效地提高指令级并行性。由于处理机的实现方法各不相同,在一种处理机上经过软件流水优化后的循环代码很难在其它处理机中移植和使用。反软件流水是软件流水的逆向操作,它可以消除循环代码中的软件流水特性,以便于代码在不同平台上的移植。基于IA-64体系结构,分析了软件流水的代码特点,提出了反流水算法,用于将ICC编译器编译后的可执行二进制代码消除软件流水特性,转换成语义等价的C代码。 相似文献
6.
软件流水技术是对程序及微程序中的循环进行优化的一种有效方法,可对基本块构成的循环体进行软件流水的LURPR算法已取得令人满意的效果。本文将在LURPR法的基础上,把软件流水技术扩展到任意结构的循环体,并给出相应的GURPR算法,GURPR算法可对任意的含非正常入口、条件出口、支路、循环嵌套及子程序调用的循环体进行软件流水。 相似文献
7.
软件流水是编译后端优化中针对循环的调度技术,在软件流水优化过程中,依赖环是影响软件流水优化的重要因素。针对循环体中依赖环导致软件流水失败的问题,通过对循环中的依赖环进行分析处理,基于传统的模调度框架,提出了改进的软件流水优化算法,对于造成依赖环的寄存器引入多个分量,实现了对含有归约变量循环的流水。通过典型的算法测试,实验结果表明,该框架能够使得更多类型的循环流水成功,对于循环核心性能提升至少58%。 相似文献
8.
软件流水是一种重要的指令调度技术,它通过重叠地执行不同的循环体来提高指令级并行性(instruction level parallelism,简称ILP).模调度是一类被广泛采用的软件流水调度算法.软件流水并非一种无损的优化方法,它具有一定的开销,比如延长了编译时间、增加了寄存器压力等.而且,受到体系结构、调度算法以及程序特性的限制,进行软件流水并不一定能达到理想的加速比,有时反而会引起性能下降.提出了一种面向程序特性的软件流水开销模型,对此模型下的软件流水开销进行了量化分析,并提出了一种基于相关性分析的 相似文献
9.
本文首先提出一种能够充分开发循环程序指令级细粒度并行性的编译技术——两级软件流水,该技术基于URPR软件流水算法,把资源分配和代码优化有机地结合起来;然后叙述采用两级软件流水的VLIW优化编译器;最后给出一个FFT内层循环编译过程的实例及初步实验结果. 相似文献
10.
软件流水是一种通过发掘循环的不同迭代的不同部分的指令间并行性,使这些指令并行执行,从而提高循环的执行效率的优化技术.但该技术在提高指令并行性的同时也增加了寄存器压力,而寄存器溢出技术正是解决寄存器压力的有效方法.摆动模调度是一种在进行近似最优化调度的同时尽力减小寄存器压力的软件流水算法,该算法已经作为一个新的优化遍出现在GCC的最新版本中.本文以GCC为平台,论述了摆动模调度中的寄存器溢出技术及其工程实现,从而使摆动模调度算法进一步增强了对寄存器压力的处理能力. 相似文献
11.
循环是程序中的热代码,而软件流水是一种细粒度的循环优化方法,它通过将循环中不同迭代之间的操作并行执行,最大程度地开发指令级并行。模调度是一种效果很好的软件流水算法。论文以gcc3.3为基础,提出了模调度与DFA结合的软件流水方法,及其工程实现,实验数据表明,优化效果明显。 相似文献
12.
高层次综合是近年来电子自动化(EDA)领域中快速发展的一种技术,时序重构是高层次综合后端一种重要优化方法,文中介绍了基于地序重构时的时序调整软件HTC的设计与实现,提出了时序调整软件HTC中的主要优化算法,此算法与以前严格优化的计算时间复杂性较高的时序重构算法比较,是一种计算时间复杂性为线性的近似优化算法,最后给出了时序调整软件HTC的电路实测测试结果,并与商用Synopsys公司的BRT(beh 相似文献
13.
针对C6000系列定点DSP下KLT特征点跟踪算法的快速实现问题,通过结合DSP体系结构特点以及软件流水技术,提出了一种该类型DSP下的算法优化实现方案.基于算法流程的模块化分析,完成了该算法的定点化设计与实现工作;针对算法中计算密集型模块,提出了具体的改善软件流水,减少存储器访问,任务级并行设计等优化实现方法.在DSP软仿真平台CCS下进行实验测试,该优化实现方案下的运行效率和资源利用率均有较大的提升,且所使用的算法优化方法适用于所有C6000系列DSP. 相似文献
14.
15.
分解式软件流水DESP是我们最近提出来的一种对无分支循环进行有效调度的新方法,它通过把循环地分解为两个子问题,把无分支调度问题转化为无环路图的调度,从而运用图论中一些经典的复杂度为多项式的方法来解决。在本中,我们把DESP方法扩展成可以优化带条件分支的循环,称为全局分解式软件流水方法-GDESP。 相似文献
16.
软件流水中隐藏存储延迟的方法 总被引:5,自引:2,他引:3
软件流水是一种重要的指令调度技术,它通过同时执行来自不同循环体的指令来加快循环的执行速度.随着处理机运行速度的逐渐提高,存储访问延迟成为性能提高的瓶颈.为了减轻存储系统影响,软件流水结合了一些存储优化技术,通过隐藏存储延迟来提高性能.提出了一种延迟可预测的模调度算法(foresighted latencymodulo scheduling,简称FLMS),它根据循环的特点来确定load指令延迟.实验结果表明,FLMS算法减少了阻塞时间,提高了程序性能. 相似文献
17.
18.
3种提高软件流水有效性的算法:比较和结合 总被引:1,自引:0,他引:1
软件流水是开发循环程序指令级并行性的技术,它通过并行执行连续的多个循环体来加快循环的执行速度.在软件流水中,循环体的重叠增加了寄存器需求,导致寄存器压力增大,当目标处理机所提供的寄存器不足时,软件流水可能失败.在Itanium处理机上评估了NAS和SPEC2000基准程序中的软件流水循环的寄存器需求,发现静态寄存器不足是造成软件流水失败的主要原因,提出了3种增加软件流水个数、提高软件流水有效性的算法:限制循环展开因子的算法(register sensitive unrolling,简称RSU)、堆栈寄存器分配算法(stacked registerallocation,简称SRA)以及变量类型转换的算法(variabletype conversion,简称VTC).RSU根据静态寄存器需求确定一个合理的展开因子,增加了软件流水的成功率;SRA和VTC分别使用空闲的堆栈寄存器和旋转寄存器来充当静态寄存器,提高了寄存器的利用率.在面向Itanium处理器的开放源码编译器ORC(open research compiler)上实现了这3种算法,通过NAS程序的测试比较了这3种算法的有效性,同时对它们的结合应用进行了研究和实验. 相似文献
19.
提出了一种求解置换流水车间调度的蚁群优化算法。该算法的要点是结合了NEH启发式算法和蚁群优化方法。理论论证和对置换流水车间调度问题的基准测试表明了该算法的有效性。 相似文献
20.
IA-64中软件流水的寄存器需求研究 总被引:1,自引:0,他引:1
软件流水是开发循环程序指令级并行性的重要方法之一,IA-64是支持软件流水的EPIC体系结构,通过对NAS Benchmarks中可软件流水循环所需的寄存器进行量化分析,提出了一种限制循环展开因子的启发式算法,有效地解决了因可用寄存器不足而导致软件流水失败的问题,并提高了应用程序的执行速度。 相似文献