首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到16条相似文献,搜索用时 46 毫秒
1.
陈向  沈立  李家文 《计算机科学》2011,38(5):290-294
SIMID指令能够高效开发数据级并行,因此当前绝大多数通用微处理器都支持这种机制。但是应用程序和算法的一些固有特性,如访存地址不对齐、非连续存储访问以及控制流等,使得编译器或程序员必须借助置换指令重新组合向量的各个元素,才能得到符合SIMD指令要求的操作数。这些冗余的置换指令已成为当前挖掘数据级并行的主要性能瓶颈。提出一种自动的数据置换指令生成和优化算法,以有效地减少置换指令带来的性能损失。该算法基于提出的一种新中间表示形式,其中包含有足够的操作数地址信息,因此可以将置换指令的生成转换为数据流图中冲突边的识别问题,而将置换指令的优化转化为用最少的置换指令来删除所有冲突边的问题。面向一组典型多媒体程序进行测试的结果表明,提出的算法可平均获得7%的性能加速。  相似文献   

2.
中间表示氓是构建编译和高级综合工具的基础。本文设计了一种面向可重构硬件的编译中间表示方法。这一工作是我们设计的高级综合工具的一部分。实验结果表明,应用这 一中间表示,可以将C源程序高效地映射到目标可重构硬件上。  相似文献   

3.
结构体广泛应用在科学计算等应用程序中,向量化结构体数组存在的非连续和非对齐访存会严重影响程序的向量化效果。为减少结构体数组SIMD向量化过程中的非连续和非对齐数据访问,提出了基于域访问亲和度与域数据类型相结合的结构体拆分模型,以消除域存储间的内存“间隙”;同时利用结构体数组到二维数组的地址映射方式来满足结构体数组向量化时的访存连续和对齐要求,以降低Cache的失效率,从而提升应用程序性能。在自动向量化系统SW-VEC上,选取gcc-vec、spec2000和spec2006标准测试集中部分相关的测试用例,测试结果表明:与相应的串行程序相比, 采用该方法后,测试用例程序性能加速比提高了8%以上。  相似文献   

4.
底层虚拟机(LLVM)是一个广泛使用的编译框架,其中间表示(IR)中包含有丰富的程序分析信息,众多以LLVM为平台的相关工作均以IR为基础开展。数据依赖关系在错误检测、定位及程序调试等领域有着重要应用,基于IR的数据依赖关系计算多采用串行迭代方式,但在应对较大规模IR文件时可扩展性不够理想。对此进行了数据依赖关系计算中指令读写的可并行性挖掘,结合图形处理器并行计算优势,提出一种基于LLVM IR的数据依赖关系并行计算方法 DRPC。以IR为输入,采用CPU-GPU双端协同方式实现程序数据依赖关系的高效计算。实验结果表明,针对基准程序集SPEC,DRPC分别在直接及传递数据依赖关系计算上最高获得了3. 48x和4. 91x的加速比。  相似文献   

5.
SIMD扩展部件是近年来集成到通用处理器中的加速部件,旨在发掘多媒体和科学计算等程序的数据级并行.控制依赖给发掘程序中的数据级并行带来了阻碍,当前不论基于loop-based还是SLP的控制流向量化方法都需要if转换,而没有考虑循环内蕴含的向量并行度,导致生成的向量代码效率较低.此外不精确的代价模型指导控制流向量化,同样导致生成的向量代码效率较低.为此提出了改进的控制流SIMD向量化方法,首先提出了含有控制依赖的循环分布算法,分离循环的可向量化部分和不可向量化部分,同时考虑分布时数据的局部性;其次提出了一种直接向量化控制流的方法,该方法考虑了基本块间的向量重用;最后利用精确的代价模型指导超字选择指令和超字条件分支指令的生成.实验结果表明,与现有的控制流向量化方法相比,本文提出的改进方法生成的向量代码性能提高24%.  相似文献   

6.
7.
中间表示对编译器的性能、效率和可扩展性都起着决定性作用.Open64编译器采用一种树型结构的中间表示WHIRL,能表示各种高级控制流结构,但不能显式的提供数据流信息.本文基于WHIRL对SSA(Static Single Assignment)进行扩展,提出了一个新的优化结构WHIRL SSA.WHIRL SSA通过将SSA信息标注在WHIRL节点上,显式的为数据流分析提供使用-定义(UD)信息.相比于传统的数据流信息构建方法,WHIRL SSA提供了更精确、有效的数据流信息.本文讨论了WHIRL SSA的设计与实现和基于WHIRL SSA的优化.  相似文献   

8.
SIMD自动向量化编译优化概述   总被引:1,自引:0,他引:1       下载免费PDF全文
高伟  赵荣彩  韩林  庞建民  丁锐 《软件学报》2015,26(6):1265-1284
SIMD扩展部件是集成到通用处理器中的加速部件,旨在发掘多媒体程序和科学计算程序的数据级并行.首先介绍SIMD扩展部件的背景和研究现状,然后从发掘方法、数据布局、多平台向量化这3个角度介绍了SIMD自动向量化的研究问题、困难和最新研究成果,最后展望了SIMD编译优化未来的研究方向.  相似文献   

9.
为准确刻画程序的控制流和正确地提取程序控制结构,给出可执行代码控制流分析的整体架构和算法,阐述可执行代码反汇编结果的抽象表示、程序控制流构造等技术。反汇编结果抽象表示采用简化汇编语言中间表示(SAIR)以保证分析的简洁性和严密性。基于SAIR给出程序控制流构造函数,设计程序控制流构造算法并给出分析实例。  相似文献   

