存算一体结构下的多线程划分方法

文档序号:39562348发布日期:2024-10-11 11:21阅读:15来源:国知局
存算一体结构下的多线程划分方法

本发明属于存算一体,更具体地,本发明涉及一种存算一体结构下的多线程划分方法。


背景技术:

1、存算一体化体系结构(processing-in-memory,pim)通过在存内集成高并发、高效能的计算单元,完成数据的就近甚至就地计算,存算一体化体系结构可以实现部分应用一至两个数量级的性能加速,并降低约80%数据的搬运能耗。

2、尽管存算一体架构提高了计算性能,但也带来了一系列的挑战,其中最重要的就是存算一体架构的硬件与存算分离软件体系的匹配问题。随之而来的出现了一个问题,计算资源调度问题,即计算在何处进行,在存算一体体系结构中,计算资源是分布式的,为了更好的提高计算性能,需要处理器进行协同计算。

3、在以往的计算划分中,通常是将注释调用图通过划分算法直接划分,这种方法的缺点是由于节点之间的处理时间可能相差1000倍以上,节点之间需要彼此等待,造成了计算效率的下降。


技术实现思路

1、本发明提供一种存算一体结构下的多线程划分方法,旨在改善上述问题。

2、本发明是这样实现的,一种存算一体结构下的多线程划分方法,所述方法包括如下步骤:

3、(1)将基本块作为用注释调用图中的节点,将注释调用图中的可并行节点拆分为多个基本块,在多线程上运行,运行数据集计算线程间的数据传输量,该数据集用于基本块对应程序的测试,赋值给注释调用图的属性集;

4、(2)选择执行次数最高的线程在存内计算单元中执行,将该划分结果作为初始解,计算该划分方案执行的总时间tall;

5、(3)每次迭代过程中,筛选出执行次数占比超过阈值th的线程且将其分发至被存内计算单元执行的线程集合,在当前最优解{i}opt的基础上对线程集合中的线程进行随机取反,形成第i个可行解{i}i;

6、(4)计算可行解对应的划分方案{i}i执行时间ti,计算执行时间ti与当前最优解的执行时间topt的差值δt,若差值δt为负,则可行解{i}i即为当前最优解并更新当前最优时间为执行时间ti,若差值δt为正,则以概率r将可行解{i}i作为当前最优解并更新当前最优时间执行时间ti。

7、进一步的,划分方案执行的总时间tall的计算公式具体如下:

8、tall=tcpu+tpim+tm

9、其中,tcpu为在片上处理器的执行总时间,tpim为在存内计算单元的执行总时间,tm为片上处理器与存内计算单元间的数据传输总时间。

10、进一步的,片上处理器与存内计算单元间的数据传输总时间tm的计算公式具体如下:

11、

12、其中,wpim表示存在计算单元中的线程集合,wcpu表示片上处理器中的线程集合,wp表示集合wpim中的第p个线程,wp∈wpim,wc表示集合wcpu中的第c个线程,wc∈wcpu;d(wc,wp)表示线程wc到线程wp间的数据传输量;max(d(wc,wp))表示集合wpim中的线程到集合wcpu中的线程中的最大数据传输量;su,v表示基本块u到基本块v的数据传输量,u∈s,s划分到片上处理器的基本块集合,v∈t,t划分到存内计算单元的基本块集合,bw代表内存计算单元的读写带宽。

13、进一步的,片上处理器的执行总时间tcpu的计算公式具体如下:

14、

15、其中,u{w}表示基本块u划分到片上处理器的线程,表示线程u{w}在片上处理器中上的处理时间,s划分到片上处理器的基本块集合;

16、当基本块u中线程w对应的指令在片上处理器中执行时,则iu{w}的值为0;当基本块u中线程w在存内计算单元上执行时,则iu{w}的值为1。

17、进一步的,存内计算单元的执行总时间tpim的计算公式具体如下:

18、

19、其中,v{w}表示基本块v划分到存内计算单元的线程,表示线程在片上处理器中上的处理时间,t划分到存内计算单元的基本块集合;

20、当基本块v中线程w对应的指令在片上处理器中执行时,则iv{w}的值为0;当基本块u中线程w在存内计算单元上执行时,则iv{w}的值为1。

21、进一步的,若δt=0,比较可行解{i}i及当前最优解{i}opt的划分方案对应的数据搬运功耗δe,并取数据搬运功耗较低的划分方案作为当前最优解。

22、进一步的,概率r的计算公式具体如下:

23、

24、其中,k为修正系数,代表当前取反ij基本块的执行次数占最大执行次数的百分比,δt为第i个可行解{i}i对应的执行时间ti与当前最优解的执行时间topt的差值。

25、本发明通过数据集将数据调用图的注释调用图中的数据传输量进行衡量,将可并行的代码块(基本块)进行划分,能够极大减少程序之间的彼此等待,极大的提高了程序的运行效率。



技术特征:

1.一种存算一体结构下的多线程划分方法,其特征在于,所述方法包括如下步骤:

2.如权利要求1所述存算一体结构下的多线程划分方法,其特征在于,划分方案执行的总时间tall的计算公式具体如下:

3.如权利要求2所述存算一体结构下的多线程划分方法,其特征在于,片上处理器与存内计算单元间的数据传输总时间tm的计算公式具体如下:

4.如权利要求2所述存算一体结构下的多线程划分方法,其特征在于,片上处理器的执行总时间tcpu的计算公式具体如下:

5.如权利要求2所述存算一体结构下的多线程划分方法,其特征在于,存内计算单元的执行总时间tpim的计算公式具体如下:

6.如权利要求1所述存算一体结构下的多线程划分方法,其特征在于,

7.如权利要求1所述存算一体结构下的多线程划分方法,其特征在于,概率r的计算公式具体如下:


技术总结
本发明公开的存算一体结构下的多线程划分方法,包括:将注释调用图中的可并行节点拆分为多个基本块,在多线程上运行,运行数据集计算基本块间的数据传输量;选择执行次数最高的线程在存内计算单元中执行,将该划分结果作为初始解,计算该划分方案执行的总时间;每次迭代过程中,筛选出执行次数占比超过阈值T<subgt;H</subgt;的线程且将其分发至被存内计算单元执行的线程集合,在当前最优解{I}<supgt;opt</supgt;的基础上对线程集合中的线程进行随机取反,形成第i个可行解{I}<supgt;i</supgt;;计算可行解对应的划分方案{I}<supgt;i</supgt;执行时间T<supgt;i</supgt;,计算执行时间T<supgt;i</supgt;与当前最优解的执行时间T<supgt;opt</supgt;的差值ΔT,若差值ΔT为正,以概率r将可行解{I}<supgt;i</supgt;作为当前最优解并更新当前最优时间执行时间T<supgt;i</supgt;。将可并行的基本块进行划分,减少程序之间的彼此等待。

技术研发人员:薛洪宇,徐晟,李淳,罗乐,陈付龙
受保护的技术使用者:安徽师范大学
技术研发日:
技术公布日:2024/10/10
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1