一种提高图形处理器处理效率的同步方法

文档序号:6633022阅读:277来源:国知局
一种提高图形处理器处理效率的同步方法
【专利摘要】本发明提供一种提高图形处理器处理效率的同步方法,该同步方法包括:图形处理器当前执行核进入同步后,在图形处理器内建立同步输入向量和同步输出向量;图形处理器更新同步输入向量中的标志;图形处理器对同步输入向量中的标志进行循环查询,当查询到同步输入标记已被更新后,退出循环,更新同步输出向量中的标志;图形处理器循环查询同步输出向量中的标志,当查询到同步输出向量中所有的标志均被更新后,退出循环;当前执行核完成在图形处理器内部的同步。本发明实施例提供的同步方法,实现了图形处理器在执行一个多核处理任务时,直接在图形处理器内部进行快速同步,避免了图形处理器多次返回计算机系统进行加载和同步,从而提高了图形处理器的处理效率。
【专利说明】一种提高图形处理器处理效率的同步方法

【技术领域】
[0001]本发明属于高性能计算特别是并行计算领域。具体涉及一种提高图形处理器处理效率的同步方法。

【背景技术】
[0002]图形处理器是一种高性能并行处理器,已广泛应用于多个领域,包括图像处理、金融分析、石油勘探、物理建模和气象分析等领域。图形处理器的任务处理模型可以分为三级:核级、块级、线程级。每个任务可以包含多个核,每个核可以包含多个块,每个块可以包含多个线程。
[0003]然而,目前图形处理器主要应用于实验室仿真或事后处理系统,极少应用于实时处理系统。这主要是因为目前所有的图形处理器均需要计算机系统进行控制,计算机系统加载核到图形处理器上进行运算,当图形处理器处理完一个核后,必须退出图形处理器并返回计算机系统,用于完成处理结果的同步。当一个任务由多个核组成时,计算机系统需要加载多次核,图形处理器也需要多次启动和返回计算机系统,这极大的影响了图像处理器的处理效率。导致很多情况下,启动和同步图形处理器处理结果的时间大大超过图形处理器处理任务的间。
[0004]目前,图形处理器在只提供了线程级的同步,没有提供块级同步的方法,必须退出图形处理器返回计算机系统才能完成块级同步,这是导致图形处理器在执行多个核组成任务时效率低的根本原因。要提高图形处理器的利用效率,迫切需要一种高效的块间同步方法。


【发明内容】

[0005]本发明技术解决问题:针对现有技术的不足,提供一种提高图形处理器处理效率的同步方法,在保证处理结果一致的基础上,提高图形处理器的处理效率。
[0006]为实现这样的目的,本发明的技术方案:一种提高图形处理器处理效率的同步方法,包括如下步骤:
[0007]步骤一、图形处理器在处理一个由η个核组成的任务时(η彡2),当前执行核t进入同步(I < t < η)处理;
[0008]步骤二、图形处理器建立同步输入向量和同步输出向量,当图形处理器的处理分块数目为m时(m彡I)。首先建立同步输入向量A,同步输入向量A的大小等于图形处理器的处理分块数目m,表示为A{i},i = {l,2,...,m};然后建立同步输出向量B,同步输出向量B的大小等于图形处理器的处理分块数目m,表示为B{i}, i = {I, 2,, m};
[0009]步骤三、图形处理器更新同步输入向量,块i更新同步输入向量A[i]值为Flag ;
[0010]步骤四、图形处理器判断同步输入向量是否完成更新,用任意一个块对同步输入向量A的值进行循环查询,判断同步输入向量A中的标志是否全部被更新为Flag,如果完成更新,执行步骤五,未完成更新,继续执行步骤四;
[0011]步骤五、图形处理器更新同步输出向量,使用步骤四中的块更新同步输出向量B的值为Flag ;
[0012]步骤六、图形处理器判断同步输出向量是否完成更新,块i判断同步输出向量B[i]值是否为Flag,如果同步输出向量B中所有值均被更新为Flag,完成更新,执行步骤七,未完成更新,继续执行步骤六;
[0013]步骤七、图形处理器完成当前执行核t的同步处理。
[0014]本发明与现有技术相比的有益效果在于:
[0015]本发明提出的提高图形处理器处理效率的同步方法,在执行由多个核组成的任务时,可以在图形处理器内完成块间同步,避免了图形处理器因块间同步多次返回计算机系统,图形处理器处理效率低的问题。

【专利附图】

【附图说明】
[0016]图1为本发明方法实现流程图;
[0017]图2为一个由多个核组成的任务示意图,该任务分为η个核,每个核由m个块组成,每个块由u个线程组成;
[0018]图3为采用本发明后,图形处理器在处理如图2所示的由多核组成任务时的处理流程图。

