首页 / 专利库 / 电气元件和设备 / 价带 / 基于CPU与GPU异构平台的异构格式存储方法

基于CPU与GPU异构平台的异构格式存储方法

阅读:0发布:2021-05-20

专利汇可以提供基于CPU与GPU异构平台的异构格式存储方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种基于CPU与GPU异构平台的异构格式存储方法,该方法包括以下步骤:步骤一:检测GPU计算数据的规模及CPU与GPU之间的通讯带宽;步骤二:利用步骤一测量的结果计算分段传送的段数;步骤三:对第一段数据执行数据格式转换;步骤四:把转换完的数据上传GPU端,GPU执行计算,对下一段数据执行格式转换;步骤五:判断当前计算的数据是否是最后数据段,如果是, 算法 执行完成,否则执行步骤四。由于本发明在不同类型的处理器上采用异构格式的存储方式,主要研究CPU执行GPU端需要的格式转换带来的额外开销的隐藏方法,从而使算法在整个结点获得更高的计算吞吐量,该方法在 高性能计算 等计算密集型应用中有广泛的实用价值和应用前景。,下面是基于CPU与GPU异构平台的异构格式存储方法专利的具体信息内容。

1.一种基于 CPU 与 GPU 异构平台的异构格式存储方法,该方法是在同一个数据 CPU 计算的格式与 GPU 计算的格式不同的情况下,掩藏由 CPU 转换 GPU 端需要格式数据的额外开销的方法,其特征在于 :该方法包括以下步骤 :
步骤一 : 确定 GPU 计算数据的规模并检测 CPU 与 GPU 之间的通讯带宽 ;
步骤二 :利用步骤一测量的结果计算分段传送的段数 ;
步骤三 :对第一段数据执行格式转换 ;
步骤四 :把转换完的数据上传到 GPU 端,GPU 执行计算,同时 CPU 对下一段数据执行格式转换 ;
步骤五 :判断是否是最后数据段,如果是,算法结束 ;否则执行步骤四;
其中,步骤二所述确定 GPU 计算数据分成多段是根据步骤一测量的实际数据规模和 CPU 与GPU 之间实际通讯带宽,使该技术具有平台可移植性和数据的通用性;
步骤三所述对第一段数据执行格式转换是在步骤四和步骤五的循环体之前提前对第一段数据进行格式转换,在于保证转换格式后的数据上传到 GPU 端及在 GPU 上计算与下一段数据格式转换并行;
步骤四所述 CPU 转换完的数据上传到 GPU 端,GPU 执行计算以及 CPU 对下一段数据执行格式转换等三个操作的数据片段尺寸为程序执行过程中动态确定,这三个操作分别由不同的设备执行,所以这三个操作的并行性为自动完成,且GPU执行计算指GPU加速的算法规定的操作;
步骤五所述判断是否是最后数据段是根据程序执行过程的变量值判断循环是否执行。

说明书全文

基于CPU与GPU异构平台的异构格式存储方法

技术领域

[0001] 本发明涉及一种在CPU与GPU组成的异构平台上,CPU与GPU的体系结构差别很大,为充分的发挥两种处理器的数据处理,同一数据在CPU与GPU端分别采用不同格式存储,具体涉及一种在CPU与GPU组成的异构平台上,同一数据在CPU端和GPU端采用异构格式存储,当CPU对GPU端数据进行格式转换时,隐藏转换过程带来的额外开销的实现形式,属计算机系统结构领域。技术背景
[0002] 当前很多高性能计算机计算结点由多核CPU和GPU两种不同体系结构的处理器组成,因这两种处理器的体系结构差别较大,同一个数据结构数据的并行算法在两种处理器上获得计算吞吐量差别很大;为了保证两种处理器均获得较高的计算吞吐量,可以分别采用不同的数据结构保存数据,但这会带来CPU执行格式转换的额外开销,从而导致算法在异构结点的总计算吞吐量下降;解决这个问题的途径是隐藏CPU执行格式转换带来的额外开销,达到提高算法在异构平台总计算吞吐量的目的。
[0003] 稀疏矩阵相关操作是许多高性能应用的核心算法,如转置的稀疏矩阵乘以稀疏矩阵与稠密向量的乘积算法在科学和工程中有广泛的应用,具体包括奇异值分解或图计算等。
[0004] 随着稀疏矩阵计算规模的增加,大部分稀疏矩阵相关操作由高性能计算机并行完成;这种情况下,稀疏矩阵的转置操作会带来较大的额外开销,对转置稀疏矩阵乘以稀疏矩阵与稠密向量的乘积算法,因为同时涉及到稀疏矩阵及转置的稀疏矩阵,如果同时保存这两个矩阵会浪费大量的存储空间;Aydin Buluc等研究提供压缩稀疏格式存储可以在多核CPU平台上在转置避免的情况下为并行实现稀疏矩阵与稠密向量相乘算法及转置的稀疏矩阵与稠密向量相乘算法均提供较高、一致的计算吞吐量;陶袁等研究采用扩展压缩稀疏块存储格式在GPU平台上实现稀疏矩阵与稠密向量相乘算法及转置避免的转置稀疏矩阵与稠密向量相乘算法均提供较高、一致的计算吞吐量。但由于同一数据的两种存储格式的差异,导致在CPU和GPU组成的异构平台上同时使用这两种格式数据会带来格式转换的额外开销,所以研究有效隐藏这种格式转换的额外开销的方法以保证转置的稀疏矩阵乘以稀疏矩阵与稠密向量的乘积在CPU与GPU组成的异构平台上获得较高的计算吞吐量具有重要的意义。

