使用灵活精度运算的矩阵乘法单元制造技术

技术编号:33301710 阅读:20 留言:0更新日期:2022-05-06 12:08
处理单元(140)包括多个矢量信号处理器(VSP)(151

【技术实现步骤摘要】
【国外来华专利技术】使用灵活精度运算的矩阵乘法单元

技术介绍

[0001]使用深度学习、高性能计算(HPC)、云计算和图形渲染等数据密集型应用来解决包括大规模模拟、气候变化、计算生物学、疾病预防、金融建模等的挑战。例如图形处理单元(GPU)的处理单元被设计成提供高浮点性能和高内存带宽速度,以支持数据密集型应用。例如,GPU中的每个单指令多数据(SIMD)元件包括四个矢量信号处理器(VSP)以执行例如矩阵乘法的并行运算。对应软件平台允许工程师利用高性能GPU的资源。在一些情况下,软件平台支持深度学习操作(dlop),所述dlop提供灵活混合精度功能以支持动态工作负载,例如训练神经网络和对训练后的神经网络运行推理。实现灵活混合精度功能需要结合复杂多路复用器、GPU中VSP之间的交叉开关以及增加例如矢量通用寄存器(VGPR)的寄存器布局的复杂性。
附图说明
[0002]通过参考附图,更好地理解本公开,并且使得本领域技术人员明白其许多特征和优点。在不同附图中使用相同附图标记来指示相似或相同项。
[0003]图1是根据一些实施方案的支持灵活精度矩阵运算的处理系统的框图。
[0004]图2是根据一些实施方案的两个矩阵的矩阵乘法的框图。
[0005]图3是根据一些实施方案的包括四个矢量信号处理器(VSP)的单指令多数据(SIMD)单元的框图,所述VSP协同地从系统存储器中提取矩阵的部分以执行矩阵乘法。
[0006]图4是根据一些实施方案的在一轮矩阵乘法中的迭代序列的第一次和第二次迭代期间的VSP缓冲器的框图。
[0007]图5是根据一些实施方案的在一轮矩阵乘法中的迭代序列的第三次和第四次迭代期间的VSP缓冲器的框图。
[0008]图6是根据一些实施方案的两个矩阵的矩阵乘法的框图,所述矩阵乘法使用一个矩阵中的子矩阵的交替布置。
[0009]图7是根据一些实施方案的通过将操作数循环通过处理单元的多个VSP中的缓冲器来执行一轮矩阵乘法的方法的框图。
具体实施方式
[0010]数据密集型应用消耗包括内存、处理能力和带宽的大量处理资源以在存储器与处理器之间移动数据。因此,这些应用需要硬件以较低的功率提供较高的计算密度,以及支持浮点和整数运算的不同精度。GPU的性能受限于操作数的精度以及每面积和每瓦的深度学习操作(dlop)速率。32位流处理器的性能可通过实现扩展的累积寄存器文件进行扩展,以支持更高吞吐量的多精度dlop。但是,dlop速率的提高受到分离两个VGPR文件的架构的限制,并且不能使矩阵流水线的逻辑可用于一般计算,例如需要双精度的HPC应用。
[0011]图1至图7公开了用于在第一和第二矩阵的矩阵乘法期间减少高性能处理单元中每单位面积的功耗,同时增加数据的重用并因此减少包括多个矢量信号处理器(VSP)的处
理单元中的带宽消耗的技术。VSP协同地将第一和第二矩阵的部分从存储器提取到对应寄存器(例如,矢量通用寄存器VGPR)中,所述寄存器实现处理单元的单指令多数据(SIMD)元件。在第一次迭代中,将第一和第二矩阵的部分从寄存器写入到多个VSP中对应的第一和第二缓冲器中。多个VSP中的乘法累加元件组合第一和第二缓冲器中的值并且存储结果以用于与后续结果累加。在随后的迭代中,将第一矩阵的部分循环通过多个VSP的第一缓冲器,使得第一和第二矩阵的部分的不同组合被多个VSP相乘和累加。例如,如果在SIMD元件中实现了四个VSP,则将第一矩阵的四个部分和第二矩阵的四个部分写入四个第一缓冲器和四个第二缓冲器。VSP中的乘法累加元件执行矩阵乘法运算,然后经由交叉开关将第一矩阵的部分循环到不同VSP中的不同第一缓冲器中。乘法累加元件同时执行另一组矩阵乘法运算,并且所述过程重复四次。响应于执行存储在与多个VSP相关联的寄存器中的第一矩阵的每个部分与第二矩阵的每个部分的乘法/累加,将多个VSP中的每一个的累加结果写回到VGPR(或到VGPR之前的对应输出缓冲器)。然后将第一和第二矩阵的新部分提取到寄存器中以进行下一轮矩阵乘法运算。
[0012]图1是根据一些实施方案的支持灵活精度矩阵运算的处理系统100的框图。处理系统100包括或可以访问系统存储器105或使用例如动态随机存取存储器(DRAM)的非暂时性计算机可读介质实现的其它存储组件。然而,存储器105的一些实施方案使用包括静态随机存取存储器(SRAM)、非易失性RAM等的其它类型的存储器来实现。处理系统100还包括总线110,以支持在处理系统100中实施的例如存储器105的实体之间的通信。处理系统100的一些实施方案包括其它总线、桥接器、开关、路由器等,为了清楚起见未在图1中示出。
[0013]处理系统100包括中央处理单元(CPU)115。CPU 115的一些实施方案包括同时或并行执行指令的多个处理元件(为了清楚起见未在图1中示出)。处理元件被称为处理器核心、计算单元或使用其它术语。CPU 115连接至总线110,因此经由总线110与存储器105通信。CPU 115执行例如存储在存储器105中的程序代码120的指令,并且CPU 115将例如所执行指令的结果的信息存储在存储器105中。CPU 115还能够通过发出绘图调用来发起图形处理。
[0014]输入/输出(I/O)引擎125处理与显示器130以及例如键盘、鼠标、打印机、外部磁盘等的处理系统100的其它元件相关联的输入或输出操作。I/O引擎125耦合至总线110,使得I/O引擎125能够与存储器105、CPU 115或连接至总线110的其它实体通信。在所示实施方案中,I/O引擎125读取存储在外部存储组件135上的信息,所述外部存储组件使用例如压缩盘(CD)、数字视频光盘(DVD)等非暂时性计算机可读介质来实现。I/O引擎125还将例如CPU 115进行的处理结果的信息写入到外部存储组件135。
[0015]处理系统100包括图形处理单元(GPU)140,所述图形处理单元渲染图像以在显示器130上呈现。例如,GPU 140渲染对象以产生提供给显示器130的像素值,所述显示器使用像素值来显示表示渲染的对象的图像。GPU 140的一些实施方案用于通用计算。在所示实施方案中,GPU 140通过总线110与存储器105(以及连接至总线110的其它实体)通信。然而,GPU 140的一些实施方案通过直接连接或经由其它总线、桥接器、开关、路由器等与存储器105通信。GPU 140执行存储在存储器105中的指令,并且GPU 140将例如所执行指令的结果的信息存储在存储器105中。例如,存储器105存储表示将由GPU 140执行的程序代码的指令的副本145。
[0016]GPU 140包括一个或多个单指令多数据(SIMD)单元150,但为了清楚起见,图1中仅
示出了一个。SIMD单元150包括多个处理元件,例如矢量信号处理器(VSP)151、152、153、154,它们在本文中统称为“VSP 151

154”。在所示实施方案中,VSP 151

154由交叉本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种设备,其包括:多个矢量信号处理器(VSP),其包括乘法/累加元件;以及与所述多个VSP相关联的多个寄存器,其中在包括多次迭代的第一轮之前将第一和第二矩阵的第一部分提取到所述多个寄存器中,其中在将所述第一和第二矩阵的第二部分提取到所述多个寄存器中以进行第二轮之前,所述乘法/累加元件在所述多次迭代中对所述第一和第二矩阵的所述第一部分的子集的不同组合执行矩阵乘法和累加。2.如权利要求1所述的设备,其中所述多个VSP还包括第一缓冲器、第二缓冲器和输出缓冲器,并且其中在发起所述多次迭代之前将所述第一和第二矩阵的所述第一部分的所述子集从所述多个寄存器复制到所述多个VSP中的所述第一和第二缓冲器。3.如权利要求2所述的设备,其中在所述多次迭代的当前迭代期间,所述乘法/累加元件对所述当前迭代期间对应第一和第二缓冲器中存储的所述第一和第二矩阵的所述第一部分的所述子集执行矩阵乘法和累加。4.如权利要求3所述的设备,其中在所述当前迭代期间,在所述乘法/累加元件针对所述当前迭代执行所述矩阵乘法和累加之后,将所述第一矩阵的所述第一部分的所述子集循环到不同VSP。5.如权利要求4所述的设备,还包括:交叉开关,其将所述多个VSP互连,其中所述第一矩阵的所述第一部分的所述子集经由所述交叉开关循环到所述不同VSP。6.如权利要求1所述的设备,其中所述多次迭代对应于所述多个VSP,使得所述乘法/累加元件在所述第一轮的所述多次迭代期间对所述第一和第二部分中的所述第一部分的所述子集的所有组合执行所述矩阵乘法和累加。7.如权利要求1至6中任一项所述的设备,其中所述多个VSP还包括:输出缓冲器,其中在对所述第一轮中的所述多次迭代执行所述矩阵乘法和累加之后并且在开始所述第二轮之前,所述乘法/累加元件将所述乘法的累加结果写入到所述输出缓冲器。8.如权利要求7所述的设备,其中响应于所述乘法/累加元件将所述累加结果写入...

【专利技术属性】
技术研发人员:何斌迈克尔
申请(专利权)人:超威半导体公司
类型:发明
国别省市:

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

1