CN114201107A - 存储装置、操作存储装置的方法以及电子装置 - Google Patents
存储装置、操作存储装置的方法以及电子装置 Download PDFInfo
- Publication number
- CN114201107A CN114201107A CN202110243779.XA CN202110243779A CN114201107A CN 114201107 A CN114201107 A CN 114201107A CN 202110243779 A CN202110243779 A CN 202110243779A CN 114201107 A CN114201107 A CN 114201107A
- Authority
- CN
- China
- Prior art keywords
- format
- input data
- storage device
- data
- operator
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000015654 memory Effects 0.000 claims description 54
- 238000006243 chemical reaction Methods 0.000 claims description 30
- 238000013528 artificial neural network Methods 0.000 claims description 27
- 238000012856 packing Methods 0.000 claims description 13
- 238000013139 quantization Methods 0.000 claims description 13
- 238000007781 pre-processing Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013519 translation Methods 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/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/0661—Format or protocol conversion 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- 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
-
- 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
-
- 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/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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
-
- 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
- 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
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3824—Accepting both fixed-point and floating-point numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
提供了一种存储装置、操作存储装置的方法以及电子装置。所述操作存储装置的方法包括:存储接收的第一格式的输入数据、使用包括在存储装置中的运算器将输入数据转换为用于要对第二格式的输入数据执行的操作的第二格式、以及通过包括在存储装置中的运算器将输入数据转换为用于要对输入数据执行的操作的第二格式以及重新存储第二格式的输入数据。
Description
本申请要求于2020年9月2日在韩国知识产权局提交的第10-2020-0111896号韩国专利申请的权益,该韩国专利申请的全部公开出于所有目的而通过引用被包含于此。
技术领域
以下描述涉及一种存储装置、操作存储装置的方法以及电子装置。
背景技术
在人工智能(AI)技术中,专用于AI的独立硬件可以通过预定操作执行推断和学习。
由于对复杂的输入数据的大量的操作,硬件加速器可用于高效地处理深度神经网络(DNN)。具体地,存储器带宽和等待时间或延迟时间可能在许多处理系统中引起显著的性能瓶颈。
发明内容
提供本发明内容以便以简化的形式介绍以下在的具体实施方式中进一步描述的构思的选择。本发明内容不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
在一个总体方面中,一种操作存储装置的方法包括:存储接收的第一格式的输入数据;使用包括在存储装置中的运算器,将输入数据转换为用于要对第二格式的输入数据执行的操作的第二格式;以及重新存储第二格式的输入数据。
转换的步骤可以包括:通过将类型转换、量化、去量化、填充、打包和解包中的任何一种或任何两种或更多种的任何组合应用到第一格式的输入数据,将第一格式的输入数据转换为第二格式。
第二格式可以具有比第一格式的存储器带宽低的存储器带宽。
要对输入数据执行的操作可以是以第二格式可执行的低精度操作,并且要对输入数据执行的操作具有比以第一格式可执行的高精度操作的精度低的精度。
要对输入数据执行的操作可以由从存储装置接收第二格式的输入数据的运算器或加速器以第二格式执行。
要对输入数据执行的操作可以是由被配置为对输入数据进行推断的神经网络执行的操作中的一个操作。
所述方法还可以包括:将对输入数据执行的操作的结果数据转换为第一格式;以及输出第一格式的结果数据。
运算器可以被设置成与被配置为将数据存储在存储装置中的存储体邻近。
运算器可以包括被配置为执行预定操作的算术逻辑单元(ALU)。
输入数据可以包括以下中的至少一个:由图像传感器捕获的第一格式的图像数据;以及由主机处理器处理的第一格式的数据,主机处理器被配置为控制存储装置和连接到存储装置的加速器中的一者或两者。
存储装置可以是位于执行操作的加速器外部的动态随机存取存储器(DRAM)。
存储装置可以被包括在用户终端或服务器中,其中,要通过执行操作的神经网络进行推断的数据被输入到用户终端,服务器从用户终端接收要进行推断的数据。
第一格式可以是32位浮点(FP32)格式,并且第二格式可以是16位浮点(FP16)格式或8位整数(INT8)格式。
在另一总体方面中,一种存储装置包括:存储体,被配置为存储接收的第一格式的输入数据;以及运算器,被设置成与存储体邻近,并被配置为将输入数据转换为用于要对第二格式的输入数据执行的操作的第二格式,其中,将第二格式的输入数据可以重新存储在存储体中。
运算器可以被配置为通过将类型转换、量化、去量化、填充、打包和解包中的任何一种或任何两种或更多种的任何组合应用到第一格式的输入数据,来将第一格式的输入数据转换为第二格式。
第二格式可以是比第一格式的存储器带宽低的存储器带宽。
要对输入数据执行的操作可以是以第二格式可执行的低精度操作,并且要对输入数据执行的操作可以具有比以第一格式可执行的高精度操作的精度低的精度。
运算器可以被配置为将对输入数据执行的操作的结果数据转换为第一格式,并且存储体可以被配置为存储第一格式的结果数据。
第一格式可以是32位浮点(FP32)格式,并且第二格式可以是16位浮点(FP16)格式或8位整数(INT8)格式。
电子装置可以包括存储装置。
在又一总体方面中,一种电子装置包括:存储装置,被配置为存储接收的第一格式的输入数据,通过存储装置的内部运算器将第一格式的输入数据转换为用于要执行的操作的第二格式,以及重新存储第二格式的输入数据;以及加速器,被配置为对从存储装置接收的第二格式的输入数据执行操作。
存储装置可以包括内部运算器,内部运算器被配置为通过将类型转换、量化、去量化、填充、打包和解包中的任何一种或任何两种或更多种的任何组合应用到第一格式的输入数据,来将第一格式的输入数据转换为第二格式。
第一格式可以是32位浮点(FP32)格式,并且第二格式可以是16位浮点(FP16)格式或8位整数(INT8)格式。
加速器可以被配置为对从存储装置接收的第二格式的输入数据执行推断操作。
通过权利要求、下面的详细描述和附图,其他特征和方面将是明显的。
附图说明
图1示出了电子装置的示例。
图2示出了存储装置及其操作的示例。
图3至图5示出了存储装置的操作的示例。
图6示出了操作存储装置的方法的示例。
图7示出了存储装置的示例。
图8和图9示出了电子装置的示例。
在整个附图和具体实施方式中,除非另有描述或提供,否则相同的附图参考标记将被理解为指代相同的元件、特征和结构。附图可能未按比例绘制,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可能被夸大。
具体实施方式
提供以下详细描述以帮助读者获得对在在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅仅是示例,并且不限于在此阐述的顺序,而是除了必须以特定顺序发生的操作之外,可如在理解本申请的公开之后将清楚地那样被改变。此外,为了更加清楚和简明,可以省略在理解本申请的公开之后已知的特征的描述。
在此描述的特征可以以不同的形式实现,并且将不被解释为限于在此描述的示例。相反,提供在此描述的示例仅仅用于示出在理解了本申请的公开后将是清楚的实现在此描述的方法、设备和/或系统的许多可能方式中的一些。
在整个说明书中,当元件(诸如,层、区域或基底)被描述为“在”另一元件“上”、“连接到”或“结合到”另一元件时,该元件可以直接“在”所述另一元件“上”、直接“连接到”或“结合到”所述另一元件,或者可以存在置于它们之间的一个或多个其他元件。相反,当元件被描述为“直接在”另一元件上、“直接连接到”或“直接结合到”另一元件时,可能不存在置于它们之间的其他元件。
如在此使用的,术语“和/或”包括相关所列项中的任何一个和任何两个或更多个的任何组合。
尽管在此可以使用诸如“第一”、“第二”和“第三”的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不应受这些术语的限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中提及的第一构件、组件、区域、层或部分也可以被称为第二构件、组件、区域、层或部分。
为了易于描述,在此可以使用空间相对术语(诸如“在……上方”、“上”、“在……下方”和“下”)来描述如图中所示的一个元件与另一元件的关系。除了图中所描绘的方位之外,这样的空间相对术语旨在包含装置在使用或操作中的不同方位。例如,如果图中的装置被翻转,则被描述为相对于另一元件“在……上方”或“上”的元件将随后相对于另一元件“在……下方”或“下”。因此,根据装置的空间方位,术语“在……上方”包含上方和下方方位两者。装置也可以以其他方式定向(例如,旋转90度或以其他方位),并且在此使用的空间相对术语将被相应地解释。
在此使用的术语仅用于描述各种示例,并且将不用于限制公开。除非上下文另有明确说明,否则单数形式也旨在包括复数形式。术语“包括”、“包含”和“具有(具备)”说明存在所陈述的特征、数量、操作、构件、元件和/或其组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或其组合。
在此描述的示例的特征可以以如在理解本申请的公开之后将是清楚的各种方式组合。此外,尽管在此描述的示例具有各种配置,但是如在理解本申请的公开之后将是清楚的,其他配置是可能的。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如在通用词典中定义的术语)将被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且将不以理想化或过于正式的含义来解释。
图1示出了电子装置的示例。
参照图1,电子装置100可以包括主机处理器110、存储装置120、存储器控制器130和加速器140。主机处理器110、存储装置120、存储器控制器130和加速器140可以通过总线彼此通信。
主机处理器110是控制包括在电子装置100中的组件的操作的装置,并且可以包括例如中央处理器(CPU)和/或图形处理器(GPU)。主机处理器110可以接收在加速器140中处理神经网络的请求,并且响应于该请求生成通过加速器140可执行的指令。该请求用于基于神经网络的数据推断,并且可以使加速器140执行神经网络以获得用于对象识别、模式识别、计算机视觉、语音识别、机器翻译、机器解释等的数据推断结果。主机处理器110可以将神经网络的推断目标数据和参数发送到加速器140。
存储装置120是设置在加速器140外部的片外存储器,并且可以是例如用作电子装置100的主存储器的动态随机存取存储器(DRAM)。存储装置120可以通过存储器控制器130访问。存储装置120可以存储将由加速器140执行的神经网络的推断目标数据和/或参数,并且所存储的数据可以被发送到加速器140以用于以后的推断。另外,当加速器140中的片上存储器不足以执行加速器140中的神经网络时,存储装置120可以被利用。
加速器140可以是通过基于来自主机处理器110的指令执行神经网络来推断输入数据的AI加速器。加速器140可以是与主机处理器110不同的单独的处理器。例如,加速器140可以是神经处理器(NPU)、GPU或张量处理器(TPU)。
由于神经网络的操作的特性,加速器140可以处理可以由单独的专用处理器(即,加速器140)而不是由通用主机处理器110更高效地处理的任务。在这个示例中,可以利用包括在加速器140中的片上存储器以及一个或多个处理元件(PE)。片上存储器是包括在加速器140中的全局缓冲器,并且可以与设置在加速器140外部的存储装置120区分开。例如,片上存储器可以是通过地址空间可访问的暂存存储器、静态随机存取存储器(SRAM)等。
神经网络可以包括输入层、多个隐藏层和输出层。每个层可以包括多个节点(也称为人工神经元)。每个节点是具有一个或多个输入和一个输出的计算单元,并且节点可以彼此连接。权重可以针对节点之间的连接来设置,并且权重可以被调整或改变。权重使相关数据值放大、缩小或保持,从而确定数据值对最终结果的影响程度。包括在前一层中的节点的加权输入可以被输入到包括在输出层中的每个节点。将加权数据从预定层输入到下一层的处理被称为传播。
包括上述权重的神经网络的参数可以被预先学习。这样的学习可以以高精度格式(例如,32位浮点)执行,以确保神经网络的准确度。神经网络的训练操作可以由除执行数据推断的加速器140之外的独立装置执行。然而,示例不限于此,并且神经网络可以由加速器140训练。各种已知的训练技术可以不受限制地应用于神经网络的训练,并且其详细描述将被省略。
训练后的神经网络的参数可以被发送到加速器140,并且加速器140可以基于神经网络执行数据推断。在这样的示例中,加速器140是用于执行训练后的神经网络以获得数据推断结果的专用硬件。加速器140可以以低精度格式(例如,8位整数)操作,这可以在可允许的准确度损失内减少开销,并且获得通过分析相对大量的数据来快速获得推断结果的操作效率。例如,加速器140可以以8位整数格式执行基于神经网络的运算(例如,乘法和累加(MAC)运算)。
为了在以低精度格式操作的加速器140中执行高精度训练的神经网络,可能期望将高精度数据参数转换为低精度数据参数。如果在将高精度数据传送到加速器140之后由加速器140执行格式转换,则可能期望使用高存储器带宽将高精度数据发送到加速器140。因此,可能发生不可避免的存储器带宽损失,这导致软件开销。此外,可能期望针对加速器140中的格式转换的附加操作,这会导致运算量和响应时间的增加。因此,存储高精度格式的数据的存储装置120将数据转换为低精度格式,然后将低精度格式的数据发送到加速器140可能更高效。在此,注意的是,关于示例或实施例使用术语“可以(可能/会)”(例如,关于示例或实施例可以包括或实现的内容),表示存在包括或实现这样的特征的至少一个示例或实施例,而所有示例和实施例不限于此。
要推断的输入数据可以是由主机处理器110处理的数据。主机处理器110是用于执行各种处理的通用硬件,并且为了运算准确度可以以高精度格式操作。此外,要推断的输入数据可以是由图像传感器(例如,高分辨率相机)捕获的高精度格式的图像数据。为了使加速器140对由主机处理器110处理的高精度格式的输入数据或由图像传感器捕获的高精度格式的图像数据执行推断,可能期望将数据转换为低精度格式。类似地,就针对加速器140的存储器带宽或运算量而言,存储由主机处理器110处理的数据的存储装置120执行这样的数据格式转换然后将低精度格式的输入数据发送到加速器140可能更高效。
在下文中,将更详细地描述示例。
图2示出了存储装置及其操作的示例。
参照图2,示出存储装置的框图和示出存储装置的操作的流程图被示出。
在图2的框图中,存储装置可以包括存储体、顶部存储体接口、写入读取输入输出(WRIO)接口、解码器、控制器、一个或多个寄存器、程序寄存器、一个或多个算术逻辑单元(ALU)和底部存储体接口。然而,存储装置不限于图2的框图中示出的示例,并且可以不受限制地应用于组件的各种组合和各种数量的组件。
偶数存储体和奇数存储体是被配置为存储数据的区域,并且可以是通过存储器地址彼此区分的区域。顶部存储体接口和WRIO接口可以控制存储在偶数存储体中的数据的输入和输出。解码器可以解释用于确定要通过一个或多个ALU执行的格式转换是什么类型的操作的指令,并且将结果发送到控制器,使得一个或多个ALU可以在控制器的控制下执行所确定的操作。用于由一个或多个ALU执行的格式转换的程序可以存储在程序寄存器中,并且进行格式转换的数据可以存储在寄存器中。一个或多个ALU可以在控制器的控制下根据存储在程序寄存器中的程序,来转换对存储在寄存器中的数据的格式。一个或多个ALU可以是用于根据指令执行操作的包括加法器、乘法器等的运算器。底部存储体接口可以将由的一个或多个ALU转换的格式的数据存储在奇数存储体中。
以此方式,当被配置为存储数据的存储体和被配置为执行格式转换的一个或多个ALU在同一存储装置中彼此邻近地布置时,存储器访问的成本和内部存储器带宽可以被最小化。
在图2的流程图中,在操作210中,可以将进行格式转换的输入数据写入存储体中。在这个示例中,输入数据可以是从主机处理器或外部装置(例如,图像传感器)接收的数据。在操作220中,可以识别要执行的格式转换,并且可以将对应的程序和参数写入一个或多个寄存器中。程序和参数可以包括关于要执行的操作的信息、存储进行操作的数据的地址值、将存储执行操作的结果的地址值等。在操作230中,可以根据包括在程序中的取指令(fetchinstruction)来识别要执行的操作。如果取指令对应于类型转换、量化/去量化、填充和打包/解包中的任何一个,则操作240可跟随。如果程序结束,则操作260可跟随。
在操作240中,可以由存储装置中的一个或多个ALU执行类型转换、量化/去量化、填充和打包/解包中的至少一个。这些操作对应于用于基于神经网络的推断操作的预处理和/或后处理。因此,当操作由存储装置中的一个或多个ALU执行时,系统吞吐量可以有效地提高。另外,这些操作可以由相对简单的一个或多个ALU执行。因此,即使当一个或多个ALU被包括在存储装置中时,存储装置的面积或尺寸也可以相对较少地增大。
类型转换表示32位浮点(FP32)格式与16位浮点(FP16)格式之间的转换。当执行类型转换时,可以将数据从一种格式转换为另一种格式。量化表示将32位浮点格式转换为8位整数(INT8)格式,并且去量化表示将8位整数格式转换为32位浮点格式。数据填充表示如果数据不适合于操作单元,则将预定位值(例如,“0”或“1”)添加到要处理的数据或将预定位模式(例如,将包括在数据中的最后位进行镜像的位模式)应用于要处理的数据,使得数据具有适合于硬件的操作单元的大小。数据打包表示根据硬件的操作单元(例如,处理FP32的数据的操作单元)以低精度格式合并多个数据,以处理从高精度格式(例如,FP32)转换为低精度格式(例如,FP16)的数据。数据解包是与打包相反的操作,并且表示将打包的数据分成两个或更多个。
在操作250中,可以将由一个或多个ALU执行类型转换、量化、去量化、填充、打包和解包中的一个的结果写入存储体中。然后,可以再次执行操作230。
可以以首先执行类型转换或量化/去量化,随后进行打包或填充的方式来执行格式转换。然而,格式转换不限于此,并且可以以各种组合执行。
在操作260中,可以在程序结束之后从后续系统读出输出数据。
上述格式转换可以应用于数据预处理和/或后处理,从而使软件开销和存储器带宽最小化,并且使低精度格式的加速器的利用率最大化。
图3至图5示出了存储装置的操作的示例。
参照图3,示出了由存储装置310对输入数据执行预处理的示例。例如,当由图像传感器320捕获的高精度格式(例如,FP32)的图像数据被输入时,存储装置310可以首先以高精度格式存储输入数据。存储装置310中的运算器311可以在将输入数据发送到加速器330以进行推断之前执行预处理。例如,运算器311可以执行量化以将高精度格式的输入数据转换为低精度格式(例如,INT8)。另外,运算器311可以对量化后的数据执行打包和/或填充,以将输入数据处理为对应于加速器330的操作单元。由运算器311预处理的输入数据可以存储在存储装置310中并且被发送到加速器330以由加速器330进行推断。由于数据以低精度格式而不是从图像传感器320接收的高精度格式从存储装置310发送到加速器330,因此存储器带宽使用可以有效地被最小化。例如,数据可以以INT8格式而不是FP32格式从存储装置310发送到加速器330,由此存储器带宽可以减小到1/4。以低精度格式操作的加速器330可以在不执行单独的格式转换的情况下将推断操作应用于接收的输入数据。结果数据可以以低精度格式从加速器330发送到存储装置310,并存储在存储装置310中。在这个示例中,存储器带宽使用可有效地减小。
参照图4,示出了由存储装置410对数据执行预处理和操作的示例。例如,除了数据的格式转换之外,存储装置410中的运算器411还可以执行预定操作。在这个示例中,由运算器411执行的操作可以以预定精度格式(例如,FP16)执行。在这种情况下,从主机处理器420接收的高精度格式(例如,FP32)的输入数据可以存储在存储装置410中,然后转换为针对运算器411的操作格式。运算器411可以将高精度格式的输入数据转换为预定精度格式。在一些示例中,运算器411可以对转换后的数据另外地执行打包,以将输入数据处理为对应于运算器411的操作单元。可以由运算器411基于预处理的数据执行预定操作。另外,运算器411可以执行去量化和/或解包以将预定精度格式的操作结果数据转换为高精度格式,并将转换后的数据存储在存储装置410中。可以将高精度格式的结果数据发送回主机处理器420,并且可以对其执行后续操作。
参照图5,示出了由存储装置510对输入数据执行预处理的示例。例如,当由主机处理器520处理的高精度格式(例如,FP32)的数据被输入时,存储装置510可以首先以高精度格式存储输入数据。存储装置510中的运算器511可以在将输入数据发送到加速器530以进行推断之前对输入数据执行预处理。例如,运算器511可以执行量化以将高精度格式的输入数据转换为低精度格式(例如,INT8)。另外,运算器511可以对量化后的数据执行打包和/或填充,以将输入数据处理为对应于加速器530的操作单元。由运算器511预处理的输入数据可以存储在存储装置510中并发送到加速器530以进行推断。由加速器530以低精度格式执行的操作的结果数据可以被发送回存储装置510。运算器511可以执行去量化以将低精度格式的结果数据转换为高精度格式,使得结果数据由主机处理器520处理。另外,在一些情况下,运算器511可以另外执行解包和/或填充,使得结果数据可以被处理为对应于主机处理器520的操作单元。由运算器511后处理的结果数据可以被发送到主机处理器520,并且主机处理器520可以在不执行单独的格式转换的情况下直接处理结果数据。
图6示出了操作存储装置的方法的示例。
参照图6,示出了由存储装置的处理器执行的操作方法。
在操作610中,存储装置存储接收的第一格式的输入数据。例如,存储装置可以是位于执行操作的加速器外部的DRAM。
在操作620中,存储装置通过包括在存储装置中的运算器将输入数据转换为用于要对输入数据执行的操作的第二格式。例如,存储装置可以通过将类型转换、量化、去量化、填充、打包和解包中的一个或多个应用于第一格式的输入数据来将第一格式的输入数据转换为第二格式。在这个示例中,第二格式可以具有比第一格式的存储器带宽低的存储器带宽。例如,要对输入数据执行的操作可以是以第二格式执行的操作,并且以第二格式执行的操作具有比以第一格式执行的操作的精度低的精度。
在操作630中,存储装置重新存储第二格式的输入数据。
参照图1至图5提供的描述可以应用于图6中示出的操作,因此进一步的详细描述将被省略。
图7示出了存储装置的示例。
参照图7,存储装置700包括存储体710和运算器720,存储体710被配置为存储接收的第一格式的输入数据,运算器720与存储体710邻近地设置以将输入数据转换为用于要对输入数据执行的操作的第二格式。在这个示例中,第二格式的输入数据被重新存储在存储体710中。存储体710和运算器720可以通过总线730彼此通信。
在存储装置700中,运算器720可以以存储器内芯片的形式实现并安装在移动系统或服务器上。可选择地,运算器720可以以与存储器内芯片一起设置的软件开发工具包(SDK)的形式安装。此外,存储装置700可以被实现为用于针对数据中心的服务器系统的存储器或用于移动装置或智能家用电器(例如,智能TV)的存储器,并且与被配置为以FP16格式和/或INT8格式操作的加速器一起安装在电子装置上。
参照图1至图5提供的描述可以应用于图7中示出的元件,因此进一步的详细描述将被省略。
图8和图9示出电子装置的示例。
参照图8,电子装置可以被实现为用户终端800。为了易于描述,图8将用户终端800示出为智能电话。然而,该描述也可以应用于(而不限于)各种计算装置(诸如,平板计算机、膝上型计算机和个人计算机)、各种可穿戴装置(诸如,智能手表和智能眼镜)、各种家用电器(诸如,智能扬声器、智能TV和智能冰箱)、智能汽车、智能自助服务终端、物联网(IoT)装置、机器人等。用户终端800可以通过使用神经网络直接获得要推断的数据,并且将数据存储在存储装置810中。存储装置810可以执行预处理以将高精度格式的输入数据转换为低精度格式的输入数据,并且将预处理后的输入数据发送到加速器820。加速器820可以在不执行单独的格式转换的情况下直接将推断操作应用于接收的输入数据,然后将结果数据发送回存储装置810。存储装置810可以执行后处理以将低精度格式的输入数据转换为高精度格式。用户终端800可以将存储在存储装置810中的高精度格式的结果数据提供给用户,或者可以通过主机处理器基于结果数据执行后续操作。
参照图9,电子装置可以被实现为服务器900。服务器900是与由用户控制的用户终端不同的单独装置,并且服务器900可以通过有线网络和/或无线网络与用户终端通信。要通过使用神经网络推断的数据可以由用户终端收集,通过网络发送到服务器900,并且存储在存储装置910中。如上所述,存储装置910可以在将数据发送到加速器920之前或在接收推断结果之后对数据执行预处理或后处理。服务器900可以将推断结果返回给用户终端,并且用户终端可以简单地向用户提供从服务器900接收的推断结果,或者基于推断结果执行后续操作。
执行本申请中描述的操作的图1至图9中的电子装置100、主机处理器110、420、520、存储装置120、310、410、510、700、810、910、存储器控制器130、加速器140、330、530、820、920、图像传感器320、运算器311、411、511、720、存储体710、用户终端800和服务器900、电子装置、主机处理器、存储装置、存储器控制器、加速器、图像传感器、运算器、存储体、用户终端和服务器由硬件组件实现,该硬件组件被配置为执行由硬件组件执行的本申请中描述的操作。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,通过计算硬件(例如,通过一个或多个处理器或计算机)来实现执行在本申请中描述的操作的硬件组件中的一个或多个硬件组件。可通过一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现处理器或计算机。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简明,单数术语“处理器”或“计算机”可用于本申请中描述的示例的描述,但是在其他的示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,一个或多个其他硬件组件可通过一个或多个其他处理器、或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。
执行本申请中描述的操作的图1至图9中示出的方法通过计算硬件(例如,通过一个或多个处理器或计算机)来执行,计算硬件被实现为如上所述地执行指令或软件,以执行在本申请中描述的通过该方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可通过一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机如机器或专用计算机那样进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及说明书中的对应描述使用任何编程语言来编写指令或软件,附图中示出的框图和流程图以及说明书中的对应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将所述指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器或计算机能执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构由一个或多个处理器或计算机以分布式方式存储、访问和执行。
虽然本公开包括特定的示例,但是在理解本申请的公开之后将清楚,在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例将仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其他组件或它们的等同物替换或补充,则可实现合适的结果。因此,公开的范围不是由具体实施方式限定,而是由权利要求和它们的等同物限定,并且在权利要求及其等同物的范围内的所有变化将被解释为包括在公开中。
Claims (25)
1.一种操作存储装置的方法,所述方法包括:
存储接收的第一格式的输入数据;
使用包括在存储装置中的运算器,将输入数据转换为用于要对第二格式的输入数据执行的操作的第二格式;以及
重新存储第二格式的输入数据。
2.根据权利要求1所述的方法,其中,转换的步骤包括:通过将类型转换、量化、去量化、填充、打包和解包中的任何一种或任何两种或更多种的任何组合应用到第一格式的输入数据,将第一格式的输入数据转换为第二格式。
3.根据权利要求1所述的方法,其中,第二格式具有比第一格式的存储器带宽低的存储器带宽。
4.根据权利要求1所述的方法,其中,要对输入数据执行的操作是以第二格式执行的低精度操作,并且要对输入数据执行的操作具有比以第一格式执行的高精度操作的精度低的精度。
5.根据权利要求1至4中的任意一项所述的方法,其中,要对输入数据执行的操作由从存储装置接收第二格式的输入数据的运算器或加速器以第二格式执行。
6.根据权利要求1至4中的任意一项所述的方法,其中,要对输入数据执行的操作是由被配置为对输入数据进行推断的神经网络执行的操作中的一个操作。
7.根据权利要求1至4中的任意一项所述的方法,所述方法还包括:
将对输入数据执行的操作的结果数据转换为第一格式;以及
输出第一格式的结果数据。
8.根据权利要求1至4中的任意一项所述的方法,其中,运算器被设置成与被配置为将数据存储在存储装置中的存储体邻近。
9.根据权利要求1至4中的任意一项所述的方法,其中,运算器包括被配置为执行预定操作的算术逻辑单元。
10.根据权利要求1至4中的任意一项所述的方法,其中,输入数据包括以下中的至少一个:
由图像传感器捕获的第一格式的图像数据;以及
由主机处理器处理的第一格式的数据,主机处理器被配置为控制存储装置和连接到存储装置的加速器中的一者或两者。
11.根据权利要求1至4中的任意一项所述的方法,其中,存储装置是位于执行操作的加速器外部的动态随机存取存储器。
12.根据权利要求1至4中的任意一项所述的方法,其中,存储装置被包括在用户终端或服务器中,其中,要通过执行操作的神经网络进行推断的数据被输入到用户终端,服务器从用户终端接收要进行推断的数据。
13.根据权利要求1至4中的任意一项所述的方法,其中,第一格式是32位浮点格式,并且第二格式是16位浮点格式或8位整数格式。
14.一种存储指令的非暂时性计算机可读存储介质,当所述指令被一个或多个处理器执行时,将所述一个或多个处理器配置为执行根据权利要求1至13中的任意一项所述的方法。
15.一种存储装置,所述存储装置包括:
存储体,被配置为存储接收的第一格式的输入数据;以及
运算器,被设置成与存储体邻近,并被配置为将输入数据转换为用于要对第二格式的输入数据执行的操作的第二格式,
其中,第二格式的输入数据被重新存储在存储体中。
16.根据权利要求15所述的存储装置,其中,运算器被配置为通过将类型转换、量化、去量化、填充、打包和解包中的任何一种或任何两种或更多种的任何组合应用到第一格式的输入数据,来将第一格式的输入数据转换为第二格式。
17.根据权利要求15所述的存储装置,其中,第二格式具有比第一格式的存储器带宽低的存储器带宽。
18.根据权利要求15所述的存储装置,其中,要对输入数据执行的操作是以第二格式执行的低精度操作,并且要对输入数据执行的操作具有比以第一格式执行的高精度操作的精度低的精度。
19.根据权利要求15至18中的任意一项所述的存储装置,其中,运算器被配置为将对输入数据执行的操作的结果数据转换为第一格式,并且
存储体被配置为存储第一格式的结果数据。
20.根据权利要求15至18中的任意一项所述的存储装置,其中,第一格式是32位浮点格式,并且第二格式是16位浮点格式或8位整数格式。
21.一种电子装置,所述电子装置包括根据权利要求15至20中的任意一项所述的存储装置。
22.一种电子装置,所述电子装置包括:
存储装置,被配置为存储接收的第一格式的输入数据,通过存储装置的内部运算器将第一格式的输入数据转换为用于要执行的操作的第二格式,以及重新存储第二格式的输入数据;以及
加速器,被配置为对从存储装置接收的第二格式的输入数据执行操作。
23.根据权利要求22所述的电子装置,其中,存储装置包括内部运算器,内部运算器被配置为通过将类型转换、量化、去量化、填充、打包和解包中的任何一种或任何两种或更多种的任何组合应用到第一格式的输入数据来将第一格式的输入数据转换为第二格式。
24.根据权利要求23所述的电子装置,其中,第一格式是32位浮点格式,并且第二格式是16位浮点格式或8位整数格式。
25.根据权利要求23所述的电子装置,其中,加速器被配置为对从存储装置接收的第二格式的输入数据执行推断操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0111896 | 2020-09-02 | ||
KR1020200111896A KR20220030106A (ko) | 2020-09-02 | 2020-09-02 | 저장 장치, 저장 장치의 동작 방법 및 이를 포함한 전자 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201107A true CN114201107A (zh) | 2022-03-18 |
Family
ID=77126543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110243779.XA Pending CN114201107A (zh) | 2020-09-02 | 2021-03-05 | 存储装置、操作存储装置的方法以及电子装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11934668B2 (zh) |
EP (1) | EP3964945B1 (zh) |
KR (1) | KR20220030106A (zh) |
CN (1) | CN114201107A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112259071A (zh) * | 2020-09-22 | 2021-01-22 | 北京百度网讯科技有限公司 | 语音处理系统、语音处理方法、电子设备和可读存储介质 |
US11853759B2 (en) * | 2020-11-02 | 2023-12-26 | Electronics And Telecommunications Research Institute | Neural network accelerator with type conversion units and operating method thereof |
KR102486619B1 (ko) * | 2022-05-26 | 2023-01-11 | 주식회사 노타 | 양자화 모델에서의 메모리 사용량과 대역폭 감축을 위한 데이터 저장 방법 및 시스템 |
CN118690781A (zh) * | 2023-03-22 | 2024-09-24 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备、存储介质及程序产品 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4873630A (en) * | 1985-07-31 | 1989-10-10 | Unisys Corporation | Scientific processor to support a host processor referencing common memory |
JP2840320B2 (ja) * | 1989-09-20 | 1998-12-24 | 株式会社日立製作所 | 半導体記憶装置 |
US8190722B2 (en) * | 2003-06-30 | 2012-05-29 | Randy Oyadomari | Synchronization of timestamps to compensate for communication latency between devices |
US7831815B2 (en) * | 2008-02-06 | 2010-11-09 | Arm Limited | Data processing apparatus and method for identifying sequences of instructions |
KR101519601B1 (ko) * | 2008-09-09 | 2015-05-13 | 삼성전자주식회사 | 반도체 모듈 및 이를 포함하는 전자 시스템 |
US8464026B2 (en) * | 2010-02-17 | 2013-06-11 | International Business Machines Corporation | Method and apparatus for computing massive spatio-temporal correlations using a hybrid CPU-GPU approach |
US20120059866A1 (en) | 2010-09-03 | 2012-03-08 | Advanced Micro Devices, Inc. | Method and apparatus for performing floating-point division |
KR102107147B1 (ko) * | 2013-02-01 | 2020-05-26 | 삼성전자주식회사 | 패키지 온 패키지 장치 |
WO2016169032A1 (zh) * | 2015-04-23 | 2016-10-27 | 华为技术有限公司 | 数据格式转换装置、缓冲芯片及方法 |
CN107526709A (zh) * | 2016-06-15 | 2017-12-29 | 辉达公司 | 使用低精度格式的张量处理 |
US10437474B1 (en) * | 2017-04-27 | 2019-10-08 | EMC IP Holding Company LLC | Overwriting compressed data extents |
US11501139B2 (en) * | 2017-05-03 | 2022-11-15 | Intel Corporation | Scaling half-precision floating point tensors for training deep neural networks |
US10373500B1 (en) * | 2017-09-22 | 2019-08-06 | State Farm Mutual Automobile Insurance Company | Technology for using image data to assess vehicular risks and communicate notifications |
KR102395463B1 (ko) | 2017-09-27 | 2022-05-09 | 삼성전자주식회사 | 적층형 메모리 장치, 이를 포함하는 시스템 및 그 동작 방법 |
KR102564456B1 (ko) | 2017-10-19 | 2023-08-07 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법 |
US11216719B2 (en) | 2017-12-12 | 2022-01-04 | Intel Corporation | Methods and arrangements to quantize a neural network with machine learning |
US10305508B2 (en) | 2018-05-11 | 2019-05-28 | Intel Corporation | System for compressing floating point data |
US11093579B2 (en) | 2018-09-05 | 2021-08-17 | Intel Corporation | FP16-S7E8 mixed precision for deep learning and other algorithms |
US11068394B2 (en) * | 2018-10-29 | 2021-07-20 | Electronics And Telecommunications Research Institute | Neural network system including data moving controller |
US11372643B2 (en) * | 2018-11-09 | 2022-06-28 | Intel Corporation | Systems and methods for performing instructions to convert to 16-bit floating-point format |
KR20200061164A (ko) | 2018-11-23 | 2020-06-02 | 삼성전자주식회사 | 뉴럴 네트워크 연산 수행을 위한 뉴럴 네트워크 장치, 뉴럴 네트워크 장치의 동작 방법 및 뉴럴 네트워크 장치를 포함하는 애플리케이션 프로세서 |
US11562247B2 (en) | 2019-01-24 | 2023-01-24 | Microsoft Technology Licensing, Llc | Neural network activation compression with non-uniform mantissas |
US11137982B2 (en) * | 2019-02-27 | 2021-10-05 | Micron Technology, Inc. | Acceleration circuitry |
US10990389B2 (en) * | 2019-04-29 | 2021-04-27 | Micron Technology, Inc. | Bit string operations using a computing tile |
US12067479B2 (en) * | 2019-10-25 | 2024-08-20 | T-Head (Shanghai) Semiconductor Co., Ltd. | Heterogeneous deep learning accelerator |
-
2020
- 2020-09-02 KR KR1020200111896A patent/KR20220030106A/ko unknown
-
2021
- 2021-03-05 CN CN202110243779.XA patent/CN114201107A/zh active Pending
- 2021-03-16 US US17/202,591 patent/US11934668B2/en active Active
- 2021-07-28 EP EP21188263.4A patent/EP3964945B1/en active Active
-
2024
- 2024-02-13 US US18/440,461 patent/US20240184462A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240184462A1 (en) | 2024-06-06 |
US20220066660A1 (en) | 2022-03-03 |
EP3964945A1 (en) | 2022-03-09 |
US11934668B2 (en) | 2024-03-19 |
KR20220030106A (ko) | 2022-03-10 |
EP3964945B1 (en) | 2024-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3612936B1 (en) | Reducing power consumption in a neural network processor by skipping processing operations | |
US11461615B2 (en) | System and method of memory access of multi-dimensional data | |
US11803756B2 (en) | Neural network system for reshaping a neural network model, application processor including the same, and method of operating the same | |
US20200285949A1 (en) | Structured Activation Based Sparsity In An Artificial Neural Network | |
US11615297B2 (en) | Structured weight based sparsity in an artificial neural network compiler | |
US11550543B2 (en) | Semiconductor memory device employing processing in memory (PIM) and method of operating the semiconductor memory device | |
CN114201107A (zh) | 存储装置、操作存储装置的方法以及电子装置 | |
WO2020073211A1 (zh) | 运算加速器、处理方法及相关设备 | |
US20210240684A1 (en) | Apparatus and method for representation of a sparse matrix in a neural network | |
US20200285892A1 (en) | Structured Weight Based Sparsity In An Artificial Neural Network | |
CN111465943B (zh) | 一种集成电路和用于神经网络处理的方法 | |
US20200279133A1 (en) | Structured Sparsity Guided Training In An Artificial Neural Network | |
US20210319289A1 (en) | Frequency domain neural network accelerator | |
US20210073625A1 (en) | Partitioning control dependency edge in computation graph | |
CN113868187A (zh) | 处理神经网络的方法和电子装置 | |
JP2022546271A (ja) | カーネルチューニングパラメータを予測するための方法及び装置 | |
CN114118348A (zh) | 加速器、操作加速器的方法以及包括加速器的电子装置 | |
CN112214443B (zh) | 设置于图形处理器中的二次卸载装置和方法 | |
US20220147808A1 (en) | Compiler configurable to generate instructions executable by different deep learning accelerators from a description of an artificial neural network | |
US11663446B2 (en) | Data reuse and efficient processing scheme in executing convolutional neural network | |
US11966344B2 (en) | Accelerator and electronic device including the same | |
US20220147809A1 (en) | Deep learning accelerators with configurable hardware options optimizable via compiler | |
JP7551665B2 (ja) | 高精度のニューラル処理要素 | |
CN113821471A (zh) | 神经网络的处理方法和电子装置 | |
KR102722476B1 (ko) | 증가된 정밀도의 뉴럴 프로세싱 요소 |
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 |