用于在数字处理系统中调度矩阵运算的方法和设备技术方案

技术编号:32353710 阅读:21 留言:0更新日期:2022-02-20 03:09
人工智能是计算机行业中越来越重要的领域。然而,人工智能是计算极其密集的领域,使得执行人工智能计算可能是昂贵、耗时且耗费精力的。幸运的是,人工智能应用程序所需的许多计算可以并行执行,使得专用的线性代数矩阵处理器可以大大提高计算性能。但即使利用线性代数矩阵处理器,性能也可能会由于复杂的数据依赖性而受到限制。如果没有适当的协调,线性代数矩阵处理器可能会最终处于空闲状态或花费大量时间四处移动数据。因此,本文件公开了用于高效地调度线性代数矩阵处理器的方法。高效地调度线性代数矩阵处理器的方法。高效地调度线性代数矩阵处理器的方法。

【技术实现步骤摘要】
【国外来华专利技术】用于在数字处理系统中调度矩阵运算的方法和设备
[0001]本PCT专利申请要求于2019年5月7日提交的序列号为62/844,499的标题为“用于在数字处理系统中调度矩阵运算的方法和设备(Method and Apparatus for Scheduling Matrix Operations in Digital Processing Systems)”的先前美国临时专利申请的权益。


[0002]本专利技术涉及计算机处理领域。具体地,但非限制性地,本专利技术公开了用于在数字处理电路内调度矩阵运算的数字电路设计、方法和控制系统。

技术介绍

