当前位置: 首页 > 专利查询>复旦大学专利>正文

基于多核处理器的通用并行加速算法制造技术

技术编号:6607980 阅读:272 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于并行处理器技术领域,具体为一种基于多核处理器的通用并行加速算法。本发明专利技术步骤包括:对于大规模、高密度数据计算,首先识别计算过程中的数据相关性,对于数据相关度低或者相互之间没有数据相关性的计算过程,将其分解出来成为独立的计算序列;将这些计算序列分配到多核处理器的各计算核心上执行,在执行过程中调度线程实现负载平衡,并且动态管理内存实现内存对齐;在计算核心运行完计算序列后,将各计算结果片段回收组合成完整的计算结果,实现较高的计算加速比。本发明专利技术基于多核处理器,例如GPGPU和CELL处理器等,实现了大规模数据计算并行化、并行线程优化调度、与多核处理器架构相关度小的通用加速运算。

【技术实现步骤摘要】

本专利技术属于并行处理器应用
,具体涉及一种基于多核处理器的并行加速算法。
技术介绍
GPU 的峰值性能已经从 2004 年 NV40 的 50GFL0PS (Giga FLoating point Operations Per Second)增长到 2007 年 G80 的 500GFL0PS。内存带宽也从 ATI Radeon X1800XT 的 42GB/s 增加到 NVIDIA GeForce 8800 GTX 的 86. 4GB/s。GPU 中的全流水线和高度并行架构,以及其极高的内存带宽,可以为其高峰值计算性能提供支持。与此同时,现在的高端处理器的性能,如3GHz Pentium4 CPU是大约12GFL0PS,到主存的带宽是6GB/s。CELL处理器由Sony在2001年3月投资,Sony、新力电脑娱乐、东芝、美国国际商业机器(IBM)公司联合开发用于高速运算的处理器。它是以RISC (Reduced Instruction Set Computer)指令体系的PowerPC架构来设计的,并具有高时钟频率、高执行效率等特点。主要应用于PlayMation 3和刀片服务器之上。CELL处理器拥有1个由PowerPC970 简化而来 PPE (PowerPC Processing Element)及 8 个称为 SPE (Synergistic Processing Element)协作处理器,工作频率超过4GHz。CELL处理器是64-bit Power处理器,内建8个互相协作的处理单元,有处理分离式计算的能力,拥有单处理器运行多个操作系统的能力。在高性能的并行处理器面前,采用通用并行加速算法进行计算成为必然趋势。参考文献K. Gulati and S. P. Khatri, "Towards acceleration of fault simulation using graphics processing units,,,DAC, 2008K. Gulati and S. P. Khatri, "Accelerating Statistical Static Timing Analysis Using Graphics Processing Units,,,DATE, 2009邹永宁,谭辉,黄亮,“CT图像重建加速的几种方法”,计算机系统应用,2008。
技术实现思路
本专利技术的目的在于提供一种基于多核处理器的通用并行加速算法,以实现对于不同多核处理器都可以以该过程进行并行加速运算。本专利技术提供的基于多核处理器的并行加速算法,依次包括识别并分解大规模数据计算的过程,调度分配计算序列至处理器计算核心执行的过程,收集重组计算结果的过程。 其中所谓识别并分解大规模数据计算的过程,是对于大规模、高密度数据计算,将数据相关性低,即可以并行处理的计算过程并分解为独立的计算序列;所谓调度分配计算序列至处理器计算核心执行的过程,是将分解后独立的计算序列分配到多核处理器的各计算核心上执行,在执行过程中调度线程实现负载平衡,并且动态管理内存,实现内存对齐; 4所谓收集重组计算结果的过程,是在各计算核心执行结束计算序列后,将各计算结果片段回收按序重新组合成完整的计算结果,实现计算加速比。本专利技术基于多核处理器(例如 GPGPU (General Purpose Graphic Processing Unit)和CELL处理器等),实现了大规模数据计算并行化、并行线程优化调度、与多核处理器架构相关度小的通用加速运算。附图说明图1算法流程图。 具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。算法流程图如图1所示A)对于大规模、高密度数据计算,将可以并行处理的计算过程分解为独立的计算序列;B)将分解后计算序列分配到多核处理器的各计算核心上执行,在执行过程中调度线程实现负载平衡,并且动态管理内存;C)在计算序列执行结束后,将各计算结果片段回收组合成完整的计算结果。以下是基于 GPGPU 对 SSTA (Statistical Static Timing Analysis)算法的并行加速为实施例进行说明。A)根据输入和计算过程进行分解一、数据输入和计算过程描述构建电路时序图本专利技术识别数据相关性用图表示方法。该图由节点集V和边集E组成,节点集V中的节点代表计算单元及输入输出端口,边集E中的边代表个计算单元之间的依赖关系。数据相关性低或者没有数据相关性的计算单元对应于连接边很少或者相互之间没有连接关系的各计算单元。在基于块的SSTA计算过程中,需要先将电路网表转换成反映电路拓扑结构的时序图。时序图由节点集V和边集E组成,节点集V中的节点代表电路网表中的门及输入输出等,边集E中的边代表在电路网表中的门及输入输出之间的连接。生成时序图之后,SSTA 方法通过遍历时序图,对每个节点的不同配置进行SUM (求和)和MAX (取最大值)操作以获得分析结果。为了使用 GPGPU 的开发环境 CUDA(Compute Unified Device Architecture) 对每个节点的配置进行并行的SUM和MAX操作,需要在GPU的显存中有电路的时序图,通过查找时序图来访问和获取SUM和MAX操作所需要的数据。当主程序读入电路网表后,CPU端可以生成时序图,接下来需要进行的操作就是将CPU端的时序图移植到GPU端。时序图通常是有向无环图。由于GPU的显存对图像渲染做过优化,尚不能有效支持用户自定义的数据结构。不过在CUDA模型可以把GPU的显存当作通用的数组,能够比 GPGPU支持更有效的数据结构。本专利技术使用空间复杂度为0(V+E)的邻接数组来描述时序图的数据结构。邻接数组表示的时序图一般由两个数组构成,包含节点信息的节点数组以及包含边信息的边数组。将CPU端的时序图转换成GPU端CUDA模型使用的邻接数组的形式, 分为两步1.对CPU端的时序图中的节点进行广度优先遍历,遍历时对节点进行编号并分层;2.按层次访问CPU端的时序图中的节点,将节点信息和边信息添加到节点数组Va和边数组fe中。访问时序图中的节点ν并向Va和fe添加信息需进行以下操作 i.获得ν在时序图中的编号,将其设置为ν在Va中的索引; .遍历ν的前驱节点,将前驱节点的编号加入到边数组权中; iii.设置ν在Va中的值,为ν的第一个前驱节点在fe中的索引;若ν的前驱节点数量为0,则设为-1。在转换过程中,可以在边数组中记录前驱节点编号或者驱动节点编号。在基于块的SSTA中,需要前驱节点的信息来进行SUM和MAX操作,因此在边数组中需要记录前驱节点的编号。在对CPU端的时序图处理后,得到的GPU端用邻接数组表示的时序图,将该时序图传入GPU端的显存,就可以在GPU端进行基于块的SSTA计算。二、到达时间计算过程的分解在SSTA中,一个门的输出的到达时间(Arrival Time,简称为AT)的计算过程是首先对每个输入管脚i的到达时间与从输入本文档来自技高网
...

【技术保护点】
片段回收按序重新组合成完整的计算结果,实现计算性能加速。关性低或者没有数据相关性的计算过程并分解为独立的计算序列;所谓调度分配计算序列至处理器计算核心执行的过程,是将分解后独立的计算序列分配到多核处理器的各计算核心上执行;所谓收集重组计算结果的过程,是在各计算核心执行结束计算序列后,将各计算结果1.一种基于多核处理器的通用并行加速算法,其特征在于依次包括识别并分解大规模数据计算的过程,调度分配计算序列至处理器计算核心执行的过程,收集重组计算结果的过程;其中:所谓识别并分解大规模数据计算的过程,是对于大规模、高密度数据计算,将数据相

【技术特征摘要】

【专利技术属性】
技术研发人员:曹伟王伶俐王颖周学功叶晓敏
申请(专利权)人:复旦大学
类型:发明
国别省市:31

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

1