稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法

    公开(公告)号:CN102141976A

    公开(公告)日:2011-08-03

    申请号:CN201110004075.3

    申请日:2011-01-10

    Abstract: 本发明公开一种稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法,存储方法为1)按行扫描稀疏矩阵A,以对角线编号表示非零元对角线的位置;2)以非零元对角线与矩阵A侧边的交点作水平线将矩阵A切分为多个子稀疏矩阵;3)按行顺序存储每个子稀疏矩阵中的非零元对角线上的元素到val数组。SpMV实现方法为:1)遍历稀疏矩阵,计算每个子稀疏矩阵的稀疏矩阵向量乘y=A1*x;2)合并所有子稀疏矩阵向量乘。本发明的数据存储方法不需要存储非零元的列索引,减小了存储空间需求和访存开销;对角线和x数组索引数组占用较小存储空间,降低了访存复杂度,计算所需的数据均为连续访问,使得编译器和硬件可以充分优化。

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

    公开(公告)号:CN113849771A

    公开(公告)日:2021-12-28

    申请号: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的浮点计算效率。

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

    公开(公告)号:CN110942504A

    公开(公告)日:2020-03-31

    申请号:CN201911047165.3

    申请日:2019-10-30

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

    国产申威26010众核处理器上多维FFT的高性能实现方法

    公开(公告)号:CN107451097B

    公开(公告)日:2020-02-11

    申请号:CN201710658700.3

    申请日:2017-08-04

    Abstract: 本发明提出一种国产申威26010众核处理器上多维FFT的高性能实现方法,基于国产处理器申威26010平台,将两层分解的一维FFT的求解算法,有效应用于多维FFT计算,并设计带输入输出跨度的FFT、多行一维FFT和多列一维FFT及其对应的2的幂次和非2的幂次等多种FFT类型,以提升多维FFT运算性能。与开源FFTW库相比,基于本平台的多维FFT计算性能急剧升高,其平均加速比为22.283,最高加速比达到30.340。

    一种基于GMP的大整数加法和减法多核并行化实现方法

    公开(公告)号:CN104699449B

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

    申请号:CN201510156109.9

    申请日:2015-04-03

    Abstract: 本发明涉及一种基于GMP的大整数加法和减法多核并行化实现方法,首先借助于临时数组来解决加法或减法操作产生的进位或借位带来的数据相关性问题,然后采用将迭代循环for中的运算进行任务划分,基于OpenMP多线程编程实现,使用动态调度策略,多线程并行求取各区域的计算任务的策略解决负载不均衡问题。本发明能借助多核平台,通过充分利用多核条件提高运行速度,在实际应用中有着十分重要的作用。

    一种采用带有局部信息的压缩稀疏行的稀疏矩阵存储方法及基于该方法的SpMV实现方法

    公开(公告)号:CN103336758B

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

    申请号:CN201310271126.8

    申请日:2013-06-29

    Abstract: 本发明公开一种稀疏矩阵的存储方法CSRL及SpMV实现方法,按行扫描稀疏矩阵A,用数组val顺序存储每个非零元值信息;定义列下标连续的若干个非零元为一个连续非零元段,用数组jas记录每个连续非零元段的第一个元素的列下标,用数组jan记录每个连续非零元段的非零元个数;用数组ptr记录稀疏矩阵A每行第一个连续非零元段的起始索引。本发明的数据存储方法对非零元的列索引合并存储,减小了存储空间需求;充分挖掘了稀疏矩阵的数据局部性,据此可以利用SIMD指令进行存取和计算,并可减少内存访问次数,提高了稀疏矩阵向量乘SpMV的性能。

    一种大整数乘法Comba算法基于OpenMP的并行实现方法

    公开(公告)号:CN104793922A

    公开(公告)日:2015-07-22

    申请号:CN201510220528.4

    申请日:2015-05-04

    Abstract: 本发明公开了一种大整数乘法Comba算法基于OpenMP的并行实现方法,基于64位无符号长整型整数操作,通过添加三个临时数组存储加乘操作计算得到的中间结果,从而解决加乘运算与进位运算的数据相关性,将加乘操作与进位操作分开执行。在加乘操作阶段,基于中间结果每个数位求取时的计算独立性,通过OpenMP多线程编程采用动态调度策略实现加乘操作阶段的并行化,而进位阶段仍然串行执行来并行化Comba算法,提高算法效率。

    一种基于PETSc的GCRO-DR算法并行处理方法

    公开(公告)号:CN104182209A

    公开(公告)日:2014-12-03

    申请号:CN201410427589.3

    申请日:2014-08-27

    Inventor: 刘芳芳 杨超

    Abstract: 本发明公开一种基于PETSc的GCRO-DR算法并行处理方法,(1)并行进行m步Arnoldi迭代,生成子空间Vm+1和hessenberg矩阵(2)串行求解最小二乘问题特征值问题和Reduced QR分解;(3)开始进行迭代,并行进行m-k步Arnoldi过程;(4)并行求解(5)串行求解最小二乘问题和Reduced QR分解;(6)进行下一个迭代步,直至收敛;(7)当求解第二个及以后的系统时,先并行更新回收矩阵Ck和Uk,然后开始迭代,直至收敛。本发明提出的并行实现方法通过调用PETSc库能实现多个节点协同计算,进而可以提高GCRO-DR算法的整体性能。

    针对稀疏矩阵的数据存储方法及基于该方法的SpMV实现方法

    公开(公告)号:CN102033854A

    公开(公告)日:2011-04-27

    申请号:CN201010594672.1

    申请日:2010-12-17

    Abstract: 本发明公开一种针对稀疏矩阵的数据存储方法及基于该方法的SpMV实现方法,存储方法包括A、以给定列单元大小的行数扫描稀疏矩阵,当扫描到非零元时,将该非零元所在列的非零元值存储到非零元数组val中;B、计算列值差,判断非零元列单元列值差类型,将列值差类型相同的列单元作为同一列组并存储列组信息到index数组。SpMV实现方法为:1)根据列值差类型,计算列单元的列值;2)根据列值读取相应的x变量,与val中的元素相乘;3)将列组中每个列单元计算得到的结果进行累加后保存在结果数组中;4)继续读取下一个列组的列值差类型。本发明的方法减少了零元填充,提高稀疏矩阵向量乘实现时的操作和存储访问操作的运行效率。

Patent Agency Ranking