高性能计算机软件循环流水,可重构编译中循环流水优化技术研究
可重构编译中循环流水优化技术研究
【摘要】:随着半导体技术的发展,基于时间-空间多维计算方式的可重构计算体系结构,突破了冯.诺依曼结构的局限性,兼具专用集成电路芯片ASIC高效性与通用处理器灵活性的可重构计算在高性能计算、数字信号处理、网络信息安全等重要领域中被广泛应用,在商业上和技术上存在的潜在价值逐渐被人们重视,成为另一种主流计算方式。对于通用计算领域来说,基于GPP+FPGA异构架构的可重构计算架构在能耗、存储、性能等多方面均优于传统架构的通用处理器,这使得可重构计算成为未来新型计算的一个重要研究方向。由于面向通用计算领域的可重构计算相关研究均处于起步阶段,虽然已经取得了很多研究成果,但仍存在很多问题亟需深入研究。影响可重构计算系统实际推广效果的一个重要因素是相关软件生态系统不成熟,同时不受半导体制造工艺和相关硬件技术的限制,使得面向可重构计算系统的可重构编译器相关技术成为目前世界范围内的研究重点与热点。通过对可重构计算系统实现通用计算领域中应用程序硬件加速的过程进行分析,改善可重构编译器实现应用程序中循环结构到可重构计算系统平台并行流水硬件加速单元的自动映射技术成为当前该领域关注的课题。在前人工作的基础上,本文主要针对循环程序中的运算单元、控制单元、存储单元三个主要功能模块的自动映射及优化技术展开深入研究,具体研究内容如下:(1)在现有可重构编译器实现循环程序到流水执行的运算单元自动映射过程中,往往采用流水线直接划分方法,没有考虑基本运算指令在FPGA上执行时真实的硬件延时特性,导致流水线划分结果不优。针对这种情况,本文设计了一种基于硬件延时特性的流水线自动划分算法。结合循环程序在FPGA上运行时基本运算指令的硬件延时特性,建立基本指令硬件延时特征库,并以基本运算指令延时为权值,进行流水线合并和优化,实现流水线的自动划分。实验结果表明,该算法能够有效降低流水线划分段数,从而减少了因流水线划分所导致的硬件资源开销,同时降低了运算单元单次迭代执行时的时钟周期个数。(2)在现有可重构编译器中,循环程序流水执行时迭代间启动间距均采用制导语句指令方式控制,但是该方式只能生成固定的迭代间启动间距信息,不能充分提高循环程序流水执行性能,同时限制了可重构编译器的自动化水平。针对该问题,本文设计了一种循环流水迭代间启动间距自动分析及优化方法。通过建立循环流水迭代间启动间距信息模型,采用循环流水迭代间非固定启动间距控制策略,完成循环流水迭代间启动间距的自动分析,同时采用流水线调度技术对迭代间启动间距进行优化。实验结果表明,本文所设计的循环流水迭代间非固定启动间距控制策略,能够有效减少循环程序流水执行时迭代间等待延时时间,同时采用自动分析算法能够有效提高可重构编译器的自动化水平。(3)在可重构计算系统中目前已经存在很多并行存储结构的研究成果,为了提高数据访问的并行性和重用性,往往采用空间换时间的策略,但是,在资源开销与性能方面均有提高的空间。针对这种情况,本文设计了一种参数化并行存储结构自动映射方法。针对类仿射型数组下标应用,设计一种参数化并行存储体系结构,通过自动生成算法构建循环程序的访存数据依赖图,并进行并行存储结构模板的参数计算,在可重构编译器中实现并行存储体系结构的自动映射生成。实验结果表明,该存储体系结构能够充分挖掘循环中的数据并行性和重用性,与现有方案相比,能够在占用较少硬件资源的情况下,提升循环程序流水执行的性能。最后,本文结合上述研究内容,分别将基于硬件延时特性的流水线自动划分算法、循环流水迭代间启动间距自动分析及优化方法、参数化并行存储结构自动映射方法等技术应用在循环程序运算单元、控制单元、存储单元的自动生成过程中,构建一种面向可重构编译器的循环流水自动映射框架。实验结果表明,本文方法在提高可重构编译器自动化水平的同时,能够有效提高循环程序在可重构计算系统中流水执行的性能,具有一定的可行性。
【相似文献】
中国期刊全文数据库
前20条
1
郑怡文;白云晖;;基于数学归纳法抽取循环程序研究[J];电脑编程技巧与维护;2009年14期
2
刘黎明;;谈谈循环程序设计[J];电脑知识与技术;2010年08期
3
赵晓燕;;串行线性赋值循环程序的终止性判定[J];电脑知识与技术;2012年15期
4
李玲娜;田继东;刘德斌;;有界闭区间并上的非线性循环程序的终止性验证[J];计算机应用与软件;2012年10期
5
李轶;;线性循环程序的终止性判定[J];系统科学与数学;2013年05期
6
廖苑蓉;陈光喜;;一类非线性循环程序的终止性[J];微电子学与计算机;2013年11期
7
唐保兴;多重序集在间歇断言方法验证循环程序中的应用[J];计算机应用与软件;1985年02期
8
邓筱红;浅谈循环程序的教学[J];九江师专学报;1998年06期
9
黄皓怡;循环程序的优化与运行时间的测定[J];实验教学与仪器;1996年03期
10
罗毅辉,李仁发,熊曙初;可重构计算系统的研究与应用[J];计算机测量与控制;2005年08期
11
罗毅辉;李仁发;熊曙初;;一种可重构计算系统设计与实现[J];计算机应用研究;2006年01期
12
余伟;赵晓燕;;一类线性循环程序的终止性判定[J];现代计算机(专业版);2009年07期
13
孙永强;宋国新;毕华;黄小戎;;循环断言生成系统[J];计算机研究与发展;1984年01期
14
陈敬敏;;非线性循环及R~m上线性循环的终止性判定[J];四川大学学报(工程科学版);2013年02期
15
张利刚;;比千年虫更可怕的时间错误[J];广东电脑与电讯;1999年12期
16
刘毅;王乃迪;杨银堂;;基于短循环程序特征的多模式低功耗编码算法[J];微电子学与计算机;2008年02期
17
王昭顺,王沁,曲英杰;可重构计算机体系结构[J];北京科技大学学报;2001年04期
18
吴冬冬;杨晓君;刘新春;江先阳;;一种基于FPGA的可重构计算系统设计[J];计算机工程与应用;2006年21期
19
罗赛;周学海;;支持组合设计的一种可重构计算系统任务模型[J];中国科学技术大学学报;2007年09期
20
沈英哲;周学海;;一种用于可重构计算系统的软硬件划分算法[J];中国科学技术大学学报;2009年02期
中国博士学位论文全文数据库
前7条
1
郭振华;可重构编译中循环流水优化技术研究[D];哈尔滨工程大学;2016年
3
刘勇;嵌入式可重构计算系统及其任务调度机制的研究[D];中国科学院研究生院(上海微系统与信息技术研究所);2006年
4
王颖;嵌入式可重构计算系统的设计技术研究[D];复旦大学;2009年
5
罗赛;可重构计算系统体系结构研究与实现[D];中国科学技术大学;2006年
6
沈英哲;可重构计算系统中软硬件代码划分技术研究[D];中国科学技术大学;2007年
7
尹勇生;可重构多流水计算系统研究[D];合肥工业大学;2006年
中国硕士学位论文全文数据库
前6条
2
刘翰博;面向无人机航迹预测的机载可重构计算系统研制[D];哈尔滨工业大学;2016年
3
邵响;多核混合可重构计算系统的设计与优化[D];合肥工业大学;2015年
5
沈阳;卧式循环流反应器混合与分散特性研究[D];华东理工大学;2013年
高性能计算机软件循环流水,可重构编译中循环流水优化技术研究相关推荐
- 第16章 Unity中的渲染优化技术
程序优化的第一条准则: 不要优化.程序优化的第二条准则(仅针对专家! 〉: 不要优化. 一一Michael A. Jackson 在进行程序优化的时候,人们经常会引用英国的计算机科学家Michael ...
- c语言 循环结构 ppt,C语言中 循环结构.ppt
<C语言中 循环结构.ppt>由会员分享,可在线阅读,更多相关<C语言中 循环结构.ppt(42页珍藏版)>请在皮匠网上搜索. 1.第五章循环控制结构,1,本章知识点:,whi ...
- html中写循环语句,java在html中循环
java在html中循环 [2021-01-31 16:25:52] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...
- LTE宏微协同组网中的干扰抑制技术研究
1 引言 在LTE时代,移动数据业务量增长迅速,网络容量需求巨大,而且用户与业务的分布不均匀,采用单纯宏基站组网的方式已难以满足高容量与深度覆盖的网络部署需求,宏微协同组网的方式应运而生. ...
- UnityShader入门精要——Unity中的渲染优化技术(二)
减少DrawCall数目 最常见的优化技术--批处理.实现原理为减少渲染每一帧所需的drawcall数目.使用同一个材质的物体可以一起处理. 优点 缺点 动态批处理 切处理都是Unity 自动完成的, ...
- java方法中的循环里的变量_Java中循环声明变量方法
Java循环声明变量 之前想这样做,但是网上一直搜索不到,下面是我的方式 项目中 // 得到需要查询外表的数量,然后分别创建缓存,插入数据多的时候如果编码在缓存里面,就不需要再去查询数据库了.key: ...
- java循环删除集合数据_java中循环的几种方式以及删除集合中的指定数据
一.for //for循环中删除数据 -- 方法有漏洞 private static void deleteAtFor() { ArrayList array = new ArrayList<& ...
- 多媒体计算机软件需求,多媒体技术在计算机教学中的问题与对策研究
杨晓鹏 [摘要]计算机教学中应用多媒体技术是教学活动信息化的重要体现,是优化当前计算机专业教育方法的重要路径.经过多年的实践应用,多媒体技术在计算机教学中的应用越来越广泛,但从教学的实际效果来看,多媒 ...
- html表格数据循环展示,MVC在View中循环数据在table中显示
1.这是控制器里边直接返回table, public ActionResult Index() { News dal = new News(); DataTable dt= dal.getNews(4 ...
- 循环遍历java属性_java中循环遍历实体类的属性和数据类型以及属性值
package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarg ...
最新文章
- NASA 顶级程序员是如何编程的?这里有十大准则
- “高仿版拼多多”宣告破产!曾一年收割1.3亿用户,如今自救失败负债16亿
- mysql 存储过程参数集合_MySQL存储过程
- react-native gradle
- 拓端tecdat|SAS可视化高级ODS图形:PROC SGPLOT,BY组和SG注释
- Tssd2019最新版下载地址和更新说明
- CC2500的CCA
- xbox win10测试软件,win10中自带的录屏工具xbox录屏软件怎使用?
- 坚持定投3年,我赚了多少钱?
- PCL Visualizer可视化类
- 自监督学习论文、代码汇总
- android实现天气预报App(0)
- 你真的了解“药品追溯码”吗?
- 人头识别与计数_目标检测之人头检测(HaarLike Adaboost)---高密度环境下行人检测和统计...
- 外网访问家里的nas
- MySql排序并查询排名
- SMTP邮件postfix
- 苏州企业认定为高新技术企业后就可以享受所得税优惠吗
- 神经网络那些事之在现实生活中的应用
- Infographics(信息图表)制作指南