采用多核处理器仿真可重构处理器并行计算过程的方法

文档序号:6634487阅读:326来源:国知局
采用多核处理器仿真可重构处理器并行计算过程的方法
【专利摘要】本发明涉及多核处理器并行计算领域,为提供一种并行计算仿真的方法,利用此方法能在未确定可重构处理器总体架构和阵列处理单元互连方案时,验证和优化算法在可重构阵列上的映射方案。为此,本发明采取的技术方案是,采用多核处理器仿真可重构处理器并行计算过程的方法,第一步,首先要对可重构处理器进行参数定义,建立一个模型;第二步,将串行算法映射到可重构处理器上,将任务分配给各个模拟的PE来做,并按照OpenMP的规则编写仿真用的并行代码;第三步,使用Amplifier工具对并行算法进行结果和性能的分析,如果未达到要求,选择修改可重构架构,或者修改算法的映射方案重新仿真。本发明主要应用于数据处理及机要通信。
【专利说明】采用多核处理器仿真可重构处理器并行计算过程的方法

【技术领域】
[0001] 本发明涉及多核处理器并行计算领域,特别涉及采用化enMP并行编程模型的多 核处理器来模拟可重构处理器并行计算仿真的方法。具体讲,涉及采用多核处理器仿真可 重构处理器并行计算过程的方法。 技术背景
[0002] 随着视频处理技术的不断进步,需要处理的数据量越来越大,对数据处理电路的 性能、功耗和灵活性要求也越来越高。传统的解决方案通常采用两种不同的方法来实现:一 种是专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC),一种是通用微处 理器。对于复杂的视觉信息处理算法,ASIC设计具有很高的执行效率和运算精度且具有很 低的功耗,但是灵活性不足,很难同时满足多种不同算法的需要。通用处理器虽然能够通过 软件指令实现不同的算法,但复杂的算法通常需要很长时间才能成,执行效率很低。可重构 处理器利用可重构逻辑器件的动态重构特性,通过不同的配置文件,将特定的指令映射到 可重构阵列上运行,能够充分利用硬件并行化执行的特点,提高计算效率。在视觉信息处理 领域,可重构处理器在性能、灵活性和功耗等方面能很好的平衡,相对于传统的ASIC和通 用处理器有很大的优势。
[0003]参数化可重构系统模型(Parameterizedreconfigur油learchitec1:uremodel, PRAM)是一个参数化的通用可重构系统模型,它可W描述多种可重构系统的层次结构和各 种功能的代价参数,并且具有扩展接口,可W通过增加参数的方式支持各种新的结构特征, 具有较好的灵活性,但是对于可重构处理器结构中主处理器与可重构阵列之间的关系及 接口缺乏定义。另一种较为主流的是软/硬件混合多线程模型,软件线程对应中央处理 器(CentralProcessing化it,CPU)所执行的任务,硬件线程则调用相应的现场可编程口 阵列(FieldProgramm油leGateArray,FPGA)上的电路模块,可W同时支持多指令多数 据(MultipleInstructionStreamMultipleData,MIMD)模式和单指令多数据(Single InstructionMultipleData,SIMD)模式,但其性能优势依赖于CPU和FPGA紧禪合的通讯 架构。


【发明内容】

