申威26010众核CPU上GEMM稠密矩阵乘高性能实现方法

    公开(公告)号:CN107168683B

    公开(公告)日:2020-06-09

    申请号:CN201710310445.3

    申请日:2017-05-05

    Abstract: 本发明公开了申威26010众核CPU上GEMM稠密矩阵乘高性能实现方法,针对申威众核处理器26010,并基于存储结构、访存、硬件流水线以及寄存器级通信机制等平台特性,优化矩阵分块与核间数据映射方法,设计了自顶向下的三级分块并行块矩阵乘算法,基于寄存器级通信机制设计从核计算资源数据共享方法,并利用主从核间异步DMA数据传输机制,设计了计算与访存重叠的双缓冲策略,在单个从核上,设计了循环展开策略与软件流水线排布方法,使用了高效的寄存器分块模式以及SIMD向量化乘加指令,实现函数优化。该高性能GEMM函数性能与单核开源BLAS数学库GotoBLAS相比,平均加速比为227.94,最高加速比为296.93。

    国产申威26010众核CPU上GEMM稠密矩阵乘高性能实现方法

    公开(公告)号:CN107168683A

    公开(公告)日:2017-09-15

    申请号:CN201710310445.3

    申请日:2017-05-05

    Abstract: 本发明公开了国产申威26010众核CPU上GEMM稠密矩阵乘高性能实现方法,针对国产申威众核处理器26010,并基于存储结构、访存、硬件流水线以及寄存器级通信机制等平台特性,优化矩阵分块与核间数据映射方法,设计了自顶向下的三级分块并行块矩阵乘算法,基于寄存器级通信机制设计从核计算资源数据共享方法,并利用主从核间异步DMA数据传输机制,设计了计算与访存重叠的双缓冲策略,在单个从核上,设计了循环展开策略与软件流水线排布方法,使用了高效的寄存器分块模式以及SIMD向量化乘加指令,实现函数优化。该高性能GEMM函数性能与单核开源BLAS数学库GotoBLAS相比,平均加速比为227.94,最高加速比为296.93。

    基于国产申威26010处理器的基2一维FFT的高性能实现方法

    公开(公告)号:CN106933777B

    公开(公告)日:2019-03-19

    申请号:CN201710150446.6

    申请日:2017-03-14

    Abstract: 本发明提出一种基于国产申威26010处理器的基2一维FFT的高性能实现方法,基于国产处理器申威26010平台,设计从核内行或列寄存器通信机制、访存‑计算重叠的双缓冲机制和256位单指令流多数据流的向量化运算等多种优化技术,同时提出基于两层分解的Stockham FFT计算框架且分解规则为库利‑图基算法,设计“接口层‑主核层‑从核层‑核心层”的四层结构框架进行基2一维FFT计算,从而有效解决FFT计算的访存带宽受限问题,有效提升基2一维FFT计算性能。与开源FFTW库相比,基于本平台的基2一维FFT计算性能急剧升高,以FFT计算的每秒浮点运算次数为例,其平均加速比为34.4,最高加速比达到50.3。

    基于国产申威26010处理器的基2一维FFT的高性能实现方法

    公开(公告)号:CN106933777A

    公开(公告)日:2017-07-07

    申请号:CN201710150446.6

    申请日:2017-03-14

    CPC classification number: G06F17/142

    Abstract: 本发明提出一种基于国产申威26010处理器的基2一维FFT的高性能实现方法,基于国产处理器申威26010平台,设计从核内行或列寄存器通信机制、访存‑计算重叠的双缓冲机制和256位单指令流多数据流的向量化运算等多种优化技术,同时提出基于两层分解的Stockham FFT计算框架且分解规则为库利‑图基算法,设计“接口层‑主核层‑从核层‑核心层”的四层结构框架进行基2一维FFT计算,从而有效解决FFT计算的访存带宽受限问题,有效提升基2一维FFT计算性能。与开源FFTW库相比,基于本平台的基2一维FFT计算性能急剧升高,以FFT计算的每秒浮点运算次数为例,其平均加速比为34.4,最高加速比达到50.3。

    一种异构众核上基于主-从模型的轻量级多线程处理方法

    公开(公告)号:CN114217915B

    公开(公告)日:2025-01-10

    申请号:CN202110398335.3

    申请日:2021-04-14

    Abstract: 本发明公开一种异构众核上基于主‑从模型的轻量级多线程处理方法,设置四种线程状态,分别为初始化、等待任务、任务完成和线程退出;在共享内存上开辟长整形数组;在共享内存上开辟数组,用于线程组内主线程向从属线程传递参数;根据主线程及其从属线程核组号,设置每个线程组的掩码cgmask,掩码有CG_NUM位;使用共享模式运行并行程序,每个核组为一个进程;当需要退出线程状态时,主线程调用Master_leave接口;执行完毕后,各核组恢复进程状态,可以根据进程号继续执行任务。本发明为用户提供了方便使用、更加灵活、开销更低的片内多线程解决方案。

    一种基于任务循环划分策略的负载平衡方法

    公开(公告)号:CN114217940A

    公开(公告)日:2022-03-22

    申请号:CN202110381658.1

    申请日:2021-04-09

    Abstract: 本发明公开一种基于任务循环划分策略的负载平衡方法,包括以下步骤:S1、根据任务实际需求和线程的任务处理能力,将任务池中的每个任务划分为线程们可高效并行处理的若干子任务;S2、对S1中得到若干子任务编号,将任务池中的任务编号为taskid,每个任务划分后子任务编号为jobid,则每个子任务有唯一编号,记线程个数为n;S3、依次处理每个任务,根据S2中编号,将编号为(taskid,jobid)的子任务分配给第(jobid%n+taskid)%n个线程。本发明可以在异构众核处理器上多线程并行处理任务时,从整体上均衡各线程的任务负载,提升计算效率与系统稳定性。

    一种基于扁平化模型的通信实现方法

    公开(公告)号:CN105282017A

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

    申请号:CN201510831796.X

    申请日:2015-11-24

    Abstract: 本发明提供了一种基于扁平化模型的通信实现方法,可用于点对点通信和集合通信。所述方法包括:运算核心将用户消息的描述符在内存中进行组装;所述运算核心通过写内存方式,将描述符地址信息作为消息请求通知给控制核心;所述控制核心通过创建轮询线程的方式,查询运算核心的消息请求,通过消息请求中携带的描述符地址信息,取出描述符进行消息匹配;所述控制核心利用消息匹配的结果与远程控制核心进行消息通信。

    一种网格化流水的全收集方法

    公开(公告)号:CN114221871A

    公开(公告)日:2022-03-22

    申请号:CN202110381666.6

    申请日:2021-04-09

    Abstract: 本发明公开一种网格化流水的全收集方法,包括以下步骤:S1、将每个超节点内的进程组织为一个分组,每个分组不必具备同样多的进程;S2、每个分组选出任意一个进程作为代表进程,参与到组间的通信中,由此构成二级网格化通信结构,并将二级网格化通信结构映射到大规模集群互联网络结构;S3、在所述二级网格化通信结构上,先在各组内完成数据的收集和共享,再开启全局流水。本发明能够合理利用资源,实现全收集集合通信中的通信聚合和顶层网络的带宽节省,有效提高了全收集集合通信的性能,对通信密集型应用具有积极影响。

Patent Agency Ranking