[发明专利]一种针对神威体系架构的稀疏矩阵向量乘的并行计算方法有效
申请号: | 201810262274.6 | 申请日: | 2018-03-28 |
公开(公告)号: | CN108446253B | 公开(公告)日: | 2021-07-23 |
发明(设计)人: | 杨海龙;刘常喜;李云春;栾钟治 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;邓治平 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 针对 神威 体系 架构 稀疏 矩阵 向量 并行 计算方法 | ||
1.一种针对神威体系架构的稀疏矩阵向量乘的并行计算方法,其特征在于,包括:
将稀疏矩阵由原来的单层次数据结构,分割为多层次数据结构,多层次数据结构包括fleet、block、tile、slice四个层次;fleet为针对稀疏矩阵的行进行切割,是计算单元的任务单元;tile是对fleet针对稀疏矩阵的列进行切割,为每个计算核的任务单元;slice是tile的一行数据,为一次寄存器通信可以传输的任务单元;block为多个连续的slice;
将多层次数据结构分别对应到神威的硬件体系结构和计算层次之中;
将8×8核组的同行的几个从核组合成与多层数据结构中fleet层对应的计算单元来进行协同计算;每个计算单元由一个I/O核和若干个计算核构成,I/O核负责接收计算核计算出的结果,加入到该I/O核对于结果向量的缓存中,并在一个block处理完后,将对应的结果向量缓存写回内存中;
在tile层和slice层之间加入batch机制,每次缓存从核能够承载的最多数量的slices;同时采用异步缓存技术,每次提前缓存下一个batch需要的数据,在计算时直接采用上次已经提前缓存好的数据。
2.根据权利要求1所述的针对神威体系架构的稀疏矩阵向量乘的并行计算方法,其特征在于,计算核的计算流程包括以下步骤:
步骤(1)判断分配的Block是否已经计算完毕,如果是,则执行步骤(8),否则执行步骤(2);
步骤(2)判断Block内部的Tiles是否已经计算完毕,如果是,则执行步骤(7),否则执行步骤(3);
步骤(3)判断Tile内部的Batchs是否计算完毕,如果是,则执行步骤(2),否则执行步骤(4);
步骤(4)缓存该Batch计算需要的所有数据,执行步骤(5);
步骤(5)判断Batch内部的Slices是否计算完毕,如果是,则执行步骤(3),否则执行步骤(6);
步骤(6)计算Slices内部的数据,并在之后将计算结果传入I/O核中,执行步骤(5);
步骤(7)发送一个Block已完成的消息,并等待同步信息,在收到同步信息之后,执行步骤(1);
步骤(8)计算完毕。
3.根据权利要求1所述的针对神威体系架构的稀疏矩阵向量乘的并行计算方法,其特征在于,I/O核的计算流程包括以下步骤:
步骤(a)判断分配的Block是否已经计算完毕,如果是,则执行步骤(i),否则执行步骤(b);
步骤(b)初始化完成任务的计算核数目为0,执行步骤(c);
步骤(c)判断是否所有的计算核都完成了任务,是,则执行步骤(h),否则执行步骤(d);
步骤(d)等待接受计算核发来的消息,执行步骤(e);
步骤(e)判断是否为Block已完成的消息,是,则执行步骤(g),否则执行步骤(f);
步骤(f)将传入的消息加入计算结果的对应位置,执行步骤(d);
步骤(g)累计已完成任务的计算核的数量,执行步骤(c);
步骤(h)发送同步消息给所有的计算核,执行步骤(a);
步骤(i)计算完毕。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810262274.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于转置矩阵以及用于转置输入向量的电路
- 下一篇:数据采集方法及装置