[0004] 为了克服现有技术的不足,提供一种并行计算仿真的方法。利用此方法能在未确 定可重构处理器总体架构和阵列处理单元(ProcessingElement,阳)互连方案时,通过多 核处理器来模拟PE阵列,将算法映射到多核处理器上,通过分析算法在多核处理器上的并 发执行结果和效率,来验证和优化算法在可重构阵列上的映射方案。为此,本发明采取的技 术方案是,采用多核处理器仿真可重构处理器并行计算过程的方法,第一步,首先要对可重 构处理器进行参数定义,建立一个模型,包括在可重构处理器中所有阳单元共享的储存器 的大小,寄存器堆的深度,处理器的粒度,互连结构;第二步,将串行算法映射到可重构处理 器上,将任务分配给各个模拟的PE来做,也就是分到各个线程中去,并按照化enMP的规则 编写仿真用的并行代码;第H步,使用Amplifier工具对并行算法进行结果和性能的分析, 如果未达到要求,选择修改可重构架构,或者修改算法的映射方案重新仿真。
[0005] 第二步具体为;调用化enMP中的parallel sections指令语句可将待处理的数 据映射到不同的线程中,每个线程用section子指令圈起;配合着omp_set_num_threads 函数,设置线程的数量,使其等同于PE个数,从而可W达到一个线程模拟一个PE的目的; section子指令将每个对应的计算块分配给一个线程,所有的section在线程池中进行分 配,一个section只被线程池中的一个线程执行一次,但和其他section是并行执行的;即 每个线程对应着一个阳,而且当一个parallel sections内所有的section全部执行完成 时,才能执行后面的代码。
[0006] 建立一个模型,包括化areMemo巧的大小,寄存器堆的深度,处理器的粒度进一步 具体为:首先要定义W下几个数组来表示可重构处理器中的存储结构:
[0007] 1.SM:相当于化areMemory,SM的具体大小应该与可重构处理器上化areMemoir 的大小一致,在化enMP中,在parallelsections后面加上shared(SM)W表示所有的线程 可W共享SM数组中的数据,可读可写。在该里要注意当存在写操作时应当避免写冲突,在 可重构处理器中,同一机器周期内,不能有多个阳去写同一个化areMemcxry地址;
[000引 2. RF_WM:其中NUM为阳编号,每一个RF_数组的大小由可重构处理器中一个 PE的寄存器堆的深度决定,该些数据来表示各个PE内部的寄堆器堆,用来存放计算的中间 结果;每个数组只能由对应标号的PE来访问,其它PE不可访问,在该里使用化enMP中的 円rs化rivate和lastprivate指令,每个机器周期从主进程中继承RF_,并在计算结束后,将 改变的值写回RF_,其间其它PE无法访问;如果在一个机器周期内不需要使用RF_寄存器, 则能够省略化stprivate和lastprivate指令;
[0009]3. 0UT_NUM;、表示阳编号,0UT_、用来表示可重构处理上某个阳在上一个机器周 期的计算结果,W供给其它PE在下一个机器周期访问;由于可重构处理器的计算结果可能 不只是一个数据,也可能包括一些1位的控制输出,该里〇UT_NUM的具体结构要根据可重构 处理器的架构来定义;每一个阳在计算时如果需要〇UT_的值可W通过化stprivate指令 继承,该表示了可重构处理器内部PE之间的互连结构,而且所有PE在一个机器周期结束后 都需要给自己的〇UT_赋值。
[0010] 与已有技术相比,本发明的技术特点与效果:
[0011] 本发明所提出的方法可W显式的描述可重构处理器的结构及计算方式,并能在多 核计算机平台上模拟可重构处理器。
[0012] 本发明所提出的方法不仅能分析算法分解成任务级并行后的逻辑正确性,并能用 amplifier分析性能,从而可W估计与串行代码相比,并行优化后性能的大致提升W及不同 的映射方式使算法在处理器中运行的效率有何不同,W选取最优的方式映射到可重构处理 器中。

【专利附图】

【附图说明】
[0013] 图1是双核处理器硬件体系结构示意图。
[0014] 图2是可重构阵列示意图。
[0015] 图3是线程并行与阵列并行对比图。
[0016] 图4是仿真方法的流程图。

【具体实施方式】
[0017] 在多核处理器环境中,每个线程在独立的处理器核也上运行,每个线程独立于其 他线程执行,多个线程可在多核处理器中并发调度。多核处理器中的每个处理器核也可W 看成是一个独立的处理单元,所有处理器核也共享一个存储空间,如图1所示。可重构处理 器也具有类似的结构,如图2所示。从图1和图2可W看出,可重构处理器结构和多核处理 器中的每个处理单元都具有自己的数据储存器(每个阳中都包含自己的RegiserFile), 而且所有处理节点有一个共享的存储单元。创建一个线程可W看成是完成一次配置。线程 间的锁W及等待能够体现PE间的数据依赖性。图3为线程并行与可重构PE并行的对比, 线程的创建与撤销可W模拟RCA(Reconfigur油leCellArray,可重构单元阵列)间被配置 的时间消耗,线程执行的运算可W模拟PE的运算。因此,用多核处理器可W有效地模拟可 重构处理阵列。
[0018] 图4为整个仿真过程的流程图。第一步,首先要对可重构处理器定义一些参数,建 立一个比较粗略的模型,比如,化areMemo巧的大小,寄存器堆的深度,处理器的粒度等。第 二步,将串行算法映射到可重构处理器上,将任务分配给各个PE来做,也就是分到各个线 程中去,并按照化enMP的规则编写仿真用的并行代码。第H步,使用Amplifier工具对并行 算法进行结果和性能的分析,如果未达到要求,可选择修改可重构架构,或者修改算法的映 射方案重新仿真。Amplifier是Intel公司推出的一款可W分析应用程序性能的软件。Share Memory;在可重构处理器中所有阳单元共享的储存器
[0019] 在可重构处理器中,各个阳之间是W机器周期同步的,所谓机器周期是指RCA中 所有PE全部完成一条配置指令所用的时间,执行快的PE要等待执行慢的PE完成当前配 置指令后,才可W开始执行下一条配置指令。可重构处理器中,配置指令都是一些单简的 运算,比如加、减、乘等。每个PE内部有自己的寄存器堆,用来快速访问之前计算的中间结 果,在每一机器周期的计算中都可W有选择地将计算结果存入该些寄存器中,该些PE内部 的寄存器只能由PE自己访问,其他PE无法访问。为了可W快速访问其他PE的计算数据, 可重构处理器会提供一种阳间的互连机制,可W使阳在计算时通过路由快速访问其他阳 在上一个机器周期的计算结果。在可重构处理器中,RCA不能直接访问外部内存中的数据, 它是通过化areMemory来进行间接访问,ShareMemory的容量较大,一般用于存放处程序 的原始数据,而且化areMemo巧中的数据可W由所有阳共享。阳间的同步、互连和访存结 构,保证了可重构处理器并行执行程序的效率,在使用多核处理器进行仿真时,我们要注意 该些参数的配置。
[0020] 化enMP并行编程模型是用于共享内存并行系统的多线程程序设计的一组编译指 令语句。调用化enMP中的parallelsections指令语句可将待处理的数据映射到不同的线 程中,每个线程用section子指令圈起。配合着omp_set_num_tbeads函数,可W设置线程 的数量,使其等同于PE个数,从而可W达到一个线程模拟一个PE的目的。section子指令 将每个对应的计算块分配给一个线程,所有的section在线程池中进行分配,一个section 只被线程池中的一个线程执行一次,但和其他section是并行执行的。即每个线程对应着 一个阳,而且当一个parallelsections内所有的section全部执行完成时,才能执行后面 的代码,该与可重构处理器按机器周期来同步PE的方式是类似的。关于存储结构的仿真, 首先我们要定义W下几个数组来表示可重构处理器中的存储结构:
[0021] 1.SM;相当于化areMemoir,SM的具体大小应该与可重构处理器上化areMemoir 的大小一致。在化enMP中,在parallelsections后面加上shared(SM)W表示所有的线 程可W共享SM数组中的数据,可读可写。在该里要注意当存在写操作时应当避免写冲突, 在可重构处理器中,同一机器周期内,不能有多个阳去写同一个化areMemcxry地址。
[002引 2.RF_WM:其中NUM为阳编号,例如有16个阳就有16个数组,分别是RF_1, RF_2……RF_16。每一个RF_数组的大小由可重构处理器中一个阳的寄存器堆的深度决定。 该些数据来表示各个PE内部的寄堆器堆,用来存放计算的中间结果。每个数组只能由对应 标号的阳来访问,其它阳不可访问,在该里使用化enMP中的化stprivate和lastprivate 指令,每个机器周期从主进程中继承RF_,并在计算结束后,将改变的值写回RF_,其间其它 PE无法访问。如果在一个机器周期内不需要使用RF_寄存器,可W省略化stprivate和 lastprivate指令。
[002引 3. 0UT_NUM;WM的意思和RF_ -样,表示阳编号。0UT_不是一个普通的变量,而 是一个结构体,用来表示可重构处理上某个PE在上一个机器周期的计算结果,W供给其它 PE在下一个机器周期访问。由于可重构处理器的计算结果可能不只是一个数据,也可能包 括一些1位的控制输出,例如加法的溢出位,所W该里0UT_NUM的具体结构要根据可重构处 理器的架构来定义。每一个阳在计算时如果需要0UT_的值可W通过化stprivate指令继 承,该表示了可重构处理器内部阳之间的互连结构,而且所有阳在一个机器周期结束后都 需要给自己的0UT_赋值。
[0024] 根据W上描述,那么一段仿真可重构处理器的并行代码可W表示成如下结构:
[00巧]

【权利要求】
1. 一种采用多核处理器仿真可重构处理器并行计算过程的方法,其特征是,第一步, 首先要对可重构处理器进行参数定义,建立一个模型,包括在可重构处理器中所有PE单元 共享的储存器的大小,寄存器堆的深度,处理器的粒度,互连结构;第二步,将串行算法映射 到可重构处理器上,将任务分配给各个模拟的PE来做,也就是分到各个线程中去,并按照 OpenMP的规则编写仿真用的并行代码;第三步,使用Amplifier工具对并行算法进行结果和 性能的分析,如果未达到要求,选择修改可重构架构,或者修改算法的映射方案重新仿真。
2. 如权利要求1所述的采用多核处理器仿真可重构处理器并行计算过程的方法,其特 征是,第二步具体为:调用OpenMP中的parallel sections指令语句可将待处理的数据映 射到不同的线程中,每个线程用section子指令圈起;配合着omp_set_num_threads函数, 设置线程的数量,使其等同于PE个数,从而可以达到一个线程模拟一个PE的目的;section 子指令将每个对应的计算块分配给一个线程,所有的section在线程池中进行分配,一个 section只被线程池中的一个线程执行一次,但和其他section是并行执行的;即每个线程 对应着一个PE,而且当一个parallel sections内所有的section全部执行完成时,才能执 行后面的代码。
3. 如权利要求1所述的采用多核处理器仿真可重构处理器并行计算过程的方法,其特 征是,建立一个模型,包括Share Memory的大小,寄存器堆的深度,处理器的粒度进一步具 体为:首先要定义以下几个数组来表示可重构处理器中的存储结构: 1. SM:相当于Share Memory,SM的具体大小应该与可重构处理器上Share Memory的大 小一致,在OpenMP中,在parallel sections后面加上shared(SM)以表示所有的线程可以 共享SM数组中的数据,可读可写。在这里要注意当存在写操作时应当避免写冲突,在可重 构处理器中,同一机器周期内,不能有多个PE去写同一个Share Memory地址; 2. RF_NUM :其中NUM为PE编号,每一个RF_数组的大小由可重构处理器中一个PE的 寄存器堆的深度决定,这些数据来表示各个PE内部的寄堆器堆,用来存放计算的中间结 果;每个数组只能由对应标号的PE来访问,其它PE不可访问,在这里使用OpenMP中的 firstprivate和lastprivate指令,每个机器周期从主进程中继承RF_,并在计算结束后,将 改变的值写回RF_,其间其它PE无法访问;如果在一个机器周期内不需要使用RF_寄存器, 则能够省略firstprivate和lastprivate指令; 3) 0UT_NUM :、表示PE编号,0UT_、用来表示可重构处理上某个PE在上一个机器周期的 计算结果,以供给其它PE在下一个机器周期访问;由于可重构处理器的计算结果可能不只 是一个数据,也可能包括一些1位的控制输出,这里〇UT_NUM的具体结构要根据可重构处理 器的架构来定义;每一个PE在计算时如果需要0UT_的值可以通过firstprivate指令继承, 这表示了可重构处理器内部PE之间的互连结构,而且所有PE在一个机器周期结束后都需 要给自己的〇UT_赋值。
【文档编号】G06F9/38GK104375805SQ201410653237
【公开日】2015年2月25日 申请日期:2014年11月17日 优先权日:2014年11月17日
【发明者】史再峰, 高天野, 庞科, 扈立超, 徐江涛, 李斌桥 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1