CN115917515A - 存储器处理单元核心架构 - Google Patents
存储器处理单元核心架构 Download PDFInfo
- Publication number
- CN115917515A CN115917515A CN202180037893.5A CN202180037893A CN115917515A CN 115917515 A CN115917515 A CN 115917515A CN 202180037893 A CN202180037893 A CN 202180037893A CN 115917515 A CN115917515 A CN 115917515A
- Authority
- CN
- China
- Prior art keywords
- memory
- regions
- cores
- processing
- core
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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
-
- 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
- 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
- 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
- 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/048—Activation functions
-
- 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)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Neurology (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Image Processing (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Multi Processors (AREA)
- Logic Circuits (AREA)
Abstract
存储器处理单元可以包括第一存储器、第二存储器、多个处理区域以及控制逻辑。第一存储器可以包括多个区域。多个处理区域可在第一存储器的所述多个区域之间交错。处理区域可以包括多个计算核心。控制逻辑可配置处理区域中的一个或更多个处理区域的计算核心与第一存储器的对应相邻区域之间的数据流。控制逻辑还可配置第二存储器与处理区域中的一个或更多个处理区域的计算核心之间的数据流。控制逻辑还可配置处理区域中的一个或更多个相应处理区域内的计算核心之间的数据流。
Description
相关申请的交叉引用
本申请要求2020年8月31日提交的美国临时专利申请No.63/072,904的权益,其全部内容合并在本文中。
背景技术
计算系统已经对现代社会的进步作出了重大贡献,并且被用于许多应用中以实现有利的结果。诸如人工智能、机器学习、大数据分析等的应用对大量数据执行计算。在常规计算系统中,将数据从存储器传送到一个或更多个处理单元,处理单元对数据执行计算,然后将结果传送回存储器。将大量数据从存储器传送到处理单元并传送回存储器需要时间和消耗功率。因此,存在对减少处理延迟、数据延迟和/或功率消耗的改进的计算系统的持续需求。
发明内容
通过参考以下描述和附图可以最好地理解本技术,所述描述和附图用于示出针对存储器处理架构的本技术的实施例。
在一个实施例中,存储器处理单元(MPU)可以包括第一存储器以及多个处理区域。第一存储器可以包括多个区域。所述多个处理区域可在第一存储器的多个区域之间交错(interleaved)。所述多个处理区域中的一个或更多个处理区域可以包括多个计算核心,所述多个计算核心包括一个或更多个输入/输出(I/O)核心和多个近存储器(M)计算核心。该一个或更多个输入/输出(I/O)核心可以被配置成访问MPU的输入端口和输出端口。该多个近存储器(M)计算核心可以被配置成计算神经网络函数。所述一个或更多个计算核心可以还包括被配置成计算算术运算的一个或更多个算术(A)计算核心。
在另一个实施例中,MPU可以包括第一存储器、多个处理区域以及第二存储器。第一存储器可以包括多个区域。所述多个处理区域可在第一存储器的所述多个区域之间交错。处理区域可以包括一个或更多个输入/输出(I/O)核心、多个近存储器(M)计算核心以及可选地一个或更多个算术(A)计算核心。第二存储器可以包括多个存储器宏。在多个存储器宏中的给定存储器宏中的权重阵列的组织和存储可以包括:量化权重阵列、展开量化阵列的每一个过滤器并附加偏差和指数条目、重新成形经展开和附加的过滤器以适应对应的物理通道、旋转重新成形的过滤器,以及将重新成形的过滤器的虚拟通道加载到存储器宏中的给定存储器宏的物理通道中。
在另一个实施例中,一种在MPU的存储器中拟合阵列的方法可以包括量化该阵列。量化阵列的每个过滤器可以展开,且可附加偏差和指数条目。经展开和附加的过滤器可被重新成形以适应对应的物理通道。重新成形的过滤器可被旋转并加载到存储器的物理通道中。
提供本概述以便以简化形式介绍将在以下详细说明中进一步描述的一些概念的选择。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
在附图中通过举例而非限制的方式示出了本技术的多个实施例,并且其中,相同的附图标记指代类似的元件,并且其中:
图1示出了根据本技术的各方面的存储器处理单元(MPU)。
图2示出了根据本技术的各方面的近存储器(M)计算核心。
图3示出了根据本技术的各方面的算术(A)计算核心。
图4示出了根据本技术的各方面的输入(I)核心。
图5示出了根据本技术的各方面的输出(O)核心。
图6示出了根据本技术的各方面的存储器处理单元(MPU)。
图7示出了根据本技术的各方面的存储器处理方法。
图8示出了根据本技术的各方面的四维阵列。
图9示出了根据本技术的各方面的三维阵列。
图10示出了根据本技术的各方面的二维阵列。
图11示出了根据本技术的各方面的存储器处理单元(MPU)的存储器和处理组。
图12示出了根据本技术的各方面的存储器处理单元(MPU)的存储器宏。
图13示出了根据本技术的各方面的将阵列拟合到二维存储器中的方法。
图14示出了根据本技术的各方面的三维阵列的扩展。
图15示出了根据本技术的各方面的二维阵列的扩展。
图16示出了根据本技术的各方面的阵列的量化。
图17示出了根据本技术的各方面的经量化阵列的展平。
图18示出了根据本技术的各方面的经展平阵列的重新成形。
图19示出了根据本技术的各方面的经重新成形的阵列的旋转。
图20示出了将重新成形的阵列的虚拟通道加载到存储器的物理通道中。
具体实施方式
现在将详细参考本技术的实施例,其示例在附图中示出。尽管将结合这些实施例描述本技术,然而,应当理解的是,其并不旨在将本技术局限于这些实施例。相反,本发明旨在覆盖可被包括在由所附权利要求限定的本发明的范围内的替代、修改和等同物。此外,在本技术的以下详细描述中,阐述了许多具体细节以便提供对本技术的透彻理解。然而,应当理解,本技术可以在没有这些具体细节的情况下实施。在其他实例中,未详细描述众所周知的方法、过程、组件和电路,以免不必要地模糊本技术的各方面。
以下本技术的一些实施例是按照例程、模块、逻辑块以及对一个或更多个电子设备内的数据的运算的其他符号表示来呈现的。描述和表示是本领域的技术人员为了将其工作的实质最有效地传达给本领域的其他技术人员所使用的手段。例程、模块、逻辑块和/或类似物在本文中并且通常被设想为导致期望结果的过程或指令的自洽序列。这些过程是包括对物理量的物理操纵的那些过程。通常,尽管不是必需的,但是这些物理操纵采取能够在电子设备中存储、传送、比较和以其他方式操纵的电或磁信号的形式。为了方便起见,并且参考共同使用,参照本技术的实施例,这些信号被称为数据、位、值、元素、符号、字符、术语、数字、字符串等。
然而,应当牢记,这些术语应被解释为参考物理操纵和数量并且仅仅是方便的标签并且鉴于本领域中常用的术语被进一步解释。除非如从以下讨论中显而易见的另外具体说明,否则应当理解的是,通过本技术的讨论,利用诸如“接收”等术语的讨论是指诸如操纵和变换数据的电子计算设备的电子设备的动作和过程。该数据被表示为电子设备的逻辑电路、寄存器、存储器等内的物理(例如,电子)量,并且被转换成类似地被表示为电子设备内的物理量的其他数据。
在本申请中,析取法的使用旨在包括合取物。定冠词或不定冠词的使用不旨在指示基数。具体地,提及“该(the)”物体或“一个(a)”物体旨在还表示可能的多个此类物体中的一个。术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”、“包括(including)”等的使用指定所述要素的存在,但不排除一个或更多个其他要素和/或其组的存在或添加。还应理解的是,虽然在本文中可使用术语第一、第二等来描述各种元件,但是这种元件不应受这些术语限制。这些术语在本文中用于区分一个元件与另一个元件。例如,在不背离本实施例的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。还应理解的是,当元件被称为“耦合”至另一元件时,该元件可直接或间接地连接至另一元件,或者可存在中间元件。相反,当元件被称为“直接连接”至另一元件时,则不存在中间元件。还应理解的是,术语“和/或”包括一个或更多个相关元件的任何和所有组合。还应理解的是,本文中使用的措辞和术语用于描述的目的,并且不应被视为限制性的。
参考图1,示出了根据本技术的各方面的存储器处理单元(MPU)。存储器处理单元100可包括包括多个区域的第一存储器102-110、多个处理区域112-116和第二存储器118。第二存储器118可被耦合至多个处理区域112-116。第二存储器118可以可选地被逻辑地或物理地组织成多个区域。第二存储器118的多个区域可以与多个处理区域112-116中的对应区域相关联。此外,第二存储器118的多个区域可以包括在一个或更多个宏中组织的多个块。第一存储器102-110可以是易失性存储器,诸如静态随机存取存储器(SRAM)等。第二存储器可以是非易失性存储器,诸如电阻性随机存取存储器(RRAM)、磁性随机存取存储器(MRAM)、闪存(FLASH)等。可替代的,第二存储器可以是易失性存储器。
多个处理区域112-116可以交错在第一存储器102-110的多个区域之间。处理区域112-116可以包括多个计算核心120-132。多个处理区域112-116中的相应处理区域的多个计算核心120-132可以被耦合在第一存储器102-110的多个区域中的相邻区域之间。例如,第一处理区域112的计算核心120-128可以被耦合在第一存储器102-110的第一区域102和第二区域104之间。每个相应的处理区域112-116中的计算核心120-132可以在一个或更多个集群134-138中是可配置的。例如,第一处理区域112中的第一组计算核心120、122可在第一集群134中是可配置的。类似地,第一处理区域中的第二组计算核心124-128可在第二集群136中是可配置的。多个处理区域112-116中的相应处理区域的多个计算核心120-132也可以是可配置地串联耦合的。例如,第一处理区域112中的一组计算核心120-124可以被通信地串联地耦合,其中第二计算核心122从第一计算核心120接收数据和/或指令,并且第三计算核心124从第二计算核心122接收数据和/或指令。
存储器处理单元100可以还包括层间通信(ILC)单元140。ILC单元140可以是全局的或跨多个处理区域112-116分布。在一个实现方式中,ILC单元140可包含多个ILC模块142-146,其中每一ILC模块可被耦合到相应的处理区域112-116。每个ILC模块还可耦合到第一存储器102-110的与对应相应处理区域112-116相邻的相应区域。层间通信单元140可以被配置为使产生给定数据的一个或更多个计算核心与消耗给定数据的一个或更多个其他计算核心之间的数据移动同步。
存储器处理单元100可还包括一个或更多个输入/输出级148、150。一个或更多个输入/输出级148、150可以被耦合到第一存储器102-110的一个或更多个相应区域。一个或更多个输入/输出级148、150可包括一个或更多个输入端口、一个或更多个输出端口和/或一个或更多个输入/输出端口。一个或更多个输入/输出级148、150可被配置成将数据流式传输进或流式传输出存储器处理单元100。例如,输入/输出(I/O)核心中的一个或更多个可以被配置为将数据流式传输到第一存储器102-110的多个区域中的第一区域中。类似地,一个或更多个输入/输出(I/O)核心可以被配置为将数据流式传输出第一存储器102-110的多个区域中的最后一个区域。
多个处理区域112-116可以是能配置用于从第一存储器102-110的多个区域中的相应区域到多个处理区域112-116的相邻处理区域内的一个或更多个核心120-132的存储器至核心数据流。多个处理区域112-116还可以是能配置用于从多个处理区域112-116中的一些处理区域内的一个或更多个核心120-132到第一存储器102-110的多个区域中的相邻区域的核心至存储器数据流。在一种实现方式中,可以针对从第一存储器102-110的多个区域中的给定区域通过多个处理区域中的相应处理区域到第一存储器102-110的多个区域中的相邻区域的给定方向来配置数据流。
多个处理区域112-116还可以能配置用于从第二存储器118到多个处理区域112-116中的对应处理区域的一个或更多个核心120-132的存储器至核心数据流。如果第二存储器118在逻辑上或物理上被组织在多个区域中,则第二存储器118的多个区域中的相应区域可以可配置地能与多个处理区域112-116的相应区域中的一个或更多个计算核心耦合。
多个处理区域112-116可以进一步能配置用于多个处理区域112-116中的相应处理区域中的选择相邻计算核心120-132之间的核心至核心数据流。例如,给定核心124可以被配置成传递从第一存储器102的相邻部分访问的数据,其中一个或更多个其他核心126-128可配置地与给定计算核心124串联耦合。在另一示例中,给定核心120可以被配置成传递从第二存储器118访问的数据,其中一个或更多个其他核心122可配置地与给定计算核心120串联耦合。在又一示例中,给定计算核心120可以将由给定计算核心120计算的结果(诸如部分和)传递到与给定计算核心120可配置地串联耦合的一个或更多个其他核心122。
多个处理区域112-116可以包括一个或更多个近存储器(M)计算核心。该一个或更多个近存储器(M)计算核心可以能配置成计算神经网络功能。例如,一个或更多个近存储器(M)计算核心可被配置成计算向量-向量积、向量-矩阵积、矩阵-矩阵积等和/或其部分积。
多个处理区域112-116还可以包括一个或更多个算术(A)计算核心。一个或更多个算术(A)计算核心可以能配置成计算算术运算。例如,算术(A)计算核心可被配置成计算合并操作、近存储器(M)计算核心不支持的算术计算等。
多个输入和输出区域148、150还可以包括一个或更多个输入/输出(I/O)核心。该一个或更多个输入/输出(I/O)核心可以被配置成访问存储器处理单元(MPU)100的输入和/或输出端口。如本文所使用的术语输入/输出(I/O)核心可指代被配置为访问输入端口的核心、被配置为访问输出端口的核心或被配置为访问输入和输出端口两者的核心。
计算核心120-132可以包括多个物理通道,这些物理通道可配置成与相应处理区域112-116内的其他核心同时地和/或与其他处理区域112-116中的其他核心同时地执行计算、访问等。多个处理区域112-116中的相应处理区域的计算核心120-132可以与第二存储器118的一个或更多个块相关联。多个处理区域112-116中的相应处理区域的计算核心120-132可以与第二多个存储器区域的相应切片相关联。核心120-132可以包括多个可配置的虚拟通道。
现在参见图2,示出了根据本技术的各方面的近存储器(M)计算核心。近存储器(M)计算核心200可包括提取单元205、乘法累加(MAC)阵列单元210、回写单元215和交换机220。提取单元205可以被配置成为乘法累加(MAC)阵列单元210从第一存储器102-110的第N个部分提取数据。提取单元205还可被配置为从第N-1个计算核心接收数据和/或将数据传递至相关处理区域内的第N+1个计算核心。提取单元205还可以被配置为从第二存储器118接收数据。提取单元205还可以被配置为使第一存储器102-110的第N个部分的数据移动与层间通信(ILC)单元140同步。在一种实现方式中,提取单元205可以被配置为控制近存储器(M)计算核心200的操作序列,以从第二存储器118或相应处理区域中的多个计算核心的序列中的相邻一个提取数据,以从第一存储器的多个区域中的相邻一个区域提取数据,以递减层间通信(ILC)计数器,以及以触发近存储器(M)核心的其他单元。
乘法累加(MAC)阵列单元210可以被配置成计算神经网络函数。例如,乘法累加(MAC)阵列单元210可以被配置为计算向量-向量乘积、向量-矩阵乘积、矩阵-矩阵乘积等,和/或其部分乘积。乘法累加(MAC)阵列单元210还可以被配置为执行预通道和偏差缩放。在一个实现方式中,乘法累加(MAC)阵列单元210可被配置为执行主要运算,例如但不限于密集或全连接卷积、二维卷积、深度方向卷积和可分离卷积。乘法累加(MAC)阵列单元210还可以被配置为执行融合操作,诸如但不限于最大池化、平均池化、校正线性(ReLU)激活、ReLU-x激活和上采样。乘法累加(MAC)阵列单元210还可以被配置为执行虚拟融合操作,诸如但不限于零填充(折叠到内核角中)、平均池化(折叠到权重和偏差)、ReLU激活、ReLU-x激活和上采样。
回写单元215可以被配置成为乘法累加(MAC)阵列单元210将数据写至第一存储器102-110的第N+1个部分。回写单元215还可以被配置为使第一存储器102-110的第N个部分的数据移动与层间通信(ILC)单元140同步。在一种实现方式中,回写单元215可以被配置为执行融合操作,将数据发送到第一存储器的相邻区域或相应处理区域中的相邻计算核心,以及递增层间通信(ILC)计数器。
交换机220可以基于配置信息来配置存储器访问,以及提取单元和回写单元到相应近存储器(M)计算核心的端口的链方向和接口。交换机220可以被预配置有存储器访问和链方向。交换机220因此可以基于数据流配置来对接提取单元205和回写单元215。
近存储器(M)计算核心200可以包括多个物理通道,这些物理通道可配置成同时执行计算。近存储器(M)计算核心200还可以与第二存储器的一个或更多个块相关联。近存储器(M)计算核心200的物理通道可与第二多个存储器区域的相应切片相关联。近存储器(M)计算核心200还可以包括多个能配置的虚拟通道。
现在参见图3,示出了根据本技术的各方面的算术(A)计算核心。算术(A)计算核心300可以包括提取单元305、算术单元310、回写单元315和交换机320。再次,提取单元305可以被配置成为算术单元310从第一存储器102-110的第N个部分提取数据。提取单元305还可被配置为使第一存储器102-110的第N个部分的数据移动与层间通信(ILC)单元140同步。在一种实现方式中,提取单元305可以被配置为控制算术单元310的操作序列,以从第一存储器的多个区域中的相邻一个区域提取数据,以递减层间通信(ILC)计数器,并触发算术(A)计算核心300的其他单元。
算术单元310可以被配置成计算乘法累加(MAC)阵列单元210不支持的算术运算。例如,算术单元310可被配置为计算合并运算等。算术单元310可以一次计算一个或更多个输出通道。算术单元310可以不访问第二存储器。算术单元310可以不具有在同一处理区域中的相邻核心之间传递数据的手段。在一种实现方式中,算术单元310可被配置成执行主要运算,诸如但不限于加法、乘法和旁路。算术单元310还可以被配置为融合操作,诸如但不限于ReLU激活、ReLU-x激活和泄漏ReLU-x激活。
回写单元315可以被配置成为算术单元310将数据写至第一存储器102-110的第N+1个部分。回写单元315还可以被配置为使第一存储器102-110的第N个部分的数据移动与层间通信(ILC)单元140同步。在一种实现方式中,回写单元315可以被配置为执行融合操作,向第一存储器的相邻区域或相应处理区域中的相邻计算核心发送数据,以及递增层间通信(ILC)计数器。
交换机320可以被配置成基于配置信息来配置存储器访问、提取单元和回写单元到算术计算核心的端口的链方向和接口。
现在参见图4,示出了根据本技术的各方面的输入(I)核心。输入(I)核心400可以包括输入端口405、回写单元410和交换机415。输入端口405可以被配置为接收数据到存储器处理单元100中并且触发回写单元410。回写单元410可以被配置为将所接收的数据流式传输到第一存储器102的第一部分并且递增层间通信(ILC)计数器。交换机415可以被配置为基于配置信息将回写单元410连接到第一存储器的相邻区域。在一个实现方式中,输入级148可以包括单个或多个输入(I)核心400。
现在参见图5,示出了根据本技术的各方面的输出(O)核心。输出(O)核心500可包括提取端口505、输出单元510和交换机515。提取端口505可被配置成从第一存储器110的最后部分流式传输出数据并触发输出单元510。输出单元510可以被配置为从存储器处理单元100输出数据。交换机515可被配置为基于配置信息将提取端口505连接到第一存储器和层间通信(ILC)单元的相邻区域。在一个实现方式中,输出级150可以包括单个或多个输出(O)核心500。
现在参见图6,示出了根据本技术的各方面的存储器处理单元(MPU)。再次,存储器处理单元100可包括包含多个区域的第一存储器102-110、多个处理区域112-116以及第二存储器118。第二存储器118可耦合至多个处理区域112-116。第二存储器118可以可选地逻辑地或物理地组织成多个区域。第二存储器118的多个区域可以与多个处理区域112-116中的对应区域相关联。此外,第二存储器118的多个区域可以包括以一个或更多个宏组织的多个块。第一存储器102-110可以是易失性存储器,诸如静态随机存取存储器(SRAM)等。第二存储器可以是非易失性存储器,诸如电阻性随机存取存储器(RRAM)、磁性随机存取存储器(MRAM)、闪存(FLASH)等。第二存储器也可以是易失性存储器。
再次,多个处理区域112-116可以在第一存储器102-110的多个区域之间交错。处理区域112-116可以包括多个计算核心。多个处理区域112-116中的相应处理区域的多个计算核心可以耦合在第一存储器102-110的多个区域中的相邻区域之间。每个相应处理区域112-116中的计算核心能配置在一个或更多个集群134-138中。多个处理区域112-116中的相应处理区域的多个计算核心也可以是能配置地可串联耦合。
再次,存储器处理单元100还可以包括层间通信(ILC)单元140。层间通信单元140可耦合至第一存储器102-110的多个区域。层间通信单元140可以被配置为使产生给定数据的一个或更多个计算核心与消耗给定数据的一个或更多个其他计算核心之间的数据移动同步。
存储器处理单元100可进一步包括一个或更多个输入/输出级148、150。一个或更多个输入/输出级148、150可以被耦合到第一存储器102-110的一个或更多个相应区域。在一个实现方式中,输入级148可以包括一个或更多个输入(I)核心。类似地,输出级150可以包括一个或更多个输出(I)核心。
多个处理区域112-116可以包括多个近存储器(M)计算核心和一个或更多个算术(A)计算核心。一个或更多个近存储器(M)计算核心可配置成计算神经网络函数。一个或更多个算术(A)计算核心可配置成计算近存储器(M)计算核心不支持的算术运算。
多个处理区域112-116的近存储器(M)计算核心和算术(A)计算核心可以是可配置用于从第一存储器102-110的多个区域中的相应区域到多个处理区域112-116中的相邻处理区域内的一个或更多个核心的存储器至核心数据流。多个处理区域112-116的近存储器(M)计算核心和算术(A)计算核心还可以是可配置用于从多个处理区域112-116中的一些处理区域内的一个或更多个核心到第一存储器102-110的多个区域中的相邻区域的核心到存储器数据流。
多个处理区域112-116的近存储器(M)计算核心还可以是能配置用于从第二存储器118到多个处理区域112-116中的对应处理区域的一个或更多个近存储器(M)计算核心的存储器至核心数据流。然而,在一个实现方式中,算术(A)计算核心不能可配置用于来自第二存储器118的存储器至核心数据流。
多个处理区域112-116的近存储器(M)计算核心可以进一步能配置用于在多个处理区域112-116的相应处理区域中的选择相邻计算核心120-132之间的核心至核心数据流。然而,在一个实现方式中,算术(A)计算核心不能可配置用于多个处理区域112-116中的相应处理区域中的相邻计算核心之间的核心至核心数据流。
现在参见图7,示出了根据本技术的各方面的存储器处理方法。将参考图1的存储器处理单元100来解释该方法。方法可以包括在710处配置在多个处理区域112-116中的一个或更多个处理区域的计算核心与第一存储器的多个区域中的对应相邻区域之间的数据流。在720处,可以配置在第二存储器118与多个处理区域112-116中的一个或更多个处理区域的计算核心120-132之间的数据流。在一个实现方式中,一个或更多个近存储器(M)计算核心可被配置成从第二存储器区域118提取数据。然而,算术(a)计算核心可能不具有对第二存储器的访问。在730处,可以配置在多个处理区域112-116中的一个或更多个处理区域中的相应处理区域内的计算核心120-132之间的数据流。在一个实现方式中,相应的处理区域112-116中的近存储器(M)计算核心可被配置用于选择相邻近存储器(M)计算核心之间的核心至核心数据流。然而,算术(A)计算核心可能不能配置用于多个处理区域112-116中的相应处理区域中的相邻计算核心之间的核心至核心数据流。尽管710-730的过程被示为串行执行,但应当理解,这些过程可以并行执行或以并行和顺序操作的各种组合执行。
在740处,多个处理区域112-116中的一个或更多个处理区域的一组或更多组计算核心120-132可以被配置成执行神经网络模型的相应计算功能。在一个实现方式中,近存储器(M)计算核心可被配置成执行主要运算,诸如但不限于密集或全连接卷积、二维卷积、深度方向卷积以及可分离卷积。近存储器(M)计算核心还可以被配置为执行融合操作,诸如但不限于最大池化、平均池化、ReLU激活、ReLU-x激活和上采样。近存储器(M)计算核心还可以被配置为执行虚拟融合操作,诸如但不限于零填充(折叠到内核角)、平均池化(折叠到权重和偏差)、ReLU激活、ReLU-x激活和上采样。算术(A)计算核心可被配置成执行主要运算,诸如但不限于加法、乘法和旁路。算术(A)计算核心还可以被配置为融合操作,诸如但不限于ReLU激活、ReLU-x激活和泄漏ReLU-x激活。在750处,神经网络模型的权重可被加载到第二存储器118中。在760处,神经网络模型的激活数据可被加载到第一存储器102-110的多个区域中的一个或更多个区域中。
在770处,可以基于神经网络模型使在产生给定数据的一个或更多个计算核心与消耗该给定数据的一个或更多个其他计算核心之间的数据移动同步。同步过程可在780处重复以处理神经网络模型的激活数据。在790处,同步过程可包括在多个周期上同步神经网络模型的激活数据的加载。
根据本技术的各方面,存储器处理单元可以有利地提供简单的数据流而无需集中式控制单元。存储器处理单元还可以有利地实现沉浸式存储器内计算。存储器处理单元还可以有利地减少片外数据通信。存储器处理单元还可以有利地增加数据重用。存储器处理单元还可以利用离线编程来配置。
现在参见图8,示出了根据本技术的各方面的4维阵列。在一个实现方式中,4维阵列可以是在人工智能计算(诸如但不限于卷积神经网络计算)中使用的权重阵列。在一个实现方式中,可在神经网络模型的二维卷积层中利用4维阵列。4维阵列可由内核宽度(S)、内核高度(R)、输入通道(C)和输出通道(M)(例如,每层的内核数目)来表征。因而,过滤器(或内核)具有RxSxC的维度,并且存在M个过滤器。
现在参见图9,示出了根据本技术的各方面的3维阵列。在一个实现方式中,可在神经网络模型的二维逐深度卷积层中利用3维阵列。3维阵列可以由内核宽度(S)、内核高度(R)和输入通道(C)来表征。每个内核具有RxS的维度,并且分别作用于每个输入通道以产生具有C个输出通道的输出特征图。
现在参见图10,示出了根据本技术的各方面的2维阵列。在一个实现方式中,2维阵列可以是在神经网络模型的全连接层中利用的密集权重阵列。2维阵列可以通过展平的输入通道(C)和输出通道(M)来表征。2维权重阵列通常用于分类层的神经网络模式的末尾。
现在参见图11,示出了根据本技术的方面的存储器处理单元(MPU)的存储器和处理组。组1100可以包括存储器和存储器处理单元(MPU)的处理区域。在一个实现方式中,存储器可以是第二存储器118,并且处理区域可以是根据图1的存储器处理单元(MPU)100的给定处理区域114。处理区域110可以包括多个计算核心1115-1125。计算核心1115-1125能配置在一个或更多个集群中。计算核心1115-1125能配置地串联耦合。计算核心1115-1125也耦合到存储器1105。诸如权重阵列之类的数据可以存储在存储器1105中的一个或更多个存储器宏1130-1165中。
参考图12,示出了根据本技术各方面的存储器处理单元(MPU)的存储器宏。存储器宏1130表现为大的二维存储器阵列。存储器宏1130可以由高度和宽度来表征。存储器宏1130的宽度可以被配置为提供非常宽的字提取。存储器宏1130的宽度可以是每读取宽度的许多字,这可以由权重阵列所需的读取带宽访问来确定。在示例性实现方式中,存储器宏1130的访问带宽可以高达1024位。存储器宏1130的高度可以是一维可寻址空间。存储器宏1130的高度可以由存储器宏1130的总大小除以存储器宏1130的宽度来确定。存储器宏1130可以被逻辑地分成多个物理通道1210。每个物理通道可以被认为是“权重预取”宽度1220。
根据本技术的各方面,存储器宏1130-1165中权重阵列的存储可以被配置成提高存储器处理单元(MPU)100的性能。一个或更多个存储器宏1130-1160可以被配置为存储给定组1110的计算核心1115-1125访问所需的所有权重。一个或更多个存储器宏1130-1160可以被配置为向给定组1110中的计算核心1115-1125提供足够的存储器访问带宽。存储器宏1130-1165可以针对计算核心111-1125的读访问进行优化。存储器1105的内部存储器体(memory bank)的数量、布置等可以对于存储器处理单元(MPU)的架构设计是透明的。
再次参见图8-10,权重阵列可以被组织用于存储在存储器宏1130-1160中以提高存储器处理单元(MPU)的性能。权重阵列的布置可影响数据吞吐量、存储器利用、数据重用、存储器访问模式和映射。本技术的方面可将四维权重阵列拟合到二维存储器宏中。本技术的各方面还可以扩展三维阵列和二维阵列以看起来像用于存储在二维存储器宏中的四维阵列。
现在参见图13,示出了根据本技术的各方面的将阵列拟合到二维存储器中的方法。在一个实现方式中,阵列可为四维、三维或二维权重阵列,且二维存储器可为存储器宏。将参考图14至图20说明将阵列拟合到进二维存储器中的方法。方法可包含在1310处扩展三维或二维阵列的维度。如果阵列是内核宽度(S)、内核高度(R)和输入通道(C)的三维阵列,则该阵列可扩展至内核宽度(S)、内核高度(R)、一个输入通道和输出通道(C)的四维阵列,如图14所示。如果阵列是输入通道(C)和输出通道(M)的二维阵列,则该阵列可扩展至单个内核宽度、单个内核高度、输入通道(C)和输出通道(M)的四维阵列,如图15所示。
在1320处,可以对四维阵列、扩展的三维阵列或扩展的二维阵列进行量化,如图16所示。可将每个阵列元素量化为8位值。每一过滤器还可包含单个偏差值(b)1610、1620和一个缩放指数(exp)1630。单个偏差值1610、1620可以包括两个元素条目。在一个实现方式中,可将单个偏差值1610、1620编码为BFloat16值。
在1330处,可以展开经量化阵列的过滤器并且可以附加偏差值和缩放指数,如图17所示。在一个实现方式中,来自每一通道的对应条目可顺序地布置在偏差值1610、1620之后,且可在末尾处添加缩放指数以产生M个展平的输出通道。M个展平的输出通道可由长度RxSxC+3来表征。每个M展平的输出通道对应于由RxSxC+3的虚拟通道高度(vch)表征的虚拟通道。
在1340处,经展开和附加的过滤器可以被重新成形以适应存储器的物理通道,如图18所示。这些重新成形的过滤器可以由权重预取高度和每虚拟通道宽度的条目来表征。如果需要,可以用零元素值填充重新成形的过滤器,以适应存储器的物理通道。在一个实现方式中,存储器的物理通道可以是存储器宏1130-1165的物理通道。
在1350处,可以旋转经重新成形的过滤器,如图19所示。经旋转的过滤器可包括M个虚拟通道(例如,输出过滤器)。在1360处,经旋转的过滤器的虚拟通道可以是存储器的封装物理通道,如图20所示。旋转后的过滤器的M个虚拟通道可顺序存储于存储器的多个物理通道中。如果需要,可以用零(0)值填充存储器的物理通道,使得新层的权重阵列从存储器的第一物理通道边界开始。
出于说明和描述的目的,已经呈现了本技术的特定实施例的前述描述。它们不旨在是详尽的或将本技术限制于所公开的精确形式,并且显然根据上述教导,许多修改和变化是可能的。选择和描述实施例是为了最好地解释本技术的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用本技术和具有适配于预期的特定用途的各种修改的各种实施例。本发明的范围由所附权利要求及其等同物限定。
Claims (20)
1.一种存储器处理单元(MPU),包括:
第一存储器,其包括多个区域;以及
多个处理区域,所述多个处理区域在所述第一存储器的所述多个区域之间交错,其中相应的处理区域被耦合到所述第一存储器的所述多个区域中的相邻区域,并且其中所述多个处理区域中的一个或更多个处理区域包括多个计算核心,所述多个计算核心包括:
一个或更多个输入/输出(I/O)核心,其被配置为访问所述MPU的输入端口和输出端口;以及
多个近存储器(M)计算核心,其被配置为计算神经网络函数。
2.根据权利要求1所述的MPU,其中所述第一存储器的多个区域在所述多个处理区域之间列交错。
3.根据权利要求1所述的MPU,还包括:
第二存储器,其被耦合至所述多个处理区域。
4.根据权利要求3所述的MPU,其中所述第二存储器能够可配置地耦合至所述多个处理区域中的一个或更多个处理区域中的一个或更多个近存储器(M)计算核心。
5.根据权利要求1所述的MPU,其中所述多个处理区域中的一个或更多个处理区域的所述计算核心还包括:
一个或更多个算术(A)计算核心,其被配置成计算算术运算,其中所述多个处理区域中的一个或更多个处理区域中的每个处理区域的所述一个或更多个算术(A)计算核心被通信地耦合至第一多个存储器区域中的相邻存储器区域。
6.根据权利要求1所述的MPU,其中所述一个或更多个输入/输出(I/O)核心包括:
第一输入/输出(I/O)核心,其被配置为将数据流式传输到所述第一存储器的所述多个区域中的一个区域;以及
第二输入/输出(I/O)核心,其被配置为将数据流式传输出所述第一存储器的所述多个区域中的另一个区域。
7.根据权利要求1所述的MPU,其中所述近存储器(M)计算核心包括能配置成同时进行计算的多个物理通道。
8.根据权利要求7所述的MPU,其中所述多个处理区域中的相应处理区域的所述近存储器(M)计算核心与所述第二存储器的一个或更多个块相关联。
9.根据权利要求7所述的MPU,其中所述近存储器(M)计算核心的所述物理通道与第二多个存储器区域的相应切片相关联。
10.根据权利要求7所述的MPU,其中所述近存储器(M)计算核心包括多个能配置的虚拟通道。
11.根据权利要求1所述的MPU,其中所述近存储器(M)计算核心包括:
提取单元,其能配置为控制相应近存储器(M)计算核心的操作序列,以从所述第二存储器或相应处理区域中的所述多个计算核心的序列中的相邻计算核心提取数据,从所述第一存储器的所述多个区域中的相邻区域提取数据,递减层间通信(ILC)计数器,以及触发所述相应近存储器(M)计算核心的其他单元;
乘法累加阵列单元,其能配置为执行计算及预通道和偏差缩放;
回写单元,其能配置为执行融合操作,将数据发送到所述第一存储器的所述多个区域中的另一个相邻区域或所述相应处理区域中的所述多个计算核心的所述序列中的另一个计算核心,以及递增层间通信(ILC)计数器;以及
交换单元,其被配置成基于配置信息来配置存储器访问,以及所述提取单元和回写单元到所述相应近存储器(M)计算核心的端口的链方向和接口。
12.根据权利要求1所述的MPU,其中所述算术(A)计算核心包括:
提取单元,其能配置为控制相应算术(A)计算核心的操作序列,从所述第一存储器的所述多个区域中的相邻区域提取数据,递减层间通信(ILC)计数器,以及触发所述相应算术(A)计算核心的其他单元;
算术单元,其能配置为执行计算;
回写单元,其能配置为执行融合操作,将数据发送到所述第一存储器的所述多个区域中的另一个相邻区域或所述相应处理区域中的所述多个计算核心的所述序列中的相邻计算核心,以及递增层间通信(ILC)计数器;以及
交换单元,其被配置成基于配置信息来配置存储器访问、所述提取单元和回写单元到所述相应算术(A)计算核心的端口的链方向和接口。
13.根据权利要求1所述的MPU,其中所述一个或更多个输入/输出(I/O)核心包括输入(I)核心,所述输入(I)核心包括:
输入端口,其被配置为将数据提取到所述存储器处理单元中以及触发回写单元;
所述回写单元,其被配置为将数据写到所述第一存储器的所述多个区域中的相邻区域以及递增层间通信(ILC)计数器;以及
交换单元,其被配置为基于配置信息将所述回写单元连接到所述第一存储器的所述多个区域中的所述相邻区域。
14.根据权利要求1所述的MPU,其中所述一个或更多个输入/输出(I/O)核心包括输出(O)核心,所述输出(O)核心包括:
提取单元,其被配置为从所述第一存储器的所述多个区域中的相邻区域提取数据以及触发层间通信(ILC)单元;
输出单元,其被配置为从所述存储器处理单元输出数据;以及
交换单元,其被配置为基于配置信息将所述提取单元连接到所述第一存储器的所述多个区域中的所述相邻区域和所述层间通信(ILC)单元。
15.一种存储器处理单元(MPU),包括:
第一存储器,其包括多个区域;
多个处理区域,所述多个处理区域在所述第一存储器的所述多个区域之间交错,其中所述处理区域包括能配置在一个或更多个集群中的多个计算核心,其中所述多个处理区域中的相应处理区域的所述多个计算核心被耦合在所述第一存储器的所述多个区域中的相邻区域之间,并且其中所述多个处理区域中的相应处理区域的所述多个计算核心能够可配置地串联耦合;以及
第二存储器,其被耦合到所述多个处理区域,其中所述第二存储器包括多个存储器宏,并且其中在所述多个存储器宏中的给定存储器宏中组织和存储权重阵列包括:
量化所述权重阵列;
展开经量化阵列的每一过滤器并附加偏差和指数条目;
重新成形经展开和附加的过滤器,以适应对应的物理通道;
旋转经重新成形的过滤器;以及
将所述经重新成形的过滤器的所述虚拟通道加载到所述存储器宏中的所述给定存储器宏的物理通道中。
16.根据权利要求15所述的MPU,其中所述第一存储器包括激活存储器。
17.根据权利要求15所述的MPU,其中所述多个处理区域中的相应处理区域的所述多个核心包括选自由多个近存储器(M)核心、一个或更多个算术(A)核心以及一个或更多个输入/输出(I/O)核心组成的组中的一个或更多个核心。
18.一种在存储器处理单元(MPU)的存储器中拟合阵列的方法,包括:
量化所述阵列;
展开经量化阵列的每一过滤器并附加偏差和指数条目;
重新成形经展开和附加的过滤器,以适应对应的物理通道;
旋转经重新成形的过滤器;以及
将所述经重新成形的过滤器的所述虚拟通道加载到所述存储器的物理通道中。
19.根据权利要求18所述的在存储器中拟合阵列的方法,还包括:
在量化所述阵列之前扩展三维阵列的维度。
20.根据权利要求18所述的在存储器中拟合阵列的方法,还包括:
在量化所述阵列之前扩展二维阵列的维度。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063072904P | 2020-08-31 | 2020-08-31 | |
US63/072,904 | 2020-08-31 | ||
PCT/US2021/048466 WO2022047390A1 (en) | 2020-08-31 | 2021-08-31 | Memory processing unit core architectures |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115917515A true CN115917515A (zh) | 2023-04-04 |
Family
ID=80354150
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180037893.5A Pending CN115917515A (zh) | 2020-08-31 | 2021-08-31 | 存储器处理单元核心架构 |
CN202180027918.3A Pending CN115668121A (zh) | 2020-08-31 | 2021-08-31 | 存储器处理单元架构和配置 |
CN202180037882.7A Pending CN115668125A (zh) | 2020-08-31 | 2021-08-31 | 存储器处理单元架构映射技术 |
CN202180042480.6A Pending CN115803811A (zh) | 2020-08-31 | 2021-08-31 | 用于存储器处理单元架构的层间通信技术 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180027918.3A Pending CN115668121A (zh) | 2020-08-31 | 2021-08-31 | 存储器处理单元架构和配置 |
CN202180037882.7A Pending CN115668125A (zh) | 2020-08-31 | 2021-08-31 | 存储器处理单元架构映射技术 |
CN202180042480.6A Pending CN115803811A (zh) | 2020-08-31 | 2021-08-31 | 用于存储器处理单元架构的层间通信技术 |
Country Status (3)
Country | Link |
---|---|
US (4) | US20230073012A1 (zh) |
CN (4) | CN115917515A (zh) |
WO (4) | WO2022047403A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115526302B (zh) * | 2022-08-19 | 2023-07-25 | 北京应用物理与计算数学研究所 | 基于异构多核处理器的多层神经网络计算方法及装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6836838B1 (en) * | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
JP4317296B2 (ja) * | 1999-09-17 | 2009-08-19 | 株式会社ターボデータラボラトリー | 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット |
JP2003177958A (ja) * | 2001-06-11 | 2003-06-27 | Emblaze Semiconductor Ltd | 特殊メモリデバイス |
US7840949B2 (en) * | 2003-11-03 | 2010-11-23 | Ramal Acquisition Corp. | System and method for data transformation using dataflow graphs |
US7136987B2 (en) * | 2004-03-30 | 2006-11-14 | Intel Corporation | Memory configuration apparatus, systems, and methods |
US7251185B2 (en) * | 2005-02-24 | 2007-07-31 | International Business Machines Corporation | Methods and apparatus for using memory |
US7941637B2 (en) * | 2008-04-15 | 2011-05-10 | Freescale Semiconductor, Inc. | Groups of serially coupled processor cores propagating memory write packet while maintaining coherency within each group towards a switch coupled to memory partitions |
KR101867336B1 (ko) * | 2011-07-11 | 2018-06-15 | 삼성전자주식회사 | 다중 프로세서를 지원하는 인터럽트 발생을 위한 장치 및 방법 |
US9424191B2 (en) * | 2012-06-29 | 2016-08-23 | Intel Corporation | Scalable coherence for multi-core processors |
US10055434B2 (en) * | 2013-10-16 | 2018-08-21 | University Of Tennessee Research Foundation | Method and apparatus for providing random selection and long-term potentiation and depression in an artificial network |
US9978014B2 (en) * | 2013-12-18 | 2018-05-22 | Intel Corporation | Reconfigurable processing unit |
US10289604B2 (en) * | 2014-08-07 | 2019-05-14 | Wisconsin Alumni Research Foundation | Memory processing core architecture |
US10083722B2 (en) * | 2016-06-08 | 2018-09-25 | Samsung Electronics Co., Ltd. | Memory device for performing internal process and operating method thereof |
US10430706B2 (en) * | 2016-12-01 | 2019-10-01 | Via Alliance Semiconductor Co., Ltd. | Processor with memory array operable as either last level cache slice or neural network unit memory |
US10943652B2 (en) * | 2018-05-22 | 2021-03-09 | The Regents Of The University Of Michigan | Memory processing unit |
US11138497B2 (en) * | 2018-07-17 | 2021-10-05 | Macronix International Co., Ltd | In-memory computing devices for neural networks |
US10802883B2 (en) * | 2018-08-21 | 2020-10-13 | Intel Corporation | Method, system, and device for near-memory processing with cores of a plurality of sizes |
US10990524B2 (en) * | 2018-10-11 | 2021-04-27 | Powerchip Semiconductor Manufacturing Corporation | Memory with processing in memory architecture and operating method thereof |
CN114072778A (zh) * | 2019-05-07 | 2022-02-18 | 麦姆瑞克斯公司 | 存储器处理单元架构 |
-
2021
- 2021-08-31 CN CN202180037893.5A patent/CN115917515A/zh active Pending
- 2021-08-31 CN CN202180027918.3A patent/CN115668121A/zh active Pending
- 2021-08-31 WO PCT/US2021/048498 patent/WO2022047403A1/en active Application Filing
- 2021-08-31 WO PCT/US2021/048466 patent/WO2022047390A1/en active Application Filing
- 2021-08-31 CN CN202180037882.7A patent/CN115668125A/zh active Pending
- 2021-08-31 WO PCT/US2021/048550 patent/WO2022047423A1/en active Application Filing
- 2021-08-31 CN CN202180042480.6A patent/CN115803811A/zh active Pending
- 2021-08-31 WO PCT/US2021/048548 patent/WO2022047422A1/en active Application Filing
-
2022
- 2022-09-12 US US17/943,116 patent/US20230073012A1/en active Pending
- 2022-09-12 US US17/943,100 patent/US20230075069A1/en active Pending
- 2022-09-12 US US17/943,143 patent/US20230061711A1/en active Pending
- 2022-09-12 US US17/943,119 patent/US20230076473A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN115668121A (zh) | 2023-01-31 |
WO2022047423A1 (en) | 2022-03-03 |
WO2022047403A1 (en) | 2022-03-03 |
CN115668125A (zh) | 2023-01-31 |
CN115803811A (zh) | 2023-03-14 |
US20230076473A1 (en) | 2023-03-09 |
US20230061711A1 (en) | 2023-03-02 |
US20230075069A1 (en) | 2023-03-09 |
WO2022047422A1 (en) | 2022-03-03 |
US20230073012A1 (en) | 2023-03-09 |
WO2022047390A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11816572B2 (en) | Hardware accelerated machine learning | |
CN108268945B (zh) | 神经网络单元及其运作方法 | |
CN108268944B (zh) | 具有可重塑之存储器之神经网络单元 | |
Yuan et al. | High performance CNN accelerators based on hardware and algorithm co-optimization | |
CN108268932B (zh) | 神经网络单元 | |
CN108268946B (zh) | 具有阵列宽度可分段之旋转器之神经网络单元 | |
CN101782893B (zh) | 可重构数据处理平台 | |
CA3124369A1 (en) | Neural network processor | |
CN110476212B (zh) | 用于存储器中数据交换网络的设备及方法 | |
CN103810111A (zh) | 有源存储器件中的地址生成的方法及其处理元件 | |
US20230069360A1 (en) | System and method for energy-efficient implementation of neural networks | |
BR112020019457A2 (pt) | Multiplicador de matriz-vetor com um arquivo registrador de vetor que compreende uma memória com múltiplas portas | |
CN108804973B (zh) | 基于深度学习的目标检测算法的硬件架构及其执行方法 | |
CN110705703A (zh) | 基于脉动阵列的稀疏神经网络处理器 | |
CN114222970A (zh) | 处理系统中的矩阵数据重用技术 | |
CN115917515A (zh) | 存储器处理单元核心架构 | |
US11580397B2 (en) | Tensor dropout using a mask having a different ordering than the tensor | |
CN111045727B (zh) | 一种基于非易失性内存计算的处理单元阵列及其计算方法 | |
Yoshida et al. | The approach to multiple instruction execution in the GMICRO/400 processor | |
EP3859535B1 (en) | Streaming access memory device, system and method | |
CN111047025A (zh) | 一种卷积计算方法及装置 | |
CN112632465A (zh) | 基于fpga的实对称矩阵特征值分解的数据存储方法 | |
CN114072778A (zh) | 存储器处理单元架构 | |
US20230273729A1 (en) | Core group memory processing with group b-float encoding | |
US20240045922A1 (en) | Zero padding for convolutional neural networks |
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 |