国产申威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。

    申威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。

    面向SW39000处理器的稠密矩阵乘法的高性能实现方法及装置

    公开(公告)号:CN113849771B

    公开(公告)日:2025-02-18

    申请号:CN202111192491.0

    申请日:2021-10-13

    Abstract: 本发明公开了一种面向SW39000处理器的稠密矩阵乘法的高性能实现方法,包括:在主内存级别分别对非转置矩阵A、非转置矩阵B与问题矩阵C进行任务分块,产生若干的子矩阵δAil、子矩阵δBlj与子矩阵δCij;当子矩阵δCij更新时,在从核阵列的LDM级别分别对子矩阵δCij、子矩阵δAil及子矩阵δBlj进行任务分块,将产生的子块εCuv、子块εAuw及子块εBwv映射至相应的从核;将子矩阵δAil的第t个列块与子矩阵δBlj的第t个行块相乘,生成矩阵δCt;基于子矩阵δCij与各矩阵δCt,更新主内存中的子矩阵δCij,以得到问题矩阵C的输出结果。本发明通过在主内存、从核的LDM以及寄存器上的合理数据布局,充分挖掘从核阵列的并行计算能力,使用了三重缓冲技术隐藏了DMA访存开销和RMA通信开销,使用了指令重排技术提高了GEMM的浮点计算效率。

    一种众核平台上面向规则网格问题的结构化着色方法

    公开(公告)号:CN110942504B

    公开(公告)日:2021-07-27

    申请号:CN201911047165.3

    申请日:2019-10-30

    Abstract: 本发明公开一种众核平台上面向规则网格问题的结构化着色方法,包括如下步骤:步骤一、依赖特性分析:对按照stencil模板格式生成的计算问题中的各计算任务之间的依赖特性进行分析,包括依赖传递特性分析和强弱依赖方向分析;步骤二、参数搜索:根据依赖特性分析结果,使用四种参数搜索模式进行最优的着色规则参数搜索;步骤三、计算任务划分:根据最优的着色规则参数为每个计算任务着色,并将相同颜色的计算任务分为一组,不同颜色的计算任务分为不同组,总的颜色数即为计算任务的总的划分组数,完成计算任务的划分;本发明保证了在相同颜色数的限制下,保留更多的核心依赖关系,从而有效减少了计算的整体迭代次数,并提高了着色质量。

    一种大整数乘法Karatsuba算法的并行实现方法

    公开(公告)号:CN105653239B

    公开(公告)日:2018-06-22

    申请号:CN201510996000.6

    申请日:2015-12-25

    Abstract: 本发明公开了一种大整数乘法Karatsuba算法的并行实现方法,基于64位无符号长整型整数操作,通过巧妙的公式转换技巧,指针运算以及存储方式,以解决部分积存储与计算的相关性问题,通过OpenMP多线程编程,采用section任务分担策略将算法进行并行化,从而开启8个线程在递归程序的第一层并行求取8个部分积,每个section负责一个部分积的计算任务,待部分积均求取完毕后进行串行归并,从而并行化Karatsuba算法,提高算法效率。

Patent Agency Ranking