【技术实现步骤摘要】
针对深度学习的浮点矩阵乘算子众核并行优化方法
本专利技术涉及一种针对深度学习的浮点矩阵乘算子众核并行优化方法,属于深度学习
技术介绍
深度学习中,数据以张量的形式在不同的神经网络层中前向传播和后向传播,通过梯度修正优化参数以达到准确预测的目的,这一过程中涉及大量矩阵计算,其中以矩阵乘积和卷积计算量最大,这两种计算核心都是矩阵乘。矩阵乘算子的性能直接影响矩阵乘积和卷积的性能,对深度学习计算整体性能有较大的影响,因而相关算法的优化对这一领域有着深刻意义。矩阵乘是深度学习中的典型算子,一方面其计算规范,另一方面根据实际计算中矩阵形状任意,需要考虑所有可能的矩阵大小,因此对矩阵乘的优化既要充分利用其无关联的特点,也要对任意形状的矩阵的适用性都进行考虑。目前矩阵乘优化算法采用了均匀分块的策略,利用了计算的规范性、无关联性,主要存在两点问题:(1)存在重复的数据读写,没有实现数据共享;(2)缺乏对不同形状,特别是当某一维度很小时的分块算法实现,而这种计算在深度学习中非常多见。
技术实现思路
...
【技术保护点】
1.一种针对深度学习的浮点矩阵乘算子众核并行优化方法,其特征在于:包括将输入矩阵和输出矩阵进行扩展和在从核阵列上基于分块矩阵乘法进行计算;/n所述将输入矩阵和输出矩阵进行扩展包括以下步骤:/nS1、对输入矩阵和输出矩阵预申请扩展矩阵的空间:对一个M*N的矩阵,最小分块大小为blkM、blkN,确定该方向扩展维度M_size和N_size的大小,并进行内存分配,其中,M_size= MAX(M*2,blkM),N_size = MAX(N*2,blkN);/nS2、在预申请空间上对输入矩阵和输出矩阵进行排布:对于M和N满足整除条件的矩阵分块,将其保留在原矩阵中,对于M或N不满 ...
【技术特征摘要】
1.一种针对深度学习的浮点矩阵乘算子众核并行优化方法,其特征在于:包括将输入矩阵和输出矩阵进行扩展和在从核阵列上基于分块矩阵乘法进行计算;
所述将输入矩阵和输出矩阵进行扩展包括以下步骤:
S1、对输入矩阵和输出矩阵预申请扩展矩阵的空间:对一个M*N的矩阵,最小分块大小为blkM、blkN,确定该方向扩展维度M_size和N_size的大小,并进行内存分配,其中,M_size=MAX(M*2,blkM),N_size=MAX(N*2,blkN);
S2、在预申请空间上对输入矩阵和输出矩阵进行排布:对于M和N满足整除条件的矩阵分块,将其保留在原矩阵中,对于M或N不满足整除条件的,在M和N方向分别分配32个从核,针对M和N方向采用两种补齐策略,通过众核读入写回,将输入矩阵和输出矩阵写入扩展矩阵的对应位置;
S3、对于行方向M不整除情况,行数小于M的部分,按行读入N个数据,并对非整除列赋零后扩展为N_size个数据,写回扩展矩阵的对应位置,对于行数大于M部分,不读入,按行方向扩展赋零后扩展为N_size个数据,根据读入数据的行号写回扩展矩阵的对应位置;
S4、对于列方向N不整除部分,首先从原始矩阵跨步读入右侧N不整除部分数据到局存,倒序扩展第N+1到N_size列为0,然后根据读入数据的行列号将扩展后的数据通过跨步写回的方式写回到扩展矩阵的对应位置;
所述在从核阵列上基于分块矩阵乘法进行计算包括以下步骤:
S5、按照从核阵列的结构特点,将输入矩阵和输出矩阵的扩展矩阵均分为8*8个数据块,以便映射到从核阵列上;
S6、每个从核根据自己在8*8从核阵列的行列号,通过DMA从主存读入输入矩阵和输出矩阵的一个数据块;
S7、每个从核仅计算8*8个输出矩阵块中的一个,基于分块矩阵乘法,利用核间行广播和列广播通信,分8步完成整个计算,以(i,j)从核为例,对输入为W、Di的矩阵乘法,具体步骤如下:
S71、列坐标为0的从核通过行广播共享本地的W数据,行坐标为0的数据通过列广播共享本地的Di数据,...
【专利技术属性】
技术研发人员:刘沙,刘鑫,黄则强,陈德训,朱传家,彭超,裴阳,陆旭峰,
申请(专利权)人:无锡江南计算技术研究所,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。