[0003]早期的计算机系统处理计算机指令时每次处理一个指令,且起初受限于一次运行一个计算机程序。为了在多个不同的计算机程序之间共享计算机资源,开发了多任务计算机操作系统。多任务计算机操作系统会中断执行中的计算机程序,存储所述计算机程序的当前状态,接着开始或恢复另一计算机程序的操作,使得计算机系统一次可以执行超过一个计算机程序。
[0004]随着计算机的进一步开发,计算机系统被赋予多个独立的处理核心,使得计算机系统可以并行地执行多组指令。计算机操作系统通过允许独立和并行地执行多个独立的计算机程序而利用这一点。此外,开发包含可以并行地运行的不同代码段或可以被复制和并行地执行的单个代码段的计算机程序。这被称为多线程。
[0005]多任务和多线程用于具有多个处理核心的计算机系统中,以使常规计算机系统的处理吞吐量最大化。这已利用大规模并行处理(MPP)计算机系统进一步扩展,所述MPP计算机系统可以使用极大量的独立计算机处理器或计算机系统来处理具有大量并行性的处理任务。
[0006]近年来,人工智能(AI)领域变得非常重要。人工智能越来越多地用于各种任务,例如图像识别、高性能计算(HPC)、科学计算、机器学习、数据挖掘、语音识别和自动驾驶载具。人工智能应用程序往往非常依赖于线性代数矩阵计算。具体地说,需要矩阵运算来实施从一组训练数据中学习且随后将所述学习应用于新输入数据的人工神经网络(ANN)。
[0007]人工智能(AI)应用程序传统上利用常规计算机系统实施。由于人工智能应用程序中存在相当数量的固有并行性,因此已使用了例如多核处理器等各种并行计算机系统和大规模并行处理(MPP)计算机系统。然而,人工智能应用程序特别依赖于线性代数矩阵计算。尽管传统计算机CPU可以轻松地处理线性代数矩阵计算,但它们并未针对线性代数矩阵计算进行优化。因此,提高效率并减少执行复杂的线性代数矩阵计算所需的时间,已开发许多专用处理器来处理人工智能(AI)内使用的专用线性代数矩阵计算。
[0008]由于越来越多地使用基于人工智能的应用程序,数字电路设计师近年来已开始开发用于执行实施人工神经网络所需的线性代数矩阵运算的专用矩阵处理电路。长期以来,图形处理单元(GPU)一直用于执行三维图形渲染的线性代数运算。因此,图形处理单元
(GPU)已被修改为执行用于人工神经网络的线性代数运算。
[0009]改进后的图形处理单元(GPU)在高效且快速地执行用于人工神经网络的线性代数矩阵运算方面非常有效。然而,修改后的图形处理单元(GPU)通常使用长管线式架构,所述长管线式架构最初被开发来执行用于三维图形渲染的线性代数运算。因此,当执行用于人工神经网络的线性代数运算的大批量运算时,改进后的图形处理单元(GPU)发挥最佳作用。
[0010]已开发了更新的专用数字处理电路来专门执行人工神经网络内使用的线性代数运算。然而,出于各种不同的原因,这些更新的人工智能(AI)处理器仍通常未得到充分利用。例如,存储器限制性、数据依赖性、向量数据的移动、重新加载权重矩阵和其它任务可能会明显减小专用AI处理器的吞吐量。因此,在没有适当协调的情况下,专用AI处理器电路可能会最终处于空闲状态。因此,希望开发用于优化计算效率专用AI处理器的新调度方法。
附图说明
[0011]在不一定按比例绘制的附图中,类似标号贯穿数个附图描述基本上类似的组件。具有不同字母后缀的相似标号表示基本上类似的组件的不同例子。附图借助于示例而非限制性地总体上说明本文件中所论述的各种实施例。
[0012]图1A示出了单层人工神经网络的概念图。
[0013]图1B示出了双层人工神经网络的概念图。
[0014]图2示出了可以用于执行矩阵计算的抽象矩阵处理器的框图。
[0015]图3A示出了两侧由缓冲器且两侧由向量处理器环绕的矩阵处理器阵列的框图。
[0016]图3B示出了图3A的矩阵处理器阵列的一个实施例。
[0017]图4A从概念上示出了通过四层人工神经网络的前向遍历推理运算。
[0018]图4B从概念上示出了通过四层人工神经网络的反向传播运算。
[0019]图4C从概念上示出了通过四层人工神经网络的权重更新运算。
[0020]图5A示出了四层人工神经网络。
[0021]图5B示出了样本数据向量的批次以及必须针对样本数据向量的推理运算执行的运算。
[0022]图6A示出了四层人工神经网络的所有三个常见人工神经网络处理阶段的完整数据依赖性。
[0023]图6B示出了根据四层人工神经网络的所有三个常见人工神经网络处理阶段的数据依赖性排序的三个工作队列。
[0024]图7A示出了用于通过图5A的四层人工神经网络处理数据样本的“层优先(layer

first)”调度系统。
[0025]图7B示出了用于通过图5A的四层人工神经网络处理数据样本的“样本优先(sample

first)”调度系统。
[0026]图8示出了描述其中可以使用本公开的教导的各种不同执行范式的概念图。
[0027]图9示出了用于准备神经网络以供执行的神经网络处理系统的概述。
[0028]图10示出了示出神经网络工作组成系统的操作方式的流程图。
[0029]图11示出了示出神经网络动态调度器准备数据样本的批次以供通过人工神经网络处理的方式的流程图。
[0030]图12A示出了用于第一示例调度操作的四层人工神经网络。
[0031]图12B示出了用于通过图12A的人工神经网络以低时延处理四个数据样本的四个工作队列集合。
[0032]图13A示出了用于第二示例调度操作的四层人工神经网络。
[0033]图13B示出了用于通过图13A的人工神经网络以最大吞吐量处理四个数据样本的四个工作队列集合。
[0034]图14A示出了用于第三示例调度操作的跨两个服务器拆分的四层人工神经网络。
[0035]图14B示出了用于通过图14A的人工神经网络利用两个服务器以最小时延处理四个数据样本的八个工作队列集合。
[0036]图15A示出了用于第四示例调度操作的具有完整训练会话的四层人工神经网络。
[0037]图15B示出了用于通过图15A的人工神经网络上的完整训练本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种调度矩阵运算进行处理的方法,所述方法包括以下阶段:创建多个工作队列,所述工作队列中的每一者包括有序的计算运算集合;为所述多个工作队列中的每一计算运算设置优...

【专利技术属性】
技术研发人员:尚哲
申请(专利权)人:艾克斯派得拉有限责任公司
类型:发明
国别省市:

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

1