CN115244521A - 用于存储数据的分级方法和系统 - Google Patents
用于存储数据的分级方法和系统 Download PDFInfo
- Publication number
- CN115244521A CN115244521A CN202080098193.2A CN202080098193A CN115244521A CN 115244521 A CN115244521 A CN 115244521A CN 202080098193 A CN202080098193 A CN 202080098193A CN 115244521 A CN115244521 A CN 115244521A
- Authority
- CN
- China
- Prior art keywords
- data
- selection device
- data selection
- memory
- instances
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于判断训练深度神经网络的各个数据实例(例如,前向激活、激活的反向导数)要存储在片上还是片外的系统和方法。所公开的系统和方法还用于修剪数据(丢弃或删除所选的数据实例)。系统包括片上和片外存储器的分层排列,并且还包括用于决定是否丢弃数据以及在系统中何处丢弃数据的各个数据选择器件的分层排列。
Description
背景技术
在执行人工智能任务的深度神经网络的训练期间,反向传播(BP)算法被广泛使用。一般而言,BP用于根据在先前(例如,迭代)时期计算的误差级别来确定并微调神经网络的神经元(或节点)的权重。BP在本领域中是公知的。
训练以“小批量”执行,每一小批量由数十到数百个样本组成。每个样本都从输入层通过中间(或隐藏)层到输出层的“前向”方向经过神经网络。每一层可以包括能够沿着不同路径与其他层中的一个或多个其他节点进行通信的多个节点。
每个样本产生一组信号,本文称为数据的单元或实例。激活函数基于节点的输入定义节点的输出。节点的每个输入都可以称为激活。在训练神经网络时,激活如上所述通过网络前向传播,并且误差信号通过网络反向传播。前向的激活可以称为前向激活(fw_a),并且误差信号可以称为激活的反向导数(bw_da),这两者在本文中也称为数据实例。节点的权重变化(权重梯度)被确定为fw_a和bw_da的函数。
每个时期产生的数据量(例如,fw_a、bw_da)以及总数据量可以是可观的并且可以超过片上存储器容量。于是,一些数据必须进行片外存储。但是,访问存储在芯片外的数据比访问存储在芯片上的数据要慢。因此,片外内存事务增加了延迟并降低了计算效率,增加了训练神经网络所需的时间,也增加了执行训练的计算机系统消耗的能量。
发明内容
因此,总体上减少存储器事务的数量并且尤其减少片外存储器事务的数量的系统或方法是有利的。本文公开了提供这些优点的系统和方法,从而还减少了等待时间、提高了计算效率、减少了训练神经网络所花费的时间,并减少了能源消耗。
在各个实施例中,所公开的系统和方法用于确定各个数据实例(例如,前向激活(fw_a)、激活的反向导数(bw_da))要存储在片上还是片外。所公开的系统和方法还用于“修剪”数据(丢弃或删除所选的数据实例),以总体上减少总数据量,尤其是减少片外存储的数据量。
在一实施例中,根据本发明的系统包括各个存储器的分层布置,并且还包括用于决定是否丢弃数据以及在系统中何处丢弃数据的各个数据选择器件的分层布置。在一实施例中,所述系统包括片上系统(SOC),SOC包括多个处理引擎、多个存储器以及多个数据选择器件。每个处理引擎包括处理单元、存储器(本文称为第一存储器)和数据选择器件(本文称为第一数据选择器件)。SOC还包括耦接到第一数据选择器件的多个其他数据选择器件(本文称为第二数据选择器件)。SOC还包括许多其他存储器(本文称为第二存储器)。在一实施例中,每个第二存储器耦接到相应第二数据选择器件。SOC还包括耦接到第二数据选择器件的其他数据选择器件(本文称为第三数据选择器件)。SOC耦接到片外存储器(本文称为第三存储器)。第三存储器耦接第三数据选择器件。
在本实施例中,每个第一数据选择器件经由操作用于选择从其相应处理单元接收的各个数据实例(例如,fw_a、bw_da)。第一数据选择器件未选择的各个数据实例被丢弃。第一数据选择器件选择的至少一些数据实例存储在相应第一(片上)存储器中。第一数据选择器件选择并且未存储在第一存储器中的各个数据实例被转发到任一个第二数据选择器件。
在本实施例中,每个第二数据选择器件经由操作用于选择从第一数据选择器件接收的各个数据实例。第二数据选择器件接收且未被选择的各个数据实例被丢弃。第二数据选择器件选择的至少一些数据实例存储在相应第二(片上)存储器中。由第二数据选择器件选择且未存储在第二存储器中的各个数据实例被转发到第三数据选择器件。
在本实施例中,第三数据选择器件经由操作用于选择从第二数据选择器件接收的各个数据实例。第三数据选择器件接收且未被选择的各个数据实例被丢弃。由第三数据选择器件选择的各个数据实例存储在第三(片外)存储器中。
第一数据选择器件、第二数据选择器件和第三数据选择器件可以使用各种测试或方法来选择(或丢弃)各个数据实例。在一实施例中,每个第一数据选择器件将各个数据实例的值与阈值进行比较,并选择具有满足阈值的相应值的各个数据实例。换言之,例如,如果一数据实例的值小于最小值,则丢弃这个数据实例。
在一实施例中,每个第二数据选择器件随机选择要存储的各个数据实例和要丢弃的各个数据实例。
在一实施例中,第三数据选择器件将各个数据实例从最高值到最低值排名进行排序,并基于排名选择一定百分比的数据实例。换言之,例如,第三数据选择器件选择排序后的各个值的前百分之X。
因此,根据本发明的实施例减少了存储在片外的数据量,进而减少了芯片外存储器事务的数量。总体上减少了数据量,进而减少了深度神经网络训练期间的存储器事务(片上和片外)的总数。
本领域普通技术人员在阅读了各种附图中示出的实施例的具体实施方式后,会认识到本发明的各种实施例的上述和其他目的和优点。
附图说明
各个附图被并入本说明书并形成本说明书的一部分,其中,相同的标号描绘了相同的元件,这些附图说明了本公开的实施例并且与具体实施方式一起用于解释本公开的原理。
图1是示出根据本发明的实施例中用于在执行人工智能任务的深度神经网络的训练期间管理数据的过程的框图。
图2是示出根据本发明的实施例中用于管理数据和减少存储器事务的系统的框图。
图3是示出根据本发明的实施例中用于管理数据和减少存储器事务的系统的框图。
图4是示出根据本发明的实施例中用于管理数据和减少存储器事务的系统实现方式的操作的流程图。
具体实施方式
现在将详细参考本公开的各种实施例,其各个示例在附图中示出。尽管结合这些实施例进行了描述,但应理解它们并非旨在将本公开限制于这些实施例。相反,本公开旨在覆盖替代形式、改进形式和等同形式,它们可以包括在由所附权利要求限定的本公开的精神和范围内。此外,在本公开的以下具体实施方式中,阐述了许多具体细节以便提供对本公开的透彻理解。然而,应当理解,可以在没有这些具体细节的情况下实施本公开。在其他情况下,没有详细描述众所周知的方法、程序、组件和电路,以免不必要地混淆本公开的方面。
以下详细描述的一些部分是根据程序、逻辑块、处理和对计算机存储器内的数据位的操作的其他符号化表示来呈现的。这些描述和表示是数据处理领域的技术人员用来最有效地将他们的工作传达给本领域的其他技术人员的手段。在本申请中,过程、逻辑块、处理等被设想为导致期望结果的自洽的步骤序列或指令序列。这些步骤是利用物理量的物理操作的步骤。通常,尽管不是必须的,这些量采用能够在计算机系统中存储、传输、组合、比较和以其他方式操作的电或磁信号的形式。有时,主要出于常用的原因,将这些信号称为事务、位、值、元素、符号、字符、样本、像素等已被证明是方便的。
然而,应该记住,所有这些和类似的术语都将与适当的物理量相关联并且仅仅是应用于这些量的方便标签。除非从以下讨论中清楚地另有明确说明,否则应理解,在整个本公开中,使用诸如“接收”、“发送”、“转发”、“访问”、“确定”、“使用”、“存储”、“选择”、“丢弃”、“删除”、“读取”、“写入”、“执行”、“比较”、“满足””、“排序”、“排序”、“训练”等术语的讨论是指装置或计算机系统或类似电子计算设备或系统(例如,图2系统200和图3的系统300)的各个动作和各个处理。计算机系统或类似的电子计算设备操纵并且转换存储器、寄存器或其他此类信息存储、传输或显示设备中表示为物理(电子)量的数据。
本文描述的各个实施例可以在驻留在某种形式的计算机可读存储介质上由一个或多个计算机或其他设备执行的诸如程序模块的计算机可执行指令的通用上下文中进行讨论。作为示例而非限制,计算机可读存储介质可以包括非瞬态计算机存储介质和通信介质。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。在各种实施例中,程序模块的功能可以根据需要组合或分配。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、闪存(例如SSD)或其他存储技术、光盘ROM(CD-ROM)、数字多功能磁盘(DVD)或其他光学存储设备、磁带、磁带、磁盘存储设备或其他磁性存储设备,或任何其他可用于存储所需信息并可以访问以检索的介质该信息。
通信媒体可以体现计算机可执行指令、数据结构和程序模块,并且包括任何信息传递媒体。作为示例而非限制,通信媒体包括诸如有线网络或直接有线连接的有线媒体,以及诸如声学、射频(RF)、红外线和其他无线媒体的无线媒体。以上任何内容的组合也可以包括在计算机可读介质的范围内。
图1是图示根据本发明的实施例中用于在执行人工智能(AI)任务的深度神经网络(DNN)的训练期间管理数据的处理100的框图。DNN包括多个层,例如,层i和i+1。每层包括一个或多个神经元或节点。在训练期间,各个数据实例(前向激活(fw_a))在前向上(例如,从第i层到第i+1层)经过DNN,并且各个数据实例(导数的反向激活(bw_da))也在向后上(例如,从第i+1层到第i层)经过DNN。各个节点处的权重变化(权重梯度(w))可以确定为fw_a和bw_da的函数,如图1的上部(虚线上方)所示。
在根据本发明的实施例中,在框102和框104中,针对是否修剪(删除、丢弃、不存储)fw_a和/或bw_da数据的数据实例执行决定。例如,这些决定可以基于相对于可用计算机系统存储容量的数据量执行。例如,如果可用存储器容量低于对应阈值,或者数据量超过对应阈值,则可以修剪数据。如果决定不修剪数据,则处理100进行到框110;否则,处理100进行到块106和/或框108。
如果决定是用来修剪数据,则可以在框106中修剪fw_a数据,并且可以在框108中修剪bw_da数据。下面进一步描述用于修剪数据的系统和方法。应注意,可以决定只修剪fw_a数据,或只修剪bw_da数据,或修剪两种类型的数据。如将在下面进一步描述的,修剪数据可以导致更少的存储器事务(对存储器写入各个访问、从存储器读取各个访问)。
在框110中,使用fw_a数据和bw_da数据来计算权重梯度Δw。在框112中输出权重梯度。
图2是示出根据本发明的实施例中用于管理数据和减少存储器事务的系统200的框图。
在图2实施例中,系统200包括片上系统(SOC)250。SOC250包括多个片上处理引擎核202_1到202_N,其中N可以是任何实际整数值(大于或等于1)。处理引擎核可以统称为处理引擎核202或单独称为处理引擎核202。在一实施例中,处理引擎核各自连接到总线210。
每个处理引擎核202包括相应核上处理引擎或处理单元204_1至204_N。一个或多个处理引擎可以统称为处理单元204或单独称为处理单元204。例如,处理单元204可以是诸如中央处理单元、矢量处理单元(VPU)、矩阵乘法单元(MMU)、AI训练处理器或AI加速器等计算单元,但本发明不限于此。
每个处理引擎核202还包括相应核上存储器206_1至206_N。核上存储器可统称为第一存储器206或单独称为第一存储器206。例如,第一存储器206可实施为高速缓存、缓冲器、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或高带宽存储器(HBM),但本发明不限于此。
在实施例中,每个处理引擎核202还包括相应核上数据选择器件208_1至208_N。核上数据选择器件可以统称为第一数据选择器件208或单独称为第一数据选择器件208。第一数据选择器件208可以不在核上,而可以是耦接到处理引擎核202的独立设备。一般而言,每个第一数据选择器件208耦接到相应处理单元204。
在各个实施例中,SOC250还包括其他多个片上数据选择器件212_1至212_M,其中,M可以是任何实际整数值(大于或等于1)。这些数据选择器件可以统称为第二数据选择器件212或单独地称为第二数据选择器件212。第二数据选择器件212耦接到总线210,进而耦接到处理引擎核202,具体地,耦接到第一数据选择器件208。
SOC250还包括其他多个片上存储器214_1至214_K,其中K可以是任何实际整数值(大于或等于1)。其他这些存储器可以统称为第二存储器214或单独称为第二存储器214。一般而言,处理单元204与第一存储器206之间的事务比处理单元与第二存储器214之间的事务执行更快。也就是说,在各个存储器的层次结构中,第一存储器206在物理上比第二存储器214更靠近处理单元204。
在一实施例中,每个第二存储器214耦接到相应的第二数据选择器件212。也就是说,在一实施例中,第二数据选择器件212和第二存储器214之间存在一一对应关系(M等于K);然而,本发明不限于此。例如,第二存储器214可以实施为SRAM或DRAM,但本发明不限于此。
在各个实施例中,SOC250还包括又一片上数据选择器件,称为第三数据选择器件216。第三数据选择器件216耦接到总线210,进而耦接到第二数据选择器件212。
SOC250耦接到称为第三存储器230的片外存储器。第三存储器230耦接到第三数据选择器件216。例如,第三存储器230可以实施为DRAM,但是本发明不限于此。一般而言,处理单元204与第二存储器214之间的事务比处理单元与第三存储器230之间的事务执行更快,这是因为第二存储器在物理上更靠近处理单元204,还因为第三存储器处于片外。
在一实施例中,SOC250包括耦接到在第三数据选择器件216与第三存储器230之间的其他组件或器件,包括但不限于稀疏引擎218和双倍数据速率(DDR)接口220。稀疏引擎218可用于确定第三数据选择器件216输出的少量数据实例为非零。
第一数据选择器件208、第二数据选择器件212和第三数据选择器件216可以使用各种测试或方法来选择(或丢弃)各个数据实例。可以根据器件执行的测试类型或机制类型来选择数据选择器件的类型。选择数据选择器件类型的其他因素包括对整体系统性能的影响,例如,精度、延迟和速度、功耗和硬件开销(例如,器件所占用的空间)。数据选择器件的类型还可以取决于器件在系统200中的数据选择器件层次结构中的位置。例如,第一数据选择器件208在层次结构中较高;因此,第一数据选择器件208的数量更多。此外,第一数据选择器件208比第二数据选择器件212和第三数据选择器216接收和评估更多数据实例。于是,第一数据选择器件208的类型比在层次结构中较低的数据选择器件的类型具有更多约束。例如,相对于层次结构中较低的其他数据选择器件,第一数据选择器件208将有利地占用更少的空间并且在延迟、速度和功耗方面更优。类似地,第二数据选择器件212比第三数据选择器件216具有更多约束。
在各个实施例中,每个第一数据选择器件208经由操作用于选择从其相应处理单元204接收的各个数据实例(例如,fw_a、bw_da)。第一数据选择器件208未选择的各个数据实例被丢弃。第一数据选择器件208选择的至少一些数据实例被存储在相应第一(片上)存储器206中。第一数据选择器件208选择且未存储在第一数据存储器206中的各个数据实例转发到任一个第二数据选择器件212。
在一实施例中,每个第一数据选择器件208比较各个数据实例的值(具体地,绝对值)和阈值,并且选择具有满足阈值的相应值的数据实例。换言之,例如,如果一数据实例的值小于最小值,则丢弃这个数据实例。在一实施例中,第一数据选择器件208在硬件中实现为比较器。第一数据选择器件208使用的阈值是可编程的。例如,根据诸如期望精度、期望训练时间、期望计算效率、可用片上存储器容量以及文中提到的其他因素等从一个时期改变到另一个时期,不同时期的阈值可以不同。
在各个实施例中,每个第二数据选择器件212经由操作用于选择从第一数据选择器件208接收的各个数据实例。由第二数据选择器件212接收且未被第二数据选择器件212选择的各个数据实例被丢弃。由第二数据选择器件212选择的至少一些数据实例被存储在相应第二(片上)存储器214中。由第二数据选择器件212选择且未被存储在第二存储器214中的各个数据实例转发到第三数据选择器件216。
在一实施例中,每个第二数据选择器件212随机选择要存储的各个数据实例和要丢弃的各个数据实例。在一实施例中,第二数据选择器件212采用随机数发生器和寄存器的硬件中实现,寄存器将随机数(例如,0或1)与每个数据实例关联。然后,例如,与值1关联的数据实例被丢弃。可以对随机数发生器进行编程,使得一定百分比的数据实例与一个值(例如,1)关联,使一定百分比的数据实例被丢弃。随机数发生器使用的百分比值是可编程的。例如,根据诸如期望精度、期望训练时间、期望计算效率、可用片上存储器容量和文中提到的其他因素等,不同时期的百分比值可以不同。
在各个实施例中,第三数据选择器件216经由操作用于选择从第二数据选择器件212接收的各个数据实例。由第三数据选择器件216接收且未被第三数据选择器件216选择的各个数据实例被丢弃。由第三数据选择器件选择的各个数据实例存储在第三(片外)存储器230中。
在一实施例中,第三数据选择器件216从最高值到最低值的排名(例如,使用各个数据实例的绝对值)对各个数据实例进行排序,并且基于排名选择一定百分比的数据实例。换言之,例如,第三数据选择器件216选择前X百分比的排序值或前Y个值(Y是整数)。在一实施例中,第三数据选择器件216以硬件实现为比较器和寄存器。第三数据选择器件216使用的X值或Y值是可编程的。例如,根据诸如期望精度、期望训练时间、期望计算效率和文中提到的其他因素等,不同时期的X值或Y值可以不同。
图3是示出根据本发明的各个实施例中用于管理数据和减少存储器事务的系统300的框图。系统300与图2的系统200类似,并且采用图2的系统200的特定方式呈现。相同的标号描绘相同的元件。
在图3的示例中,SOC350耦接到主机CPU310,主机CPU310进而耦接到主机存储器312(例如,DRAM)。SOC350包括调度器314、直接存储器访问(DMA)引擎316以及命令缓冲器318。
SOC350还包括处理引擎核302和303,与图2的处理引擎核202类似。在一实施例中,处理引擎核302是包括多个处理核304_1到304_N的VPU,与图2的第一存储器206类似,多个处理核304_1到304_N耦接到相应缓冲器306_1至306_N。在一实施例中,处理引擎核303是MMU,并且包括类似于第一存储器206的缓冲器307。处理引擎核302和303还包括第一数据选择器件208和第二数据选择器件212,第一数据选择器件208和第二数据选择器件212耦接到第二存储器214(例如,SRAM)。SOC350还包括耦接到第二存储器214的第三数据选择器件216。第三数据选择器件350耦接到片外存储器(例如,DRAM)加速器320,加速器320进而耦接到第三(片外)内存230。
系统300与系统200以类似方式操作,评估各个数据实例并相应地修剪各个数据实例,从而总体上减少存储器事务的数量,尤其是片外存储器事务的数量。
图4是示出根据本发明的各个实施例中用于管理数据和减少存储器事务的方法中的操作的流程图400。流程图400可以分别在图2的系统200和图3的系统300上实现和使用。流程图400参照图2的元素来描述,但是根据图3的上述论述,这样的描述可以很容易地扩展到系统300。
在图4的框402中,各个数据实例从处理单元204接收到第一数据选择器件208。
在框404中,第一数据选择器件208选择从处理单元204接收的各个数据实例。
在框406中,第一数据选择器件208未选择的各个数据实例被丢弃。
在框408中,第一数据选择器件208选择的至少一些数据实例被存储在第一存储器206中。
在框410中,由第一数据选择器件208选择且未存储在第一存储器206中的各个数据实例转发到第二数据选择器件212。框402、404、406、408和410对于每个处理引擎核202而言类似地执行。
在框412中,第二数据选择器件212选择从第一数据选择器件208接收的各个数据实例。
在块414中,第二数据选择器件212未选择的各个数据实例被丢弃。
在框416中,由第二数据选择器件212选择的至少一些数据实例被存储在第二存储器214中。
在块418中,由第二数据选择器件212选择且未存储在第二存储器214中的各个数据实例转发到第三数据选择器件216。框412、414、416和418与第二数据选择器件212和第二存储器214类似地执行。
在框420中,第三数据选择器件216选择从第二数据选择器件212接收的各个数据实例。
在框422中,第三数据选择器件216未选择的各个数据实例被丢弃。
在框424中,第三数据选择器件216选择的各个数据实例存储在第三存储器230中。
本文描述和/或图示的工艺参数和步骤顺序仅作为示例给出并且可以根据需要而变化。例如,虽然此处所示和/或描述的步骤可以以特定顺序显示或讨论,但这些步骤不一定需要以所示或讨论的顺序执行。本文描述和/或图示的各种示例方法也可以省略本文描述或图示的步骤中的一个或多个,或者包括除了所公开的那些之外的附加步骤。
此外,尽管前述公开使用特定框图、流程图和示例阐述了各种实施例,但是本文描述和/或图示的每个框图组件、流程图步骤、操作和/或组件可以单独和/或被实施或共同使用各种硬件、软件或固件(或其任意组合)配置。此外,其他组件中包含的组件的任何公开都应被视为示例,因为可以实现许多其他架构来实现相同的功能。
尽管这里已经在全功能计算系统或设备的上下文中描述和/或图示了各种实施例,但是这些示例实施例中的一个或多个可以以各种形式作为程序产品分发,而不管特定类型如何用于实际执行分发的计算机可读介质。这里公开的实施例也可以使用执行某些任务的软件模块来实现。这些软件模块可以包括可以存储在计算机可读存储介质或计算系统中的脚本、批处理或其他可执行文件。这些软件模块可以配置计算系统或设备以执行本文公开的示例实施例中的一个或多个。
一个或多个软件模块可以在云计算环境中实现。云计算环境可以通过互联网提供各种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过Web浏览器或其他远程接口访问。可以通过远程桌面环境或任何其他基于云的计算环境来提供本文描述的各种功能。
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,本公开中定义的主题不一定限于上述特定特征或动作。相反,以上描述的特定特征和动作被公开为实施本公开的示例形式。
因此描述了根据本发明的实施例。尽管已经在特定实施例中描述了本公开,但是应当理解,本发明不应被解释为受这些实施例的限制,而是根据所附权利要求来解释。
Claims (20)
1.一种系统,包括:
处理引擎核,处理引擎核包括处理单元和耦接到处理单元的第一存储器;
第二存储器,耦接到处理单元,其中,所述处理单元与所述第一存储器之间的事务比所述处理单元与所述第二存储器之间的事务执行更快;
第一数据选择器件,耦接到所述处理单元;以及
第二数据选择器件,耦接到所述第一数据选择器件;
其中,所述第一数据选择器件经由操作用于选择从所述处理单元接收的各个数据实例,其中,所述第一数据选择器件未选择的各个数据实例被丢弃,其中,所述第一数据选择器件选择的至少一些数据实例被存储在所述第一存储器中,其中,所述第一数据选择器件选择并且未存储在所述第一存储器中的各个数据实例从所述第一数据选择器件转发到所述第二数据选择器件,其中,所述第二数据选择器件经由操作用于选择从所述第一数据选择器件接收的各个数据实例,并且其中,所述第二数据选择器件选择的至少一些数据实例存储在所述第二存储器中。
2.如权利要求1所述的系统,其中,所述第一数据选择器件将从所述处理单元接收的各个数据实例的值与阈值进行比较,并且其中,所述第一数据选择器件选择的各个数据实例具有满足所述阈值的相应值。
3.如权利要求1所述的系统,进一步包括:
第三数据选择器件,耦接到所述第二数据选择器件;以及
第三存储器,耦接到所述处理单元,其中,所述处理单元与所述第二存储器之间的事务比所述处理单元与所述第三存储器之间的事务执行更快;
其中,所述第一数据选择器件接收的但未被所述第二数据选择器件选择的各个数据实例被丢弃,其中,所述第二数据选择器件选择的且未存储在所述第二存储器中的各个数据实例从所述第二数据选择器件转发到所述第三数据选择器件,其中,所述第三数据选择器件经由操作用于选择从所述第二数据选择器件接收的各个数据实例,并且其中,所述第三数据选择器件选择的各个数据实例存储在所述第三存储器中。
4.如权利要求3所述的系统,其中,所述第二数据选择器件将相应随机选择的值与所述第一数据选择器件接收的每个数据实例关联,并且其中,所述第二数据选择器件选择的各个数据实例是基于各个随机选择值随机选择的。
5.如权利要求3所述的系统,其中,所述第二数据选择器件接收到且未被所述第三数据选择器件选择的各个数据实例被丢弃。
6.如权利要求5所述的系统,其中,所述第三数据选择器件将所述第二数据选择器件接收的各个数据实例从最高值到最低值的排名进行排序,其中,所述第三数据选择器件基于所述排名选择一定百分比的数据实例。
7.根据权利要求5所述的系统,其中,所述处理单元、所述第一存储器、所述第二存储器、所述第一数据选择器件和所述第二数据选择器件在同一芯片上,并且其中,所述第三存储器在所述芯片外。
8.根据权利要求1所述的系统,其中,来自所述处理单元的各个数据实例选自用于在人工智能神经网络的训练期间确定节点的权重梯度的前向激活信号和激活信号的反向导数组成的集合。
9.一种用于管理处理单元和多个存储器之间的存储事务的方法,所述方法包括:
在第一数据选择器件,接收来自所述处理单元的各个数据实例;
由所述第一数据选择器件,选择从所述处理单元接收的各个数据实例;
丢弃未被所述第一数据选择器件选择的各个数据实例;
将所述第一数据选择器件选择的至少一些数据实例存储在所述多个存储器的第一存储器中,其中,所述处理单元与所述第一存储器之间的事务比所述处理单元与所述多个存储器中的其他存储器之间的事务更快地执行;以及
向第二数据选择器件转发所述第一数据选择器件选择并且未存储在所述第一存储器中的各个数据实例。
10.如权利要求9所述的方法,还包括:
由所述第一数据选择器件,将从所述处理单元接收的各个数据实例的值与阈值进行比较,其中,由所述第一数据选择器件选择的各个数据实例的值具有满足所述阈值的相应值。
11.如权利要求9所述的方法,进一步包括:
由所述第二数据选择器件,选择所述第一数据选择器件接收的各个数据实例;
丢弃所述第一数据选择器件接收到且未被所述第二数据选择器件选择的各个数据实例;
将所述第二数据选择器件选择的至少一些数据实例存储在所述多个存储器的第二存储器中,其中,所述处理单元与所述第二存储器之间的事务比所述处理单元与所述第一存储器之间的事务执行更慢;
向所述第三数据选择器件,转发所述第二数据选择器件选择并且未存储在所述第二存储器中的各个数据实例。
12.根据权利要求11所述的方法,进一步包括:
由所述第二数据选择器件,将相应随机选择的值与所述第一数据选择器件接收的每个数据实例关联,其中,所述第二数据选择器件选择的各个数据实例是基于各个随机选择值随机选择的。
13.如权利要求11所述的方法,进一步包括:
由所述第三数据选择器件选择从所述第二数据选择器件接收的各个数据实例;
丢弃所述第二数据选择器件接收并且未被所述第三数据选择器件选择的各个数据实例;以及
将由所述第三数据选择器件选择的各个数据实例存储在所述多个存储器的第三存储器中,其中,所述处理单元与所述第三存储器之间的事务比所述处理单元与所述第二存储器之间的事务执行更慢。
14.根据权利要求13所述的方法,进一步包括:
由所述第三数据选择器件,将从所述第二数据选择器件接收的各个数据实例从最高值到最低值的排名进行排序,其中,所述第三数据选择器件基于所述排名选择一定百分比的数据实例。
15.根据权利要求9所述的方法,其中,来自所述处理单元的数据实例选自用于在人工智能神经网络的训练期间确定节点的权重梯度的前向激活信号和激活信号的反向导数组成的集合。
16.一种系统,包括:
片上系统,包括:
多个处理引擎,所述多个处理引擎中的每个处理引擎包括相应人工智能(AI)训练处理器、相应第一存储器和多个第一数据选择器件中的相应第一数据选择器件;
多个第二数据选择器,耦接到所述多个第一数据选择器;
多个第二存储器,所述多个第二存储器中的每个第二存储器耦接到所述多个第二数据选择器件中的相应第二数据选择器件;和
第三数据选择器件,耦接到所述第二数据选择器件;以及
第三存储器,耦接到所述片上系统;
其中,相应第一数据选择器件经由操作用于选择从相应AI训练处理器接收的各个数据实例,其中,未被相应第一数据选择器件选择的各个数据实例被丢弃,其中,相应第一数据选择器件选择的至少一些数据实例存储在相应第一存储器中,其中,将相应第一数据选择器件选择并且未存储在相应第一存储器中的各个数据实例从所述第一数据选择器件转发到任一第二数据选择器;
其中,所述多个第二数据选择器件中的每个第二数据选择器件进一步经由操作用于选择所述多个第一数据选择器件接收到的各个数据实例,其中,所述每个第二数据选择器接收且未被所述每个第二数据选择器选择的各个数据实例设备被丢弃,其中,所述每个第二数据选择器件选择的至少一些数据实例存储在所述多个第二存储器中的相应第二存储器中,并且其中,所述每个第二数据选择器件选择且未存储在第二存储器中的各个数据实例从所述每个第二数据选择器件转发到所述第三数据选择器件;以及
其中,所述第三数据选择器件进一步经由操作用于选择所述每个第二数据选择器件接收的各个数据实例,其中,所述第三数据选择器件接收且未被所述第三数据选择器件选择的各个数据实例被丢弃,并且其中,所述第三数据选择器件选择的各个数据实例存储在所述第三存储器中。
17.如权利要求16所述的系统,其中,相应第一数据选择器件将从相应AI训练处理器接收的各个数据实例的值与阈值进行比较,并且其中,相应第一数据选择器件选择的各个数据实例的值具有满足所述阈值的相应值。
18.如权利要求16所述的系统,其中,所述每个第二数据选择器件将各个随机选择值与从所述第一数据选择器件接收的每个数据实例关联,并且其中,所述每个第二数据选择器件选择的各个数据实例基于各个随机选择值随机选择。
19.如权利要求16所述的系统,其中,所述第三数据选择器件,将从所述第二数据选择器件接收的各个数据实例从最高值到最低值的排名进行排序,其中,所述第三数据选择器件基于所述排名选择一定百分比的数据实例。
20.如权利要求16所述的系统,其中,各个数据实例选自用于在人工智能神经网络的训练期间确定节点的权重梯度的前向激活信号和激活信号的反向导数组成的集合。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/088761 WO2021223098A1 (en) | 2020-05-06 | 2020-05-06 | Hierarchical methods and systems for storing data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115244521A true CN115244521A (zh) | 2022-10-25 |
Family
ID=78467747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080098193.2A Pending CN115244521A (zh) | 2020-05-06 | 2020-05-06 | 用于存储数据的分级方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230021511A1 (zh) |
CN (1) | CN115244521A (zh) |
WO (1) | WO2021223098A1 (zh) |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7577820B1 (en) * | 2006-04-14 | 2009-08-18 | Tilera Corporation | Managing data in a parallel processing environment |
US8531961B2 (en) * | 2009-06-12 | 2013-09-10 | Cygnus Broadband, Inc. | Systems and methods for prioritization of data for intelligent discard in a communication network |
US20100332401A1 (en) * | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US8327198B2 (en) * | 2009-08-14 | 2012-12-04 | Intel Corporation | On-die logic analyzer for semiconductor die |
US9235799B2 (en) * | 2011-11-26 | 2016-01-12 | Microsoft Technology Licensing, Llc | Discriminative pretraining of deep neural networks |
JP5791529B2 (ja) * | 2012-01-19 | 2015-10-07 | ルネサスエレクトロニクス株式会社 | メモリ制御装置及び制御方法並びに情報処理装置 |
US10732809B2 (en) * | 2015-12-30 | 2020-08-04 | Google Llc | Systems and methods for selective retention and editing of images captured by mobile image capture device |
CN107844321B (zh) * | 2016-09-21 | 2021-09-07 | 上海芯旺微电子技术有限公司 | 一种mcu处理系统 |
WO2018189619A1 (ja) * | 2017-04-10 | 2018-10-18 | 株式会社半導体エネルギー研究所 | 半導体装置、電子部品、及び電子機器 |
US10572388B2 (en) * | 2017-08-30 | 2020-02-25 | Micron Technology, Inc. | Managed NVM adaptive cache management |
EP3701351A4 (en) * | 2018-01-30 | 2021-01-27 | D5Ai Llc | SELF-ORGANIZING PARTIALLY ORGANIZED NETWORKS |
KR102605205B1 (ko) * | 2018-07-25 | 2023-11-24 | 에스케이하이닉스 주식회사 | 메모리 장치 및 프로세싱 시스템 |
FR3085075A1 (fr) * | 2018-08-17 | 2020-02-21 | Stmicroelectronics (Grenoble 2) Sas | Controleur memoire |
US20200264876A1 (en) * | 2019-02-14 | 2020-08-20 | Microsoft Technology Licensing, Llc | Adjusting activation compression for neural network training |
US11436074B2 (en) * | 2019-04-17 | 2022-09-06 | Microsoft Technology Licensing, Llc | Pruning and prioritizing event data for analysis |
US20200380369A1 (en) * | 2019-05-31 | 2020-12-03 | Nvidia Corporation | Training a neural network using selective weight updates |
US11144754B2 (en) * | 2019-08-19 | 2021-10-12 | Nvidia Corporation | Gaze detection using one or more neural networks |
CN111078592A (zh) * | 2019-12-27 | 2020-04-28 | 无锡中感微电子股份有限公司 | 一种低功耗片上系统的多级指令缓存 |
-
2020
- 2020-05-06 WO PCT/CN2020/088761 patent/WO2021223098A1/en active Application Filing
- 2020-05-06 CN CN202080098193.2A patent/CN115244521A/zh active Pending
-
2022
- 2022-10-04 US US17/960,053 patent/US20230021511A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021223098A1 (en) | 2021-11-11 |
US20230021511A1 (en) | 2023-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102465896B1 (ko) | 집약성을 개선하기 위한 머신 학습 모델들의 수정 | |
CN112667528A (zh) | 一种数据预取的方法及相关设备 | |
US10217052B2 (en) | Evaluating feature vectors across disjoint subsets of decision trees | |
US20200090051A1 (en) | Optimization problem operation method and apparatus | |
CN104317731A (zh) | 一种分层存储管理方法、装置及存储系统 | |
US20220019880A1 (en) | Hardware and neural architecture co-search | |
US11216696B2 (en) | Training data sample selection for use with non-volatile memory and machine learning processor | |
US20220374169A1 (en) | Machine Learning Assisted Quality of Service (QoS) for Solid State Drives | |
JP2023063944A (ja) | 機械学習プログラム、機械学習方法、及び、情報処理装置 | |
CN115244521A (zh) | 用于存储数据的分级方法和系统 | |
KR20210103393A (ko) | 낮은-지역성 데이터에서 높은-지역성 데이터로의 변환을 관리하기 위한 시스템 및 방법 | |
CN111783984A (zh) | 一种神经网络运算方法、装置、设备及存储介质 | |
CN115827511A (zh) | 设置缓存的方法以及装置 | |
WO2023057990A1 (en) | Machine learning-enabled management of storage media access | |
CN111107003B (zh) | 一种智能路由方法 | |
CN110633226A (zh) | 融合存储器、存储系统及深度学习计算方法 | |
US11681909B2 (en) | Memory component with a bus to transmit data for a machine learning operation and another bus to transmit host data | |
US11694076B2 (en) | Memory sub-system with internal logic to perform a machine learning operation | |
CN110362769A (zh) | 一种数据处理方法及装置 | |
US11769076B2 (en) | Memory sub-system with a virtualized bus and internal logic to perform a machine learning operation | |
US11263156B2 (en) | Memory component with a virtualized bus and internal logic to perform a machine learning operation | |
US20210110249A1 (en) | Memory component with internal logic to perform a machine learning operation | |
JP2023503034A (ja) | パターンベースのキャッシュブロック圧縮 | |
US11442643B2 (en) | System and method for efficiently converting low-locality data into high-locality data | |
CN116737607B (zh) | 样本数据缓存方法、系统、计算机设备和存储介质 |
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 |