10.
一种基于中间库的数据库间数据转换技术   总被引:5,自引:0,他引:5       下载免费PDF全文
1.引言近年来,以ORACLE石YBASE为代表的各大数据库公司都纷纷行动起来,把连接其他公司的DBMS产品,实现异构环境下各数据库间的互操作做为提高其产品性能,增加产品竞争力的一种重要手段,并取得了重大成果。如ORACLE通过一些网络协议的支持,可与DBZ、IMS‘RMS,Rdb‘SQL/400等DBMS连接。SYBASE的API可以连接Rd匕ORACLE\Ingres及DBZ,实现了异构环境下建立具有较高性能的分布式数据库系统。然而,由于我国近几年流行的数据库主要是ORACLE,In-formic、dBASE皿、FOXBAE及Foallro等。ORACLE与SYBAS…  相似文献   

11.
内存错误漏洞仍是当前网络攻击中造成危害最严重的漏洞之一.内存错误漏洞的产生往往与对内存拷贝类函数的误用有关.目前针对内存拷贝类函数的识别主要借助于符号表和代码特征模式匹配,具有较高的误报率和漏报率,并且适用性较差.提出了一种内存拷贝类函数识别技术CPYFinder(copy function finder).该技术在内存拷贝类函数控制流特征的基础上,将二进制代码转换为中间语言表示VEX IR(intermediate representation)进行数据流的构建和分析,根据内存拷贝类函数在数据流上的特征进行识别.该技术能够在较低的运行时间下对多种指令集架构(x86,ARM,MIPS,PowerPC)的二进制程序中的内存拷贝类函数进行识别.实验结果表明,相比于最新的工作BootStomp和SaTC,CPYFinder在对内存拷贝类函数识别上具有更好的表现,在精准率和召回率上得到更好的平衡,并且运行时间与SaTC几乎相等,仅相当于BootStomp耗时的19%.此外,CPYFinder在漏洞函数识别上也具有更好的表现.  相似文献   

12.
草图信息的存储与传输是草图系统在信息共享乃至网络协同方面需要解决的问题,其核心在于草图信息的一致表示。本文从信息表示和信息传榆两个维度,建立了草图信息表示模型框架。该框架采用域模型思想,包括域属性、逻辑模型、转换模型、对象模型和控制模型,它们实现了草图信息的一致表示、统一管理和信息存储、传输。最后,从静态和动态两方面,对草图信息的建模过程进行了详细描述,给出了草图信息表示的 XML 实现策略,并对信息传输技术进行了分析。  相似文献   

13.
分析了目前煤矿安全生产远程综合监控系统在数据传输过程中存在的问题,提出了一种基于Zigzag置换的数据传输方法。这种传输方法的实质是数据在传输过程中采用若干次置换,每次置换可以采用不同或相同的方式,通过对数据进行多次置换得到加密文件。文章分析了算法的时间复杂度,实验表明该方法具有时间复杂度低,算法简单等特点。该方法可以有效地解决煤矿安全生产远程综合监控系统中对生产数据传输的安全性和实时性要求。  相似文献   

14.
    
Multidimensional data are exploited in many application areas such as scientific data analysis, business intelligence, and geographic information systems. One of the most frequent operations applied to such multidimensional data is the selection of a subspace of the given multidimensional space, which involves predicate evaluation on multiple dimensions. Existing main-memory data layouts optimized for evaluating predicates on the columnar data can be used to accelerate the subspace extraction by sequentially performing filter scans on each dimension one at a time. However, optimization opportunities emerge if we can consider all predicates together. In this paper, we propose DimensionSlice, a new main-memory data layout optimized for evaluating predicates on multiple dimensions. More specifically, the dimension values are sliced into portions and the portions with the same order of each dimension are arranged together. Multiple predicates are simultaneously evaluated with the sliced dimension values during the scan. In addition, by storing the different portions separately, unnecessary loads and computations of lower portions can be eliminated if the evaluation results are assured after examining the upper portions. For further acceleration of scans, the DimensionSlice layout is designed to easily leverage the SIMD capabilities that most mainstream processors are equipped with. Through experiments, we demonstrate the performance gains of the proposed method over the columnar main-memory layout that evaluates the partial predicates one dimension at a time. We also show that the proposed method outperforms the state-of-the-art multidimensional index structure when the selectivity is over a very low threshold.  相似文献   

15.
一种支持SIMD指令的流水化可拆分乘加器结构   总被引:1,自引:0,他引:1  
李东晓 《计算机工程》2006,32(7):264-266
乘加器是媒体数字信号处理器的关键运算部件。该文结合32位数字信号处理器芯片MD32开发(“863”计划)实践,提出了一种流水化可拆分的乘加器硬件实现结构,通过对乘法操作的流水处理实现了200MHz工作频率下的单周期吞吐量指标,通过构造可拆分的数据通道实现了对SIMD乘法指令的支持,支持4个通道16位媒体数据的并行乘法,大大提升了处理器的媒体处理性能。文中对所提出的乘加器体系结构,给出了理论依据和实验结果,通过MD32的流片实现得到了物理验证。  相似文献   

16.
随着程序的规模的扩大和复杂度的提高,通过直接分析源码进行程序切片,变得十分困难。在现有的利用编译优化技术来优化程序切片的方法中,存在无法有效利用程序的编译时信息和编译器的优化技术,以及对语言的支持不完善的问题。为此,分析了GCC编译器在编译时的中间表示,首次提出了基于GCC关键变量数据流分析算法的程序切片技术,以程序的GIMPLE中间表示为基础,以程序基本块为单位,通过迭代求解数据流方程,分析程序基本块内和不同基本块间的关键变量数据流信息。该程序切片技术可以获取源程序中仅与预设目标函数相关的关键变量和关键语句,缩减程序规模。最后通过实验,证明了该算法的可行性。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号