一种基于矩阵核心的高性能矩阵向量乘方法技术

技术编号:40968320 阅读:17 留言:0更新日期:2024-04-18 20:49
本方法公开了一种基于深度学习加速器矩阵核心的矩阵向量乘加速方法和装置。方法包括:根据计算规模,将任务分配到一定数量的块上,需要使得处理器核心负载均衡;使用LDS将矩阵原始格式转换并读入矩阵核心的输入对应的存储单元中,提出了避免存储体冲突的方案。使用处理器架构矩阵核心中粒度最细的mma指令来完成块内的矩阵向量乘;使用预取和双缓冲技术,能够持续整体任务中最耗时的访问HBM操作,同时避免流水线中的结构冲突和数据冲突;每个块的计算结果通过硬件的原子累加写入HBM。通过本发明专利技术,能够高性能地使用深度学习处理器中的矩阵核心来执行矩阵向量乘法操作,在实际应用场景中能够有效加速深度学习模型。

【技术实现步骤摘要】

本专利技术设计高性能计算以及深度学习加速领域,尤其涉及深度学习中的一种基于矩阵核心的高性能矩阵向量乘方法


技术介绍

1、深度学习中的计算主要由深度学习加速器提供支持,例如gpu,npu,tpu等等。这类加速器都有着类似的大规模数据的并行计算能力,和cpu组成异构系统。在计算的时候需要将数据从内存搬运至处理器专有的hbm存储空间上。处理器在进行计算的时候,除了编程不可见的l1,l2缓存外,通常还会配有可编程的缓存单元,例如在gpu片上workgroup内线程共享的lds,线程私有的寄存器等。

2、深度学习有大量的矩阵向量乘计算场景,而矩阵乘的计算访存比远远大于其退化得到的矩阵向量乘,所以矩阵向量乘的计算性能通常受限于处理器的带宽,体现在流水线中,计算单元有大量的时间因为在等待访存而闲置。深度学习对能源消耗和资源利用率有着严格的要求。

3、近年来深度学习加速器通常带有加速矩阵计算的矩阵核心,例如nvidia的tensorcore,amd的matrix core,华为昇腾的cube。这些矩阵核心通常用于深度学习中半精度的矩阵乘,并且理论本文档来自技高网...

【技术保护点】

1.一种基于矩阵核心的高性能矩阵向量乘方法,包括以下步骤:

2.根据权利要求1所述的一种基于矩阵核心的高性能矩阵向量乘方法,其特征在于,步骤一所述的任务网格构建方法是指以矩阵向量乘中的矩阵为依据划分出大小为TILE_K×TILE_N的矩阵块,依照公式3和编译阶段的枚举测试得出TILE_K和TILE_N的最佳值。进一步的,以上超参数的值受两方面因素限制,一是K方向上的结果向量的累加次数,希望越少越好,二是block的总数,理想情况是物理处理器的整数倍。

3.根据权利要求1所述的一种基于矩阵核心的高性能矩阵向量乘方法。其特征在于,矩阵向量乘预编译方法根据权利要求1,和...

【技术特征摘要】

1.一种基于矩阵核心的高性能矩阵向量乘方法,包括以下步骤:

2.根据权利要求1所述的一种基于矩阵核心的高性能矩阵向量乘方法,其特征在于,步骤一所述的任务网格构建方法是指以矩阵向量乘中的矩阵为依据划分出大小为tile_k×tile_n的矩阵块,依照公式3和编译阶段的枚举测试得出tile_k和tile_n的最佳值。进一步的,以上超参数的值受两方面因素限制,一是k方向上的结果向量的累加次数,希望越少越好,二是block的总数,理想情况是物理处理器的整数倍。

3.根据权利要求1所述的一种基于矩阵核心的高性能矩阵向量乘方法。其特征在于,矩阵向量乘预编译方法根据权利要求1,和公式3在一个给定区间上推断,对预选的若干种方案的执行性能进行枚举测试,从而得到当前网络下最佳的分块方案。该枚举测试方法不唯一,但过程类似且能达到相同目的。当神经网络的类型和配置确定时,矩阵向量乘计算的形状种类极少,所以针对特定的网络,根据架构所支持的矩阵核心设置块内矩阵向量乘的计算方式和数据分布。

4.根据权利要求1所述的一种基于矩阵核心的高性能矩阵向量乘方法,其特征在于,需要确定的超参数主要包括任务网格内单次处理任务规模,在本方法中主要指输入矩阵子块的行数和列数。

5.根据权利要求1所述的一种基于矩阵核心的高性能矩阵向量乘方法,其特征在于,矩阵核心包括但不限于英伟达gpu上的tensor core计算单元,昇腾npu上的cube计算单元。

6.根据权利要求1所述的一种基于矩阵核心的高性能矩阵向量乘方法,其特征在于,该mma指令指深度学习加速器中,和矩阵核心相关的指令,用以计算一个最基本的矩阵乘加操作。

7.根据权利要求1所述的一种基于矩阵核心的高性能矩阵向量乘方法,其特征在于,双缓冲只针对输入矩阵。需要在矩阵核...

【专利技术属性】
技术研发人员:陆璐钟昊阳
申请(专利权)人:深圳爱特思信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1