发明内容

[0005] 本发明的目的是提供一种基于CPU与GPU异构平台的异构格式存储实现方法,该方法是在CPU和GPU组成的异构平台上采用异构存储格式,从而隐藏CPU执行数据格式转换带来的额外开销的方法,达到提高算法在CPU与GPU组成的异构平台总的计算吞吐量的目的。
[0006] 本发明的技术方案是:
[0007] 在CPU与GPU组成的异构平台上对于两种不同体系结构的处理器采用异构格式存储的方式,避免从CPU端向GPU端采用一次传送所有的数据,而采用分段多次传送不同段数据,在传送每段数据及GPU执行计算的同时CPU执行数据格式转换,实现往GPU端上传数据及GPU计算与CPU执行格式转换并行,从而隐藏CPU执行格式转换的额外开销,具体实现形式包括以下步骤:
[0008] 步骤一:确定GPU计算的数据规模,检测CPU与GPU之间的通讯带宽;
[0009] 步骤二:计算数据分段传送的段数;
[0010] 步骤三:对第一段数据执行数据格式转换;
[0011] 步骤四:把转换后数据上传到GPU,GPU执行计算操作,CPU对下一段数据执行格式转换;
[0012] 步骤五:判断GPU计算的数据是否是最后数据段,如果是,算法执行完成;否则执行步骤四。
[0013] 步骤二所确定GPU计算数据分成多段是根据步骤一测量的实际数据规模和CPU与GPU之间实际通讯带宽,使该技术具有平台可移植性和数据的通用性。
[0014] 步骤三所述对第一段数据执行格式转换是在步骤四和步骤五的循环体之前提前对第一段数据进行格式转换,在于保证转换格式后的数据上传到GPU端及GPU计算与CPU对下一段数据格式转换并行。
[0015] 步骤四所述CPU转换完的数据上传到GPU端,GPU执行计算以及CPU对下一段数据执行格式转换等三个操作的数据片段尺寸为程序执行过程中动态确定,这三个操作分别由不同的设备执行,所以这三个操作的并行性为自动完成,且GPU执行计算指GPU执行算法规定的操作。
[0016] 步骤五所述判断是否是最后数据段是根据程序执行过程的变量值判断循环是否执行。
[0017] 本发明具有以下优点和积极效果:
[0018] 发明是在CPU与GPU组成的异构平台上,同一个数据在CPU端与GPU端采用异构格式保存数据的情况下,隐藏CPU执行格式转换的额外开销的方法,该技术与现有技术比,其主要优点是:
[0019] (1)、在CPU端与GPU端分别采用不同格式保存数据,使该算法在两种不同类型的处理器上均能获得较高的计算吞吐量;
[0020] (2)、当格式转换后数据上传到GPU端及GPU执行计算的同时,CPU并行执行数据格式转换,达到隐藏数据格式转换额外开销的目的。附图说明
[0021] 图1是本发明CPU与GPU组成的异构平台采用异构格式,从而隐藏CPU执行格式转换额外开销的流程图
[0022] 图2是本发明CPU与GPU组成的异构平台采用异构格式,实现转置的稀疏矩阵乘以稀疏矩阵与稠密向量乘积算法的流程示意图。

