CN102981836B - 异构系统的编译方法和编译器 - Google Patents

异构系统的编译方法和编译器 Download PDF

Info

Publication number
CN102981836B
CN102981836B CN201210438958.XA CN201210438958A CN102981836B CN 102981836 B CN102981836 B CN 102981836B CN 201210438958 A CN201210438958 A CN 201210438958A CN 102981836 B CN102981836 B CN 102981836B
Authority
CN
China
Prior art keywords
system service
statement
program
main core
information data
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.)
Active
Application number
CN201210438958.XA
Other languages
English (en)
Other versions
CN102981836A (zh
Inventor
何王全
文延华
刘勇
方燕飞
权建校
王珊珊
毛兴权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201210438958.XA priority Critical patent/CN102981836B/zh
Publication of CN102981836A publication Critical patent/CN102981836A/zh
Application granted granted Critical
Publication of CN102981836B publication Critical patent/CN102981836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

一种异构系统的编译方法和编译器,其中,所述的异构系统的编译方法包括:识别系统服务语句,分离计算语句和所述系统服务语句,对所述系统服务语句进行标识;对系统服务语句进行格式解析,收集系统服务信息数据;在从核程序中生成第一语句,将所述系统服务信息数据打包传送到主核端I/O缓冲,并向主核端发送服务请求;在主核程序中生成第二语句,包括从核计算加载服务程序和与所述服务请求相应的系统服务程序;在所述主核程序中生成第三语句,根据所述标识对所述系统服务程序进行轮询处理,并依据所述主核端I/O缓冲中的数据处理所述系统服务程序。本发明的异构系统的编译方法和编译器,在异构系统上实现了用户层同构视角的编程。

Description

异构系统的编译方法和编译器
技术领域
本发明涉及编译方法和编译器,特别涉及异构系统的编译方法和编译器。
背景技术
异构系统是由功能和性能相异的处理器通过一定的互连结构连接起来构成的计算系统,异构系统一般由通用微处理器和专用加速处理器构成,在异构系统中,需要使用通用微处理器对加速器进行运行控制和管理,构成主从式架构,通用微处理器即为主核,加速器即为从核。按照主核和从核的集成方式可以分为芯片级和设备级。芯片级异构系统在芯片内部面向不同的指令集成了不同类型的计算部件,典型的例子有IBM的Cell和AMD的Fusion。异构芯片系统兼具多方面的优势:一方面,通用微处理器标量计算,提供通用的计算能力,使得异构系统可以适应多方面的应用;另一方面,专用的加速器面向某些特定的领域可以提供强大的计算性能,且能效比较高,使得异构系统比同构系统拥有更高的性能和效能,因此,使用异构体系结构构造大规模计算系统已成为高性能计算领域的重要发展趋势。
异构系统中不同的处理器往往有着不同的性能优化模型,很难找到一种通用的策略高效地利用各种处理器,因此,异构系统的编程问题已经成为影响异构系统发展的重要瓶颈。学术界和业界对异构系统的编程进行了深入研究,提出了多种解决方案,包括:新型编程语言,新型编程语言为针对异构系统全新设计的编程语言,也包括在已有语言的基础上扩充关键字得到的语言;基于编译指导的语言扩展,指在已有的编程语言的基础上扩充编译指导命令,或基于已有的编译指导命令通过开发编译器以支持异构系统的编程;基于库的语言扩展,其通过为程序员提供一组库函数调用接口,将指定的运算映射到加速器上执行,其优点在于库函数和编程语言的绑定较松,易于移植到不同的异构平台下运行。
但是,现有技术中,异构系统上的编程方法都是采用异构视角的加速编程模式,描述为运行于通用微处理器上的主核代码和运行于专用加速器上的从核代码,给应用软件敏捷编程带来了难度,程序员往往需要了解复杂的硬件细节才能有效开发加速器的计算潜力,这对程序员提出了很大的挑战。且大量已有的应用程序无法快速有效地移植到异构系统上运行。
其他有关异构系统的编译方法还可以参考公开号为CN 101441569的中国发明专利申请,其公开了一种基于异构可重构体系结构面向任务流的编译方法。
发明内容
本发明解决的问题是在异构系统上实现用户层同构视角的编程。
为解决上述问题,本发明提供了一种异构系统的编译方法,包括:识别源程序中的系统服务语句,分离计算语句和所述系统服务语句,对所述系统服务语句进行标识;对所述系统服务语句进行格式解析,收集系统服务信息数据;在从核程序中生成第一语句,所述第一语句将所述系统服务信息数据打包传送到主核端I/O缓冲,并向主核端发送服务请求;在主核程序中生成第二语句,所述第二语句包括从核计算加载服务程序和与所述服务请求相应的系统服务程序;在所述主核程序中生成第三语句,所述第三语句根据所述标识对所述系统服务程序进行轮询处理,并依据所述主核端I/O缓冲中的系统服务信息数据处理所述系统服务程序。
可选的,还包括:根据源程序中的用户编译指导命令对所述从核程序中的连续同类型系统服务语句进行聚合处理。
可选的,所述的对系统服务语句进行标识包括:用“文件名+文件路径名”生成的哈希值作为所述系统服务语句的一级特征值;用系统服务类型作为所述系统服务语句的二级特征值;用系统服务语句的行号作为所述系统服务语句的三级特征值。
可选的,还包括:根据所述标识分析所述系统服务语句的服务类型和服务顺序,对所述从核程序中的连续同类型系统服务语句分析,进行聚合处理。
可选的,所述的将系统服务信息数据打包传送到主核端I/O缓冲包括:先将主存中的系统服务信息数据拷贝到主存缓冲,然后将主存缓冲中的数据批量拷贝到主存I/O缓冲。
可选的,所述的将系统服务信息数据打包传送到主核端I/O缓冲为将主存中的系统服务信息数据拷贝到主核端暂存器(SPM:Scratch-Pad Memory)缓冲。
可选的,还包括对主核程序和从核程序进行编译和链接,生成可执行代码。
相应的,本发明还提供了一种异构系统的编译器,包括:识别单元,适于对源程序进行语法分析,识别源程序中的系统服务语句,并分离计算语句和所述系统服务语句,对所述系统服务语句进行标识;解析单元,适于对所述系统服务语句进行格式解析,并收集系统服务信息数据;调度单元,适于在从核程序中生成第一语句,所述第一语句将解析单元收集的所述系统服务信息数据打包传送到主核端I/O缓冲,并向主核端发送服务请求;协调单元,适于在调度单元在从核程序中生成第一语句,向主核端发送服务请求时,在主核程序中生成第二语句,所述第二语句包括从核计算加载服务程序和与所述服务请求相应的系统服务程序;处理单元,适于在所述主核程序中生成第三语句,所述第三语句根据所述标识对所述系统服务程序进行轮询处理,并依据所述主核端I/O缓冲中的系统服务信息数据处理所述系统服务程序。
可选的,还包括第一优化单元,适于根据源程序中的用户编译指导命令对所述从核程序中的连续同类型系统服务语句进行聚合处理。
可选的,所述的识别单元对所述系统服务语句进行标识包括:用“文件名+文件路径名”生成的哈希值作为所述系统服务语句的一级特征值;用系统服务类型作为所述系统服务语句的二级特征值;用系统服务语句的行号作为所述系统服务语句的三级特征值。
可选的,还包括第二优化单元,适于根据所述标识分析所述系统服务语句的服务类型和服务顺序,对所述从核程序中的连续同类型系统服务语句分析,进行聚合处理。
可选的,所述的调度单元将解析单元收集的所述系统服务信息数据打包传送到主核端I/O缓冲包括:先将主存中的系统服务信息数据拷贝到主存缓冲,然后将主存缓冲中的数据批量拷贝到主存I/O缓冲。
可选的,所述的调度单元将解析单元收集的所述系统服务信息数据打包传送到主核端I/O缓冲为将主存中的系统服务信息数据拷贝到主核端暂存器缓冲。
可选的,还包括编译链接单元,适于在主核程序中生成第三语句后,对主核程序和从核程序进行编译和链接,生成可执行代码。
与现有技术相比,本发明技术方案提出了一种异构系统的编译方法。上述技术方案中,异构环境下,编译系统编译用户源程序,所述的源程序可以为用户层同构视角的编程程序,也可以为现有运行于通用处理上的并行应用程序。编译系统首先通过语法分析,识别源程序中的关键字,区分计算语句和系统服务语句,并对系统服务语句进行标识;对所述系统服务语句进行格式解析,收集系统服务信息;在从核程序将所述系统服务信息数据打包传送到主核端I/O缓冲,向主核端发送服务请求,并在主核程序中生成与所述系统服务请求相应的系统服务程序;再在主核程序中生成根据所述标识对所述系统服务程序进行轮询处理,并依据所述主核端I/O缓冲中的数据处理所述系统服务程序的语句。通过上述编译方法,自动分析、分离、变换出计算语句和系统服务语句,然后隐式地分配从核运行计算语句,分配主核运行系统服务语句。本技术方案在异构系统上,允许用户在用户层采用同构视角的编程方法,有效提升了异构系统的可用性,降低了异构系统的编程难度;同时还可以通过本技术方案将现有通用处理器上的并行应用程序能够快速移植到异构系统上,解决遗产代码的可移植性问题。
进一步的,本发明技术方案还可以根据源程序中的用户编译指导命令对从核程序中的连续同类型系统服务语句进行聚合处理,若程序员没有指示对同类型系统服务语句进行聚合处理,本技术方案可以根据对每一个系统服务语句进行的唯一标识,分析所述系统服务语句的服务类型和服务顺序,对从核代码中的连续同类型服务语句分析,自动进行聚合处理,达到提高效率,节省开销的目的。
附图说明
图1是本发明实施例的异构系统的编译方法的流程示意图;
图2是本发明实施例的异构系统的编译器的结构示意图。
具体实施方式
现有技术中,异构系统上的编程方法都是采用异构视角的加速编程模式,给软件编程带来了难度,且大量已有的应用程序无法快速有效地移植到异构系统上运行。
本发明技术方案提供了一种异构系统的编译方法,包括:识别源程序中的系统服务语句,分离计算语句和所述系统服务语句,对所述系统服务语句进行标识;对所述系统服务语句进行格式解析,收集系统服务信息数据;在从核程序中生成第一语句,所述第一语句将所述系统服务信息数据打包传送到主核端I/O缓冲,并向主核端发送服务请求;在主核程序中生成第二语句,所述第二语句包括从核计算加载服务程序和与所述服务请求相应的系统服务程序;在所述主核程序中生成第三语句,所述第三语句根据所述标识对所述系统服务程序进行轮询处理,并依据所述主核端I/O缓冲中的系统服务信息数据处理所述系统服务程序。本技术方案在异构系统上,允许用户在用户层采用同构视角的编程方法,有效提升了异构系统的可用性;同时还可以通过本技术方案将现有通用处理器上的并行应用程序快速移植到异构系统上,解决遗产代码的可移植性问题。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图和实施例对本发明的具体实施方式做详细的说明。
请参考图1,其示出了本发明技术方案一实施例的异构系统的编译方法的基本流程,所述的异构系统的编译方法包括:
步骤S101,识别源程序中的系统服务语句,分离计算语句和所述系统服务语句,对所述系统服务语句进行标识。
编译器首先扫描源程序,对源程序进行语法分析,识别关键字,区分计算语句和系统服务语句。所述的源程序可以为用户在用户层采用同构视角的编程方法获得的程序,也可以为现有的在通用处理器上的并行应用程序。由于在异构系统中,从核也就是加速器端,一般只注重运算能力,而尽量减少控制部件的逻辑开销,其上一般不运行操作系统或者运行轻量级的操作系统,类似I/O等系统服务操作都是通过主核也就是通用处理器端代理完成,所以区分计算语句和系统服务语句是为后续隐式地分配从核运行计算语句和主核运行系统服务语句做准备。举例来说,下述同构编程的应用程序:
主程序中,既包含计算语句Ker_func(),又包含系统服务语句Service(),编译器首先通过语法分析,区分出系统服务类语句和计算语句,并进行分离。然后对系统服务语句,也就是Service()语句,进行标识。
在本实施例中采用多级识别策略来对系统服务语句进行标识,以对每一条系统服务语句进行唯一的标识,包括:
用“文件名+文件路径名”生成的哈希值作为所述系统服务语句的一级特征值;
用系统服务类型作为所述系统服务语句的二级特征值;
用系统服务语句的行号作为所述系统服务语句的三级特征值。
哈希算法是将单向数学函数应用到任意长度的数据得到固定大小的数值,将任意长度的二进制值映射为固定长度的较小二进制值的,这个小的二进制值为哈希值,如果输入数据中有变化,则哈希值也会发生变化。本实施例中,采用“文件名+文件路径名”生成哈希值作为一级特征值,以确保不同的源文件具有不同的一级特征值;用系统服务类型,例如I/O操作、打印操作等,作为所述系统服务语句的二级特征值;用系统服务语句的行号作为所述系统服务语句的三级特征值;采用这种多级识别策略达到每一条系统服务语句都具有唯一的标识的目的。所述的标识的作用就是在后续步骤中用以区分各类服务类型和同类服务类型的排队顺序。
步骤S102,对所述系统服务语句进行格式解析,收集系统服务信息数据。
所述的对系统服务语句进行格式解析,是对系统服务语句的具体操作进行解析,并分析涉及到的系统服务信息数据,对服务信息数据进行收集,包含线程私有变量、数组等信息。
步骤S103,在从核程序中生成第一语句,所述第一语句将所述系统服务信息数据打包传送到主核端I/O缓冲,并向主核端发送服务请求。
举例来说,对于步骤S101中的同构应用源程序,在从核程序Ker_func()中调用内部函数接口,以将上述系统服务程序进行格式解析后收集到的系统服务信息数据打包传送到主核端I/O缓冲,并向主核端发送服务请求,如下:
在一实施例中,所述的将系统服务信息数据打包传送到主核端I/O缓冲包括:先将主存中的系统服务信息数据拷贝到主存缓冲,然后将主存缓冲中的数据批量拷贝到主存I/O缓冲。此种方法适用于大多数以通用处理器为主核的异构系统,通用性好。
在另一实施例中,所述的将系统服务信息数据打包传送到主核端I/O缓冲包括:先将主存中的系统服务信息数据拷贝到主核端暂存器缓冲,然后与暂存器中的数据统一处理。此种方法适用于以具有暂存器(SPM:Scratch-PadMemory)的通用处理器为主核的异构系统,例如具有SPM+DRAM存储架构的处理器,效率更高。
步骤S104,在主核程序中生成第二语句,所述第二语句包括从核计算加载服务程序和与所述服务请求相应的系统服务程序。
所述从核端一般不运行操作系统,在需要系统服务操作时,通过向主核发送服务请求通过主核代理完成,因此需要在主核程序中生成从核计算加载服务程序,在从核程序中生成向主核端发送服务请求的语句时,需要相应的在主核程序中生成相应的系统服务程序。
步骤S105,在所述主核程序中生成第三语句,所述第三语句根据所述标识对所述系统服务程序进行轮询处理,并依据所述主核端I/O缓冲中的系统服务信息数据处理所述系统服务程序。
本实施例中,采用多级识别策略对所述的系统服务程序进行了唯一的标识,包括采用“文件名+文件路径名”生成哈希值作为一级特征值,采用系统服务类型作为所述系统服务语句的二级特征值,采用系统服务语句的行号作为所述系统服务语句的三级特征值。在本步骤中,根据所述的标识可以确定系统服务语句的系统服务类型以及服务请求的顺序,通过所述标识对系统服务程序进行轮询处理,并依据所述主核端I/O缓冲中的数据执行系统服务程序。所述的轮询处理是针对每个服务请求的进程进行依次询问是否需要处理,若是则处理,若否则询问下一进程,循环进行。
步骤S106,对从核程序中的连续同类型系统服务语句进行聚合处理。
在从核程序中可能存在连续的同类型服务操作,编译器为此提供了优化步骤,对连续同类型系统服务语句进行聚合处理,达到提高效率,节省开销的目的。在本实施例中,当在源程序中程序员明确指示需要对同类型的系统服务类语句进行聚合处理时,并提供了编译指导命令,例如对于连续多条的同类型系统服务语句,在其前添加“#pragma ccc service_pack_begin”,在其后添加“#pragma ccc service_pack_end”编译指导命令,编译器可以以此为依据对同类型的系统服务类语句进行聚合处理。
在本发明的其他实施例中,程序员没有指示对同类型的系统服务类语句进行聚合处理,编译器可以根据对每一个系统服务类语句进行的唯一标识,分析系统服务类语句的服务类型和服务顺序,对从核代码中的连续同类型服务语句分析,自动进行聚合处理。
步骤S107,对主核程序和从核程序进行编译和链接,生成可执行代码。
编译器分离变换出主核程序和从核程序后,经底层主核编译器对主核程序进行编译,底层从核编译器对从核程序进行编译生成目标码。进一步的,将目标程序与主核端库函数、从核端库函数和系统库函数等进行链接,生成可执行的代码。
对应于上述编译方法,本实施例还提供一种编译器,请参考图2,图2为本实施例的编译器的结构示意图。所述编译器包括:识别单元201,解析单元202,调度单元203,协调单元204,处理单元205,第一优化单元206和编译链接单元207。
所述识别单元201,用于对源程序进行语法分析,识别源程序中的系统服务语句,并分离计算语句和所述系统服务语句,对所述系统服务语句进行标识。所述的标识单元201对所述系统服务语句进行标识包括:用“文件名+文件路径名”生成的哈希值作为所述系统服务语句的一级特征值;用系统服务类型作为所述系统服务语句的二级特征值;用系统服务语句的行号作为所述系统服务语句的三级特征值。
所述解析单元202,用于对所述系统服务语句进行格式解析,并收集系统服务信息数据。
所述调度单元203,用于在从核程序中生成第一语句,所述第一语句将解析单元202收集的所述系统服务信息数据打包传送到主核端I/O缓冲,并向主核端发送服务请求。所述调度单元203将所述系统服务信息数据打包传送到主核端I/O缓冲包括:先将主存中的系统服务信息数据拷贝到主存缓冲,然后将主存缓冲中的数据批量拷贝到主存I/O缓冲。在本发明的其他实施例中,所述调度单元203将所述系统服务信息数据打包传送到主核端I/O缓冲为将主存中的系统服务信息数据拷贝到主核端暂存器缓冲。
所述协调单元204,用于在调度单元203在从核程序中生成第一语句,向主核端发送服务请求时,在主核程序中生成第二语句,所述第二语句包括从核计算加载服务程序和与所述服务请求相应的系统服务程序。
所述处理单元205,用于在所述主核程序中生成第三语句,所述第三语句根据所述标识对所述系统服务程序进行轮询处理,并依据所述主核端I/O缓冲中的数据处理所述系统服务程序。
所述第一优化单元206,用于根据源程序中的用户编译指导命令对从核程序中的连续同类型系统服务语句进行聚合处理。在本发明的其他实施例中,还包括第二优化单元(未示出),当程序员没有指示对同类型的系统服务类语句进行聚合处理时,第二优化单元可以根据识别单元201生成的标识分析系统服务类代码的服务类型和服务顺序,对从核代码中的连续同类型服务语句分析,自动进行聚合处理。
所述编译链接单元207,用于对主核程序和从核程序进行编译和链接,生成可执行代码。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

Claims (14)

1.一种异构系统的编译方法,其特征在于,包括:
识别源程序中的系统服务语句,分离计算语句和所述系统服务语句,对所述系统服务语句进行标识;
对所述系统服务语句进行格式解析,收集系统服务信息数据;
在从核程序中生成第一语句,所述第一语句将所述系统服务信息数据打包传送到主核端I/O缓冲,并向主核端发送服务请求;
在主核程序中生成第二语句,所述第二语句包括从核计算加载服务程序和与所述服务请求相应的系统服务程序;
在所述主核程序中生成第三语句,所述第三语句根据所述标识对所述系统服务程序进行轮询处理,并依据所述主核端I/O缓冲中的系统服务信息数据处理所述系统服务程序。
2.如权利要求1所述异构系统的编译方法,其特征在于,还包括:根据源程序中的用户编译指导命令对所述从核程序中的连续同类型系统服务语句进行聚合处理。
3.如权利要求1或2所述异构系统的编译方法,其特征在于,所述的对系统服务语句进行标识包括:
用“文件名+文件路径名”生成的哈希值作为所述系统服务语句的一级特征值;
用系统服务类型作为所述系统服务语句的二级特征值;
用系统服务语句的行号作为所述系统服务语句的三级特征值。
4.如权利要求3所述异构系统的编译方法,其特征在于,还包括:根据所述标识分析所述系统服务语句的服务类型和服务顺序,对所述从核程序中的连续同类型系统服务语句分析,进行聚合处理。
5.如权利要求1所述异构系统的编译方法,其特征在于,所述的将系统服务信息数据打包传送到主核端I/O缓冲包括:先将主存中的系统服务信息数据拷贝到主存缓冲,然后将拷贝到所述主存缓冲中的所述系统服务信息数据批量拷贝到主存I/O缓冲。
6.如权利要求1所述异构系统的编译方法,其特征在于,所述的将系统服务信息数据打包传送到主核端I/O缓冲为将主存中的系统服务信息数据拷贝到主核端暂存器缓冲。
7.如权利要求1所述异构系统的编译方法,其特征在于,还包括在主核程序中生成第三语句后,对主核程序和从核程序进行编译和链接,生成可执行代码。
8.一种异构系统的编译器,其特征在于,包括:
识别单元,适于对源程序进行语法分析,识别源程序中的系统服务语句,并分离计算语句和所述系统服务语句,对所述系统服务语句进行标识;
解析单元,适于对所述系统服务语句进行格式解析,并收集系统服务信息数据;
调度单元,适于在从核程序中生成第一语句,所述第一语句将解析单元收集的所述系统服务信息数据打包传送到主核端I/O缓冲,并向主核端发送服务请求;
协调单元,适于在调度单元在从核程序中生成第一语句,向主核端发送服务请求时,在主核程序中生成第二语句,所述第二语句包括从核计算加载服务程序和与所述服务请求相应的系统服务程序;
处理单元,适于在所述主核程序中生成第三语句,所述第三语句根据所述标识对所述系统服务程序进行轮询处理,并依据所述主核端I/O缓冲中的系统服务信息数据处理所述系统服务程序。
9.如权利要求8所述的异构系统的编译器,其特征在于,还包括第一优化单元,适于根据源程序中的用户编译指导命令对所述从核程序中的连续同类型系统服务语句进行聚合处理。
10.如权利要求8或9所述的异构系统的编译器,其特征在于,所述的识别单元对所述系统服务语句进行标识包括:
用“文件名+文件路径名”生成的哈希值作为所述系统服务语句的一级特征值;
用系统服务类型作为所述系统服务语句的二级特征值;
用系统服务语句的行号作为所述系统服务语句的三级特征值。
11.如权利要求10所述的异构系统的编译器,其特征在于,还包括第二优化单元,适于根据所述标识分析所述系统服务语句的服务类型和服务顺序,对所述从核程序中的连续同类型系统服务语句分析,进行聚合处理。
12.如权利要求8所述的异构系统的编译器,其特征在于,所述的调度单元将解析单元收集的所述系统服务信息数据打包传送到主核端I/O缓冲包括:先将主存中的系统服务信息数据拷贝到主存缓冲,然后将拷贝到所述主存缓冲中的所述系统服务信息数据批量拷贝到主存I/O缓冲。
13.如权利要求8所述的异构系统的编译器,其特征在于,所述的调度单元将解析单元收集的所述系统服务信息数据打包传送到主核端I/O缓冲为将主存中的系统服务信息数据拷贝到主核端暂存器缓冲。
14.如权利要求8所述的异构系统的编译器,其特征在于,还包括编译链接单元,适于在主核程序中生成第三语句后,对主核程序和从核程序进行编译和链接,生成可执行代码。
CN201210438958.XA 2012-11-06 2012-11-06 异构系统的编译方法和编译器 Active CN102981836B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210438958.XA CN102981836B (zh) 2012-11-06 2012-11-06 异构系统的编译方法和编译器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210438958.XA CN102981836B (zh) 2012-11-06 2012-11-06 异构系统的编译方法和编译器

Publications (2)

Publication Number Publication Date
CN102981836A CN102981836A (zh) 2013-03-20
CN102981836B true CN102981836B (zh) 2015-08-12

Family

ID=47855901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210438958.XA Active CN102981836B (zh) 2012-11-06 2012-11-06 异构系统的编译方法和编译器

Country Status (1)

Country Link
CN (1) CN102981836B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678749A (zh) * 2017-09-29 2018-02-09 深圳市山龙智控有限公司 基于结构化语言编程的转码方法及装置
CN112445488B (zh) * 2019-09-04 2022-11-15 无锡江南计算技术研究所 异构平台下宽度非对称向量兼容性的编译处理方法和装置
CN112558977B (zh) * 2019-09-25 2022-11-15 无锡江南计算技术研究所 面向异构众核后端基于代价模型的多面体优化方法
CN110865814B (zh) * 2019-10-30 2021-11-16 上海天数智芯半导体有限公司 一种支持异构计算核架构的编译器实现方法和系统
CN117349223A (zh) * 2022-06-29 2024-01-05 中科寒武纪科技股份有限公司 片上系统、指令系统、编译系统及相关产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441569A (zh) * 2008-11-24 2009-05-27 中国人民解放军信息工程大学 基于异构可重构体系结构面向任务流的新型编译方法
CN102541614A (zh) * 2011-12-31 2012-07-04 南京师范大学 基于代码分析的计算模块输入输出数据自动解析方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100153934A1 (en) * 2008-12-12 2010-06-17 Peter Lachner Prefetch for systems with heterogeneous architectures
KR20120031756A (ko) * 2010-09-27 2012-04-04 삼성전자주식회사 Cpu와 gpu를 사용하는 이종 시스템에서 가상화를 이용한 어플리케이션 컴파일 및 실행 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441569A (zh) * 2008-11-24 2009-05-27 中国人民解放军信息工程大学 基于异构可重构体系结构面向任务流的新型编译方法
CN102541614A (zh) * 2011-12-31 2012-07-04 南京师范大学 基于代码分析的计算模块输入输出数据自动解析方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《可重构计算及可重构编译技术研究》;漆锋滨;《微电子学与计算机》;20071105;第24卷(第10期);第36-42页 *
《异构多核系统中编译器指导的I/0代理技术》;王珊珊等;《计算机工程》;20111130;第37卷(第21期);第282-284页 *

Also Published As

Publication number Publication date
CN102981836A (zh) 2013-03-20

Similar Documents

Publication Publication Date Title
US9053067B2 (en) Distributed data scalable adaptive map-reduce framework
CN102981836B (zh) 异构系统的编译方法和编译器
JP5934094B2 (ja) データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング
CN104536937B (zh) 基于cpu‑gpu异构集群的大数据一体机实现方法
JP6027021B2 (ja) アジャイル通信演算子
CN105550268A (zh) 大数据流程建模分析引擎
CN103226487A (zh) 面向异构众核多级存储结构的数据分布与局部性优化方法
CN102541612A (zh) 数据平行代码中的映射变换
KR20110105615A (ko) 단말 적합성 애플리케이션 최적화장치 및 방법
Mayer et al. OpenMP on FPGAs—a survey
US5634059A (en) Device and method for parallelizing compilation optimizing data transmission
Rodrigues et al. Triolet: A programming system that unifies algorithmic skeleton interfaces for high-performance cluster computing
Vasilev et al. Loop-invariant optimization in the Pifagor language
Rastogi et al. GFF-Ex: a genome feature extraction package
Davis et al. Paradigmatic shifts for exascale supercomputing
Ortega-Arranz et al. The all-pair shortest-path problem in shared-memory heterogeneous systems
Lezzi et al. Programming ecological niche modeling workflows in the cloud
Yan Building a productive domain-specific cloud for big data processing and analytics service
Yamato Proposal and Evaluation of GPU Offloading Parts Reconfiguration During Applications Operations for Environment Adaptation
Yamato Proposal and evaluation of adjusting resource amount for automatically offloaded applications
Zhao et al. Refactoring OpenMP code based on MapReduce model
Barve et al. A serial to parallel C++ code converter for multi-core machines
Guo et al. Efficient implementation of multi-dimensional array redistribution
Yanagawa et al. Software system of the Earth Simulator
KR20140119619A (ko) 벡터 코드 생성 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant