[发明专利]一种对称矩阵与向量相乘的并行计算方法及其系统在审
| 申请号: | 202210445587.1 | 申请日: | 2022-04-26 |
| 公开(公告)号: | CN114780913A | 公开(公告)日: | 2022-07-22 |
| 发明(设计)人: | 王华明;刘郴 | 申请(专利权)人: | 浙江凌迪数字科技有限公司 |
| 主分类号: | G06F17/16 | 分类号: | G06F17/16;G06F9/50 |
| 代理公司: | 深圳智趣知识产权代理事务所(普通合伙) 44486 | 代理人: | 崔艳峥 |
| 地址: | 310016 浙江省杭*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 对称 矩阵 向量 相乘 并行 计算方法 及其 系统 | ||
本发明提出了一种对称矩阵与向量相乘的并行计算方法及其系统,方法包括:获取对称矩阵和向量,确定线程数;划分子区域;在每个子区域中,划定与对称轴平行的第一轴和/或第二轴;计算对称轴区域与向量,并写入寄存器;对第一轴进行两次不同的第一乘法计算,得到两组不同的数据并分别写入寄存器;对第二轴进行两次不同的第二乘法计算,得到两组或四组不同的数据并分别写入寄存器,得到对称矩阵与向量相乘的计算结果。本发明的方案,能够准确、快速的实现对称矩阵与向量的乘法计算,通过合理规划矩阵中元素处理的顺序,使各线程合理分配资源,能有效避免写入冲突,实现多线程并行计算,计算效率高,且各线程负载均衡,线程资源分布合理。
技术领域
本发明涉及矩阵数据处理领域,特别涉及一种对称矩阵与向量相乘的并行计算方法及其系统。
背景技术
一个实数矩阵A是由M×N个实数所构成的数据块。而一个向量x可以认为是一个由N×1个实数所构成的矩阵。矩阵A与向量间x的乘法结果y为一个M×1的向量。矩阵和向量的乘法定义如下:
通过处理器对矩阵乘法并行计算能有效缩短数据处理时间。开发并行算法时,一个重要的问题就是如何规避写入冲突。简单地说,写入冲突就是很多个同时运行的线程需要同时写入同一个内存地址。如果不做任何处理,则前面写入的结果可能会被后面的覆盖掉,造成结果错误。比如,两个线程同时想要往同一个内存地址上加1。假如原有的值为0,则正确的结果应为2。但如果线程执行顺序如下:
线程A:读取内存,得到0
线程B:读取内存,得到0
线程A:执行加法0+1=1,得到结果为1
线程B:执行加法0+1=1,得到结果为1
线程A:将结果1写回内存
线程B:将结果1写回内存
经过上述线程执行后,由于存在写入冲突,内存上结果仍为1。
现有技术在针对对称矩阵的计算时,或者是没有考虑到ai,j=aj,i,或者是简单忽略矩阵的上三角部分。没有考虑到ai,j=aj,i,使同样的数据被读取了两次,算法存在冗余,由于计算过程中读写的开销往往远大于实际乘法计算的开销。而简单忽略矩阵的上三角部分,而继续使用原有的算法,反而会增加计算量和计算时间,综合计算过程会发现该方案的计算效率反而低于前述方案。
潜在的回写冲突是影响对称矩阵计算准确性和高效性的重要影响因素。此外,在并行计算过程中,线程的负载极不均衡,严重浪费处理器的线程资源。部分线程在处理完数据之后就会闲置,而部分线程则需处理大量的数据。
发明内容
有鉴于此,本发明提出了一种对称矩阵与向量相乘的并行计算方法及其系统,具体方案如下:
一种对称矩阵与向量相乘的并行计算方法,包括:
获取待计算的对称矩阵和向量,确定全部线程可并行计算的线程数;
以对称轴为界将所述对称矩阵划分为对称轴区域、上三角区域和下三角区域,将上三角区域或下三角区域以行为单位按照线程数分别划分多个子区域;在每个子区域中,划定与所述对称轴平行的第一轴和/或第二轴,所述第一轴上元素的数量等于所述线程数,所述第二轴上元素的数量小于所述线程数;
采用全部或部分线程并行计算所述对称轴区域与所述向量的乘积得到第一矩阵,将所述第一矩阵写入第一寄存器、第二寄存器或第三寄存器;
在每个子区域中,依序选定一个第一轴作为当前第一轴,采用全部线程对当前第一轴进行两次不同的第一乘法计算,得到两组不同的数据并分别写入第一寄存器和第二寄存器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江凌迪数字科技有限公司,未经浙江凌迪数字科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210445587.1/2.html,转载请声明来源钻瓜专利网。





