基于主辅数据结构的CPU-GPU合作计算方法技术

技术编号:4064852 阅读:237 留言:0更新日期:2012-04-11 18:40
本发明专利技术的实施例提出了一种基于主辅数据结构的CPU-GPU合作计算方法,包括以下步骤:根据处理的对象,确定主辅数据内容并进行初始化;启动CPU计算线程和GPU计算线程;读入待处理的数据,经过预处理后存储至主辅数据结构中,同时所述CPU计算线程和GPU计算线程将对主辅数据结构中的数据进行处理,直到没有数据为止。本发明专利技术提出的方案,能有效管理并行数据,使得GPGPU平台在处理有效计算量分布不平衡的数据库时,能够确保GPU上各线程负载平衡。本发明专利技术提出的上述方案,通过设计简单的、可重复使用的线程划分方法,使得CPU和GPU能够进行完全的并行计算,保持较高的利用率。

【技术实现步骤摘要】

本专利技术涉及计算机领域,具体而言,本专利技术涉及基于主辅数据结构的CPU-GPU合 作计算方法。
技术介绍
高效能运算领域要达到极高效率的输出,通常必须透过大量CPU进行连结, CPU (Central Processing Unit,中央处理器)是控制电脑运行的核心,利用平行分散 处理进行运算,但这种结构不仅程序开发难度高,硬件体积大,功耗更是惊人。GPGPU (General-Purpose Computing on Graphics Processing Units,通用计算图形处理器)概 念的兴起,也是为了弥补这些传统CPU架构上的弱点。一般单颗GPU(Graphics Processing Unit,图形处理器)通常会内建数十到数百 个可程序化处理单元,只要透过正确的方法利用这些专精于平行运算的处理单元,便可在 某些应用层面取得非常大的运算效能增长。也因为这样的特性,未来GPGPU也被视为云端 运算,甚至是人工智能的可能解决方案。截至目前为止,GPGPU在服务器应用方面要比一般消费性运算更受使用者肯定,如 在生物医学、气象模拟、电影工业、专业图形处理等应用领域中,由GPGPU运算即能节省许 多运算时间,但在消费性应用方面,GPGPU所带来的好处相较于专业应用则较不明显。GPGPU的特点是CPU作为主控者,运行操作系统、处理输入输出、控制程序流程; GPU作为协处理器,运行需要大量计算的核心函数。GPGPU面临两个问题1)GPU上线程负载平衡问题。由于各线程使用相同的代码, 造成了每个线程的实际工作量都一样,均为最大有效计算工作量。而实际上,每个线程有效 的工作量可能并不一样,因此会造成GPU负载不平衡。2) CPU和GPU的利用率问题。CPU和 GPU间的合作计算方式将直接影响它们的利用率。在同步调用模式下,CPU调用GPU后必须 等待其计算完毕才能进行下一步工作,使得CPU的利用率比较低;在异步调用模式下,CPU 虽然能够在调用GPU后立即返回,在GPU进行计算的同时进行并行计算,但是此并行计算量 的大小很难确定。如果CPU并行计算量过小,CPU的利用率仍然很低;如果CPU并行计算量 过大,以至于GPU计算完成后需要等待CPU给其分配新的计算任务,就会导致GPU的利用率 低;只有CPU并行计算量所需的时间恰好和GPU计算时间相同时,才能同时得到较高的CPU 和GPU利用率,但要精确的确定此CPU并行计算量是非常困难的。因此,有必要提出一种有效的技术方案,以解决CPU-GPU合作计算的问题。
技术实现思路
本专利技术的目的旨在至少解决上述技术缺陷之一,特别是提出一种有效的CPU-GPU 合作计算方案,以提高计算机的高效能运算。为了达到上述目的,本专利技术的实施例提出了一种主辅数据结构的CPU-GPU合作计 算方法,包括以下步骤 根据处理的对象,确定主辅数据结构并进行初始化; 读入待处理的数据,直到没有数据为止,并向CPU计算线程和GPU计算线程发出数 据读入结束信号RF ;所述CPU计算线程和所述GPU计算线程对读入的数据进行处理。根据本专利技术的实施例,读入待处理的数据包括读入一个单位数据,将其预处理为主数据和辅助数据,分别存储至相应的主数据 管理区间和辅助数据结构中,并保持映射关系。根据本专利技术的实施例,所述主数据为所述处理的对象的单位数据的实体内容,所 述辅助数据为描叙主数据的信息。根据本专利技术的实施例,所述CPU计算线程对读入的数据进行处理包括以下步骤步骤A 判断是否获得RF信号,如果获得,则设置标记FL为真,否则设置为假;步骤B 依次扫描主数据管理区间,对满足CPU处理条件的区间,调用CPU进行处 理,同时维护辅助数据结构;步骤C 判断标记FL的值,如果为真,则结束,否则继续执行步骤A。根据本专利技术的实施例,所述GPU计算线程对读入的数据进行处理包括以下步骤步骤D 判断是否获得RF信号,如果获得,则设置标记FL为真,否则设置为假;步骤E 依次扫描主数据管理区间,对满足CPU处理条件的区间,调用CPU进行处 理,同时维护辅助数据结构;步骤F 判断标记FL的值,如果为真,则结束,否则继续执行步骤D。本专利技术提出的上述方案,有效管理并行数据,使得GPGPU平台在处理有效计算量 分布不平衡的数据库时,能够确保GPU上各线程负载平衡。本专利技术提出的上述方案,通过设 计简单的、可重复使用的线程划分方法,使得CPU和GPU能够进行完全的并行计算,保持较 高的利用率。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中图1为本专利技术实施例主辅数据结构CPU-GPU合作计算方法的流程图;图2为主辅助数据结构示意图;图3为数据读入线程流程图;图4为CPU计算线程流程图;图5为主控GPU计算线程流程图。具体实施例方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。为了实现本专利技术之目的,本专利技术公开了 一种主辅数据结构的CPU-GPU合作计算 方法,包括以下步骤根据处理的对象,确定主辅数据结构并进行初始化;读入待处理的数 据,直到没有数据为止,并向CPU计算线程和GPU计算线程发出数据读入结束信号RF ;所述 CPU计算线程和所述GPU计算线程对读入的数据进行处理。如图1所示,为本专利技术实施例主辅数据结构的CPU-GPU合作计算方法的流程图,包 括以下步骤SllO 根据处理的对象,确定主辅数据结构并进行初始化。在步骤SllO中,确定主辅数据结构并进行初始化。通常,主数据为所述处理的对 象的单位数据的实体内容,辅助数据为描叙主数据的信息。S120:读入所有待处理的数据,并向CPU计算线程和GPU计算线程发出数据读入结 束信号RF。在步骤S120中,读入待处理的数据,直到没有数据为止,并向CPU计算线程和GPU 计算线程发出数据读入结束信号RF。具体而言,读入待处理的数据包括读入一个单位数据,将其预处理为主数据和辅助数据,分别存储至相应的主数据 管理区间和辅助数据结构中,并保持映射关系。S130 =CPU计算线程和GPU计算线程对读入的数据进行处理。在步骤S130中,CPU计算线程和所述GPU计算线程对读入的数据进行处理,具体 而言,CPU计算线程对读入的数据进行处理包括以下步骤步骤A 判断是否获得RF信号,如果获得,则设置标记FL为真,否则设置为假;步骤B 依次扫描主数据管理区间,对满足CPU处理条件的区间,调用CPU进行处 理,同时维护辅助数据结构;步骤C 判断标记FL的值,如果为真,则结束,否则继续执行步骤A。GPU计算线程对读入的数据进行处理包括以下步骤步骤E 判断是否获得RF信号,如果获得,则设置标记FL为真,否则设置为假;步骤F 依次扫描主数据管理区间,对满足CPU处理条件的区间,调用CPU进行处 理,同时维护辅助数据结构;步骤G 判断标记FL的值,如果为真,则结束,否则继续执行步骤E。为了便于本文档来自技高网
...

【技术保护点】
一种主辅数据结构的CPU-GPU合作计算方法,其特征在于,包括以下步骤:根据处理的对象,确定主辅数据内容并进行初始化;启动CPU计算线程和GPU计算线程;读入待处理的数据,经过预处理后存储至主辅数据结构中,同时所述CPU计算线程和GPU计算线程将对主辅数据结构中的数据进行处理,直到没有数据为止。

【技术特征摘要】

【专利技术属性】
技术研发人员:安虹姚平刘谷徐光许牧李小强韩文廷张倩徐恒阳
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:34[中国|安徽]

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

1