【具体实施方式】
[0019]为了更好的了解本发明的技术方案,下面结合附图对本发明的实施例作详细说明。
[0020]在处理一个如图2所示的由多个核组成的任务时,如图1所示,本发明提供了一种提高图形处理器处理效率的同步方法,实施步骤如下:
[0021]步骤一、图形处理器在处理一个由η个核组成的任务时,当前执行核进入同步:图形处理器在第t个核(I < t < η)完成处理任务后,进入同步处理;
[0022]步骤二、图形处理器建立同步输入向量和同步输出向量:当图形处理器的处理分块数目为m时,首先建立同步输入向量Α,同步输入向量A的大小等于图形处理器的处理分块数目m,表示为A{i},i = {l,2,...,m};然后建立同步输出向量B,同步输出向量B的大小等于图形处理器的处理分块数目m,表示为B {i},i = {l,2,...,m};
[0023]步骤三、图形处理器更新同步输入向量:块i更新同步输入向量A[i]值为Flag,例如块5更新同步输入向量A的A[5],使得A[5] = Flag;
[0024]步骤四、图形处理器判断同步输入向量是否完成更新:用任意一个块,本例用块I对同步输入向量A的值进行循环查询,判断同步输入向量A中的标志是否全部被更新为Flag,如果A[i]中每一个值均等于Flag,则标志着同步输入向量A完成更新,执行步骤五,若有任何一个A[i]不等于Flag,标志着未完成更新,继续执行步骤四;
[0025]步骤五、图形处理器更新同步输出向量:使用步骤四中的块I更新同步输出向量B的值为Flag,使得任意一个B [i] = Flag, (I ^ i ^ m);
[0026]步骤六、图形处理器判断同步输出向量是否完成更新:块i判断同步输出向量B[i]值(I < i Sm)是否为Flag,如果同步输出向量B中所有值均被更新为Flag,如果B[i]中每一个值均等于Flag,则标志着同步输出向量B完成更新,执行步骤七,若有任何一个B [i]不等于Flag,标志着同步输出向量B未完成更新,继续执行步骤六;
[0027]步骤七、图形处理器完成当前处理核t的同步处理。
[0028]如图3所示,采用本发明,在处理一个由η个核组成的任务时,计算机系统只需加载I次核到图形处理器,图形处理器只需在完成所有η个核处理后,将最终结果I次性返回计算机系统,相比标准处理流程节约了 η-1次核加载时间和η-1次图形处理器同步处理结果并返回时间,提高了图形处理器的处理效率。
[0029]本发明未详细阐述部分属于本领域技术人员的公知技术。
[0030]本【技术领域】中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非作为对本发明的限定,只要在本发明的实质精神范围内,对上述实施例子的变化,变型都将落在本发明权利要求书的范围内。
【权利要求】
1.一种提高图形处理器处理效率的同步方法,其特征包括如下步骤: 步骤一、图形处理器在处理一个由II个核组成的任务时,当前执行核〖进入同步处理;其中,II彡2,1彡七? II ; 步骤二、图形处理器建立同步输入向量和同步输出向量,当图形处理器的处理分块数目为III时(其中,III彡1),首先建立同步输入向量八,同步输入向量4的大小等于图形处理器的处理分块数目III,表示为八{11 1 = {1,2,...,.11};然后建立同步输出向量8,同步输出向量8的大小等于图形处理器的处理分块数目III,表示为8(1},1 = {1,2,..., 111}; 步骤三、图形处理器更新同步输入向量,块1更新同步输入向量八[1]值为;步骤四、图形处理器判断同步输入向量是否完成更新,用任意一个块对同步输入向量八的值进行循环查询,判断同步输入向量八中的标志是否全部被更新为,如果完成更新,执行步骤五,未完成更新,继续执行步骤四; 步骤五、图形处理器更新同步输出向量,使用步骤四中的块更新同步输出向量8的值为; 步骤六、图形处理器判断同步输出向量是否完成更新,块1判断同步输出向量值是否为叫,如果同步输出向量8中所有值均被更新为叫,完成更新,执行步骤七,未完成更新,继续执行步骤六; 步骤七、图形处理器完成当前执行核〖的同步处理。
【文档编号】G06T1/20GK104361553SQ201410610231
【公开日】2015年2月18日 申请日期:2014年11月2日 优先权日:2014年11月2日
【发明者】左颢睿, 徐智勇, 魏宇星, 张建林, 欧阳益民, 许俊平, 祁小平 申请人:中国科学院光电技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1