硬件构造差异编程的计算机化方法技术

技术编号:37210680 阅读:14 留言:0更新日期:2023-04-20 23:01
本申请的各方面以及实施例通过将可微分编程(DP)并入硬件(例如用于AI的硬件)来克服现有方法的缺陷。在一个方面中,AI软件程序可以是计算图,其可以包括参数化的计算节点,每个计算节点将输入作为上游节点的输出,并且计算输出以馈送给下游节点。在另一方面中,可以通过“训练”过程来确定所有计算节点的参数。在一个方面中,训练程序首先计算用到最终输出的端到端损失,然后计算该损失的输出梯度。在另一方面中,该过程还可以使用标准计算链规则重复地计算中间梯度,遵循用于计算输出的相反方向。向。向。

【技术实现步骤摘要】
硬件构造差异编程的计算机化方法
[0001]相关申请的交叉引用
[0002]本申请要求于2021年11月25日提交的序列号为63/283,249的临时申请的优先权,该临时申请的公开内容在此全文引入作为参考。

技术介绍

[0003]随着全球芯片出现短缺,据报道,一些主要的制造商已经提高了芯片价格,并推迟了其3纳米(nm)制程的生产进程。然而,无论这些报告是否可靠,这都提醒我们,摩尔定律的衰退将带来越来越严重的影响,并迫使我们重新思考人工智能(AI)硬件——它会受到这种衰退的影响,还是会帮助扭转这种趋势?
[0004]如果我们希望恢复摩尔定律的良性循环,这其中,软件和硬件曾经相互加持,使一部现代智能手机比过去10年占据整个仓库的超级计算机功能更强大。人们普遍接受后摩尔时代的良性循环是基于更大的数据迸发更大的模型并需要更强大的机器。但事实上,这样的循环是不可持续的。
[0005]除非我们重新定义并行性,否则,不能再指望缩小晶体管来制造越来越宽的并行处理器。同样,也不能依赖于特定领域架构(DSA),除非它有助于促进及适应软件的发展。
[0006]目前,大多数AI硬件架构围绕加速矩阵乘法中工作量繁重的现有成熟的机器学习(ML),以及依靠图形处理单元(GPU)来进行繁重的工作。在一实例中,一些GPU组成的超级计算机试图使用专门设计的半导体芯片(例如,D1芯片)来出色的实现联网、集成和可缩放性。然而,D1芯片作为这种超级计算机的组成部件,在架构上几乎没有突破。
[0007]可以将当前GPU竞争者分为两个阵营:Many

Core和many

MAC,其中MAC代表乘累加。D1芯片是Many

Core阵营的一个例子,它是将多个CPU核心连接起来的“网格”。另一方面,特斯拉的全自驱动(FSD)或GOOGLE的张量处理单元(TPU)芯片是Many

MAC阵营的缩影,其特点是少量大型矩阵乘法(MM)加速器,每个都在一个“网格”中封装许多乘累积(MAC)单元。正如我们所知,关于AI架构的争论主要集中在网格架构和GPU之间。

技术实现思路

