CN105302525A - 用于多层次异构结构的可重构处理器的并行处理方法 - Google Patents
用于多层次异构结构的可重构处理器的并行处理方法 Download PDFInfo
- Publication number
- CN105302525A CN105302525A CN201510673764.1A CN201510673764A CN105302525A CN 105302525 A CN105302525 A CN 105302525A CN 201510673764 A CN201510673764 A CN 201510673764A CN 105302525 A CN105302525 A CN 105302525A
- Authority
- CN
- China
- Prior art keywords
- configuration information
- reconfigurable processor
- parallel processing
- heterogeneous structure
- configir
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种用于多层次异构结构的可重构处理器的并行处理方法,包括:步骤一,获取类汇编的代码中间表示IR,并进行指令提取;步骤二,对提取出的指令进行分析,根据数据流构建指令依赖图;步骤三,计算迭代间隔,该迭代间隔指单个PE重复执行两条相同指令之间所间隔的时钟周期;步骤四,构建CONFIGIR配置信息,该CONFIGIR配置信息包含执行配置包的可重构运算阵列编号、配置包长度及各条配置信息中的操作指令;步骤五,获取访存信息;步骤六,对CONFIGIR配置信息二进制映射,通过本发明,实现了一种面向的三层异构可重构处理器架构的后端处理方案。
Description
技术领域
本发明涉及可重构计算领域,特别是涉及一种用于多层次异构结构的可重构处理器的并行处理方法。
背景技术
可重构处理器是为了满足信息时代人们对计算速度和计算通用性需求的重要产物,它兼备了通用处理器和专用集成电路的优势。典型的粗粒度可重构处理器由主控制器、主存DDR和可重构处理单元(RPU)构成,各个部分之间的数据传输通过总线实现。主控制器用来运行操作系统,负责整个系统资源的调度。当一个计算任务在可重构处理器上运行时,编译器会将任务代码进行软硬件划分。软硬件划分是指将程序代码划分成在通用处理器上运行的串行代码(软件部分)与在RPU上运行的代码(硬件部分)。划分出来的串行代码通过普通的编译器便可以将其编译成可执行代码。而另一部分则要经过另外的特殊的编译流程之后生成RPU上相应的配置信息。RPU通常包含若干个可重构阵列(PEA),每个阵列包含方阵形式排列的基本处理单元(PE),每一个PE可执行字级的算术或者逻辑操作,PE之间可经由route互相通信。PEA中配置信息的生成方法则是可重构计算编译器研究的重点。
针对如何高效快速的完成软硬件划分及生成配置信息,使得计算密集型任务在可重构处理器上运行的时间大大缩短,国内外编译器领域已经有较为成熟的流程。然而这些编译流程面向的可重构处理器都是两层异构结构,并行语言的扩展也相对复杂
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种用于多层次异构结构的可重构处理器的并行处理方法,开发了一套用于多层次异构结构的可重构架构编译器后端处理方案,以生成并行任务在此种架构下运行的配置信息。
为达上述及其它目的,本发明提出一种用于多层次异构结构的可重构处理器的并行处理方法,包括如下步骤:
步骤一,获取类汇编的代码中间表示IR,并进行指令提取
步骤二,对提取出的指令进行分析,根据数据流构建指令依赖图;
步骤三,计算迭代间隔,该迭代间隔指单个PE重复执行两条相同指令之间所间隔的时钟周期;
步骤四,构建CONFIGIR配置信息,该CONFIGIR配置信息包含执行配置包的可重构运算阵列编号、配置包长度及各条配置信息中的操作指令;
步骤五,获取访存信息;
步骤六,对CONFIGIR配置信息二进制映射。
进一步地,于步骤一中,指令提取为分析该IR并提取出真正需要映射的指令,包括访存的LOAD/STORE,以及在高级语言源代码中的各类算术运算、逻辑运算。
进一步地,于步骤三中,所述迭代间隔指单个PE重复执行两条相同指令之间所间隔的时钟周期,所述迭代间隔越小表征着代码的并行度越高。
进一步地,该迭代间隔的计算不仅要考虑代码间的数据依赖,还要考虑硬件架构中基本运算单元的数量。
进一步地,于步骤四中,每条配置信息包含至少8个数据域,其中INPUT1、INPUT2和OUTPUT分别储存两个输入操作数和输出操作数;OPCODE表征运算种类,为加减乘等算术运算或逻辑运算和访存运算;ITERATION域储存迭代次数,剩下的三个ITERATION域储存操作数在每次迭代时在共享存储器中的地址增量。
进一步地,如果涉及到选择、移位操作,数据域进行相应扩展。
进一步地,所述CONFIGIR配置信息中每条配置信息在构建时,不会填入所有的信息,其中每个操作数的初始地址信息为缺省值。
进一步地,于步骤五中,引入空函数的方法,将地址从IR外部获取后,于IR中添加一个空函数,以函数参数传递的方式将地址信息读入到IR中。
进一步地,访存信息的获取还包括迭代增量的计算。
进一步地,于步骤六中,在所述CONFIGIR配置信息构建完毕后,调用相关的规则将其翻译成二进制机器代码。
与现有技术相比,本发明一种用于多层次异构结构的可重构处理器的并行处理方法实现了面向一种面向的三层异构可重构处理器架构,并开发了一套用于多层次异构结构的可重构架构编译器后端处理方案,以生成并行任务在此种架构下运行的配置信息。
附图说明
图1为本发明所应用之用于多层次异构结构的可重构处理器的架构示意图;
图2为本发明一种用于多层次异构结构的可重构处理器的并行处理方法的步骤流程图;
图3为本发明较佳实施例中CONFIGIR中每条指令的基本字段结构图;
图4为本发明较佳实施例中原始的C程序经过前端处理后所加的并行标记示例以及生成的中间代码表示示例图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明所应用之多层次异构结构的可重构处理器的架构示意图。如图1所示,本发明所应用之用于多层次异构结构的可重构处理器,包括:一个ARM11核10(主控制器)、主存DDR20及多个RPU处理单元30,各个模块之间通过AHB总线进行通信,一个独立的RPU处理单元30包含1个负责搬运配置包的ARM7核301(协控制器),4个共享内存(sharedmemory,SM)SM1-SM4和4个可重构运算阵列(ProcessingElementArray,PEA)PEA1-PEA4,每个PEA以方阵形式排列若干基本运算单元(PE),在本发明较佳实施例中为16个,各个PE之间可以按照一定的路由关系进行通信。需要注意的是,主控制器ARM11核10、协控制器ARM7核301和可重构运算阵列PEA三者的内存空间都是独立的,不能直接进行相互访问。主控制器与协控制器之间、主控制器与PEA之间以及协控制器与PEA之间的数据传递都是通过DMA(直接内存存取)来完成的,这三部分模块共同组成了一个三层次的可重构异构架构,每当处理器接到一个运算任务,会首先进行软硬件任务划分,划分后的串行部分在ARM11上执行,可并行的部分由编译器生成配置包,由ARM7负责搬运到各个PEA上,配置在PEA上流水执行,三层结构分工合作,并行完成一套可并行任务。
针对运行在这种多层异构可重构处理器上的并行任务,已有相关嵌入到编译器前端的并行处理方案。这种方案基于ANSIC语言实现,在ANSIC语言描述的任务中,对可并行运算部分(以函数为单元)加入了若干并行、同步标记,指明了待运算的数据矩阵以及这些数据拷贝到SM中的地址等信息,同时指明执行运算的运算阵列编号及SM序号,以便编译器后端识别。
基于上述的硬件架构以及编译器前端基础,本发明提出了一种相对应的编译器后端的并行处理方案。
图2为本发明一种用于多层次异构结构的可重构处理器的并行处理方法的步骤流程图。如图2所示,本发明一种用于多层次异构结构的可重构处理器的并行处理方法,应用于编译器后端,包括如下步骤:
步骤201,获取类汇编的代码中间表示(IntermediateRepresentation,IR),并进行指令提取。具体地说,分析IR并提取出真正需要映射的指令,包括访存的LOAD/STORE,以及在高级语言源代码中的各类算术运算、逻辑运算。
步骤202,构建依赖图。对提取出的指令进行分析,根据数据流构建指令依赖图,这是决定配置信息执行顺序的关键步骤。
步骤203,计算迭代间隔。迭代间隔指的是单个PE重复执行两条相同指令之间所间隔的时钟周期,迭代间隔越小表征着代码的并行度越高。迭代间隔的计算不仅要考虑代码间的数据依赖,还要考虑硬件架构中的PE数量。
步骤204,构建CONFIGIR(配置信息)。CONFIGIR是本发明提出的一种存储配置信息的全新数据结构,也可以看作是配置信息的打包方式。它包含执行配置包的PEA编号、配置包长度(配置信息数量)及各条配置信息中的操作指令等信息,可以看作是最终配置信息的可读性表示形式。CONFIGIR中每条配置信息的基本结构请参考图3,包含至少8个数据域,INPUT1、INPUT2和OUTPUT分别储存两个输入操作数和输出操作数;OPCODE表征运算种类,可以是加减乘等算术运算,也可以是逻辑运算和访存运算;ITERATION域储存迭代次数;剩下的三个ITERATION域储存操作数在每次迭代时在共享存储器(SM)中的地址增量,迭代的引入将大量相同操作的配置信息压缩到一条配置信息中,减少了配置信息储存的开销,加快了配置包的搬运速度。如果涉及到选择、移位操作,数据域会作相应扩展。
步骤205,获取访存信息。CONFIGIR中每条配置信息在构建时,不会填入所有的信息,其中每个操作数(包括输入与输出)的初始地址信息是缺省值。这部分信息来自于前端所加的标记,在并行任务翻译得到的IR中并不存在,因此不能够直接获取。这里本发明采取了引入了空函数的方法,将地址从IR外部获取后,于IR中添加一个空函数,以函数参数传递的方式将地址信息读入到IR中。访存信息的获取还包括迭代增量的计算。本发明将数组地址迭代增量的计算任务交给编译器来完成,减少了最终配置信息中的运算,减少了配置信息中的冗余。
步骤206,对CONFIGIR信息二进制映射。CONFIGIR构建完毕后,调用相关的规则将其翻译成二进制机器代码。
以下将配合图4通过一具体实施例来说明本发明:
如图4所示,是一个原始的C程序经过前端处理后所加的并行标记示例(401-404)以及生成的中间代码表示(IntermediateRepresentation,IR)示例。处理器运行时,主控制器执行串行代码段,在404处调用协处理器进行运算数据和配置包的搬运工作。参照原始代码,401是将x,y数组的数据作为输入拷贝到PEA外的共享内存(SharedMemory,SM)中,“0”“50”表示访问的首地址,“16”表示拷贝的数据长度;402调用PEA进行并行计算;403将得到的结果拷贝到A数组中作为输出(为了便于理解,二维的A数组用一维替代),“100”表示访问的首地址,“256”表示输出的数据长度。
图4中的calc函数,该函数生成的IR中,经过一系列分析,可以提取出405-410六条可以生成配置信息的指令。由于该例中操作比较简单,在此忽略依赖图构建的过程,再综合考虑数组规模与PEA规模,直接得到迭代间隔II=6,即每条配置信息每6个周期执行1次。据此,构建六条指令组成的CONFIGIR各个字段数据如表1。
表1CONFIGIR构建示例
No. | INPUT1 | INPUT2 | OPCODE | OUTPUT | IN1INC | IN2INC | OUTINC | ITER |
1 | DEFAULT | NULL | load | Reg1 | 0 | NULL | 0 | 16 |
2 | DEFAULT | NULL | load | Reg2 | 1 | NULL | 0 | 16 |
3 | Reg1 | Reg2 | mul | Reg3 | 0 | 0 | 0 | 16 |
4 | DEFAULT | NULL | load | Reg4 | 1 | NULL | 0 | 16 |
5 | Reg3 | Reg4 | add | 0 | 0 | 0 | 0 | 16 |
6 | 0 | NULL | store | DEFAULT | 0 | NULL | 1 | 16 |
以下对表1中的各项进行说明:
1、OUTPUT中Reg1-Reg4指的是每个PE自身的寄存器,该寄存器中的数据仅能被PE自身访问。
2、DEFAULT表示暂时缺省项,内容应为从SM中读取的数据首地址,该地址需要之后的步骤分析后方能填充。
3、第5条指令的输出字段填入0表示无输出,数据保留在PE本地以待下周期调用。第6条指令的输入字段填入0表示输入数据采集自PE本地上个周期的计算数据。
4、第2、4条指令的IN1INC字段和第6条指令的OUTINC字段填入1表示每次执行该指令时,在SM中读取的地址都增加1。这种表示形式压缩了配置信息。
接下来分析并填充表1中的DEFAULT字段。由401和403的访存函数可以得到相关的访存信息,但是这部分信息并不存在于原始IR中。于是本发明引入三个空函数体的函数,以传递实参的形式将首地址数据传入到IR中,从而完善CONFIGIR,完善后的CONFIGIR如表2所示。
No. | INPUT1 | INPUT2 | OPCODE | OUTPUT | IN1INC | IN2INC | OUTINC | ITER |
1 | SM[0] | NULL | load | Reg1 | 0 | NULL | 0 | 16 |
2 | SM[50] | NULL | load | Reg2 | 1 | NULL | 0 | 16 |
3 | Reg1 | Reg2 | mul | Reg3 | 0 | 0 | 0 | 16 |
4 | SM[100] | NULL | load | Reg4 | 1 | NULL | 0 | 16 |
5 | Reg3 | Reg4 | add | 0 | 0 | 0 | 0 | 16 |
6 | 0 | NULL | store | SM[100] | 0 | NULL | 1 | 16 |
表2完善的CONFIGIR
当然,以上只是PE1执行的配置信息表。在本发明具体实施例中,所有的PE1-PE16执行指令相同,但是以上几个缺省字段填入的SM首地址各不相同,此处不再详述。
最后,根据特定的机器码规则将上表中的数据翻译成二进制机器码。
可见,本发明一种用于多层次异构结构的可重构处理器及其并行处理方法实现了一种面向的三层异构可重构处理器架构,并开发一套用于多层次异构结构的可重构架构编译器后端处理方案,以生成并行任务在此种架构下运行的配置信息。
与现有技术相比,本发明具有如下优点:
1、本发明实现了多层异构可重构处理器编译器的后端设计,为不同层次间的任务并行提供了技术的支持,包括协处理器与可重构阵列之间的任务级并行、可重构阵列间的任务级并行、可重构阵列间的指令级并行。
2、本发明在配置信息的生成过程中,引入了CONFIGIR这一数据结构作为配置包的打包方法,充分利用了可重构架构的多层次特点。CONFIGIR的存在将可重构阵列硬件开发与相应编译器软件开发隔离开来,使得二者可以并行设计、互不影响,为软硬件协同设计高效的开发效率。
3、针对多层异构可重构处理器的硬件架构特点和编译器前端的并行标记特点,本发明还实现了一种新的PEA获取访存信息的方法,减少了配置信息中的冗余指令,提高了并行效率。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (10)
1.一种用于多层次异构结构的可重构处理器的并行处理方法,包括如下步骤:
步骤一,获取类汇编的代码中间表示IR,并进行指令提取
步骤二,对提取出的指令进行分析,根据数据流构建指令依赖图;
步骤三,计算迭代间隔,该迭代间隔指单个PE重复执行两条相同指令之间所间隔的时钟周期;
步骤四,构建CONFIGIR配置信息,该CONFIGIR配置信息包含执行配置包的可重构运算阵列编号、配置包长度及各条配置信息中的操作指令;
步骤五,获取访存信息;
步骤六,对CONFIGIR配置信息二进制映射。
2.如权利要求1所述的一种用于多层次异构结构的可重构处理器的并行处理方法,其特征在于:于步骤一中,指令提取为分析该IR并提取出真正需要映射的指令,包括访存的LOAD/STORE,以及在高级语言源代码中的各类算术运算、逻辑运算。
3.如权利要求1所述的一种用于多层次异构结构的可重构处理器的并行处理方法,其特征在于:于步骤三中,所述迭代间隔指单个基本运算单元重复执行两条相同指令之间所间隔的时钟周期,所述迭代间隔越小表征着代码的并行度越高。
4.如权利要求3所述的一种用于多层次异构结构的可重构处理器的并行处理方法,其特征在于:该迭代间隔的计算不仅要考虑代码间的数据依赖,还要考虑硬件架构中基本运算单元的数量。
5.如权利要求1所述的一种用于多层次异构结构的可重构处理器的并行处理方法,其特征在于:于步骤四中,每条配置信息包含至少8个数据域,其中INPUT1、INPUT2和OUTPUT分别储存两个输入操作数和输出操作数;OPCODE表征运算种类,为加减乘等算术运算或逻辑运算和访存运算;ITERATION域储存迭代次数,剩下的三个ITERATION域储存操作数在每次迭代时在共享存储器中的地址增量。
6.如权利要求5所述的一种用于多层次异构结构的可重构处理器的并行处理方法,其特征在于:如果涉及到选择、移位操作,数据域进行相应扩展。
7.如权利要求1所述的一种用于多层次异构结构的可重构处理器的并行处理方法,其特征在于:所述CONFIGIR配置信息中每条配置信息在构建时,不会填入所有的信息,其中每个操作数的初始地址信息为缺省值。
8.如权利要求7所述的一种用于多层次异构结构的可重构处理器的并行处理方法,其特征在于:于步骤五中,引入空函数的方法,将地址从IR外部获取后,于IR中添加一个空函数,以函数参数传递的方式将地址信息读入到IR中。
9.如权利要求8所述的一种用于多层次异构结构的可重构处理器的并行处理方法,其特征在于:访存信息的获取还包括迭代增量的计算。
10.如权利要求1所述的一种用于多层次异构结构的可重构处理器的并行处理方法,其特征在于:于步骤六中,在所述CONFIGIR配置信息构建完毕后,调用相关的规则将其翻译成二进制机器代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510673764.1A CN105302525B (zh) | 2015-10-16 | 2015-10-16 | 用于多层次异构结构的可重构处理器的并行处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510673764.1A CN105302525B (zh) | 2015-10-16 | 2015-10-16 | 用于多层次异构结构的可重构处理器的并行处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302525A true CN105302525A (zh) | 2016-02-03 |
CN105302525B CN105302525B (zh) | 2018-01-05 |
Family
ID=55199829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510673764.1A Active CN105302525B (zh) | 2015-10-16 | 2015-10-16 | 用于多层次异构结构的可重构处理器的并行处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302525B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487838A (zh) * | 2015-11-23 | 2016-04-13 | 上海交通大学 | 一种动态可重构处理器的任务级并行调度方法与系统 |
CN105867994A (zh) * | 2016-04-20 | 2016-08-17 | 上海交通大学 | 一种用于粗粒度可重构架构编译器的指令调度优化方法 |
CN110825436A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 应用于人工智能芯片的计算方法和人工智能芯片 |
CN112433773A (zh) * | 2020-12-14 | 2021-03-02 | 清华大学 | 可重构处理器的配置信息记录方法及装置 |
CN112631610A (zh) * | 2020-11-30 | 2021-04-09 | 上海交通大学 | 一种针对粗粒度可重构结构的数据重用消除访存冲突方法 |
CN114168526A (zh) * | 2017-03-14 | 2022-03-11 | 珠海市芯动力科技有限公司 | 可重构并行处理 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005031493A2 (fr) * | 2003-09-30 | 2005-04-07 | Commissariat A L'energie Atomique | Composant a architecture reconfigurable dynamiquement |
US20060277391A1 (en) * | 2005-06-01 | 2006-12-07 | Microsoft Corporation | Execution model for parallel computing |
CN102043761A (zh) * | 2011-01-04 | 2011-05-04 | 东南大学 | 一种基于可重构技术的傅立叶变换的实现方法 |
CN102340668A (zh) * | 2011-09-30 | 2012-02-01 | 上海交通大学 | 一种基于可重构技术的mpeg2亮度插值的实现方法 |
CN104375805A (zh) * | 2014-11-17 | 2015-02-25 | 天津大学 | 采用多核处理器仿真可重构处理器并行计算过程的方法 |
-
2015
- 2015-10-16 CN CN201510673764.1A patent/CN105302525B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005031493A2 (fr) * | 2003-09-30 | 2005-04-07 | Commissariat A L'energie Atomique | Composant a architecture reconfigurable dynamiquement |
US20060277391A1 (en) * | 2005-06-01 | 2006-12-07 | Microsoft Corporation | Execution model for parallel computing |
CN102043761A (zh) * | 2011-01-04 | 2011-05-04 | 东南大学 | 一种基于可重构技术的傅立叶变换的实现方法 |
CN102340668A (zh) * | 2011-09-30 | 2012-02-01 | 上海交通大学 | 一种基于可重构技术的mpeg2亮度插值的实现方法 |
CN104375805A (zh) * | 2014-11-17 | 2015-02-25 | 天津大学 | 采用多核处理器仿真可重构处理器并行计算过程的方法 |
Non-Patent Citations (1)
Title |
---|
楼杰超: "异构粗粒度可重构处理器的自动任务编译器框架设计", 《微电子学与计算机》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487838A (zh) * | 2015-11-23 | 2016-04-13 | 上海交通大学 | 一种动态可重构处理器的任务级并行调度方法与系统 |
CN105487838B (zh) * | 2015-11-23 | 2018-01-26 | 上海交通大学 | 一种动态可重构处理器的任务级并行调度方法与系统 |
CN105867994A (zh) * | 2016-04-20 | 2016-08-17 | 上海交通大学 | 一种用于粗粒度可重构架构编译器的指令调度优化方法 |
CN114168526A (zh) * | 2017-03-14 | 2022-03-11 | 珠海市芯动力科技有限公司 | 可重构并行处理 |
CN114168526B (zh) * | 2017-03-14 | 2024-01-12 | 珠海市芯动力科技有限公司 | 可重构并行处理 |
CN110825436A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 应用于人工智能芯片的计算方法和人工智能芯片 |
CN110825436B (zh) * | 2018-08-10 | 2022-04-29 | 昆仑芯(北京)科技有限公司 | 应用于人工智能芯片的计算方法和人工智能芯片 |
CN112631610A (zh) * | 2020-11-30 | 2021-04-09 | 上海交通大学 | 一种针对粗粒度可重构结构的数据重用消除访存冲突方法 |
CN112631610B (zh) * | 2020-11-30 | 2022-04-26 | 上海交通大学 | 一种针对粗粒度可重构结构的数据重用消除访存冲突方法 |
CN112433773A (zh) * | 2020-12-14 | 2021-03-02 | 清华大学 | 可重构处理器的配置信息记录方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105302525B (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302525B (zh) | 用于多层次异构结构的可重构处理器的并行处理方法 | |
CN105051680B (zh) | 用于在处理器内部的硬件并行执行道上处理指令的处理器及方法 | |
Liu et al. | Speculative segmented sum for sparse matrix-vector multiplication on heterogeneous processors | |
Saltz et al. | A manual for the CHAOS runtime library | |
Beletska et al. | Coarse-grained loop parallelization: Iteration space slicing vs affine transformations | |
Ploskas et al. | Efficient GPU-based implementations of simplex type algorithms | |
CN105074657B (zh) | 并行管道中的发散分支的硬件和软件解决方案 | |
Brown et al. | Paraphrasing: Generating parallel programs using refactoring | |
Nabi et al. | FPGA design space exploration for scientific HPC applications using a fast and accurate cost model based on roofline analysis | |
CN104572109A (zh) | 两级分区两次缩聚并行计算系统开发方法及并行计算系统 | |
CN105404611A (zh) | 一种基于矩阵模型的多计算引擎的自动选择方法 | |
CN104111967B (zh) | 处理内核调用的方法、系统、处理器和计算机可读介质 | |
JPH07319710A (ja) | コンパイル処理方法 | |
CN107423030A (zh) | 基于fpga异构平台的马尔科夫蒙特卡洛算法加速方法 | |
Grelck et al. | Merging compositions of array skeletons in SAC | |
Fagin et al. | The performance of parallel Prolog programs | |
Gross et al. | Mapping a single-assignment language onto the Warp systolic array | |
Kjolstad et al. | A transformation to convert packing code to compact datatypes for efficient zero-copy data transfer | |
Jacob et al. | Raising the Level of Abstraction of GPU-programming. | |
Lee | Techniques for compiling programs on distributed memory multicomputers | |
Ben-Asher et al. | Using memory profile analysis for automatic synthesis of pointers code | |
Boyer et al. | Elements of design for containers and solutions in the linbox library | |
El-Zawawy | Frequent statement and de-reference elimination for distributed programs | |
Galanis et al. | A partitioning methodology for accelerating applications in hybrid reconfigurable platforms | |
Mego et al. | A tool for VLIW processors code optimizing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |