CN112199036A - 数据存储装置、数据处理系统及其加速装置 - Google Patents
数据存储装置、数据处理系统及其加速装置 Download PDFInfo
- Publication number
- CN112199036A CN112199036A CN201911261480.6A CN201911261480A CN112199036A CN 112199036 A CN112199036 A CN 112199036A CN 201911261480 A CN201911261480 A CN 201911261480A CN 112199036 A CN112199036 A CN 112199036A
- Authority
- CN
- China
- Prior art keywords
- array
- data
- group
- memory
- input data
- 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.)
- Granted
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 32
- 230000001133 acceleration Effects 0.000 title claims description 15
- 230000015654 memory Effects 0.000 claims abstract description 168
- 230000006978 adaptation Effects 0.000 claims description 36
- 230000003044 adaptive effect Effects 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 26
- 230000004913 activation Effects 0.000 claims description 15
- 238000013527 convolutional neural network Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 claims description 8
- 230000008447 perception Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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/0613—Improving I/O performance in relation to throughput
-
- 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
-
- 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
- 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
- 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/1694—Configuration of memory controller to different memory types
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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/0656—Data buffering arrangements
-
- 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/0658—Controller construction arrangements
-
- 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Neurology (AREA)
- Memory System (AREA)
- Advance Control (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
Abstract
本申请涉及一种数据处理系统。该数据处理系统可包括:主机装置,被配置成基于网络模型或批量大小或两者来选择存储器带宽的速度模式,根据该速度模式的选择来调整加速器的计算功率和存储器功率;以及数据存储装置,包括加速器,该加速器被配置成通过基于存储器带宽的速度模式控制输入到处理元件(PE)阵列的第一输入数据和第二输入数据的传送路径,来改变PE阵列的结构。
Description
相关申请的交叉引用
本申请要求于2019年7月8日向韩国知识产权局提交的申请号为10-2019-0082000的韩国申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例涉及一种数据存储装置、数据处理系统及其加速装置。
背景技术
人工智能(AI)加速器可以是一种应用,其通过利用硬件实施已在软件中处理的诸如多层感知(MLP)、长短期记忆(LSTM)和卷积神经网络(CNN)的应用,能够最大化相关操作的性能,同时减轻主机在执行操作和利用资源方面的负担。
AI加速器可具有较高的功耗。在这种情况下,AI加速器中使用的功率可划分为计算功率和存储器功率。通常,存储器功率可随着存储器带宽的增加而增加。
在深度学习中,可根据网络模型来确定主要应用。例如,CNN可以是一种需要相对较多计算器的应用,并且MLP和LSTM中的每一个可以是一种需要较大存储器带宽的应用。
发明内容
各个实施例涉及一种根据存储器带宽而灵活调整存储器功率和计算功率的加速装置,以及包括该加速装置的数据处理系统。
在实施例中,一种数据处理系统包括:主机装置,被配置成基于网络模型或批量(batch)大小或两者来选择存储器带宽的速度模式,根据速度模式的选择来调整加速器的计算功率和存储器功率;以及数据存储装置,包括加速器,该加速器被配置成通过基于存储器带宽的速度模式,控制输入到处理元件(PE)阵列的第一输入数据和第二输入数据的传送路径,来改变PE阵列的结构,其中如果选择第一速度模式,则总功率预算中的存储器功率从存储器功率的初始值起增加,并且如果选择第二速度模式,则总功率预算中的计算功率从计算功率的初始值起增加。
在实施例中,加速装置包括加速器,该加速器被配置成通过基于存储器带宽的速度模式控制输入到处理元件(PE)阵列的第一输入数据和第二输入数据的传送路径,来改变PE阵列的结构。
加速器可包括:PE阵列,包括第一PE组和第二PE组,第一和第二PE组中的每一个包括布置在第一和第二方向上的多个PE;PE阵列自适应块,位于PE阵列中的第一PE组和第二PE组之间,并且被配置成在PE阵列中的第一方向上,将第一数据组的第一输入数据或第二数据组的第一输入数据选择性地输入到第二PE组,并且在PE阵列中的第二方向上,将第三数据组的第二输入数据或第四数据组的第二输入数据选择性地输入到第二PE组。
在实施例中,一种数据存储装置包括:中央处理单元(CPU),被配置成基于网络模型或批量大小或两者来选择存储器带宽的速度模式,根据速度模式的选择来调整加速器的计算功率和存储器功率;以及加速器,被配置成通过基于存储器带宽的速度模式控制输入到处理元件(PE)阵列的第一输入数据和第二输入数据的传送路径,来改变PE阵列的结构,其中如果选择第一速度模式,则总功率预算中的存储器功率从存储器功率的初始值起增加,并且如果选择第二速度模式,则总功率预算中的计算功率从计算功率的初始值起增加。
附图说明
图1示出根据实施例的数据处理系统和外部服务器之间的连接关系。
图2示出根据实施例的数据处理系统。
图3示出根据实施例的在主机装置中确定速度模式的方法。
图4示出根据实施例的总功率预算。
图5A和图5B示出根据实施例的存储器功率和计算功率的调整。
图6示出根据实施例的数据存储装置。
图7示出根据实施例的加速器。
图8示出根据实施例的PE阵列。
图9示出根据另一实施例的PE阵列。
图10示出根据实施例的PE阵列结构。
图11示出根据实施例的存储器控制器和存储器管芯之间的连接关系。
图12示出根据速度模式的性能改变。
图13示出根据实施例的加速装置。
图14示出根据另一实施例的数据存储装置。
具体实施方式
在下文中,将通过实施例的各个示例并参照附图来描述数据存储装置、数据处理系统及其加速装置。
图1示出根据实施例的数据处理系统20和外部服务器10之间的连接关系。图2示出根据实施例的图1所示的数据处理系统20。
在下文中,将参照图3、图4以及图5A和图5B来描述实施例,其中图3示出根据实施例的在主机装置中确定或选择速度模式的方法,图4示出根据实施例的总功率预算,并且图5A和图5B示出根据实施例的存储器功率和计算功率的调整。
参照图1,数据处理系统20可通过网络30电联接到外部服务器10,并且可从外部服务器10接收数据。在这种情况下,数据可包括稍后将描述的批量大小。深度学习应用可以批量为单位(或批量单位)来处理数据。
批量的大小(或批量大小)可对应于数据处理系统20可一次处理的数据量。例如,如果第一输入数据是照片图像数据,则第一输入数据中包括的照片图像的数量可被称为批量大小。10批量表示10个照片图像被用作第一输入数据。10个第一输入数据与相同数量的第二输入数据,例如10个第二输入数据一起执行乘法和累加(MAC)运算。
数据处理系统20可包括主机装置100和数据存储装置200。
参照图2,主机装置100可包括应用110、软件固件(SW F/W)120和应用编程接口(API)130。数据存储装置200可以是近处理存储器(processing-near-memory,PNM)。PNM可包括被结合在高级集成电路(IC)封装中的至少一个存储器管芯210和逻辑管芯300。
主机装置100的SW F/W 120可基于网络模型和批量大小中的至少一个来确定或选择存储器带宽的速度模式,从而调整数据存储装置200中包括的加速器400的计算功率和存储器功率。
参照图3,主机装置100可基于网络模型信息执行数据编译操作(530),该网络模型信息包括硬件架构信息,诸如网络信息510和近处理存储器(PNM)架构信息520。在这种情况下,主机装置100对PNM执行编译操作,以便执行功率均衡。具体地,除了仅针对加速器的现有编译之外,主机装置100还执行编译,用于稍后描述的调整总功率预算中的存储器功率和计算功率。
因为存储器管芯210的数据信号线电联接到PNM中的逻辑管芯300,所以PNM可具有比高带宽存储器(HBM)的数据引脚结构相对更高的速度。这是因为在PNM中通过将存储器管芯210和逻辑管芯300结合在高级IC封装中而移除对芯片外连接(off-chip connection)的速度限制。
图1的网络30可以是神经网络,但不限于此。神经网络可包括卷积神经网络(CNN)、多层感知(MLP)、长短期记忆(LSTM)等。主机装置100可预先识别网络信息。
PNM架构信息520可包括加速器架构信息、每个计算器的功率、每个存储器带宽(BW)的功率、关于计算器的最大结构的信息以及关于存储器BW的最大结构的信息。
在这种情况下,计算器的最大结构可代表计算器的最大数量。存储器BW的最大结构可代表存储器BW的最大大小。计算器的最大结构和存储器BW的最大结构是预先确定的。在本公开的实施例中,计算器的数量和存储器BW的大小可在预定的最大结构内改变。
例如,当存在N个计算器时,所分配的计算器的数量不能超过N,并且当存储器BW的最大大小为M时,所分配的存储器BW的大小不能超过M,N和M是正整数。因此,预先提供计算器和存储器BW的最大结构,以基于计算器的最大结构和存储器BW的最大结构来确定或选择存储器BW的速度模式。
主机装置100可输出以针对PNM优化的形式编译的数据,包括存储器BW的速度模式(540)。在这种情况下,存储器BW的速度模式可包括低速模式和高速模式。
参照图4,总功率预算可包括存储器功率和计算功率。在这种情况下,存储器功率和计算功率中的每一个可包括可调整的动态功率部分和静态功率部分。图4示出最大限度地使用存储器功率和计算功率的情况。
存储器BW的速度模式可包括高速模式和低速模式,在图5A所示的高速模式中,存储器功率从初始设置参考值起增加。在图5B所示的低速模式中,计算功率从初始设置参考值起增加。
重新参照图3,当网络模型为CNN时,主机装置100可确定存储器BW的速度模式为低速模式(550)。当网络模型为CNN时,数据在逻辑管芯300中被相对大量地重复使用,因此主机装置100确定存储器BW的速度模式为低速模式,因为虽然存储器BW较低,但数据处理系统20的总性能由计算功率的性能来确定。
另一方面,当网络模型为MLP和LSTM中的任意一种时,主机装置100可检查批量大小,并且将该批量大小与参考值K进行比较(560)。如果批量大小超过参考值K(即,批量大小>K),则主机装置100可确定存储器BW的速度模式为低速模式(550)。如果批量大小等于或小于参考值K,则主机装置100可将确定存储器BW的速度模式为高速模式(570)。
虽然网络模型为MLP或LSTM,但随着批量大小的增加,对更大计算功率的需求可能会增加。因此,虽然网络模型为MLP或LSTM,但主机装置100将批量大小与参考值K进行比较。
在这种情况下,可从外部服务器10接收批量大小,并且批量大小被包括在PNM架构信息中。在逻辑管芯300中没有重新使用数据的诸如MLP、LSTM或递归神经网络(RNN)的网络模型中,因为存储器BW可以是确定数据处理系统20的总性能的主要因素,所以主机装置100可确定存储器BW的速度模式为高速模式。
重新参照图2,逻辑管芯300可包括存储器控制器(MC)310和加速器400。
参照图11,示出了根据实施例的MC 310和存储器管芯210之间的连接关系,MC 310可将存储器BW的速度模式传送到存储器管芯210。
存储器管芯210可基于由MC 310传送的存储器BW的速度模式来改变存储器的时钟。在这种情况下,数据存储装置200中包括的存储器管芯210的数量可以是至少一个。
在另一实施例中,MC 310可基于存储器BW的速度模式来改变存储器的时钟。
图6示出根据实施例的数据存储装置。
下面将参照图7至图12描述图6所示的数据存储装置。图7示出根据实施例的加速器。图8和图9中的每一个示出根据实施例的PE阵列。图10示出根据实施例的PE阵列结构。图11示出根据实施例的MC和存储器管芯之间的连接关系。图12示出根据速度模式的性能改变。
图6所示的数据存储装置可对应于图2所示的数据存储装置200。
参照图6,数据存储装置200可包括加速器400,该加速器400被配置成通过根据存储器BW的速度模式来控制处理元件(PE)阵列430的第一输入数据和第二输入数据的传送路径来改变PE阵列430的结构。
加速器400可接收第一输入数据和第二输入数据,将第一输入数据和第二输入数据相乘,并且将相乘的数据与先前存储的数据相加。在这种情况下,第二输入数据可以是权重数据。
参照图6,第一输入数据可在行方向上传送,并且第二输入数据可在列方向上传送。通过将相乘的数据与先前存储的数据相加而获得的结果数据包括节点所需的所有的第二输入数据和第一输入数据,并且通过IO缓冲器450传送。在对结果数据执行MAC之后,激活函数单元(AFU)480对通过IO缓冲器450传送的数据执行激活函数,从而提供输出数据。
参照图6和图7,加速器400可包括PE控制器(PE CTRL)420、PE阵列430、PE阵列自适应块440、IO缓冲器450、权重缓冲器460、自适应数据路径控制器470、激活函数单元(AFU)480、特定函数单元(SFU)490和行电平功率控制器495。
加速器400可通过主机接口(IF)块410与主机装置100通信。在这种情况下,主机IF块410可使用主机装置100的协议来提供主机装置100和数据存储装置200之间的接口。例如,主机IF块410可使用Serdes接口协议与主机装置100通信,但协议不限于此。主机IF块410可使用诸如以下的任意一种协议来与主机装置100通信:高速PCI(PCI-E)、通用串行总线(USB)、通用闪存(UFS)、多媒体卡(MMC)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)等。
PE控制器420可将由主机装置100传送的存储器BW的速度模式传送到自适应数据路径控制器470。如图6所示,PE控制器420可通过向主机装置100传送数据和从主机装置100接收数据的主机IF块410接收由主机装置100传送的存储器BW的速度模式。
参照图7,PE阵列430可包括多个第一PE组,每个第一PE组包括布置在行方向上的多个PE。PE阵列自适应块440可包括位于PE阵列430中的PE之间的多个第一多路器,并且每个第一多路器可在PE阵列430内的行方向上,将相应数据组的第一输入数据和另一数据组的第一输入数据中的任意一个选择性地输入到PE。
此外,PE阵列430可包括多个第二PE组,每个第二PE组包括布置在列方向上的多个PE。PE阵列自适应块440可包括联接到PE阵列430中的PE的多个第二多路器,并且每个第二多路器可在PE阵列430内的列方向上,将相应数据组的第二输入数据和另一数据组的第二输入数据中的任意一个选择性地输入到PE。
在图6中,PE阵列430可具有N×M结构,即,PE阵列430可包括N×M个PE。在这种情况下,N可以是批量大小,M可代表权重宽度。也就是说,N可代表输入第一输入数据的行的大小,M可代表输入第二输入数据的列的大小。因此,在该实施例中,PE阵列430可包括N个第一PE组和M个第二PE组。每个第一PE组可包括布置在行方向上的M个PE,并且每个第二PE组包括布置在列方向上的N个PE。
参照图7和图10,PE阵列自适应块440可位于PE阵列430中的PE之间的存储器BW单元(例如,1x单元)中,其中第一PE阵列调整块位于第二存储器BW的前面。
例如,如果存储器BW为2xBW,则PE阵列自适应块440可位于对应于2xBW的PE的前端。在这种情况下,如图10所示,PE阵列自适应块440可包括行组A和列组B。
参照图7,PE阵列自适应块440可包括行组A中包括的用于向PE输入第一输入数据的多个第一多路器441和列组B中包括的用于向PE输入第二输入数据的多个第二多路器443。
多个第一多路器441可以PE阵列430的行为单位匹配,并且多个第二多路器443可以PE阵列430的列为单位匹配。
图10示出当N为6且M为64时包括PE阵列自适应块440的PE阵列430。参照图10,在图7中的自适应数据路径控制器470的控制下,多个第一多路器441中的多路器441-1可将第一输入数据InQ_1和InQ_7中的任意一个输入到1x33 PE。
在自适应数据路径控制器470的控制下,多个第二多路器443中的多路器443-1可将第二输入数据WB_6_1和WB_6_33中的任意一个输入到1x33 PE。
IO缓冲器450可在PE阵列430内的行方向上将第一输入数据传送到PE。
权重缓冲器460可在PE阵列430内的列方向上将第二输入数据传送到PE。
虽然图中未示出,但IO缓冲器450和权重缓冲器460可被实施为一个元件或者通过总线彼此电联接。
自适应数据路径控制器470可基于存储器BW的速度模式来控制PE阵列自适应块440。
图8示出具有N×M结构作为初始结构的PE阵列430,并且图9示出具有2N×M/2结构作为初始结构的PE阵列430。
因此,如果PE阵列430具有如图8所示的N×M结构的初始结构,存储器BW为2x,并且存储器BW的速度模式为低速模式,则自适应数据路径控制器470可控制第一输入数据和第二输入数据的输入路径,使得PE阵列430的结构从N×M结构改变为2N×M/2结构。在这种情况下,N可以是批量大小,M可代表权重宽度。
具体地,当图8的左侧N×M/2结构的PE从2N个数据组中的第一N数据组接收第一输入数据时,自适应数据路径控制器470可控制多个第一多路器441从两个或更多个N数据组中的第二N数据组接收第一输入数据,并且当图8的左侧N×M/2结构的PE从M/2数据组接收第二输入数据时,可控制多个第二多路器443从M/2数据组接收第二输入数据。在本文中,第一和第二数据组中的每一个可包括N个第一输入数据,并且M/2数据组可包括M/2个第二输入数据。
例如,如图8所示,如果PE阵列430具有N×M结构的初始结构,并且存储器BW为2x,则如图10所示,PE阵列430的初始结构可具有6×64的存储器结构。在这种情况下,PE阵列自适应块440可位于第一1x级和第二1x级(或2x级)之间。第一1x级对应于左侧N×M/2结构,第二1x级对应于右侧N×M/2结构。
如果存储器BW的速度模式为低速模式,则自适应数据路径控制器470可将PE阵列430的结构从6×64(参照图8)改变为12×32(参照图9)。
参照图10,自适应数据路径控制器470可控制多个第一多路器441,使得布置在列方向上的1x33 PE至6x33 PE分别接收第一输入数据InQ_7至InQ_12。
另外,自适应数据路径控制器470可控制多个第二多路器443,使得布置在行方向上的1x33 PE至1x64 PE分别接收第二输入数据WB_6_1至WB_6_31。
也就是说,布置在列方向上的1x33 PE至6x33 PE分别接收第一输入数据InQ_7至InQ_12,而非第一输入数据InQ_1至InQ_6。在行方向上布置的1x33 PE至1x64 PE分别接收第二输入数据WB_6_1至WB_6_32,而非第二输入数据WB_6_33至WB_6_64。因此,通过调整第一和第二输入数据的输入路径,PE阵列430中的PE可实施12x32的PE阵列结构。
相反,如图9所示,如果PE阵列430的初始结构为2N×M/2结构,存储器BW为2x,并且存储器BW的速度模式为高速模式,则自适应数据路径控制器470可控制第一输入数据和第二输入数据的输入路径,使得PE阵列430的结构从2N×M/2结构改变为N×M结构。
在图9中,PE阵列自适应块440可位于第一1x级和第二1x级(或2x级)之间。第一1x级对应于较低的N×M/2结构,并且第二1x级对应于较高的N×M/2结构。
当图9的下部N×M/2结构的PE从两个或更多个N数据组的第一N数据组接收第一输入数据时,自适应数据路径控制器470可控制多个第一多路器441从两个或更多个N数据组中的第一N数据组接收第一输入数据,并且当图9的下部N×M/2结构的PE从第一M/2数据组接收第二输入数据时,可控制多个第二多路器443从第二输入数据的第一M/2数据组之后的下一M/2数据组接收第二输入数据。
例如,参照图10,当图9的上部N×M/2结构包括1×33PE至6×33PE、……、及1×64PE至6×64PE时,第一输入数据InQ_1至InQ_6可被输入到布置在列方向上的1×33PE至6×33PE,并且第二输入数据WB_6_33到WB_6_64可被输入到布置在行方向上的1×33PE至1×64PE。
重新参照图7,激活函数单元(AFU)480可设置在PE阵列430的每个行中,并且通过PE阵列对操作处理的数据执行激活函数。
在这种情况下,激活函数可使用各种算法,例如ReLU、tanh、sigmoid等。此外,激活函数可以查找表的形式来配置,或者可以微内核的形式来配置。
特定函数单元(SFU)490可与相应的激活函数单元480匹配,并且除了激活函数之外还执行附加操作。例如,特定函数单元490可执行处理操作,例如LSTM的逐元素乘法(element-wise multiplication)。
行电平功率控制器495可以行为单位对PE阵列430执行时钟门控控制处理。
如上所述,因为针对每行提供了激活函数单元480和特定函数单元490,所以行电平功率控制器495可以行为单位执行时钟门控控制处理。因此,当执行计算操作时,可降低功耗。
图12示出根据速度模式的性能改变。参照图12,可看出的是,如果使用相同的功率预算,则通过将存储器BW的速度模式适当地改变为低速模式或高速模式,MLP和LSTM应用的性能从P1提高到P2。图12示出因为批量大小为参考值K或更小而应用高速模式的MLP和LSTM。参考值K已在上面参照图3进行了描述。
图13示出根据实施例的加速装置600。
参照图13,加速装置600可包括加速器400,用于通过控制处理元件(PE)阵列430的第一输入数据和第二输入数据的传送路径来改变PE阵列430的结构。
加速器400可执行以下操作:接收第一输入数据和第二输入数据,将第一输入数据和第二输入数据相乘,并且将相乘的数据与先前存储的数据相加。在这种情况下,第二输入数据可以是权重数据。
重新参照图6,第一输入数据可在行方向上传送,并且第二输入数据可在列方向上传送。通过将相乘的数据与先前存储的数据相加而获得的结果数据包括节点所需的所有的第二输入数据和第一输入数据,并且通过IO缓冲器450传送。在对结果数据执行MAC之后,激活函数单元(AFU)480对通过IO缓冲器450传送的数据执行激活函数,从而提供输出数据。
更具体地,加速器400可包括PE控制器420、PE阵列430、PE阵列自适应块440、IO缓冲器450、权重缓冲器460、自适应数据路径控制器470、AFU 480、特定函数单元(SFU)490和行电平功率控制器495。
加速器400可通过主机IF块410与图1和图2所示的主机装置100通信。在这种情况下,主机IF块410可使用主机装置100的协议来使图1和图2所示的主机装置100和包括加速器400的数据存储装置200之间接口连接。例如,主机IF块410可通过Serdes接口协议与主机装置100通信,但该协议不限于此。
PE控制器420可将主机装置100传送的存储器BW的速度模式传送到自适应数据路径控制器470。
PE阵列自适应块440可包括位于PE阵列430之间的多个第一多路器,并且每个第一多路器可在PE阵列430内的行方向上,将相应数据组的第一输入数据和另一数据组的第一输入数据中的任意一个选择性地输入到PE。在实施例中,PE阵列430包括多个第一PE组,每个第一PE组包括布置在行方向上的多个PE。
此外,PE阵列自适应块440可包括位于PE阵列430之间的多个第二多路器,并且每个第二多路器可在PE阵列430内的列方向上,将相应数据组的第二输入数据和另一数据组的第二输入数据中的任意一个选择性地输入到PE。在实施例中,PE阵列430包括多个第二PE组,每个第二PE组包括布置在列方向上的多个PE。
PE阵列自适应块440可位于PE阵列430之间的存储器BW单元中。
参照图7,PE阵列自适应块440可包括用于将第一输入数据输入到PE的多个第一多路器441和用于将第二输入数据输入到PE的多个第二多路器443。
多个第一多路器441可以PE阵列430的行为单位匹配,并且多个第二多路器443可以PE阵列430的列为单位匹配。
IO缓冲器450可在PE阵列430内的行方向上将第一输入数据传送到PE。
权重缓冲器460可在PE阵列430内的列方向上将第二输入数据传送到PE。
自适应数据路径控制器470可基于存储器BW的速度模式来控制PE阵列自适应块440的输入处理。
存储器BW的速度模式可包括高速模式和低速模式。在高速模式下,存储器功率从初始设置参考值起增加。在低速模式下,计算功率从初始设置参考值起增加。
如果PE阵列430具有如图8所示的N×M结构的初始结构,存储器BW为2x,并且存储器BW的速度模式为低速模式,则自适应数据路径控制器470可控制第一输入数据和第二输入数据的输入路径,使得PE阵列430的结构从N×M结构改变为图9所示的2N×M/2结构。N可以是批量大小,M可代表权重宽度。
特别地,自适应数据路径控制器470可控制多个第一多路器441从两个或更多个数据组的第二N数据组接收第一输入数据,并且可控制多个第二多路器443从M/2数据组接收第二输入数据。
相反,如果PE阵列430的初始结构为如图9所示的2N×M/2结构,存储器BW为2x,并且存储器BW的速度模式为高速模式,则自适应数据路径控制器470可控制第一输入数据和第二输入数据的输入路径,使得PE阵列430的结构从2N×M/2结构改变为如图8所示的N×M结构。
自适应数据路径控制器470可控制多个第一多路器441从两个或更多个数据组中的第一N数据组接收第一输入数据,并且可控制多个第二多路器443从第一M/2数据组之后的下一M/2数据组接收第二输入数据。
图14示出根据另一实施例的数据存储装置200'。
数据存储装置200'可包括中央处理单元(CPU)700、加速器400、存储器控制器(MC)310和多个存储器管芯210。在这种情况下,MC310、加速器400和CPU 700可被包括在逻辑管芯300'中。
CPU 700可基于网络模型和批量大小中的至少一个来确定存储器BW的速度模式,从而在总功率预算中调整加速器400的计算功率和存储器功率。存储器BW的速度模式可包括高速模式和低速模式,在高速模式中,存储器功率从初始设置参考值起向上调整,并且在低速模式中,总功率预算中的计算功率从初始设置参考值起向上调整。在这种情况下,CPU700在数据存储装置200内实施图2中公开的主机装置100的功能。主机装置100的所有功能都可应用于CPU 700中。
CPU 700可通过通信网络来电联接到外部服务器(例如,图1中的外部服务器10),并且可从外部服务器10接收数据。在这种情况下,数据可包括批量大小。批量大小可被包括在PNM架构信息中。虽然未示出,但CPU 700可包括有线接口或用于向外部服务器10传送数据和从外部服务器10接收数据的接口。
加速器400可通过基于存储器BW的速度模式控制处理元件(PE)阵列430的第一输入数据和第二输入数据的传送路径来改变PE阵列(例如,图6中的PE阵列430)的结构。
参照图6和图7,加速器400可包括PE控制器(PE CTRL)420、PE阵列430、PE阵列自适应块440、IO缓冲器450、权重缓冲器460、自适应数据路径控制器470、AFU 480、SFU 490和行电平功率控制器495。
PE控制器420可将CPU 700传送的存储器BW的速度模式传送到自适应数据路径控制器470。
PE阵列自适应块440可位于PE阵列430之间,并且在PE阵列430内的行方向上,将相应数据组的第一输入数据和另一数据组的第一输入数据中的任意一个选择性地输入到PE。
此外,PE阵列自适应块440可位于PE阵列430之间,并且在PE阵列430内的列方向上,将相应数据组的第二输入数据和另一数据组的第二输入数据中的任意一个选择性地输入到PE。
图6示出具有N×M结构的PE阵列430。在这种情况下,N可以是批量大小,M可代表权重宽度。也就是说,N可表示输入第一输入数据的PE行的数量。M可代表输入第二输入数据的PE列的数量。
参照图7和图10,PE阵列自适应块440可位于PE阵列430中的PE之间的存储器BW单元(例如,1x单元)中,其中第一PE阵列调整块位于第二存储器BW之前。
参照图7,PE阵列自适应块440可包括用于将第一输入数据输入到PE的多个第一多路器441和用于将第二输入数据输入到PE的多个第二多路器443。
多个第一多路器441可以PE阵列430的行为单位匹配,并且多个第二多路器443可以PE阵列430的列为单位匹配。
IO缓冲器450可在PE阵列430内的行方向上将第一输入数据传送到PE。
权重缓冲器460可在PE阵列430内的列方向上将第二输入数据传送到PE。
虽然未示出,但IO缓冲器450和权重缓冲器460可被实施为一个元件,或者通过总线彼此电联接。
自适应数据路径控制器470可基于存储器BW的速度模式来控制PE阵列自适应块440的输入处理。
如果PE阵列430具有如图8所示的N×M结构的初始结构,存储器BW为2x,并且存储器BW的速度模式为低速模式,则自适应数据路径控制器470可控制第一输入数据和第二输入数据的输入路径,使得PE阵列430的结构变成图9所示的2N×M/2结构。在这种情况下,N可以是批量大小,M可代表权重宽度。
相反,如果PE阵列430的初始结构为如图9所示的2N×M/2结构,存储器BW为2x,并且存储器BW的速度模式为高速模式,则自适应数据路径控制器470可控制第一输入数据和第二输入数据的输入路径,使得PE阵列430的结构变成如图8所示的N×M结构。
激活函数单元(AFU)480可设置在PE阵列430的每个行中,并且通过PE阵列对操作处理的数据执行激活函数处理。
特定函数单元(SFU)490可与相应的激活函数单元480匹配,并且除了激活函数处理之外还执行附加操作。例如,特定函数单元490可执行处理操作,例如LSTM的逐元素乘法。
行电平功率控制器495可以行为单位对PE阵列430执行时钟门控控制处理。
参照图11,MC 310可将存储器BW的速度模式传送到存储器管芯210。
存储器管芯210可基于由MC 310传送的存储器BW的速度模式来改变存储器的时钟。在这种情况下,存储器管芯210的数量可以是至少一个。
基于存储器带宽的速度模式来改变存储器的时钟可由MC 310直接处理。数据存储装置200可以是近处理存储器(PNM)。
在上述公开的实施例中,当存储器BW为2x BW时,通过使用包括多个第一多路器441和多个第二多路器443的PE阵列自适应块440来控制第一输入数据和第二输入数据的输入路径来调整计算功率和存储器功率,但实施例不限于此。
在另一实施例中,当存储器BW为2x BW时,可将布置在行方向上的M个第二多路器设置在列方向上的N/2位置处,其中PE阵列430具有N×M结构,使得PE阵列430改变为N/2x2M结构。在又一实施例中,当存储器BW为4x BW时,可将布置在行方向上的M个第二多路器设置在具有N×M结构的PE阵列430中的PE之间沿列方向的每个N/4位置处,即N/4、2N/4和3N/4位置,使得PE阵列430改变为N/4x 4M结构。
根据本实施例,因为根据存储器BW的速度模式灵活地调整了计算功率和存储器功率,所以可提高每个网络模型的主要应用的性能。
尽管上面已经描述了各个实施例,但是本领域技术人员将理解,所描述的实施例仅作为示例。因此,本文所描述的系统和装置不应受到所描述的实施例的限制。
Claims (27)
1.一种数据处理系统,包括:
主机装置,基于网络模型或批量大小或两者来选择存储器带宽的速度模式,根据所述速度模式的选择来调整加速器的计算功率和存储器功率;以及
数据存储装置,包括所述加速器,所述加速器通过基于所述存储器带宽的所述速度模式控制输入到处理元件阵列,即PE阵列的第一输入数据和第二输入数据的传送路径,来改变所述PE阵列的结构,
其中如果选择第一速度模式,则总功率预算中的所述存储器功率从所述存储器功率的初始值起增加,并且如果选择第二速度模式,则所述总功率预算中的计算功率从所述计算功率的初始值起增加。
2.根据权利要求1所述的数据处理系统,其中所述加速器包括:
所述PE阵列,包括第一PE组和第二PE组,所述第一PE组和所述第二PE组中的每一个包括布置在第一方向和第二方向上的多个PE;
PE阵列自适应块,位于所述PE阵列中的所述第一PE组和所述第二PE组之间,并且在所述PE阵列中的所述第一方向上,将第一数据组的第一输入数据或第二数据组的第一输入数据选择性地输入到所述第二PE组,并且在所述PE阵列中的所述第二方向上,将第三数据组的第二输入数据或第四数据组的第二输入数据选择性地输入到所述第二PE组;以及
自适应数据路径控制器,基于所述存储器带宽的所述速度模式来控制所述PE阵列自适应块的输入处理,并且
其中所述第一速度模式是高速模式,并且所述第二速度模式是低速模式。
3.根据权利要求2所述的数据处理系统,其中所述PE阵列自适应块位于所述PE阵列中的所述第一PE组和所述第二PE组之间的存储器带宽单元中,其中所述第一PE阵列调整块位于第二存储器带宽之前。
4.根据权利要求3所述的数据处理系统,其中所述PE阵列自适应块包括:
多个第一多路器,在所述第一方向上将所述第一输入数据输入到所述第二PE组,以及
多个第二多路器,在所述第二方向上将所述第二输入数据输入到所述第二PE组。
5.根据权利要求4所述的数据处理系统,其中所述第一方向为行方向,并且所述第二方向为列方向,并且
其中:
所述多个第一多路器分别与布置在所述PE阵列中的所述第二PE组的第一列中的PE相匹配,并且
所述多个第二多路器分别与布置在所述PE阵列中的所述第二PE组的第一行中的PE相匹配。
6.根据权利要求5所述的数据处理系统,其中:
所述自适应数据路径控制器控制所述第一输入数据的输入路径和所述第二输入数据的输入路径,使得当所述PE阵列的初始结构为N×M结构,所述存储器带宽为2x,并且所述存储器带宽的所述速度模式为所述低速模式时,所述PE阵列的结构被改变为2N×M/2结构,
所述N为所述批量大小,并且
所述M为权重宽度。
7.根据权利要求6所述的数据处理系统,其中所述自适应数据路径控制器控制所述多个第一多路器从2N个组或更多个组接收所述第一输入数据,并且控制所述多个第二多路器从M/2组接收所述第二输入数据。
8.根据权利要求2所述的数据处理系统,其中所述加速器进一步包括PE控制器,所述PE控制器将由所述主机装置传送的所述存储器带宽的所述速度模式传送到所述自适应数据路径控制器。
9.根据权利要求2所述的数据处理系统,其中所述加速器进一步包括第一电平功率控制器,所述第一电平功率控制器以行为单位对所述PE阵列执行时钟门控控制处理。
10.根据权利要求2所述的数据处理系统,其中所述加速器进一步包括:
IO缓冲器,在所述PE阵列中的第一方向上将所述第一输入数据传送到PE;以及
权重缓冲器,在所述PE阵列中的第二方向上将所述第二输入数据传送到PE。
11.根据权利要求10所述的数据处理系统,其中所述第一方向为行方向,并且所述第二方向为列方向,并且
其中所述加速器进一步包括:
激活函数单元,设置在所述PE阵列的每个行中,并且通过所述PE阵列对操作处理的数据执行激活函数处理;以及
特定函数单元,与所述激活函数单元相匹配,并且除了所述激活函数处理之外还执行附加操作。
12.根据权利要求1所述的数据处理系统,其中所述数据存储装置进一步包括:
存储器控制器,将所述存储器带宽的所述速度模式传送到至少一个存储器管芯;以及
所述至少一个存储器管芯,基于由所述存储器控制器传送的所述存储器带宽的所述速度模式来改变存储器的时钟。
13.根据权利要求1所述的数据处理系统,其中所述数据存储装置包括近处理存储器,即PNM。
14.根据权利要求1所述的数据处理系统,其中当所述网络模型是卷积神经网络即CNN时,所述主机装置将所述存储器带宽的所述速度模式选择为所述第二速度模式。
15.根据权利要求1所述的数据处理系统,其中如果所述网络模型是多层感知即MLP和长短期记忆即LSTM中的任意一种,则所述主机装置将所述批量大小与参考值进行比较,如果所述批量大小超过所述参考值,则确定所述存储器带宽的所述速度模式为低速模式,并且如果所述批量大小为所述参考值或更小,则确定所述存储器带宽的所述速度模式为高速模式。
16.一种加速装置,包括:
加速器,通过基于存储器带宽的速度模式控制输入到处理元件即PE阵列的第一输入数据和第二输入数据的传送路径,来改变所述PE阵列的结构,
其中所述加速器包括:
所述PE阵列,包括第一PE组和第二PE组,所述第一PE组和所述第二PE组中的每一个包括布置在第一方向和第二方向上的多个PE;
PE阵列自适应块,位于所述PE阵列中的所述第一PE组和所述第二PE组之间,并且在所述PE阵列中的所述第一方向上,将第一数据组的第一输入数据或第二数据组的第一输入数据选择性地输入到所述第二PE组,并且在所述PE阵列中的所述第二方向上,将第三数据组的第二输入数据或第四数据组的第二输入数据选择性地输入到所述第二PE组。
17.根据权利要求16所述的加速装置,其中:
所述加速器进一步包括自适应数据路径控制器,所述自适应数据路径控制器基于所述存储器带宽的所述速度模式来控制所述PE阵列自适应块的输入处理,并且
如果选择高速模式,则总功率预算中的存储器功率从所述存储器功率的初始值起增加,并且如果选择低速模式,则所述总功率预算中的计算功率从所述计算功率的初始值起增加。
18.根据权利要求17所述的加速装置,其中所述PE阵列自适应块位于所述PE阵列中的所述第一PE组和所述第二PE组之间的存储器带宽单元中,其中所述第一PE阵列调整块位于第二存储器带宽之前。
19.根据权利要求18所述的加速装置,其中所述PE阵列自适应块包括:
多个第一多路器,在所述第一方向上将所述第一输入数据输入到所述第二PE组,以及
多个第二多路器,在所述第二方向上将所述第二输入数据输入到所述第二PE组。
20.根据权利要求19所述的加速装置,其中所述第一方向为行方向,并且所述第二方向为列方向,并且
其中:
所述多个第一多路器分别与布置在所述PE阵列中的所述第二PE组的第一列中的PE相匹配,并且
所述多个第二多路器分别与布置在所述PE阵列中的所述第二PE组的第一行中的PE相匹配。
21.根据权利要求20所述的加速装置,其中:
所述自适应数据路径控制器控制所述第一输入数据的输入路径和所述第二输入数据的输入路径,使得当所述PE阵列的初始结构为N×M结构,所述存储器带宽为2x,并且所述存储器带宽的所述速度模式为所述低速模式时,所述PE阵列的结构被改变为2N×M/2结构,
所述N为批量大小,并且
所述M为权重宽度。
22.根据权利要求21所述的加速装置,其中所述自适应数据路径控制器控制所述多个第一多路器从所述2N个组或更多个组接收所述第一输入数据,并且控制所述多个第二多路器从M/2组接收所述第二输入数据。
23.一种数据存储装置,包括:
中央处理单元即CPU,基于网络模型、批量大小或两者来选择存储器带宽的速度模式,根据所述速度模式的选择来调整加速器的计算功率和存储器功率;以及
加速器,通过基于所述存储器带宽的所述速度模式控制输入到处理元件,即PE阵列的第一输入数据和第二输入数据的传送路径,来改变所述PE阵列的结构,
其中如果选择第一速度模式,则总功率预算中的所述存储器功率从所述存储器功率的初始值起增加,并且如果选择第二速度模式,则所述总功率预算中的计算功率从所述计算功率的初始值起增加。
24.根据权利要求23所述的数据存储装置,其中所述加速器包括:
PE阵列,包括第一PE组和第二PE组,所述第一PE组和所述第二PE组中的每一个包括布置在第一方向和第二方向上的多个PE;
PE阵列自适应块,位于所述PE阵列中的所述第一PE组和所述第二PE组之间,并且在所述PE阵列中的所述第一方向上,将第一数据组的第一输入数据或第二数据组的第一输入数据选择性地输入到所述第二PE组,并且在所述PE阵列中的所述第二方向上,将第三数据组的第二输入数据或第四数据组的第二输入数据选择性地输入到所述第二PE组;以及
自适应数据路径控制器,基于所述存储器带宽的所述速度模式来控制所述PE阵列自适应块的输入处理。
25.根据权利要求24所述的数据存储装置,其中所述PE阵列自适应块包括:
多个第一多路器,在所述第一方向上将所述第一输入数据输入到所述第二PE组,以及
多个第二多路器,在所述第二方向上将所述第二输入数据输入到所述第二PE组。
26.根据权利要求24所述的数据存储装置,其中所述加速器进一步包括PE控制器,所述PE控制器将由所述CPU传送的所述存储器带宽的所述速度模式传送到所述自适应数据路径控制器。
27.根据权利要求23所述的数据存储装置,进一步包括:
存储器控制器,将所述存储器带宽的所述速度模式传送到至少一个存储器管芯;以及
所述至少一个存储器管芯,基于由所述存储器控制器传送的所述存储器带宽的所述速度模式来改变存储器的时钟。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0082000 | 2019-07-08 | ||
KR1020190082000A KR20210006120A (ko) | 2019-07-08 | 2019-07-08 | 데이터 저장 장치, 데이터 처리 시스템 및 이를 위한 가속 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112199036A true CN112199036A (zh) | 2021-01-08 |
CN112199036B CN112199036B (zh) | 2024-02-27 |
Family
ID=74004653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911261480.6A Active CN112199036B (zh) | 2019-07-08 | 2019-12-10 | 数据存储装置、数据处理系统及其加速装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11100016B2 (zh) |
JP (1) | JP2021012680A (zh) |
KR (1) | KR20210006120A (zh) |
CN (1) | CN112199036B (zh) |
DE (1) | DE102020107867A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200175355A1 (en) * | 2018-11-30 | 2020-06-04 | Electronics And Telecommunications Research Institute | Neural network accelerator with systolic array structure |
US11347477B2 (en) * | 2019-09-27 | 2022-05-31 | Intel Corporation | Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations |
KR20210077352A (ko) * | 2019-12-17 | 2021-06-25 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 이를 위한 가속 장치 |
US11385693B2 (en) * | 2020-07-02 | 2022-07-12 | Apple Inc. | Dynamic granular memory power gating for hardware accelerators |
WO2024018696A1 (ja) * | 2022-07-20 | 2024-01-25 | 東京エレクトロン株式会社 | リザーバ装置及びプロセス状態予測システム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102844724A (zh) * | 2010-03-25 | 2012-12-26 | 微软公司 | 管理分布式计算系统中的功率供应 |
CN106415438A (zh) * | 2014-06-12 | 2017-02-15 | 超威半导体公司 | 基于等待时间的存储器控制器功率管理 |
US20180314671A1 (en) * | 2017-04-27 | 2018-11-01 | Falcon Computing | Systems And Methods For Systolic Array Design From A High-Level Program |
CN109389214A (zh) * | 2017-08-11 | 2019-02-26 | 谷歌有限责任公司 | 具有驻留在芯片上的参数的神经网络加速器 |
CN109447241A (zh) * | 2018-09-29 | 2019-03-08 | 西安交通大学 | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 |
US20190146788A1 (en) * | 2017-11-15 | 2019-05-16 | Samsung Electronics Co., Ltd. | Memory device performing parallel arithmetic processing and memory module including the same |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2537091A4 (en) * | 2010-02-16 | 2014-08-06 | Freescale Semiconductor Inc | DATA PROCESSING METHOD, DATA PROCESSOR, AND APPARATUS COMPRISING DATA PROCESSOR |
US8826051B2 (en) | 2010-07-26 | 2014-09-02 | Apple Inc. | Dynamic allocation of power budget to a system having non-volatile memory and a processor |
KR20130110459A (ko) | 2012-03-29 | 2013-10-10 | 삼성전자주식회사 | 시스템-온 칩, 이를 포함하는 전자 시스템 및 그 제어 방법 |
KR20170124017A (ko) | 2016-04-29 | 2017-11-09 | 삼성전자주식회사 | 동작 전압을 조절하는 메모리 장치, 메모리 장치를 제어하는 어플리케이션 프로세서 및 메모리 장치의 동작방법 |
US10514745B2 (en) * | 2017-09-29 | 2019-12-24 | Intel Corporation | Techniques to predict memory bandwidth demand for a memory device |
US10893096B2 (en) * | 2018-05-17 | 2021-01-12 | International Business Machines Corporation | Optimizing dynamical resource allocations using a data heat map in disaggregated data centers |
US11113212B2 (en) * | 2018-10-23 | 2021-09-07 | Micron Technology, Inc. | Multi-level receiver with termination-off mode |
-
2019
- 2019-07-08 KR KR1020190082000A patent/KR20210006120A/ko not_active Application Discontinuation
- 2019-12-05 US US16/705,107 patent/US11100016B2/en active Active
- 2019-12-10 CN CN201911261480.6A patent/CN112199036B/zh active Active
-
2020
- 2020-03-23 DE DE102020107867.6A patent/DE102020107867A1/de active Pending
- 2020-04-28 JP JP2020079232A patent/JP2021012680A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102844724A (zh) * | 2010-03-25 | 2012-12-26 | 微软公司 | 管理分布式计算系统中的功率供应 |
CN106415438A (zh) * | 2014-06-12 | 2017-02-15 | 超威半导体公司 | 基于等待时间的存储器控制器功率管理 |
US20180314671A1 (en) * | 2017-04-27 | 2018-11-01 | Falcon Computing | Systems And Methods For Systolic Array Design From A High-Level Program |
CN109389214A (zh) * | 2017-08-11 | 2019-02-26 | 谷歌有限责任公司 | 具有驻留在芯片上的参数的神经网络加速器 |
US20190146788A1 (en) * | 2017-11-15 | 2019-05-16 | Samsung Electronics Co., Ltd. | Memory device performing parallel arithmetic processing and memory module including the same |
CN109447241A (zh) * | 2018-09-29 | 2019-03-08 | 西安交通大学 | 一种面向物联网领域的动态可重构卷积神经网络加速器架构 |
Also Published As
Publication number | Publication date |
---|---|
DE102020107867A1 (de) | 2021-01-14 |
KR20210006120A (ko) | 2021-01-18 |
US11100016B2 (en) | 2021-08-24 |
JP2021012680A (ja) | 2021-02-04 |
CN112199036B (zh) | 2024-02-27 |
US20210011860A1 (en) | 2021-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199036B (zh) | 数据存储装置、数据处理系统及其加速装置 | |
US20160335119A1 (en) | Batch-based neural network system | |
US11948073B2 (en) | Machine learning inference engine scalability | |
US20210224125A1 (en) | Operation Accelerator, Processing Method, and Related Device | |
US11681451B2 (en) | HBM based memory lookup engine for deep learning accelerator | |
CN110210610B (zh) | 卷积计算加速器、卷积计算方法及卷积计算设备 | |
CN108229687B (zh) | 数据处理方法、数据处理装置及电子设备 | |
US20180039884A1 (en) | Systems, methods and devices for neural network communications | |
KR20200107295A (ko) | 시스톨릭 어레이 및 프로세싱 시스템 | |
US20210326687A1 (en) | Neural Network System and Data Processing Technology | |
US20210034957A1 (en) | Neural network acceleration system and operating method thereof | |
US20210201122A1 (en) | Data processing methods, apparatuses, devices, storage media and program products | |
US11347430B2 (en) | Operation processing apparatus that executes hierarchical calculation, operation processing method, and non-transitory computer-readable storage medium | |
CN112970036B (zh) | 用于实施神经网络应用的卷积块阵列及其使用方法 | |
US11782622B2 (en) | Memory apparatus embedded with computing function and operation method thereof | |
US9390775B2 (en) | Reference voltage setting circuit and method for data channel in memory system | |
WO2021128820A1 (zh) | 数据处理方法、装置、设备、存储介质和程序产品 | |
KR102373802B1 (ko) | 신경망 연산 효율 증대를 위한 신경망 가속기 및 그의 동작 방법 | |
US11005462B1 (en) | Interface circuit and interface device | |
WO2020042771A1 (zh) | 图像识别处理方法和装置 | |
CN110929854A (zh) | 一种数据处理方法、装置及硬件加速器 | |
US11436060B2 (en) | Proactive management of inter-GPU network links | |
CN116541084B (zh) | 压缩机驱动器的驱动装载控制方法、装置、设备及介质 | |
US11836107B2 (en) | Power consumption control based on random bus inversion | |
US20230140256A1 (en) | Electric device configured to support high speed interface for expanding neural network |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |