一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于机器学习加速器的堆叠管芯的制作方法

2023-02-16 10:28:42 来源:中国专利 TAG:

用于机器学习加速器的堆叠管芯
1.相关申请的交叉引用
2.本技术要求于2020年5月29日提交的名称为“stacked dies for machine learning accelerator”的美国临时申请第63/031,954号和2020年12月21日提交的名称为“stacked dies for machine learning accelerator”的美国非临时申请第17/129,739号的权益,这些申请如同在本文中充分阐述一样以引用的方式并入。


背景技术:

3.处理器速度提高通常无法与存储器带宽速度提高相匹配。已经使用各种技术来补偿这一事实。
附图说明
4.可以从以下描述中获得更详细的理解,通过示例结合附图给出,其中:
5.图1是可实现本公开的一个或多个特征的示例设备的框图;
6.图2a示出了根据一个示例的图1的加速处理设备的细节;
7.图2b示出了根据一个示例的设备和加速器处理设备核心管芯的细节;
8.图3是根据一个示例示出图2b所示的图形处理流水线的附加细节的框图;
9.图4是根据一个示例的存储器和机器学习加速器管芯的示意图;
10.图5示出了根据一个示例的被配置作为高速缓存的存储器和被配置为能够直接访问的存储器之间的存储器的重新配置;
11.图6示出了存储器和机器学习加速器管芯的示例性布局;并且
12.图7是根据一个示例的用于使用堆叠式机器学习和加速器处理设备执行机器学习操作的方法的流程图。
具体实施方式
13.公开了一种设备。该设备包括机器学习管芯,该机器学习管芯包括存储器和一个或多个机器学习加速器;和与该机器学习管芯堆叠的处理核心管芯,该处理核心管芯被配置为执行着色器程序以控制机器学习管芯上的操作,其中该存储器能够被配置作为高速缓存和能够直接访问的存储器中的任一者或两者。
14.图1是可实现本公开的一个或多个特征的示例设备100的框图。设备100可以是例如计算机、游戏设备、手持设备、机顶盒、电视、移动电话、平板计算机或其他计算设备中的一者但不限于这些项。设备100包括处理器102、存储器104、存储装置106、一个或多个输入设备108以及一个或多个输出设备110。设备100还包括一个或多个输入驱动器112和一个或多个输出驱动器114。输入驱动器112中的任一者具体体现为硬件、硬件与软件的组合或软件,并且用于控制输入设备112的目的(例如,控制操作、从输入驱动器112接收输入以及向输入驱动器提供数据)。类似地,输出驱动器114中的任一者具体体现为硬件、硬件与软件的组合或软件,并且用于控制输出设备114的目的(例如,控制操作、从输出驱动器114接收输
入以及向输出驱动器提供数据)。应当理解,设备100可包括图1中未示出的另外部件。
15.在各种另选方案中,处理器102包括中央处理单元(cpu)、图形处理单元(gpu)、位于同一管芯上的cpu和gpu、或一个或多个处理器核心,其中每个处理器核心可为cpu或gpu。在各种另选方案中,存储器104位于与处理器102相同的管芯上,或与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(ram)、动态ram或高速缓存。
16.存储装置106包括固定或可移动存储装置,例如但不限于硬盘驱动器、固态驱动器、光盘或闪存驱动器。输入设备108包括但不限于键盘、小键盘、触摸屏、触摸板、检测器、麦克风、加速度计、陀螺仪、生物扫描仪或网络连接(例如,用于发射和/或接收无线ieee 802信号的无线局域网卡)。输出设备110包括但不限于显示器、扬声器、打印机、触觉反馈设备、一个或多个灯、天线或网络连接(例如,用于发射和/或接收无线ieee802信号的无线局域网卡)。
17.输入驱动器112和输出驱动器114包括被配置为分别与输入设备108和输出设备110交接并驱动它们的一个或多个硬件、软件和/或固件部件。输入驱动器112与处理器102和输入设备108通信,并允许处理器102从输入设备108接收输入。输出驱动器114与处理器102和输出设备110通信,并允许处理器102向输出设备110发送输出。输出驱动器114包括加速处理设备(“apd”)116。在一些具体实施中,apd 116耦接到显示设备118,在一些示例中,该显示设备是使用远程显示协议来显示输出的物理显示设备或模拟设备。apd 116被配置为执行机器学习相关任务。在一些具体实施中,apd 116被配置为接受来自处理器102的通用计算命令和图形渲染命令中的一者或两者,处理那些计算命令和图形渲染命令,并且在一些具体实施中,将像素输出提供给显示设备118用于显示。
18.在一些具体实施中,apd 116包括被配置为根据单指令多数据(“simd”)范式来执行计算的一个或多个并行处理单元。尽管这里将各种功能描述为由apd 116执行或与其结合执行,但在各种另选方案中,被描述为由apd 116执行的功能另外地或另选地由具有类似能力的其他计算设备执行,该其他计算设备不由主机处理器(例如,处理器102)驱动并且被配置为向显示设备118提供图形输出。例如,可以设想根据simd范式执行处理任务的任何处理系统均可被配置为执行本文所述的功能。另选地,可以设想不根据simd范式执行处理任务的计算系统执行本文所述的功能。
19.图2a示出了根据一个示例的apd 116的细节。该apd 116具有堆叠管芯配置,包括apd核心管芯115,以及存储器和机器学习加速器管芯260。这些管芯物理地堆叠,其中一个管芯位于另一个管芯上。管芯经由允许传输数据和命令的互连件可操作地耦接。存储器和机器学习加速器管芯260包括存储器,诸如静态随机存取存储器,以及机器学习加速器,诸如矩阵乘法算术逻辑单元(“alu”),该alu被配置为执行可用于机器学习操作的矩阵乘法运算。在一些具体实施中或操作模式下,该存储器和机器学习加速器管芯260的存储器被apd核心管芯115用作高速缓存。
20.图2b示出了根据一个示例的设备100和apd核心管芯115的细节。处理器102(图1)执行操作系统120、驱动器122和应用程序126,并且另选地或除此之外,还可执行其他软件。操作系统120控制设备100的各个方面,诸如管理硬件资源、处理服务请求、调度并控制进程执行以及执行其他操作。驱动器122控制apd核心管芯115的操作,向apd核心管芯115发送诸
如图形渲染任务的任务或其他作业以供处理。驱动器122还包括即时编译器,该即时编译器编译程序以供apd核心管芯115的处理部件(诸如下文所详述的simd单元138)执行。
21.apd核心管芯115执行用于所选功能的命令和程序,诸如可适于并行处理的图形操作和非图形操作。apd核心管芯115可用于执行图形流水线操作,诸如像素操作、几何计算和基于从处理器102接收的命令将图像渲染到显示设备118。apd核心管芯115还基于从处理器102接收的命令来执行与图形操作不直接相关的计算处理操作,诸如与视频、物理模拟、计算流体动力学或其他任务相关的操作。在一些示例中,通过在simd单元138上执行计算着色器来执行这些计算处理操作。
22.apd核心管芯115包括计算单元132,该计算单元包括被配置为根据simd范式以并行方式在处理器102(或另一单元)的请求下执行操作的一个或多个simd单元138。simd范式是这样一种范式,其中多个处理元件共用单个程序控制流单元和程序计数器并由此执行相同的程序,但能够执行具有不同数据的该程序。在一个示例中,每个simd单元138包括十六个通道,其中每个通道与simd单元138中的其他通道同时执行相同的指令,但可执行具有不同数据的该指令。如果不是所有通道都需要执行给定指令,则可通过预测来关闭通道。还可使用预测来执行具有发散控制流的程序。更具体地,对于具有条件分支或其中控制流基于由单个通道执行的计算的其他指令的程序,预测对应于当前未被执行的控制流路径的通道,并且不同控制流路径的串行执行可实现任意控制流。
23.计算单元132中的基本执行单元是工作项。每个工作项表示要在特定通道中并行执行的程序的单个实例。可在单个simd处理单元138上作为“波前”同时(或部分同时并且部分顺序)执行工作项。一个或多个波前包括在一个“工作组”中,该“工作组”包括被指定执行相同程序的工作项的集合。可通过执行构成工作组的波前中的每一者来执行工作组。在另选方案中,波前在单个simd单元138上执行,或在不同simd单元138上执行。波前可被视为可在单个simd单元138上同时(或伪同时)执行的工作项的最大集合。“伪同时”执行发生在波前大于simd单元138中的通道数的情况下。在这种情况下,波前在多个周期中执行,工作项的不同集合在不同周期中执行。apd调度器136被配置为执行涉及调度计算单元132和simd单元138上的各种工作组和波前的操作。
24.由计算单元132提供的并行性适合图形相关操作,诸如像素值计算、顶点变换和其他图形操作。因此,在一些实例中,接受来自处理器102的图形处理命令的图形流水线134将计算任务提供给计算单元132以供并行执行。
25.计算单元132还用于执行不涉及图形或不作为图形流水线134的“正常”操作(例如,所执行的用以补充针对图形流水线134的操作执行的处理的自定义操作)的一部分而执行的计算任务。在处理器102上执行的应用程序126或其他软件将定义此类计算任务的程序发送到apd 116以供执行。
26.在apd核心管芯115上执行的着色器程序(诸如计算着色器程序)能够请求存储器和机器学习加速器管芯260执行与机器学习相关的操作。此类操作的示例包括将数据移入或移出存储器和ml加速器管芯260的存储器的操作,或使用存储器和ml加速器管芯260的存储器中的数据作为操作数执行alu运算(诸如矩阵乘法)的操作。
27.应注意,尽管图2b的apd核心管芯115包括图形处理流水线134并且执行图形操作,但应当理解,本公开的教导内容可以与不包括图形处理流水线134而包括计算单元132并因
此能够执行着色器程序的apd核心管芯115结合使用。
28.图3是根据一个示例示出图2b所示的图形处理流水线134的附加细节的框图。图形处理流水线134包括各自执行图形处理流水线134的特定功能的阶段。每个阶段部分或全部地实现为在可编程计算单元132中执行的着色器程序,或部分或全部地实现为处于计算单元132外部的功能固定的不可编程硬件。
29.输入汇编器阶段302从用户填写型缓存(例如,在处理器102所执行的软件(诸如应用程序126)的请求下所填写的缓存)中读取图元数据,并且将该数据汇编成图元以供流水线的其余部分使用。基于包括在用户填写型缓存中的图元数据,输入汇编器阶段302可以生成不同类型的图元。输入汇编器阶段302格式化所汇编的图元以供流水线的其余部分使用。
30.顶点着色器阶段304处理由输入汇编器阶段302汇编的图元的顶点。顶点着色器阶段304执行各种逐顶点操作,诸如变换、去皮、变形和逐顶点光照。变换操作包括变换顶点坐标的各种操作。这些操作包括修改顶点坐标的建模变换、视点变换、投影变换、透视除法和视口变换,以及修改非坐标属性的其他操作中的一者或多者。
31.顶点着色器阶段304部分或完全实现为将在一个或多个计算单元132上执行的顶点着色器程序。顶点着色器程序由处理器102提供并且基于计算机程序员所预写的程序。驱动器122编译此类计算机程序以生成顶点着色器程序,该顶点着色器程序具有适合于在计算单元132内执行的格式。
32.外壳着色器阶段306、曲面细分器阶段308和域着色器阶段310一起工作以实现曲面细分,其通过细分图元而将简单图元转换成更复杂图元。基于输入图元,外壳着色器阶段306生成修补程式以供曲面细分。曲面细分器阶段308为修补程式生成一组样本。域着色器阶段310计算与修补程式的样本对应的顶点的顶点位置。外壳着色器阶段306和域着色器阶段310可以实现为将在计算单元132上执行的着色器程序,这些着色器程序如同顶点着色器阶段304的情况一样,由驱动器122编译。
33.几何着色器阶段312逐个图元执行顶点操作。可以由几何着色器阶段312执行各种不同类型的操作,包括诸如以下操作:点精灵扩展、动态粒子系统操作、毛皮-鳍生成、阴影体积生成、单通道渲染到立方图、逐图元材料交换和逐图元材料设置。在一些情况下,由驱动器122编译并在计算单元132上执行的几何着色器程序执行几何着色器阶段312的操作。
34.光栅化器阶段314接受从光栅化器阶段314的上游生成的简单图元(三角形)并将其光栅化。光栅化包括确定哪些屏幕像素(或子像素样本)被特定图元覆盖。光栅化由固定功能硬件来执行。
35.基于上游生成的图元和光栅化的结果,像素着色器阶段316计算屏幕像素的输出值。像素着色器阶段316可应用来自纹理存储器中的纹理。像素着色器阶段316的操作由像素着色器程序执行,该像素着色器程序由驱动器122编译并且在计算单元132上执行。
36.输出合并器阶段318接受来自像素着色器阶段316的输出并且将这些输出合并成目标表面,从而执行诸如z测试和α混合之类的操作,以确定屏幕像素的最终颜色。目标表面是图形处理流水线134内的渲染操作的帧的最终目标。目标表面可以位于存储器中的任何位置(诸如在apd 116的存储器内,或在存储器104中)。
37.图4是根据一个示例的存储器和机器学习加速器管芯260的示意图。存储器和机器学习加速器管芯260包括存储器402、机器学习加速器404、存储器互连件406、管芯间互连件
408和控制器410。
38.在一些示例中,存储器402是用作apd核心管芯115(诸如用于计算单元132)的高速缓存的高速缓存存储器(诸如3级高速缓存存储器)。然而,在某些配置中,存储器402的至少一部分直接用于在机器学习加速器404上执行的操作。机器学习加速器404包括用于执行与机器学习相关联的操作的硬件加速器。此类操作的示例包括矩阵乘法运算。
39.在一些操作模式下,apd核心管芯115执行与机器学习相关联的着色器程序。着色器程序包括用于配置存储器402以直接用于在机器学习加速器404上执行的操作的指令。着色器程序还包括用于将数据存储到此类存储器中的指令。着色器程序还包括用于使机器学习加速器404对存储在存储器中的数据执行机器学习操作的指令。当apd核心管芯115遇到此类指令时,apd核心管芯115指示存储器402加载数据并且指示机器学习加速器404执行所请求的操作。
40.存储器互连件406将存储器402的不同部分耦接在一起并且耦接到机器学习加速器404,使得可以由机器学习加速器404对存储在整个存储器402中的数据执行机器学习操作。管芯间互连件408在存储器和机器学习加速器管芯260与apd核心管芯115以及处理器102之间传送数据和命令。在一些示例中,管芯间互连件408直接耦接到apd核心管芯115的计算单元132。控制器410控制存储器和机器学习加速器管芯260上的操作,诸如机器学习加速器404上的数据传输和机器学习操作。
41.图5示出了根据一个示例的被配置作为高速缓存的存储器502和被配置为能够直接访问的存储器504之间的存储器402的重新配置。在着色器程序或其他实体的请求下,存储器控制器410改变用作高速缓存502的存储器402的量和被配置为能够直接访问的存储器504的量。用作高速缓存502的存储器402的量和被配置为能够直接访问的存储器504的量是可重新配置的。在一些配置中,高速缓存存储器502用于图形操作(例如,在图形处理流水线134上),并且能够直接访问的存储器504用于机器学习操作。
42.图6示出了存储器和机器学习加速器管芯260的示例性布局600。示出的大矩形表示存储器的部分602。示出了多个机器学习算术逻辑单元(“alu”)604。控制器(“cnt”)606也被示出与机器学习alu 604相邻。示出了耦接到控制器的多个管芯间互连件608。存储器互连件610将控制器606耦接在一起。
43.存储器部分602是存储器和机器学习加速器管芯260的存储器的部分。这些项目表示管芯260的总存储器中作为特定控制器606和ml alu 604本地的并且因此由该特定控制器和该ml alu直接控制的部分。管芯间互连件608提供来自控制器606的外部连接。在各种具体实施中,这些管芯间互连件608耦接到apd核心管芯115或处理器102中的任一者或两者。控制器606经由管芯间互连件608在存储器、ml alu 604以及apd核心管芯115和处理器102中的任一者或两者之间通信。
44.存储器互连件610耦接到多个控制器606,并且在那些控制器606之间提供通信链路。该链路允许控制器606从除控制器606本地的存储器部分之外的存储器部分602读取或写入这些存储器部分。在一个示例中,ml alu 604能够通过利用存储器互连件610对来自不同存储器部分602的数据执行操作。
45.尽管图6中示出了各种数量的元件,但应当理解,设想了具有不同数量的所示元件的多种具体实施。
46.尽管本公开描述了耦接到apd管芯的存储器和机器学习加速器管芯,但在另选具体实施中,apd管芯是微处理器管芯。
47.图7是根据一个示例的用于利用apd 116执行操作的方法700的流程图。尽管参照图1至图6的系统进行了描述,但本领域的技术人员将理解,被配置为按任何技术上可行的顺序执行方法700的步骤的任何系统都属于本公开的范围。
48.方法700开始于步骤702,其中apd核心管芯115执行着色器。该着色器包括使用一个或多个ml alu 604执行机器学习操作的指令。
49.在步骤704处,根据该着色器的指令,apd核心管芯115指示一组机器学习alu 604执行一组机器学习任务。经由一个或多个管芯间互连件608发生该指示。
50.在步骤706处,机器学习alu 604执行该一组机器学习任务。在各种示例中,控制器606接收来自apd核心管芯115的通信,该通信包括指示要执行哪些操作的信息,并且控制器606指示一个或多个ml alu 604执行这些操作。在一些示例中,控制器606经由存储器互连件610与另一控制器606通信,以协调执行操作。
51.附图中示出的功能单元中的每一者表示被配置为执行本文所述操作的硬件电路、被配置为执行本文所述操作的软件或被配置为执行本文所述步骤的软件和硬件的组合。此类单元的非排他性列表包括存储装置106、处理器102、输出驱动器114、apd 116、存储器104、输入驱动器112、输入设备106、输出设备110、显示设备118、操作系统120、驱动器122、应用程序126、apd调度器136、图形处理流水线134、计算单元132、simd单元138和图形处理流水线134的任何阶段。
52.应当理解,基于本文的公开内容,可能有许多变化。尽管上述特征和元素在特定组合中进行了描述,但每个特征或元素可以在没有其他特征和元素的情况下单独使用,或者在有或没有其他特征或元素的各种组合中使用。
53.所提供的方法可以在通用计算机、处理器或处理器核心中实现。举例来说,合适的处理器包括通用处理器、专用处理器、常规处理器、数字信号处理器(dsp)、多个微处理器、与dsp核相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)电路,任何其他类型的集成电路(ic)和/或状态机。可以通过使用处理的硬件描述语言(hdl)指令和包括网表的其他中间数据(能够存储在计算机可读介质上的此类指令)的结果来配置制造过程来制造此类处理器。这种处理的结果可以是掩码,然后在半导体制造过程中使用这些掩码来制造实现本公开的特征的处理器。
54.本文提供的方法或流程图可以在并入非暂态计算机可读存储介质中的计算机程序、软件或固件中实现,以供通用计算机或处理器执行。非暂态计算机可读存储介质的示例包括只读存储器(rom)、随机存取存储器(ram)、寄存器、高速缓存存储器、半导体存储器设备、磁性介质(例如内部硬盘和可移动磁盘)、磁光介质和光学介质(例如cd-rom磁盘)以及数字多功能磁盘(dvd)。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献