CN114239794A - 操作方法和电子装置 - Google Patents
操作方法和电子装置 Download PDFInfo
- Publication number
- CN114239794A CN114239794A CN202110481068.6A CN202110481068A CN114239794A CN 114239794 A CN114239794 A CN 114239794A CN 202110481068 A CN202110481068 A CN 202110481068A CN 114239794 A CN114239794 A CN 114239794A
- Authority
- CN
- China
- Prior art keywords
- batch size
- model
- accelerator
- stages
- memory access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
公开了一种操作方法和电子装置。所述操作方法包括:将要在加速器中执行的模型划分为多个级;针对所述多个级中的每个级,确定在加速器的片上存储器中能够处理的最大批大小;将确定的最大批大小确定为将应用于模型的候选批大小,以及将确定的候选批大小之中的使在加速器中执行模型的计算成本与存储器访问成本之和最小化的候选批大小确定为将应用于模型的最终批大小。
Description
本申请要求于2020年9月9日提交到韩国知识产权局的第10-2020-0115565号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
下面的描述涉及主处理器和加速器的操作方法以及包括主处理器和加速器的电子装置。
背景技术
在基于神经网络的推断服务中,用于处理多个批(batch)而不是处理单个批的技术可能无法实现有效的低时延。此外,随着神经网络所需的存储器容量和带宽逐渐增加,当前技术可能无法以有限的资源有效且快速地处理多个批。
发明内容
提供本发明内容以便以简化的形式介绍将在下面的具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
在一个总体方面,一种操作方法包括:将要在加速器中执行的模型划分为多个级,针对所述多个级中的每个级,确定在加速器的片上存储器中能够处理的最大批大小,将确定的最大批大小确定为将应用于模型的候选批大小,以及将确定的候选批大小之中的使在加速器中执行模型的计算成本与存储器访问成本之和最小化的候选批大小确定为将应用于模型的最终批大小。
存储器访问成本可基于模型的权重的存储器访问成本、模型的中间特征图的存储器访问成本、模型的总的批大小、将从其计算存储器访问成本的候选批大小、以及加速器的片外存储器的带宽来确定。
存储器访问成本可以是用于访问加速器的片外存储器的成本。
可在所述多个级之中的具有小于将从其计算存储器访问成本的候选批大小的最大批大小的级中,发生中间特征图的存储器访问成本。
中间特征图的存储器访问成本可基于在所述级中发生的中间特征图的一次性存储器访问成本、将从其计算存储器访问成本的候选批大小、以及针对所述级确定的最大批大小来确定。
权重的存储器访问成本可以是将应用于模型的权重的一次性存储器访问成本。
计算成本可基于加速器处理所述多个级中的每个级所使用的计算时间、将从其计算计算成本的候选批大小、模型的总的批大小以及将从其计算存储器访问成本的候选批大小来确定。
计算成本可基于在处理模型的总的批大小时由模型执行的迭代次数以及每个任务处理候选批大小所使用的净计算时间的总和来确定。
针对所述多个级中的每个级确定最大批大小的步骤可包括:基于每个级的权重的大小、输入特征图、输出特征图、以及片上存储器的大小来确定最大批大小。
划分的步骤可包括:基于以下中的任一个将模型划分为所述多个级:包括在加速器中的处理元件一次能够处理的计算的单位,以及包括在模型中的层的单位。
所述方法还可包括:基于最终批大小来生成用于在加速器中执行模型的指令集。
所述方法可包括:在所述多个级中,基于指令集处理与最终批大小相关联的多个输入,最终批大小是相同地应用于所述多个级的公共批大小。
模型可以是神经网络模型,并且所述多个级中的每个级可对应于神经网络的一个或多个层。
一种非暂时性计算机可读存储介质可存储指令,所述指令在被处理器执行时,配置处理器执行所述方法。
在另一总体方面,一种操作方法包括:接收将在加速器中执行的模型的指令集,以及基于指令集在包括在模型中的多个级中处理与相同地应用于所述多个级的公共批大小相关联的多个输入,其中,在所述多个级之中,具有小于公共批大小的在加速器的片上存储器中能够处理的最大批大小的级可被迭代地执行,并且与公共批大小相关联的中间特征图可被发送到所述级的随后的级。
响应于将在模型中处理的总的批大小大于公共批大小,所述多个级可被迭代地执行,并且与所述总的批大小相关联的输入可被处理。
公共批大小可被确定为针对所述多个级确定的在片上存储器中能够处理的最大批大小之中的使在加速器中执行模型的计算成本与存储器访问成本之和最小化的最大批大小。
所述多个输入可对应于特征图,并且处理所述多个输入的步骤可包括:生成输出特征图。
在另一总体方面,一种电子装置包括:主处理器,被配置为:响应于用于在加速器中执行模型的请求而生成能够由加速器执行的指令集;以及加速器,被配置为:响应于所述指令集被执行,在包括在模型中的多个级中处理与将相同地应用于所述多个级的公共批大小相关联的多个输入,其中,主处理器被配置为:将针对所述多个级确定的在片上存储器中能够处理的最大批大小之中的使在加速器中执行模型的计算成本与存储器访问成本之和最小化的最大批大小确定为公共批大小。
存储器访问成本可基于模型的权重的存储器访问成本、模型的中间特征图的存储器访问成本、模型的总的批大小、将从其计算存储器访问成本的候选批大小来确定。
在所述多个级之中的具有小于将从其计算存储器访问成本的候选批大小的最大批大小的级中,可发生中间特征图的存储器访问成本。
中间特征图的存储器访问成本可基于在所述级中发生的中间特征图的一次性存储器访问成本、将从其计算存储器访问成本的候选批大小、以及针对所述级确定的最大批大小来确定。
基于所述多个级中的每个级的权重的大小、输入特征图、输出特征图以及片上存储器的大小来确定所述多个级中的每个级的最大批大小。
可通过基于以下中的任一个对模型进行划分来确定所述多个级:包括在加速器中的处理元件一次能够处理的计算的单位,以及包括在模型中的层的单位。
在另一总体方面,一种操作方法包括:针对将在加速器中执行的模型的多个级中的每个级,确定在加速器的片上存储器中能够处理的最大批大小;将最大批大小之中的使在加速器中执行模型的计算成本与存储器访问成本之和最小化的最大批大小确定为公共批大小;以及通过在加速器中执行应用了公共批大小的模型来生成一个或多个输出特征图。
从下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
图1示出电子装置的示例。
图2示出加速板的示例。
图3和图4示出确定将应用于模型的批数量的示例。
图5示出基于批处理的推断处理的示例。
图6示出在编译时的操作的示例和在运行时的操作的示例。
图7示出主处理器的操作方法的示例。
图8示出加速器的操作方法的示例。
图9和图10示出电子装置的示例。
贯穿附图和具体实施方式,除非另有描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对大小、比例和描绘可被夸大。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此所阐述的那些操作的顺序,而是除了必须以特定顺序发生的操作之外,可如在理解本申请的公开之后将清楚地那样被改变。在此描述的特征可以以不同的形式来实现,并且不应被解释为限于在此描述的示例。相反,已提供在此描述的示例仅是为了示出在理解了本申请的公开后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些方式。
在此使用的术语仅用于描述各种示例而不用于限制公开。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。如在此所使用的,术语“和/或”包括相关联的所列项的中任何一个以及任何两个或更多个的任何组合。术语“包含”、“包括”和“具有”说明存在所陈述的特征、数量、操作、构件、元件和/或它们的组合,但是不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。在此关于示例或实施例使用术语“可”(例如,关于示例或实施例可包括或实现什么)表示存在包括或实现这样的特征的至少一个示例或实施例,然而全部示例不限于此。
贯穿说明书,当组件被描述为“连接到”另一组件或“结合到”另一组件时,该组件可直接“连接到”另一组件或直接“结合到”另一组件,或者可存在介于它们之间的一个或多个其他组件。相比之下,当元件被描述为“直接连接到”另一元件或“直接结合到”另一元件时,可能不存在介于它们之间的其他元件。
尽管可在此使用诸如“第一”、“第二”和“第三”的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不受这些术语的限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解和基于对本申请的公开的理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)将被解释为具有与它们在相关领域的上下文和本申请的公开中的含义一致的含义,并且不应以理想化或过于形式化的含义进行解释。
此外,在示例实施例的描述中,当认为在理解本申请的公开之后由此已知的结构或功能的详细描述将导致对示例实施例的模糊解释时,将省略这样的描述。在下文中,将参照附图详细描述示例,并且在附图中,相同的参考标号始终表示相同的元件。
图1示出电子装置的示例。
参照图1,电子装置100可包括主处理器110和加速板120。主处理器110和加速板120可通过总线、片上网络(NoC)、外围组件快速互连(PCIe)等彼此通信。
主处理器110可以是被配置为控制包括在电子装置100中的组件的各个操作的装置,并且可包括例如中央处理器(CPU)。主处理器110可接收用于在加速板120中处理神经网络的至少一个请求,并且响应于接收的请求而生成可在加速板120中执行的指令集。可对基于神经网络的数据推断做出请求,并且可对通过允许加速板120执行用于对象识别、模式识别、计算机视觉、语音识别、机器翻译、机器解释、推荐服务、个性化服务、图像处理、自主驾驶等的神经网络来获得数据推断的结果来做出请求。在加速板120中执行推断之前,可由主处理器110仅预先执行一次指令集的生成。当从用户接收到对推断的实际请求时,可在加速板120中执行预先生成的指令集。
主处理器110可将要在加速板120中执行的神经网络划分为多个级(又称为阶段,stage)。主处理器110可针对多个级中的每个级确定在加速板120的片上存储器中可执行的最大批大小。主处理器110可将如前面所述针对多个级中的每个级确定的最大批大小确定为将应用于神经网络的候选批大小。主处理器110可将确定的候选批大小之中的计算成本与存储器访问成本之和被最小化的候选批大小确定为最终批大小。这里,计算成本可以是当在加速器中执行神经网络时发生的成本。然后,主处理器110可基于确定的最终批大小来生成用于在加速器中执行神经网络的指令集。在一个示例中,批可包括针对给定任务和/或层的输入特征图(IFM)和对应的输出特征图(OFM),并且批大小可以是批的数量。
加速板120可以是被配置为根据主处理器110的指令集执行神经网络并对输入数据执行推断的人工智能(AI)加速器,并且可以是与主处理器110区分开的单独的处理器。加速板120可以是例如神经处理单元或神经处理器(NPU)、图形处理器(GPU)、张量处理器(TPU)、数字信号处理器(DSP)等。加速板120可以是基于神经网络的操作特性,比用于通用目的的主处理器110更有效地处理任务的单独的专用处理器。
神经网络可包括多个层。在一个示例中,神经网络可包括输入层、多个隐藏层和输出层。每个层可包括多个节点。每个节点可指示具有至少一个输入和输出的计算单元,并且节点可彼此连接。权重可针对节点之间的连接被设置,并且可被调节或改变。权重可通过增大、减小或保持数据值来确定相关数据值对最终结果的影响。包括在先前层中的节点的加权输入可被输入到包括在输出层中的每个节点。加权数据从一个层输入到该层的随后的层的处理可被称为传播。
在加速板120中,可存在作为推断的目标的多个数据集。在这种情况下,可使用一次对多个数据集执行推断的一个或多个实施例的批处理方法来提高推断操作效率。这里,通过基于计算资源和存储器访问资源确定批的数量(或在此也称为批数量),一个或多个实施例的批处理方法可实现针对加速板120的批处理的优化。
为了便于描述,加速板120在此也可被称为加速器,并且神经网络在此也可被称为模型。
图2示出加速板的示例。
参照图2,加速板200可包括片外存储器210和加速器芯片220。加速器芯片220可包括处理器221、直接存储器访问(DMA)引擎223、缓冲器225和多个计算单元或处理元件(PE)227。
片外存储器210可以是设置在加速器芯片220外部的存储器,并且可包括例如动态随机存取存储器(DRAM)。片外存储器210可存储目标推断数据和/或将在加速器芯片220中执行的神经网络的参数,并且这样存储的数据可被发送到加速器芯片220以用于随后执行推断。在加速器芯片220内部的片上存储器不足以在加速器芯片220中执行神经网络的情况下,可使用片外存储器210。
片外存储器210可具有比加速器芯片220中的片上存储器大的存储器容量。然而,加速器芯片220访问片外存储器210的成本可大于访问片上存储器的成本。因此,当在加速器芯片220中执行神经网络时,为了快速推断,一个或多个实施例的加速板200可降低访问片外存储器210的成本。这样的存储器访问成本可指示访问存储器然后从存储器读取数据或将数据写入存储器中所需的功率和/或时间的量。
加速器芯片220可以是基于神经网络的操作特性比用于通用目的的主处理器更有效地处理任务的单独的专用处理器。这里,可使用包括在加速器芯片220中的一个或多个PE227和片上存储器。
片上存储器可以是包括加速器芯片220中的全局共享缓冲器和/或本地缓冲器的装置,并且可与设置在加速器芯片220外部的片外存储器210区分开。片上存储器可包括例如可通过地址空间访问的暂存存储器、静态随机存取存储器(SRAM)等。
在图2的示例中,片上存储器可以是或者可被指示为缓冲器225。缓冲器225可包括其中定义了任务的操作的任务核、将应用于任务的权重、输入特征图(IFM)和输出特征图(OFM)。这里,可在缓冲器225中存储与将在任务中处理的批大小一样多的IFM和OFM。将数据加载到缓冲器225上或从缓冲器225输出数据的操作可由DMA引擎223控制。
处理器221可基于任务核中定义的操作来控制DMA引擎223的数据移动和/或PE227的计算处理。
PE 227可基于神经网络执行计算或操作(例如,乘法累加(MAC)运算)。
在一个示例中,加速板200可基于来自图1的主处理器110的指令集来执行批处理。在下文中,将参照附图详细描述确定最优的批数量的非限制性示例。
图3和图4示出确定将应用于模型的批数量的示例。
参照图3,将在加速器中执行的模型可被划分为多个级。多个级中的每个级可以是在包括在加速器中的PE中一次可处理的计算的单位,或者是包括在模型中的层的单位(或层单位(layer unit))。在PE中一次可处理的计算的单位在此也可被称为任务或以任务单位(task unit)。单个任务可对应于包括在模型中的单个层,或者可小于或大于单个层。通过以任务为单位来划分模型并执行批处理,一个或多个实施例的操作方法可保持PE的高水平利用率。每个任务可在每个任务被执行时占用加速器的资源并且每个任务可被处理。如上所述,可基于任务单位或层单位将模型划分为多个级。在下文中,为了便于描述,将主要描述基于任务单位将模型划分为级的示例。在图3的示例中,模型被划分为六个任务。然而,下面的描述不是被提供来限制模型,而是也适用于各种数量的任务或层,并且根据其他示例,模型可被划分为任何数量的任务。
对于每个任务,可确定在加速器的片上存储器中可处理的最大批大小。可通过考虑到每个任务所使用的输入特征图(IFM)的大小、权重的大小和输出特征图(OFM)的大小可因任务而不同来针对每个任务确定最大的批大小,并且即使当确定多个批大小时权重也可被重复使用,因此无论批大小如何权重都可被一致地设置,而输入特征图和输出特征图的总的大小可根据批大小而变化。最大批大小在此也可被称为任务内部批(task-innerbatch,TIB)。
每个任务的TIB可被确定为满足“权重+(IFM+OFM)×批≤片上存储器”的最大批数量。也就是说,任务的最大批大小可被确定,使得输入特征图的大小与输出特征图的大小之和与任务的最大批大小之间的乘积不超过通过从片上存储器的大小减去权重的大小而获得的值。也就是说,“批”可以是最大数量,使得“(IFM+OFM)×批”不超过“片上存储器-权重”。例如,对于具有大于将被输入的总的批大小的TIB的任务,可将该任务的TIB设置为与总的批大小相同。
如上所述,由于片外存储器的访问成本大于片上存储器的访问成本,因此,一个或多个实施例的操作方法可通过针对每个任务确定片上存储器中可处理的最大批大小来最大限度地防止对片外存储器的访问。
在一些情况下,当模型以层为单位进行划分时,最大批大小也可被称为层内部批(layer-inner batch,LIB)。每个层的LIB可被确定为满足“权重+(IFM+OFM)×批≤片上存储器”的最大批数量。
另外,可确定所有任务进行处理的公共批大小,以在从每个任务生成的中间特征图被最大限度地保留在片上存储器中的状态下处理后续任务。因为公共批大小被应用于包括多个任务的整个网络,所以公共批大小在此也可被称为网络内部批(network-innerbatch,NIB)。
NIB可以是将在每个任务中生成的中间特征图(IMFM)的批大小。具有大于或等于NIB的TIB的任务可生成与NIB对应的中间特征图,并且可将生成的中间特征图发送到片上存储器中的后续任务。然而,具有小于NIB的TIB的任务可能不会将生成的与NIB对应的所有中间特征图存储在片上存储器中,因此,具有小于NIB的TIB的任务可使用片外存储器。然后,随后的任务可需要从片外存储器加载中间特征图,因此,片外存储器访问可发生。因此,一个或多个实施例的操作方法可通过获得对于模型是最优的NIB来避免或减少这样的片外存储器访问。
针对每个任务确定的TIB可被确定为将应用于模型的候选NIB。在候选NIB之中,可选择具有最小时延的NIB作为最终NIB。也就是说,在候选NIB之中,使当在加速器中执行模型时发生的计算成本与存储器访问成本之和最小化的NIB可被确定为最终NIB。例如,每个候选NIB的成本可由下面的等式1表示。
[等式1]
Cost(NIB)
=Memory_cost(NIB)+Computation_cost(NIB)
在等式1中,Cost(NIB)表示候选NIB的成本。Memory_cost(NIB)表示候选NIB的存储器访问成本。Computation_cost(NIB)表示候选NIB的计算成本。
计算成本Computation_cost()可被确定为与多个级对应的多个任务处理候选NIB的所使用的净计算时间总和(SUM(comp_time_per_task×NIB)),并且可由下面的等式2表示。计算成本基于加速器处理每个级所使用的计算时间、将从其计算计算成本的候选批大小、以及模型的总的批大小来确定。
[等式2]
Computation_cost()
=SUM(comp_time_per_task X MB)X NOB
在等式2中,网络外部批(network-outer batch,NOB)指示用于处理总的批(例如,模型的总的批大小)的模型的迭代次数,网络外部批可被确定为CEIL(总的批大小/NIB)。CEIL表示返回通过四舍五入到最接近的整数而获得的整数的函数。例如,CEIL(x)将x映射到大于或等于x的最小整数。
存储器访问成本可以是用于访问片外存储器的访问成本,并且被分类为每个任务的权重的存储器访问成本和中间特征图的存储器访问成本。在一个示例中,存储器访问成本基于模型的权重的存储器访问成本、模型的中间特征图的存储器访问成本、模型的总的批大小、将从其计算存储器访问成本的候选批大小、以及加速器的片外存储器的带宽来确定。例如,存储器访问成本Memory_cost()可由下面的等式3表示。
[等式3]
Memory_cost()
=(cost(weight_access)+cost(IMFM_access))x NOB x 1/Bandwidth
在等式3中,带宽(Bandwidth)表示加速器的片外存储器的带宽。当模型被执行一次时,与NIB对应的批可被处理,因此,可能需要将模型迭代地执行与NOB对应的次数来处理所有批。存储器访问成本可在每次模型被执行时发生,因此,存储器访问成本可通过NOB与权重的存储器访问成本cost(weight_access)和中间特征图的存储器访问成本cost(IMFM_access)之和之间的乘法来确定。
即使具有小于候选NIB的TIB的任务可被迭代地执行以处理与NIB对应的批,相同的权重也可被使用,因此,权重的存储器访问成本可与任务的迭代处理的次数无关,但是可受到NOB对模型的迭代性能的影响。也就是说,权重的存储器访问成本是将应用于模型的权重的一次性存储器访问成本。例如,权重的存储器访问成本可由下面的等式4表示。
[等式4]
cost(weight_access)=Total_weight
在中间特征图的存储器访问成本的情况下,为了使具有小于候选NIB的TIB的任务处理与NIB一样多的批,中间特征图可被存储在片外存储器中,因此,片外存储器的访问成本可发生。也就是说,在多个级之中的具有小于将从其计算存储器访问成本的候选批大小的最大批大小的级中,发生中间特征图的存储器访问成本。相反,具有大于或等于候选NIB的TIB的任务可仅用片上存储器处理与NIB一样多的批,因此,对片外存储器的访问可能不会发生。在一个示例中,基于在所述级中发生的中间特征图的一次性存储器访问成本、将从其计算存储器访问成本的候选批大小、以及针对所述级确定的最大批大小来确定中间特征图的存储器访问成本。例如,中间特征图的存储器访问成本可由下面的等式5表示。
[等式5]
Cost(IMFM_access)
=Task_IMFM×TOB,其中,TIB<NIB
在等式5中,任务外部批(task-outer batch,TOB)表示为了处理与NIB一样多的批而针对每个任务执行的迭代的次数,任务外部批可被确定为CEIL(NIB/TIB)。一旦任务被执行,与TIB一样多的批就可被处理。因此,为了处理与总的NIB一样多的批,任务可被迭代地执行TOB次。例如,当TOB大于或等于2时,任务的TIB小于NIB,因此,片外存储器的访问成本可发生。在这个示例中,中间特征图的存储器访问成本(Cost(IMFM_access))可由在任务中生成的中间特征图的大小(Task_IMFM)与TOB之间的乘积来确定。模型的中间特征图的存储器访问成本包括发生了中间特征图的片外存储器访问的所有任务的中间特征图的存储器访问成本。
在以层为单位划分模型的情况下,可将层迭代地执行与层外部批(layer-outerbatch,LOB)一样多的次数。LOB可被确定为CEIL(NIB/LIB)。
前述成本可针对每个候选TIB被确定,并且具有最小成本的TIB可被确定为最终TIB并且被应用于模型。因此,一个或多个实施例的操作方法可将在推断期间的片外存储器访问最小化,并且通过考虑计算成本来实现快速推断。
图4示出当处理总共16个批的输入时确定最终NIB的示例。图4中所示的详细数字是为了便于描述而提供的,因此示例不限于此。
与TIB对应的候选NIB中的一个候选NIB可被确定为最终NIB。在图4的示例中,候选NIB是2、4、8和16,不包括重复的TIB。每个候选NIB的成本可被计算,并且具有最小成本的候选NIB可被确定为将应用于模型的最终NIB。
在图4的示例中,最终NIB被确定为4。任务1具有为2的TIB,因此,任务1可将两个输入加载到片上存储器上并一次性地处理。此外,任务1的TOB是2,因此,任务1可被执行两次,并且总共4个输出特征图(或中间特征图)可被生成。在这个示例中,可发生片外存储器的访问成本。在任务2至任务6的情况下,每个任务的TIB可大于或等于最终NIB,因此,可仅用片上存储器处理4个批,而无需片外存储器访问。通过将这样的处理迭代地执行四次(对应于NOB),可处理总共16个批。
任务2至任务6可处理小于片上存储器中可处理的最大批大小的批,没有充分使用加速器资源,因此可似乎需要将模型进行更多次地迭代。然而,如上面参照图3所述,通过在计算NIB的成本时综合考虑除了存储器访问成本之外的计算成本,一个或多个实施例的操作方法可确定较大的最终NIB以降低模型的迭代性能,并且防止将片外存储器的存储器访问成本的急剧增加被添加到总成本。因此,一个或多个实施例的操作方法可获得最优NIB。
主处理器可基于确定的TIB、NIB、TOB和NOB来设置推断所需的数据的存储器地址,将设置的存储器地址记录在指令集的元数据中,并将它发送到加速器。加速器中的固件可基于这样的接收的信息迭代地执行模型,因此,所有批可被处理。
图5示出基于批处理的推断处理的示例。
在下文中,将详细描述当加速器执行推断时如何通过批处理移动数据的非限制性示例。在图5的示例中,每个任务框指示在对应的任务级中的将存储在片上存储器中的数据集(例如,输入特征图I1至I4、输出特征图O1至O4以及权重W1至W6)。
参照图5,最终NIB被确定为4,因此,每个任务可需要处理四个批的输入。如所示出的,任务1的TIB是2,因此,可首先处理两个输入(或批),并且可将其结果存储在片外存储器510中,然后可处理随后的的两个输入。因此,可发生片外存储器510的访问成本。剩余的任务2至任务6可一次处理四个批的输入,因此,可不发生中间特征图对片外存储器510的访问。因此,执行速度可增加。由于通过任务1至任务6的这种一次性执行来处理四个批,所以任务1至任务6的执行可被迭代四次以处理总共16个批。如图5中所示,每次迭代的结果(例如,r1至r4)可被存储在片外存储器510中。
图6示出在编译时的操作的示例和在运行时的操作的示例。
在下文中,将详细描述在编译时主处理器如何操作以及在运行时加速器如何操作的非限制性示例。
参照图6,在操作610中,主处理器可接收与将在加速器中执行的神经网络相关联的信息和将被处理的总的批大小作为输入。与神经网络相关联的信息可包括神经网络中包括的层和节点的数量、权重等。另外,主处理器可接收与加速器的计算资源、存储器访问资源等相关联的硬件信息作为输入。
在操作620中,主处理器可通过将神经网络划分为多个任务来执行以任务为单位的优化。根据示例,可执行优化技术(诸如,以平铺(tiling)、矢量化和张量化为例)。
在操作630中,主处理器可针对多个任务中的每个任务计算TIB,TIB是在片上存储器中可处理的最大批大小。
在操作640中,主处理器可从通过在操作630中的计算获得的TIB中选择使时延最小化的TIB作为最优NIB。
在操作650中,主处理器可基于最优NIB生成核,核是用于在加速器中执行神经网络的指令集。
在操作660中,加速器可接收由主处理器生成的核和作为推断的目标的批数据作为输入。
在操作670中,加速器可通过执行核并基于最优NIB执行批处理来处理总的批的输入。
在操作680中,加速器可返回批结果作为推断结果。
图7示出主处理器的操作方法的示例。
参照图7,在操作710中,主处理器可将要在加速器中执行的模型划分为多个级。在操作720中,针对多个级中的每个级,主处理器可确定在加速器的片上存储器中可处理的最大批大小。在操作730中,主处理器可将每个级的确定的最大批大小确定为将应用于模型的候选批大小,并且将确定的候选批大小之中的使当在加速器中执行模型时发生的计算成本与存储器访问成本之和最小化的批大小确定为最终批大小。
为了更详细地描述上面参照图7描述的操作,可参照上面参照图1至图6描述的内容,因此,为了简洁起见,这里将省略更详细和重复的描述。
图8示出加速器的操作方法的示例。
参照图8,在操作810中,加速器可接收将被执行的模型的指令集。在操作820中,加速器可基于指令集,在包括在模型中的多个级中处理与相同地应用于多个级中的公共批大小相关联的多个输入。这里,在多个级之中,具有小于公共批大小的在加速器的片上存储器中可处理的最大批大小的级可被迭代地执行,并且与公共批大小相关联的中间特征图可被发送到随后的级。
为了更详细地描述上面参照图8描述的操作,可参照上面参照图1至图6描述的内容,因此,为了简洁起见,这里将省略更详细和重复的描述。
根据在此描述的示例实施例,可使用神经处理器有效地优化和处理批输入,通过有效地使用片上存储器来最小化对片外存储器的访问,并且有效地减少总时延。另外,可通过减少片外存储器的不必要使用来有效地减少推断时间。
图9和图10示出电子装置的示例。
参照图9,电子装置被实现为包括主处理器910和加速器920的服务器900。
服务器900可表示与由用户控制的用户终端区分开的单独的装置,并且可通过有线网络和/或无线网络与一个或多个用户终端进行通信。服务器900可接收从多个用户通过他们的用户终端同时发送的推断执行请求。当在加速器920中执行模型时,主处理器910可生成用于基于最优NIB的批处理的指令集。加速器920可基于由主处理器910生成的指令集通过批处理对多个输入快速执行推断。服务器900可将推断结果返回到对应的用户终端。在此描述的用户终端可包括例如计算装置(诸如,智能电话、个人计算机(PC)、平板PC和膝上型计算机)、可穿戴装置(诸如,智能手表和智能眼镜)、家用电器(诸如,智能扬声器、智能TV和智能冰箱)、和/或其他装置(诸如,智能车辆、智能自助服务终端和/或物联网(IoT)装置)。
参照图10,电子装置可被实现为包括主处理器1010和加速器1020的用户终端1000。尽管为了便于描述,用户终端1000在图10中被示出为智能电话,但是由用户控制的任何装置可以是适用的而没有限制。用户终端1000可直接从用户获得推断执行的请求,并且基于由主处理器1010确定的指令集通过批处理在加速器1020中处理多个输入。用户终端1000可简单地将推断结果提供给用户,或者基于推断结果执行后续操作。
主处理器、加速器、电子装置、加速板、片外存储器、加速器芯片、处理器、DMA引擎、缓冲器、PE、片外存储器、服务器、用户终端、电子装置100、主处理器110、加速板120、加速板200、片外存储器210、加速器芯片220、处理器221、DMA引擎223、缓冲器225、PE 227、片外存储器510、服务器900、主处理器910、加速器920、用户终端1000、主处理器1010、加速器1020以及在此针对图1至图10描述的其他设备、装置、单元、模块和组件由硬件组件实现或由硬件组件表示。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,通过计算硬件(例如,通过一个或多个处理器或计算机)来实现执行在本申请中描述的操作的硬件组件中的一个或多个硬件组件。可通过一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现处理器或计算机。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简明,单数术语“处理器”或“计算机”可用于本申请中描述的示例的描述,但是在其他的示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,一个或多个其他硬件组件可通过一个或多个其他处理器,或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理、多指令多数据(MIMD)多处理。
图1至图10中示出的执行在本申请中描述的操作的方法通过计算硬件(例如,通过一个或多个处理器或计算机)来执行,计算硬件被实现为如上所述地执行指令或软件,以执行在本申请中描述的通过该方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可通过一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或其任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机如机器或专用计算机那样进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的更高级代码。可基于附图中所示的框图和流程图以及说明书中的对应描述使用任何编程语言来编写指令或软件,附图中所示的框图和流程图以及说明书中的对应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、卡型存储器(诸如,多媒体卡或微型卡(例如,安全数字(SD)或极限数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构,并将所述指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器或计算机能执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式被存储、访问和执行。
虽然本公开包括特定的示例,但是在理解本申请的公开之后将清楚,在不脱离权利要求及其等同物的精神和范围的情况下,可以在这些示例中进行形式和细节上的各种改变。在此描述的示例仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其他组件或它们的等同物替换或补充,则可实现合适的结果。
因此,公开的范围不是由具体实施方式限定,而是由权利要求及其等同物限定,并且在权利要求及其等同物的范围内的所有变化应被解释为包括在公开中。
Claims (25)
1.一种操作方法,包括:
将要在加速器中执行的模型划分为多个级;
针对所述多个级中的每个级,确定在加速器的片上存储器中能够处理的最大批大小;以及
将确定的最大批大小确定为将应用于模型的候选批大小,以及
将确定的候选批大小之中的使在加速器中执行模型的计算成本与存储器访问成本之和最小化的候选批大小确定为将应用于模型的最终批大小。
2.根据权利要求1所述的操作方法,其中,存储器访问成本基于模型的权重的存储器访问成本、模型的中间特征图的存储器访问成本、模型的总的批大小、将从其计算存储器访问成本的候选批大小、以及加速器的片外存储器的带宽来确定。
3.根据权利要求2所述的操作方法,其中,存储器访问成本是用于访问加速器的片外存储器的成本。
4.根据权利要求2所述的操作方法,其中,在所述多个级之中的具有小于将从其计算存储器访问成本的候选批大小的最大批大小的级中,发生中间特征图的存储器访问成本。
5.根据权利要求4所述的操作方法,其中,中间特征图的存储器访问成本基于在所述级中发生的中间特征图的一次性存储器访问成本、将从其计算存储器访问成本的候选批大小、以及针对所述级确定的最大批大小来确定。
6.根据权利要求2所述的操作方法,其中,权重的存储器访问成本是将应用于模型的权重的一次性存储器访问成本。
7.根据权利要求1所述的操作方法,其中,计算成本基于加速器处理所述多个级中的每个级所使用的计算时间、将从其计算计算成本的候选批大小、以及模型的总的批大小来确定。
8.根据权利要求1所述的操作方法,其中,计算成本基于在处理模型的总的批大小时将由模型执行的迭代次数以及与所述多个级对应的多个任务处理候选批大小所使用的净计算时间的总和来确定。
9.根据权利要求1至权利要求8中的任意一项所述的操作方法,其中,针对所述多个级中的每个级确定最大批大小的步骤包括:
基于每个级的权重的大小、输入特征图的大小、输出特征图的大小以及片上存储器的大小来确定最大批大小。
10.根据权利要求1至权利要求8中的任意一项所述的操作方法,其中,划分的步骤包括:
以包括在加速器中的处理元件一次能够处理的计算为单位或者以包括在模型中的层为单位将模型划分为所述多个级。
11.根据权利要求1至权利要求8中的任意一项所述的操作方法,还包括:
基于最终批大小来生成用于在加速器中执行模型的指令集。
12.根据权利要求11所述的操作方法,还包括:在所述多个级中,基于指令集处理与最终批大小相关联的多个输入,最终批大小是相同地应用于所述多个级的公共批大小。
13.根据权利要求1至权利要求8中的任意一项所述的操作方法,其中,模型是神经网络模型,并且所述多个级中的每个级对应于神经网络的一个或多个层。
14.一种操作方法,包括:
接收将在加速器中执行的模型的指令集;以及
基于指令集在包括在模型中的多个级中处理与相同地应用于所述多个级的公共批大小相关联的多个输入,
其中,在所述多个级之中,具有小于公共批大小的在加速器的片上存储器中能够处理的最大批大小的级被迭代地执行,并且与公共批大小相关联的中间特征图被发送到所述级的随后的级。
15.根据权利要求14所述的操作方法,其中,响应于将在模型中处理的总的批大小大于公共批大小,所述多个级被迭代地执行,并且与所述总的批大小相关联的输入被处理。
16.根据权利要求14或15所述的操作方法,其中,公共批大小被确定为针对所述多个级确定的在片上存储器中能够处理的最大批大小之中的使在加速器中执行模型的计算成本与存储器访问成本之和最小化的最大批大小。
17.根据权利要求14或15所述的操作方法,其中,所述多个输入对应于特征图,并且处理所述多个输入的步骤包括:生成输出特征图。
18.一种电子装置,包括:
主处理器,被配置为:响应于用于在加速器中执行模型的请求而生成能够由加速器执行的指令集;以及
加速器,被配置为:响应于所述指令集被执行,在包括在模型中的多个级中处理与将相同地应用于所述多个级的公共批大小相关联的多个输入,
其中,主处理器被配置为:
将针对所述多个级确定的在片上存储器中能够处理的最大批大小之中的使在加速器中执行模型的计算成本与存储器访问成本之和最小化的最大批大小确定为公共批大小。
19.根据权利要求18所述的电子装置,其中,存储器访问成本基于模型的权重的存储器访问成本、模型的中间特征图的存储器访问成本、模型的总的批大小、将从其计算存储器访问成本的候选批大小、以及加速器的片外存储器的带宽来确定。
20.根据权利要求19所述的电子装置,其中,在所述多个级之中的具有小于将从其计算存储器访问成本的候选批大小的最大批大小的级中,发生中间特征图的存储器访问成本。
21.根据权利要求20所述的电子装置,其中,中间特征图的存储器访问成本基于在所述级中发生的中间特征图的一次性存储器访问成本、将从其计算存储器访问成本的候选批大小、以及针对所述级确定的最大批大小来确定。
22.根据权利要求18至权利要求21中的任意一项所述的电子装置,其中,基于所述多个级中的每个级的权重的大小、输入特征图的大小、输出特征图的大小以及片上存储器的大小确定所述多个级中的每个级的最大批大小。
23.根据权利要求18至权利要求21中的任意一项所述的装置,其中,
以包括在加速器中的处理元件一次能够处理的计算为单位或者
以包括在模型中的层为单位将模型划分为所述多个级。
24.一种操作方法,包括:
针对将在加速器中执行的模型的多个级中的每个级,确定在加速器的片上存储器中能够处理的最大批大小;
将最大批大小之中的使在加速器中执行模型的计算成本与存储器访问成本之和最小化的最大批大小确定为公共批大小;以及
通过在加速器中执行应用了公共批大小的模型来生成一个或多个输出特征图。
25.一种存储指令的非暂时性计算机可读存储介质,所述指令在被处理器执行时,配置处理器执行权利要求1至权利要求17以及权利要求24中的任意一项所述的操作方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0115565 | 2020-09-09 | ||
KR1020200115565A KR20220033314A (ko) | 2020-09-09 | 2020-09-09 | 호스트 프로세서 및 가속기의 동작 방법 및 이들을 포함한 전자 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114239794A true CN114239794A (zh) | 2022-03-25 |
Family
ID=77021174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110481068.6A Pending CN114239794A (zh) | 2020-09-09 | 2021-04-30 | 操作方法和电子装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220075645A1 (zh) |
EP (1) | EP3968238A1 (zh) |
KR (1) | KR20220033314A (zh) |
CN (1) | CN114239794A (zh) |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8584122B2 (en) * | 2006-03-31 | 2013-11-12 | Ebay Inc. | Batch scheduling |
US7925647B2 (en) * | 2007-07-27 | 2011-04-12 | Oracle International Corporation | Techniques for optimizing SQL statements using user-defined indexes with auxiliary properties |
US8856463B2 (en) * | 2008-12-16 | 2014-10-07 | Frank Rau | System and method for high performance synchronous DRAM memory controller |
US8880203B2 (en) * | 2010-05-21 | 2014-11-04 | Fisher-Rosemount Systems, Inc. | On-line alignment of a process analytical model with actual process operation |
JPWO2012124117A1 (ja) * | 2011-03-17 | 2014-07-17 | 富士通株式会社 | タイミングエラー除去方法、設計支援装置、及びプログラム |
US9710306B2 (en) * | 2012-04-09 | 2017-07-18 | Nvidia Corporation | Methods and apparatus for auto-throttling encapsulated compute tasks |
US20140143191A1 (en) * | 2012-11-20 | 2014-05-22 | Qualcomm Incorporated | Piecewise linear neuron modeling |
US10757437B2 (en) * | 2014-07-17 | 2020-08-25 | Apple Inc. | Motion estimation in block processing pipelines |
US9697443B2 (en) * | 2014-12-11 | 2017-07-04 | Intel Corporation | Model compression in binary coded image based object detection |
US10019668B1 (en) * | 2017-05-19 | 2018-07-10 | Google Llc | Scheduling neural network processing |
US11151449B2 (en) * | 2018-01-24 | 2021-10-19 | International Business Machines Corporation | Adaptation of a trained neural network |
CN110795228B (zh) * | 2018-08-03 | 2023-08-25 | 伊姆西Ip控股有限责任公司 | 用于训练深度学习模型的方法和制品、以及计算系统 |
US20200226458A1 (en) * | 2019-01-10 | 2020-07-16 | Mipsology SAS | Optimizing artificial neural network computations based on automatic determination of a batch size |
US11275846B2 (en) * | 2019-02-16 | 2022-03-15 | Intel Corporation | Method and system of computer graphics processing system validation for processing of encrypted image content |
US11797345B2 (en) * | 2019-04-30 | 2023-10-24 | Prakash C R J Naidu | Hardware accelerator for efficient convolution processing |
US20210240524A1 (en) * | 2020-01-31 | 2021-08-05 | Qualcomm Incorporated | Methods and apparatus to facilitate tile-based gpu machine learning acceleration |
US20200226453A1 (en) * | 2020-03-27 | 2020-07-16 | Intel Corporation | Methods and apparatus for dynamic batching of data for neural network workloads |
-
2020
- 2020-09-09 KR KR1020200115565A patent/KR20220033314A/ko active Search and Examination
-
2021
- 2021-04-02 US US17/221,258 patent/US20220075645A1/en active Pending
- 2021-04-30 CN CN202110481068.6A patent/CN114239794A/zh active Pending
- 2021-07-21 EP EP21187005.0A patent/EP3968238A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220075645A1 (en) | 2022-03-10 |
EP3968238A1 (en) | 2022-03-16 |
KR20220033314A (ko) | 2022-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347480B2 (en) | Transpose operations using processing element array | |
JP2020521195A (ja) | ニューラルネットワーク処理のスケジューリング | |
JP7430744B2 (ja) | 機械学習モデルを改良して局所性を改善させること | |
CN113312171A (zh) | 加速器、加速器的操作方法和加速器系统 | |
CN113760531A (zh) | 调度器、操作调度器的方法以及包括调度器的加速器设备 | |
CN113469354B (zh) | 受存储器限制的神经网络训练 | |
CN111465943A (zh) | 芯片上计算网络 | |
TWI775210B (zh) | 用於卷積運算的資料劃分方法及處理器 | |
US20220129325A1 (en) | Parallelization method and apparatus with processing of neural network model for manycore system | |
CN113011553A (zh) | 加速器、操作加速器的方法和包括加速器的装置 | |
CN114386560A (zh) | 数据处理方法和设备 | |
KR20220013896A (ko) | 프로세서의 신경망 아키텍처를 결정하기 위한 방법 및 장치 | |
CN114008589A (zh) | 用于在顺序处理器上进行多次执行的动态代码加载 | |
CN114118348A (zh) | 加速器、操作加速器的方法以及包括加速器的电子装置 | |
US12014202B2 (en) | Method and apparatus with accelerator | |
CN113496248A (zh) | 训练计算机实施的模型的方法和设备 | |
CN114239794A (zh) | 操作方法和电子装置 | |
CN115018061A (zh) | 神经处理装置和神经处理装置的操作方法 | |
US11636569B1 (en) | Matrix transpose hardware acceleration | |
CN114912590A (zh) | 处理器、操作处理器的方法以及包括处理器的电子装置 | |
CN114168311A (zh) | 计算装置和处理器实现的方法 | |
KR20220049325A (ko) | 가속기 및 이를 포함한 전자 장치 | |
CN113821471A (zh) | 神经网络的处理方法和电子装置 | |
US11797280B1 (en) | Balanced partitioning of neural network based on execution latencies | |
US20220147398A1 (en) | Method and apparatus for lightweight and parallelization of accelerator task scheduling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |