基于编译指导的有读写依赖循环的多线程并行方法

    公开(公告)号:CN112445486A

    公开(公告)日:2021-03-05

    申请号:CN201910800767.5

    申请日:2019-08-28

    Abstract: 本发明公开一种基于编译指导的有读写依赖循环的多线程并行方法,包括以下步骤:S1、在循环迭代开始处添加编译指导语句;S2、编译器根据编译指导语句生成数据读写状态表;S3、编译器在对程序中依赖数组进行读访问时,增加判断语句;S4、编译器在对程序中依赖数组进行写访问后,增加对数据读写状态表中该数据对应元素的更新操作;S5、当程序多线程运行时,数据读写状态表中所有数据状态均初始化成false;S6、线程x执行对依赖数组中一个数据的写访问后,将数据读写状态表中对应的状态设置为true。本发明实现了迭代间有先写后读依赖的循环的并行计算,解决了多线程并行时数据的无序竞争访问,能有效提高程序的性能。

    面向异构众核基于空间重排的数据传输方法

    公开(公告)号:CN112416825A

    公开(公告)日:2021-02-26

    申请号:CN201910771644.3

    申请日:2019-08-21

    Abstract: 本发明公开一种面向异构众核基于空间重排的数据传输方法,包括以下步骤:S1、在编译时,为每个加速区建立一张数据传输信息表,此数据传输信息表中包含当前加速区待传输数据的信息;S2、按照数据的传输模式,将待传输的多个数据进行空间重排;S3、在加速区计算开始之前,启动主存数据到局存缓冲区的DMA数据传输,将加速区计算所需的数据,包括读入的数据和读写的数据,从主存一次传输至局存的缓冲区中;S4、在加速区计算完成之后,启动局存缓冲区到主存的DMA数据传输,将加速区需要传输的要写出的数据,包括读写的数据和写出的数据,从局存缓冲区一次传输至主存中。本发明有效降低众核片上局存和主存之间多次数据传输的开销,提升了程序的访存效率和整体性能。

    一种基于多版本代码生成的众核循环分块方法

    公开(公告)号:CN105242909B

    公开(公告)日:2017-08-11

    申请号:CN201510829920.9

    申请日:2015-11-24

    Abstract: 本发明提供了一种基于多版本代码生成的众核循环分块方法,其中众核处理器由控制核心和计算核心阵列组成,其中每个计算核心带有一块高速缓存;而且其中每个计算核心自带的一块高速缓存作为片上存储以存储器直接访问的方式与主存进行数据传输;其特征在于,编译器在对众核循环进行并行变换时,根据编译器指示的值来确定循环分块的粒度,从而生成不同版本的并行代码,同时编译器通过代码插装的方式将片上存储的使用信息在运行时进行反馈以便能够根据反馈的使用信息对编译指示的值进行相应的调整,以使得片上存储的利用率最大化。

    面向异构众核处理器的多任务并行调度方法

    公开(公告)号:CN112416539B

    公开(公告)日:2022-11-15

    申请号:CN201910771643.9

    申请日:2019-08-21

    Abstract: 本发明公开一种面向异构众核处理器的多任务并行调度方法,包括以下步骤:S1、创建一个任务队列,用于存储待加速计算的任务;S2、任务运行时,主核将从核上已完成的任务回收,将新任务添加到任务队列的尾部;S3、将从核以适当的粒度进行分组,以组为单位主动从任务队列的头部获取任务;S4、一组从核如果获取了当前任务的一部分计算,则要增加当前任务的已有计算资源的数量;S5、当任务的所需计算资源的数量等于已有计算资源的数量时,则该任务分配完毕。本发明提高了任务调度的效率,实现计算资源的精细管理,还解决了众核处理器计算核心多、而实际应用并行度不够、计算负载不均衡导致的计算资源的浪费问题,提高了资源的利用效率。

    面向异构众核处理器的并行离散更新方法

    公开(公告)号:CN112632089B

    公开(公告)日:2022-07-12

    申请号:CN201910904039.9

    申请日:2019-09-24

    Abstract: 本发明公开了一种面向异构众核处理器的并行离散更新方法,包括以下步骤:S1、对地址连续的离散更新数据区进行块划分,并将数据块与从核进行映射,使得每个从核负责其中一个数据块的更新;S2、每个从核将指令执行过程中产生的离散更新请求进行分类,分为需从核自己处理的离散更新请求和需其它从核处理的离散更新请求,并在产生离散更新请求的地方插入相应的处理函数;S3、需从核自己处理的离散更新请求按程序段func1的处理流程进行处理;S4、需其它从核处理的离散更新请求按程序段func2的处理流程进行处理。本发明可以实现较高性能的并行离散更新,并可以处理LDM空间装不下的大数据离散更新问题。

    面向异构众核处理器的多任务并行调度方法

    公开(公告)号:CN112416539A

    公开(公告)日:2021-02-26

    申请号:CN201910771643.9

    申请日:2019-08-21

    Abstract: 本发明公开一种面向异构众核处理器的多任务并行调度方法,包括以下步骤:S1、创建一个任务队列,用于存储待加速计算的任务;S2、任务运行时,主核将从核上已完成的任务回收,将新任务添加到任务队列的尾部;S3、将从核以适当的粒度进行分组,以组为单位主动从任务队列的头部获取任务;S4、一组从核如果获取了当前任务的一部分计算,则要增加当前任务的已有计算资源的数量;S5、当任务的所需计算资源的数量等于已有计算资源的数量时,则该任务分配完毕。本发明提高了任务调度的效率,实现计算资源的精细管理,还解决了众核处理器计算核心多、而实际应用并行度不够、计算负载不均衡导致的计算资源的浪费问题,提高了资源的利用效率。

    一种基于多版本代码生成的众核循环分块方法

    公开(公告)号:CN105242909A

    公开(公告)日:2016-01-13

    申请号:CN201510829920.9

    申请日:2015-11-24

    Abstract: 本发明提供了一种基于多版本代码生成的众核循环分块方法,其中众核处理器由控制核心和计算核心阵列组成,其中每个计算核心带有一块高速缓存;而且其中每个计算核心自带的一块高速缓存作为片上存储以存储器直接访问的方式与主存进行数据传输;其特征在于,编译器在对众核循环进行并行变换时,根据编译器指示的值来确定循环分块的粒度,从而生成不同版本的并行代码,同时编译器通过代码插装的方式将片上存储的使用信息在运行时进行反馈以便能够根据反馈的使用信息对编译指示的值进行相应的调整,以使得片上存储的利用率最大化。

    数据布局方法及其装置
    18.
    发明授权

    公开(公告)号:CN102968388B

    公开(公告)日:2016-01-13

    申请号:CN201210417584.3

    申请日:2012-10-26

    Abstract: 本发明提供了一种数据分布方法以及装置,所述方法包括:将第一代码所处理的第一数据块划分成多个第二数据块,其中每一个第二数据块和一个处理器核对应;根据所述第一代码确定每一个第二数据块对应的边界数据;为每一个第二数据块和对应的边界数据在对应的处理器核中申请局部存储空间;以及根据所述第一代码生成与每一个第二数据块对应的第二代码,所述第二代码能在第二数据块对应的处理器核中根据所述第一代码的处理逻辑完成对所述第二数据块的处理。所述方法能够减少访存开销,从而提高处理器的程序执行速度。

    面向异构众核处理器的并行离散更新方法

    公开(公告)号:CN112632089A

    公开(公告)日:2021-04-09

    申请号:CN201910904039.9

    申请日:2019-09-24

    Abstract: 本发明公开了一种面向异构众核处理器的并行离散更新方法,包括以下步骤:S1、对地址连续的离散更新数据区进行块划分,并将数据块与从核进行映射,使得每个从核负责其中一个数据块的更新;S2、每个从核将指令执行过程中产生的离散更新请求进行分类,分为需从核自己处理的离散更新请求和需其它从核处理的离散更新请求,并在产生离散更新请求的地方插入相应的处理函数;S3、需从核自己处理的离散更新请求按程序段func1的处理流程进行处理;S4、需其它从核处理的离散更新请求按程序段func2的处理流程进行处理。本发明可以实现较高性能的并行离散更新,并可以处理LDM空间装不下的大数据离散更新问题。

    异构众核数据重用方法
    20.
    发明公开

    公开(公告)号:CN112579089A

    公开(公告)日:2021-03-30

    申请号:CN201910927232.4

    申请日:2019-09-27

    Abstract: 本发明公开了一种异构众核数据重用方法,包括Stencil计算识别模块、块分段任务调度模块和数据重定向模块,所述Stencil计算识别模块完成Stencil计算的识别工作,所述块分段任务调度模块完成当进行stencil优化的维度为循环最外层时,改变任务划分调度的工作,所述数据重定向模块完成数据重用的工作;包括以下步骤:S1、假设同一数组的同一维度为i,由Stencil计算识别模块通过扫描计算中涉及的所有数组下标,识别出同一数组的同一维度是否存在i‑a/i+a这样的下标,且其他本维度下标都在[i‑a,i+a]范围之内,如果是,则认为该维度存在Stencil计算,将该维度作为stencil优化的备选维度,执行下一步。本发明减少主存与高速缓存间的数据传输量,提升程序性能。

Patent Agency Ranking