[0008]本申请的第一方面提供了一种用于为硬件构造差异编程的计算机化方法,所述方法包括:识别与所述硬件相关联的一个或多个计算节点,其中,所述一个或多个计算节点中的每一个包括输入和至少一个参数;基于所识别的一个或多个计算节点,以及所述输入和所述至少一个参数,为所述一个或多个计算节点中的每一个构造计算图;为所述一个或多个计算节点中的每一个计算输出;计算所述一个或多个计算节点中的每一个的所述输入和所述输出之间的差分;基于所述差分确定输入梯度;以及将所述输入梯度作为反馈传播到所述计算图中的至少一个上游节点。
[0009]结合第一方面,可选地,所述方法还包括:为所述一个或多个计算节点中的每一个计算输出差分。
[0010]结合第一方面,可选地,所述方法还包括:为所述一个或多个计算节点中的每一个
的所述至少一个参数计算参数差分值。
[0011]结合第一方面,可选地,所述方法还包括:将所述至少一个参数调整为所述参数差分的函数。
[0012]结合第一方面,可选地,其中,所述硬件包括半导体芯片。
[0013]结合第一方面,可选地,其中,所述硬件包括图形处理器。
[0014]结合第一方面,可选地,其中,所述硬件包括特定领域架构硬件。
[0015]本申请的第二方面提供了一种用于在神经网络设置中为硬件构造差异编程的计算机化方法,所述方法包括:识别与所述硬件相关联的一个或多个计算节点,其中,所述一个或多个计算节点中的每一个包括输入和至少一个参数;基于所识别的一个或多个计算节点,以及所述输入和所述至少一个参数,为所述一个或多个计算节点中的每一个构造计算图;为所述一个或多个计算节点中的每一个计算输出;计算所述一个或多个计算节点中的每一个的所述输入和所述输出之间的差分;基于所述差分确定输入梯度;以及将所述输入梯度作为反馈传播到所述计算图中的至少一个上游节点。
[0016]结合第二方面,可选地,所述方法还包括:为所述一个或多个计算节点中的每一个计算输出差分。
[0017]结合第二方面,可选地,所述方法还包括:为所述一个或多个计算节点中的每一个的所述至少一个参数计算参数差分。
[0018]结合第二方面,可选地,所述方法还包括:将所述至少一个参数调整为所述参数差分的函数。
[0019]结合第二方面,可选地,其中,所述硬件包括半导体芯片。
[0020]结合第二方面,可选地,其中,所述硬件包括图形处理器(GPU)。
[0021]结合第二方面,可选地,其中,所述硬件包括特定领域架构(DSA)硬件。
[0022]本申请的各方面试图通过将可微分编程(DP)并入硬件(例如用于AI的硬件)来克服现有方法的缺陷。在一实施例中,AI软件程序可以是计算图。如本申请中所示,其可以包括参数化的计算节点,每个计算节点将输入作为上游节点的输出,并将计算输出反馈给下游节点。在另一实施例中,可以通过“训练”过程来确定所有计算节点的参数。在一实施例中,训练程序首先计算用到最终输出的端到端损失,然后计算该损失的输出梯度。在另一实施例中,沿着用于计算输出的相反方向,它进一步使用标准的微积分链规则重复计算中间梯度。
[0023]在另一实施例中,从DP的角度来说,AI硬件处于AI的核心位置。一方面,AI软件程序是由一起训练以实现端到端目标的计算节点组成的计算图。在另一示例中,只要深度流水线特定领域架构(DSA)硬件是可微分的,它便可以作为计算节点。在另一实施例中,软件程序员可以自由地将可微分硬件插入计算图中,以实现高性能地和以创意解决问题,就像预构建的可定制软件组件一样。在另一实施例中,本申请的各方面不再需要对AI硬件进行“纯度”审查,毕竟AI硬件现在可包括各种可微分硬件。
附图说明
[0024]本领域普通技术人员可以理解,为了描述简洁清楚,图中仅示出了部分元素,而非所有元素的连接关系和选项。例如,在商业上可行的实施例中,常见但为人熟知的元素,尽
管其在商业上可行的实施例中有用或必要,通常不予以描绘,以免对本申请的不同实施例的视图有所妨碍。还可以理解的是,某些动作和/或步骤可以以特定的发生顺序来描述或描绘,而本领域技术人员可以理解的是,实际上不需要这种关于顺序的特异性。还可以理解,除非此处另外阐述了其特定含义,这里所使用的术语和表达可以相对于它们各自相应的查询和研究领域来定义。
[0025]图1A为说明现有技术的Many

Core装置和图形处理单元(GPU)的数据交换流程的图。
[0026]图1B为说明现有技术的Many

MAC设备和GPU的数据交换流的图。
[0027]图2示出了现有技术的摩尔定律迭代和计算性能之间的关系。
[0028]图3示出现有技术的不同域移位的性能缩放的概念图。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于为硬件构造差异编程的计算机化方法,其特征在于,包括:识别与所述硬件相关联的一个或多个计算节点,其中,所述一个或多个计算节点中的每一个包括输入和至少一个参数;基于所识别的一个或多个计算节点,以及所述输入和所述至少一个参数,为所述一个或多个计算节点中的每一个构造计算图;为所述一个或多个计算节点中的每一个计算输出;计算所述一个或多个计算节点中的每一个的所述输入和所述输出之间的差分;基于所述差分确定输入梯度;以及将所述输入梯度作为反馈传播到所述计算图中的至少一个上游节点。2.根据权利要求1所述的计算机化方法,其特征在于,还包括:为所述一个或多个计算节点中的每一个计算输出差分。3.根据权利要求1所述的计算机化方法,其特征在于,还包括:为所述一个或多个计算节点中的每一个的至少一个参数计算参数差分值。4.根据权利要求3所述的计算机化方法,其特征在于,还包括:将所述至少一个参数调整为所述参数差分的函数。5.根据权利要求1所述的计算机化方法,其特征在于,其中,所述硬件包括半导体芯片。6.根据权利要求5所述的计算机化方法,其特征在于,其中,所述硬件包括图形处理器。7.根据权利要求1所述的计算机化方法,其特征在于,其中,所述硬件包括特定领域架构硬件。8.一种用于在神经网络设置中...

【专利技术属性】
技术研发人员:吕坚平
申请(专利权)人:上海天数智芯半导体有限公司
类型:发明
国别省市:

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

1