具体实施方式

[0023] 为使本发明的目的、技术方案和优点表达得更清楚明白,下面结合附图及具体实例对本发明再作进一步详细说明。
[0024] 如图1所示:本发明是CPU与GPU组成的异构平台上针对不同类型处理器采用异构格式存储的情况下,隐藏CPU执行格式转换的额外开销的实现方法,其中CPU执行格式转换采用多线程并行实现,具体方法包括以下步骤:
[0025] 步骤一:确定GPU计算数据的规模并检测CPU与GPU之间的通讯带宽;
[0026] 其中,步骤一所述的主要功能包括检测GPU计算的数据规模及CPU与GPU之间的通讯带宽。为隐藏CPU执行数据格式转换的额外开销,把GPU计算的数据按大小分成多段,采用往GPU端上传转换后的数据及GPU计算与CPU对下一段数据格式转换并行执行;本步骤确定需要GPU计算数据的规模及CPU上传数据到GPU的通讯带宽。
[0027] 步骤二:计算GPU分段计算段数;
[0028] 其中,步骤二所述的主要功能是利用步骤一的测量结果计算数据分段的段数,如果需要GPU加速的数据规模小于一定阈值,则采用一次全部传送和执行,即不采用CPU执行多段数据格式转换与往GPU端多段上传数据和GPU计算并行执行的情况;
[0029] 步骤三:对第一段执行数据格式转换;
[0030] 其中,步骤三所述的主要功能是对GPU计算的第一段数据执行格式转换;无论对需要GPU加速的数据采用几段格式转换,第一段数据格式转换延迟无法与上传GPU端其他段数据的延迟隐藏;
[0031] 步骤四:把转换完的数据上传到GPU端,GPU执行计算,CPU对下一段数据执行格式转换;
[0032] 其中,步骤四所述的主要功能为把对完成格式转换的数据上传到GPU端、GPU执行计算操作以及CPU对下一段数据执行格式转换;这三个操作中上传数据到GPU端及GPU执行计算操作为串行操作,都是对当前的数据段操作,但与CPU对下一段数据执行格式转换操作是并行;
[0033] 步骤五.判断GPU当前计算的数据是否是最后数据段,如果是,算法执行完成;否则执行步骤四;
[0034] 其中,步骤五所述的主要功能为判断当前分段计算是否结束;
[0035] 本发明的主要思想是在CPU与GPU组成的异构平台上,针对不同体系结构的处理器采用异构格式存储数据的情况下,采用把整个数据分成多段由GPU分别执行,利用向GPU上传数据的过程、GPU计算数据与CPU执行格式转换并行,从而隐藏CPU执行数据格式转换的实现形式,为由CPU与GPU组成的异构平台获得更高的计算吞吐量实现形式提供技术支持。
[0036] 首先确定需要GPU计算数据的规模及CPU与GPU之间的通讯带宽,同时确定CPU与GPU之间分段计算的段数;之后根据确定的每段数据量并对第一段数据执行格式转换;再次把格式转换后的数据上传到GPU端,GPU执行计算,CPU对下一段数据执行格式转换;最后判断计算是否完成。
[0037] 下面以转置稀疏矩阵乘以稀疏矩阵与稠密向量乘积算法为实例进行说明,如图2所示,包括以下步骤:
[0038] 步骤一:确定稀疏矩阵的行数、列数及非零元素的个数,并检测CPU与GPU之间的通讯带宽;
[0039] 步骤二:根据步骤一测量的结果计算分段的段数;
[0040] 步骤三:根据前面的计算结果,对稀疏矩阵的第一段数据进行格式转换;
[0041] 步骤四:转换后的稀疏矩阵非零元素上传到GPU端,GPU执行稀疏矩阵与向量相乘或转置的稀疏矩阵与向量相乘,同时CPU对下一段稀疏矩阵的非零元素执行格式转换;
[0042] 步骤五:判断当前的数据是否是最后一段,如果是,本算法完成;否则执行步骤四。
[0043] 本实例中主要研究CPU与GPU组成的异构平台上异构格式的实现形式,该方法只与平台是否是CPU与GPU组成的异构平台有关,而与CPU及GPU的型号无关。
[0044] 最后所应说明的是:以上实例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