CN113554149B - 神经网络处理单元npu、神经网络的处理方法及其装置 - Google Patents
神经网络处理单元npu、神经网络的处理方法及其装置 Download PDFInfo
- Publication number
- CN113554149B CN113554149B CN202110679297.9A CN202110679297A CN113554149B CN 113554149 B CN113554149 B CN 113554149B CN 202110679297 A CN202110679297 A CN 202110679297A CN 113554149 B CN113554149 B CN 113554149B
- Authority
- CN
- China
- Prior art keywords
- input data
- point
- fixed
- parameter
- type
- 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.)
- Active
Links
Images
Classifications
-
- 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
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了一种神经网络处理单元NPU、神经网络的处理方法及其装置,涉及人工智能技术领域中的深度学习、语音技术等领域。该方案为:通过量化单元获取浮点型的输入数据,并将浮点型的输入数据转换成定点型的输入数据,对定点型的输入数据提供至运算单元,以及获取神经网络的网络参数并提供至运算单元,并通过运算单元基于网络参数对量化后的输入数据进行矩阵向量操作和/或卷积操作,以得到量化后的输入向量的运算结果,从而通过同时支持浮点型和定点型表示方式并进行适应性的结合方式,在确保精度要求的同时,降低了功耗,提升了NPU的算力。
Description
技术领域
本公开的实施例总体上涉及数据处理技术领域,并且更具体地涉及深度学习、语音技术等AI(Artificial Intelligence,人工智能)领域。
背景技术
相关技术中,基于神经网络的数据处理往往采用向量乘矩阵的方法,此种情况下,基于此进行开发的NPU,通过添加更多的完全以定点数的模式进行计算的ALU(Arithmeticand Logic Unit,算术逻辑单元)单元,以实现矩阵运算性能的大幅提升,以及减少功耗和面积的开销。其中,NPU中的ALU单元全部采用自定义浮点精度。这样一来,仍然存在资源消耗过大、***调度损失过大的技术问题。因此,如何在提升NPU算力的同时,节省芯片成本,降低资源消耗和***调度损失,已成为了重要的研究方向之一。
发明内容
本公开提供了一种神经网络处理单元NPU、神经网络的处理方法及其装置。
根据第一方面,提供了一种神经网络处理单元NPU,包括:
量化单元,用于获取浮点型的输入数据,并将所述浮点型的输入数据转换成定点型的输入数据,对所述定点型的输入数据进行量化得到量化后的输入数据,将所述量化后的输入数据提供至运算单元,以及获取神经网络的网络参数并提供至所述运算单元;
所述运算单元,用于基于所述网络参数对所述量化后的输入数据进行矩阵向量操作和/或卷积操作,以得到所述量化后的输入向量的运算结果。
根据第二方面,提供了一种处理装置,包括:通过总线连接的如上述一方面提出的神经网络处理单元NPU、双倍速率同步动态随机存储器DDR和中央处理器CPU;
其中,所述CPU,用于在内部的存储器中存储待处理的输入数据;以及存储所述NPU对所述输入数据的运算结果;
所述DDR,用于存储神经网络的网络参数。
根据第三方面,提供了一种神经网络的处理方法,应用于神经网络处理单元NPU,所述NPU包括量化单元和运算单元,所述处理方法包括:
所述量化单元获取浮点型的输入数据,并将所述浮点型的输入数据转换成定点型的输入数据,对所述定点型的输入数据提供至运算单元,以及获取神经网络的网络参数并提供至所述运算单元;
所述运算单元基于所述网络参数对所述量化后的输入数据进行矩阵向量操作和/或卷积操作,以得到所述量化后的输入向量的运算结果。
根据第四方面,提供了一种电子设备,包括:处理器和存储器;其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如本公开上述提出的基于神经网络的数据处理方法。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开上述提出的基于神经网络的数据处理方法。
根据第六方面,提供了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时实现如本公开上述提出的基于神经网络的数据处理方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例一所提供的处理装置的结构示意图;
图2是本公开实施例二所提供的NPU及其对应设备的结构示意图;
图3是本公开实施例三所提供的NPU的结构示意图;
图4是本公开实施例四所提供的神经网络处理方法的示意图;
图5是用来实现本公开实施例的基于神经网络的数据处理的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
以下对本公开的方案涉及的技术领域进行简要说明:
数据处理(Data Processing)是对数据的采集、存储、检索、加工、变换和传输。数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说是有价值、有意义的数据。数据处理是***工程和自动控制的基本环节。数据处理贯穿于社会生产和社会生活的各个领域。数据处理技术的发展及其应用的广度和深度,极大地影响了人类社会发展的进程。
AI(Artificial Intelligence,人工智能),是研究使计算机来模拟人生的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术,也有软件层面的技术。人工智能硬件技术一般包括计算机视觉技术、语音识别技术、自然语言处理技术以及及其学习/深度学习、大数据处理技术、知识图谱技术等几大方面。
DL(Deep Learning,深度学习),是ML机器学习(Machine Learning,机器学习)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。深度学习是学习样本数据的内在律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。
语音技术,语音技术是指在计算机领域中的关键技术有自动语音识别技术(Automatic Speech Recognition,简称ASR)和语音合成技术(Text to Speech,简称TTS)。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式,语音比其他的交互方式有更多的优势。
需要说明的是,本公开中,NPU(Neural-network Processing Unit,神经网络处理单元)面积较大,且更加在意性能。其内容RAM(存储器)通常设定为2MB和4MB。通过外接对应的DDR(Double Data Rate SDRAM,双倍速率同步动态随机存储器),来实现处理语音业务逻辑,其中,DDR的特点为:容量较大,一般配置为128MB、256MB、512MB或1GB,能够与算力为2TOPs左右的模型相匹配。
进一步地,针对高算力NPU,为了解决256GOPs的算力不能够满足同时支持至少4路的语音识别和语音合成,需要增加算力。
由此,本公开中,为提升NPU的目标算力,例如,计划将NPU的目标算力提升8倍至2TOPS,并同时出于芯片面积、功耗、性能等因素的考量,将采用定点计算的方式实现算力的增加。
基于本公开提出的神经网络的数据处理方法开发的NPU,通过添加更多的完全以定点数的模式进行计算的ALU(Arithmetic and Logic Unit,算术逻辑单元)单元,以实现矩阵运算性能的大幅提升,以及减少功耗和面积的开销。
下面参考附图描述本公开实施例的一种基于神经网络的数据处理方法、装置及电子设备。
图1为本公开实施例一所提供的处理装置的结构示意图。
如图1所示,该处理装置可以包括通过总线连接的NPU(Network ProcessingUnit,神经网络处理单元)110、DDR120和CPU(Central Processing Unit,中央处理器)130。
其中,CPU130,用于在内部的存储器中存储待处理的输入数据;以及存储NPU110对输入数据的运算结果。
DDR120,用于存储神经网络的网络参数。
NPU110,用于通过总线访问CPU130内部的存储器,以读取得到待处理的输入数据,以及通过总线访问DDR120得到至少部分网络参数;根据读取到的至少部分网络参数对输入数据执行矩阵向量操作和卷积操作中的至少一个,并同步继续读取DDR120中的其余网络参数。
需要说明的是,本公开中,用于在内部的存储器中存储待处理的输入数据;以及存储NPU110对输入数据的运算结果的CPU130,可以由DSP(Digital Signal Processor,数字信号处理器)代替。即言,可以选用CPU,也可以选用DSP。
需要说明的是,本公开中,如图2所示,NPU、CPU与DDR通过总线进行通信。
其中,NPU配置有RISCV调度核心(基于精简指令集原则的开源指令集架构)调度器、I RAM、I CACHE、NPU逻辑运算模块以及NPU RAM,并且神经网络的指令是完备的。
其中,NPU中的I RAM是RISCV调度核心调度器的指令空间,一般为64KB或者128KB,是用于运行NPU打分框架的代码。
其中,NPU中的I CACHE是RISCV调度核心调度器的指令Cache(存储器),当I RAM空间不够用时,适用Cache方式映射DDR内存中的指令空间。
其中,针对多核心CPU(一般为4个核心),其针对每个核心的配置项Cache配置至L2级别,即L2 Cache即可。
本公开实施例中,当神经网络应用于语音识别场景中时,比如该NPU应用于语音芯片中时,待处理的输入数据可以根据用户输入的语音数据的特征向量确定。相应的,输入数据的运算结果,用于确定语音数据对应的语音识别结果。
应当理解的是,神经网络也可以应用于其他场景,此时,待处理的输入数据还可以根据其他数据确定。
作为一种应用场景,以神经网络应用于图像识别场景或视频识别场景中进行示例,待处理的输入数据可以根据图像或视频帧的特征向量确定,相应的,输入数据的运算结果,用于确定图像或视频帧的分类结果。
一种示例,以神经网络用于身份识别进行示例性说明,待处理的输入数据可以根据图像或视频帧的特征向量确定,相应的,输入数据的运算结果,用于确定图像或视频帧中目标对象的身份信息。
另一种示例,以神经网络用于活体检测进行示例性说明,待处理的输入数据可以根据图像或视频帧的特征向量确定,相应的,输入数据的运算结果,用于确定图像或视频帧中是否存在活体。比如当神经网络输出的概率值大于或者等于预设阈值(比如,预设阈值可以为0.5)时,分类结果为存在活体,而当神经网络输出的概率值小于预设阈值时,分类结果为未存在活体。
又一种示例,以神经网络用于违禁图片(比如暴力图片、***等)检测进行示例性说明,待处理的输入数据可以根据图像或视频帧的特征向量确定,相应的,输入数据的运算结果,用于确定图像或视频帧是否为违禁图片。比如当神经网络输出的概率值大于或者等于预设阈值时,分类结果为:图像或视频帧为违禁图片,而当神经网络输出的概率值小于预设阈值时,分类结果为:图像或视频帧为正常图片。
作为另一种应用场景,以神经网络应用于语音翻译场景中进行示例,待处理的输入数据可以根据用户输入的语音数据的特征向量确定。相应的,输入数据的运算结果,用于确定语音翻译结果。
举例而言,以神经网络应用于中英互译场景中进行示例性说明,待处理的输入数据可以根据中文的语音数据的特征向量确定,相应的,输入数据的运算结果,用于确定语音数据对应的英文翻译结果,该英文翻译结果可以为语音形式,或者也可以为文本形式,对此不作限制。
在本公开实施例中,NPU110可以通过总线访问CPU130内部的存储器,以读取得到待处理的输入数据,以及通过总线访问DDR120得到至少部分网络参数,根据读取到的至少部分网络参数对输入数据执行矩阵向量操作和卷积操作中的至少一个,并同步继续读取DDR120中的其余网络参数,从而可以根据继续读取的其余网络参数对输入数据执行矩阵向量操作和卷积操作中的至少一个,以得到输入数据的运算结果。由此,可以实现一边读取/加载DDR中的数据,一边利用已读取/加载的数据执行计算过程,即可以实现数据读取/加载和计算的并行,从而可以提升计算效率。
本公开实施例的处理装置,同时支持浮点数表示和定点数表示方式,并进行有机结合,以确保NPU的高算力、低功耗和通用性。可选地,可以采用一套支持浮点数表示的单元,以确保NPU的通用性,并采用多套支持定点数表示的单元,以确保NPU面积小、低功耗的优势。进一步地,将多路数据的运算结果相加后输入累加器,以减少资源开销、降低功耗。进一步地,NPU支持向量矩阵操作,同时确保NPU的通用性。
图3为本公开实施例一所提供的神经网络处理单元NPU的结构示意图。
如图3所示,该NPU可以包括量化单元310和运算单元320。
其中,量化单元310,用于获取浮点型的输入数据,并将浮点型的输入数据转换成定点型的输入数据,对定点型的输入数据进行量化得到量化后的输入数据,将量化后的输入数据提供至运算单元320,以及获取神经网络的网络参数并提供至运算单元320;
其中,运算单元320,用于基于网络参数对量化后的输入数据进行矩阵向量操作和/或卷积操作,以得到量化后的输入向量的运算结果。
本公开实施例的NPU,同时支持浮点数表示和定点数表示方式,并进行有机结合,以确保NPU的高算力、低功耗和通用性。可选地,可以采用一套支持浮点数表示的单元,以确保NPU的通用性,并采用多套支持定点数表示的单元,以确保NPU面积小、低功耗的优势。进一步地,NPU支持向量矩阵操作,同时确保NPU的通用性。
本公开实施例中,量化单元310,还用于根据NPU的精度损失参数确定小数点位置,基于小数点位置确定用于表示整数部分的第一比特位和用于表示小数部分的第二比特位,并基于第一比特位和第二比特位表示定点型的输入数据中待量化定点值。
需要说明的是,将浮点型的输入向量转换成定点型的输入向量,能够极大提升精度。
举例而言,将一个32位的整数,可以表示为16位整数(第一比特位)和16位小数(第二比特位)。也就是说,一个32位的整数表示了一个16位整数能够表示的数值范围,这样一来,精度则从1提升到了1/65536。
其中,小数点位置可以是浮动的,可以根据NPU的精度损失参数确定。在NPU设计中,设定了一个建议最大值为24的定点型的输入向量,通常设定为上述举例中的16,也可以设定为28等。
为了清楚说明本公开上述实施例中是如何对输入数据进行量化,以及如何对运算单元320输出的运算结果进行反量化的,下面以运算单元320执行矩阵向量操作进行示例说明。
当运算单元320执行矩阵向量操作时,量化单元310具体用于根据CPU内部的存储器所存储的定点型的输入数据,求得用于量化的第一参数;对定点型的输入数据中待量化的定点值乘以第一参数,并求整后转换成数值型,以得到数值型的输入数据;获取定点型的输入数据对应的第一缩放参数,将第一缩放参数与数值型的输入数据相乘,得到量化后的输入数据。
进一步地,量化单元310,将网络参数转换成定点型的网络参数,并对定点型的网络参数进行量化得到量化后的网络参数,并将量化后的网络参数提供至运算单元320。
进一步地,量化单元310,还用于根据定点型的网络参数,求得用于量化的第二参数;对定点型的网络参数中待量化的定点值乘以第二参数,并求整后转换成数值型,以得到数值型的网络参数;获取定点型的网络参数对应的第二缩放参数,将第二缩放参数与数值型的网络参数相乘,得到量化后的网络参数。
本公开实施例中,运算单元320,包括:第一寄存器321、第二寄存器322和累加器323;
其中,第一寄存器321,用于在第一周期读取定点型的输入数据;
其中,第二寄存器322,用于在第一周期之后的多个后续周期,通过N路读取网络参数,将每个周期内每路读取的网络参数与定点型的输入数据进行点积计算,并进行点积求和,其中,N路由NPU的运算能力确定;
其中,累加器323,用于获取点积求和的结果,对点积求和的结果进行累加,以得到矩阵向量操作的结果。
进一步地,针对NPU同时支持浮点数表示和定点数表示方式,量化单元310,可以获取当前处理的神经网络层所需要的数据类型;响应于数据类型为定点型,则将浮点型的输入数据转换成定点型的输入数据;响应于数据类型为浮点型,则直接对浮点型的输入数据进行量化。
进一步地,量化单元310,可以根据定点型的输入数据,求得用于反量化的第三参数;将运算结果转化为浮点型;将浮点型的运算结果乘以第三参数后发送至进行存储。
举例而言,为提升NPU算力,将数据划分为8路后进行矩阵向量操作,此种情况下,针对8路数据,相较于相关技术中单路加载的方式,直接加载8行,效率提高了8倍。也就是说,将处理周期从8个周期缩短至1个周期就可实现数据处理。在获取到8路数据对应的处理结构后,可以将8个结果相加,然后将结果输出至累加器ACC。
本公开实施例的NPU,将多路数据的运算结果相加后输入累加器,以减少资源开销、降低功耗。
图4为本公开实施例一所提供的神经网络的处理方法的流程示意图。
如图4所示,神经网络的处理方法,应用于神经网络处理单元NPU,NPU包括量化单元和运算单元,神经网络的处理方法包括以下步骤:
S401、量化单元获取浮点型的输入数据,并将浮点型的输入数据转换成定点型的输入数据,对定点型的输入数据提供至运算单元,以及获取神经网络的网络参数并提供至运算单元。
S402、运算单元基于网络参数对量化后的输入数据进行矩阵向量操作和/或卷积操作,以得到量化后的输入向量的运算结果。
本公开实施例的神经网络的处理方法,同时支持浮点数表示和定点数表示方式,并进行有机结合,以确保NPU的高算力、低功耗和通用性。可选地,可以采用一套支持浮点数表示的单元,以确保NPU的通用性,并采用多套支持定点数表示的单元,以确保NPU面积小、低功耗的优势。进一步地,将多路数据的运算结果相加后输入累加器,以减少资源开销、降低功耗。进一步地,NPU支持向量矩阵操作,同时确保NPU的通用性。
本公开实施例中,可以通过量化单元根据NPU的精度损失参数确定小数点位置,基于小数点位置确定用于表示整数部分的第一比特位和用于表示小数部分的第二比特位,并基于第一比特位和第二比特位表示定点型的输入数据中待量化定点值。
进一步地,定点数量化的具体过程为通过量化单元根据数字信号处理器CPU内部的存储器所存储的定点型的输入数据,求得用于量化的第一参数;对定点型的输入数据中待量化的定点值乘以第一参数,并求整后转换成数值型,以得到数值型的输入数据;获取定点型的输入数据对应的第一缩放参数,将第一缩放参数与数值型的输入数据相乘,得到量化后的输入数据。
进一步地,可以通过量化单元将网络参数转换成定点型的网络参数,并对定点型的网络参数进行量化得到量化后的网络参数,并将量化后的网络参数提供至运算单元。
进一步地,网络参数量化的具体过程为通过量化单元根据定点型的网络参数,求得用于量化的第二参数;对定点型的网络参数中待量化的定点值乘以第二参数,并求整后转换成数值型,以得到数值型的网络参数;获取定点型的网络参数对应的第二缩放参数,将第二缩放参数与数值型的网络参数相乘,得到量化后的网络参数。
本公开实施例中,运算单元包括第一寄存器、第二寄存器和累加器。此种情况下,可以通过第一寄存器在第一周期读取定点型的输入数据;通过第二寄存器在第一周期之后的多个后续周期,通过N路读取网络参数,将每个周期内每路读取的网络参数与定点型的输入数据进行点积计算,并进行点积求和,其中,N路由NPU的运算能力确定;通过累加器获取点积求和的结果,对点积求和的结果进行累加,以得到矩阵向量操作的结果。
进一步地,可以通过量化单元获取当前处理的神经网络层所需要的数据类型;响应于数据类型为定点型,则将浮点型的输入数据转换成定点型的输入数据;响应于数据类型为浮点型,则直接对浮点型的输入数据进行量化。
进一步地,可以通过量化单元根据定点型的输入数据,求得用于反量化的第三参数;将运算结果转化为浮点型;将浮点型的运算结果乘以第三参数后发送至进行存储。
综上所述,本公开中,使用定点精度,以及上述8bit/16bit/32bit,共三种量化方法,实现了可比拟浮点数+int8量化方法的精度,且能够在一个周期内完成点积运算和后续的累加运算,大幅度提升了神经网络的运算效率。进一步地,多套该量化模式的ALU算子,配合通用型的运算和激活运算(以免量化精度的网络不能处理一些特殊的应用),能够使得NPU逻辑面积只增加为原来的3-4倍,但实现了8倍的矩阵运算性能提升。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如神经网络的处理方法。例如,在一些实施例中,神经网络的处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM503并由计算单元501执行时,可以执行上文描述的神经网络的处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行神经网络的处理方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程人物图像的修复装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网以及区块链网络。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务端可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(“Virtual Private Server”,或简称“VPS”)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
为了实现上述实施例,本公开还提供一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时实现本公开上述任一实施例提出的神经网络的处理方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (17)
1.一种神经网络处理单元NPU,包括:
量化单元,用于获取浮点型的输入数据,并将所述浮点型的输入数据转换成定点型的输入数据,对所述定点型的输入数据进行量化得到量化后的输入数据,将所述量化后的输入数据提供至运算单元,以及获取神经网络的网络参数并提供至所述运算单元;
所述运算单元,用于基于所述网络参数对所述量化后的输入数据进行矩阵向量操作和/或卷积操作,以得到所述量化后的输入向量的运算结果;
所述量化单元,还用于:
根据中央处理器CPU内部的存储器所存储的所述定点型的输入数据,求得用于量化的第一参数;
对所述定点型的输入数据中待量化的定点值乘以所述第一参数,并求整后转换成数值型,以得到数值型的输入数据;
获取所述定点型的输入数据对应的第一缩放参数,将所述第一缩放参数与所述数值型的输入数据相乘,得到所述量化后的输入数据。
2.根据权利要求1所述的NPU,其中,所述量化单元,还用于根据所述NPU的精度损失参数确定小数点位置,基于所述小数点位置确定用于表示整数部分的第一比特位和用于表示小数部分的第二比特位,并基于所述第一比特位和所述第二比特位表示所述定点型的输入数据中待量化定点值。
3.根据权利要求1-2任一项所述的NPU,其中,所述量化单元,还用于:
将所述网络参数转换成定点型的网络参数,并对所述定点型的网络参数进行量化得到量化后的网络参数,并将所述量化后的网络参数提供至所述运算单元。
4.根据权利要求3所述的NPU,其中,所述量化单元,还用于:
根据所述定点型的网络参数,求得用于量化的第二参数;
对所述定点型的网络参数中待量化的定点值乘以所述第二参数,并求整后转换成数值型,以得到数值型的网络参数;
获取所述定点型的网络参数对应的第二缩放参数,将所述第二缩放参数与所述数值型的网络参数相乘,得到所述量化后的网络参数。
5.根据权利要求1所述的NPU,其中,所述运算单元包括第一寄存器、第二寄存器和累加器;
所述第一寄存器,用于在第一周期读取所述定点型的输入数据;
所述第二寄存器,用于在第一周期之后的多个后续周期,通过N路读取所述网络参数,将每个周期内每路读取的所述网络参数与所述定点型的输入数据进行点积计算,并进行点积求和,其中,所述N路由所述NPU的运算能力确定;
所述累加器,用于获取点积求和的结果,对所述点积求和的结果进行累加,以得到矩阵向量操作的结果。
6.根据权利要求1所述的NPU,其中,所述量化单元,还用于:
获取当前处理的神经网络层所需要的数据类型;
响应于所述数据类型为定点型,则将所述浮点型的输入数据转换成定点型的输入数据;
响应于所述数据类型为浮点型,则直接对所述浮点型的输入数据进行量化。
7.根据权利要求4所述的NPU,其中,所述量化单元,还用于:
根据所述定点型的输入数据,求得用于反量化的第三参数;
将所述运算结果转化为浮点型;
将浮点型的所述运算结果乘以所述第三参数后发送至进行存储。
8.一种处理装置,包括:通过总线连接的如权利要求1-7任一项所述的神经网络处理单元NPU、双倍速率同步动态随机存储器DDR和中央处理器CPU;
其中,所述CPU,用于在内部的存储器中存储待处理的输入数据;以及存储所述NPU对所述输入数据的运算结果;
所述DDR,用于存储神经网络的网络参数。
9.一种神经网络的处理方法,应用于神经网络处理单元NPU,所述NPU包括量化单元和运算单元,所述处理方法包括:
所述量化单元获取浮点型的输入数据,并将所述浮点型的输入数据转换成定点型的输入数据,对所述定点型的输入数据提供至运算单元,以及获取神经网络的网络参数并提供至所述运算单元;
所述运算单元基于所述网络参数对所述量化后的输入数据进行矩阵向量操作和/或卷积操作,以得到所述量化后的输入向量的运算结果;
所述量化单元根据中央处理器CPU内部的存储器所存储的所述定点型的输入数据,求得用于量化的第一参数;
对所述定点型的输入数据中待量化的定点值乘以所述第一参数,并求整后转换成数值型,以得到数值型的输入数据;
获取所述定点型的输入数据对应的第一缩放参数,将所述第一缩放参数与所述数值型的输入数据相乘,得到所述量化后的输入数据。
10.根据权利要求9所述的方法,其中,
所述量化单元根据所述NPU的精度损失参数确定小数点位置,基于所述小数点位置确定用于表示整数部分的第一比特位和用于表示小数部分的第二比特位,并基于所述第一比特位和所述第二比特位表示所述定点型的输入数据中待量化定点值。
11.根据权利要求9-10任一项所述的方法,其中,
所述量化单元将所述网络参数转换成定点型的网络参数,并对所述定点型的网络参数进行量化得到量化后的网络参数,并将所述量化后的网络参数提供至所述运算单元。
12.根据权利要求11所述的方法,其中,
所述量化单元根据所述定点型的网络参数,求得用于量化的第二参数;
对所述定点型的网络参数中待量化的定点值乘以所述第二参数,并求整后转换成数值型,以得到数值型的网络参数;
获取所述定点型的网络参数对应的第二缩放参数,将所述第二缩放参数与所述数值型的网络参数相乘,得到所述量化后的网络参数。
13.根据权利要求9所述的方法,其中,所述运算单元包括第一寄存器、第二寄存器和累加器;
所述第一寄存器,用于在第一周期读取所述定点型的输入数据;
所述第二寄存器,用于在第一周期之后的多个后续周期,通过N路读取所述网络参数,将每个周期内每路读取的所述网络参数与所述定点型的输入数据进行点积计算,并进行点积求和,其中,所述N路由所述NPU的运算能力确定;
所述累加器,用于获取点积求和的结果,对所述点积求和的结果进行累加,以得到矩阵向量操作的结果。
14.根据权利要求9所述的方法,其中,
所述量化单元,获取当前处理的神经网络层所需要的数据类型;
响应于所述数据类型为定点型,则将所述浮点型的输入数据转换成定点型的输入数据;
响应于所述数据类型为浮点型,则直接对所述浮点型的输入数据进行量化。
15.根据权利要求11所述的方法,其中,
所述量化单元根据所述定点型的输入数据,求得用于反量化的第三参数;
将所述运算结果转化为浮点型;
将浮点型的所述运算结果乘以所述第三参数后发送至进行存储。
16.一种电子设备,其特征在于,包括:处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求9-15中任一项所述的神经网络的处理方法的步骤。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求9-15中任一项所述的神经网络的处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110679297.9A CN113554149B (zh) | 2021-06-18 | 2021-06-18 | 神经网络处理单元npu、神经网络的处理方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110679297.9A CN113554149B (zh) | 2021-06-18 | 2021-06-18 | 神经网络处理单元npu、神经网络的处理方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113554149A CN113554149A (zh) | 2021-10-26 |
CN113554149B true CN113554149B (zh) | 2022-04-12 |
Family
ID=78130707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110679297.9A Active CN113554149B (zh) | 2021-06-18 | 2021-06-18 | 神经网络处理单元npu、神经网络的处理方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113554149B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116848509A (zh) * | 2021-12-31 | 2023-10-03 | 华为技术有限公司 | 一种计算任务处理装置、方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112085150A (zh) * | 2019-06-12 | 2020-12-15 | 安徽寒武纪信息科技有限公司 | 量化参数调整方法、装置及相关产品 |
CN112085176A (zh) * | 2019-06-12 | 2020-12-15 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
WO2021022903A1 (zh) * | 2019-08-07 | 2021-02-11 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
US11157801B2 (en) * | 2017-02-28 | 2021-10-26 | Microsoft Technology Licensing, Llc | Neural network processing with the neural network model pinned to on-chip memories of hardware nodes |
CN115688877A (zh) * | 2017-06-06 | 2023-02-03 | 格兰菲智能科技有限公司 | 一种用于对待量化数据进行定点化处理的方法及计算装置 |
KR102564456B1 (ko) * | 2017-10-19 | 2023-08-07 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법 |
CN107909583B (zh) * | 2017-11-08 | 2020-01-10 | 维沃移动通信有限公司 | 一种图像处理方法、装置及终端 |
CN110874627B (zh) * | 2018-09-04 | 2024-06-28 | 华为技术有限公司 | 数据处理方法、数据处理装置及计算机可读介质 |
CN111126558B (zh) * | 2018-10-31 | 2024-04-02 | 嘉楠明芯(北京)科技有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
CN111191783B (zh) * | 2018-11-15 | 2024-04-05 | 嘉楠明芯(北京)科技有限公司 | 一种自适应量化方法及装置、设备、介质 |
CN111027691B (zh) * | 2019-12-25 | 2023-01-17 | 上海寒武纪信息科技有限公司 | 用于神经网络运算、训练的装置、设备及板卡 |
CN112381205A (zh) * | 2020-09-29 | 2021-02-19 | 北京清微智能科技有限公司 | 一种神经网络低比特量化方法 |
-
2021
- 2021-06-18 CN CN202110679297.9A patent/CN113554149B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112085150A (zh) * | 2019-06-12 | 2020-12-15 | 安徽寒武纪信息科技有限公司 | 量化参数调整方法、装置及相关产品 |
CN112085176A (zh) * | 2019-06-12 | 2020-12-15 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
WO2021022903A1 (zh) * | 2019-08-07 | 2021-02-11 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113554149A (zh) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7406606B2 (ja) | テキスト認識モデルの訓練方法、テキスト認識方法及び装置 | |
JP7331975B2 (ja) | クロスモーダル検索モデルのトレーニング方法、装置、機器、および記憶媒体 | |
US20220292337A1 (en) | Neural network processing unit, neural network processing method and device | |
CN113792854A (zh) | 一种模型训练及字库建立方法、装置、设备及存储介质 | |
US20220108684A1 (en) | Method of recognizing speech offline, electronic device, and storage medium | |
US20230186607A1 (en) | Multi-task identification method, training method, electronic device, and storage medium | |
US20200050481A1 (en) | Computing Method Applied to Artificial Intelligence Chip, and Artificial Intelligence Chip | |
KR20230139296A (ko) | 포인트 클라우드 처리 모델의 훈련과 포인트 클라우드 인스턴스 분할 방법 및 장치 | |
CN114840734A (zh) | 多模态表示模型的训练方法、跨模态检索方法及装置 | |
CN112528641A (zh) | 建立信息抽取模型的方法、装置、电子设备和可读存储介质 | |
CN115454706A (zh) | 一种***异常确定方法、装置、电子设备及存储介质 | |
CN112949818A (zh) | 模型蒸馏方法、装置、设备以及存储介质 | |
CN113554149B (zh) | 神经网络处理单元npu、神经网络的处理方法及其装置 | |
US20200242467A1 (en) | Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product | |
KR20230133808A (ko) | Roi 검출 모델 훈련 방법, 검출 방법, 장치, 설비 및 매체 | |
US20220113943A1 (en) | Method for multiply-add operations for neural network | |
CN115860003A (zh) | 一种语义角色分析方法、装置、电子设备及存储介质 | |
CN113408304B (zh) | 文本翻译方法、装置、电子设备及存储介质 | |
CN113361621B (zh) | 用于训练模型的方法和装置 | |
CN114742035A (zh) | 基于注意力机制优化的文本处理方法、网络模型训练方法 | |
CN114662688A (zh) | 模型的训练方法、数据处理方法、装置、电子设备及介质 | |
CN114119972A (zh) | 模型获取及对象处理方法、装置、电子设备及存储介质 | |
CN115312042A (zh) | 用于处理音频的方法、装置、设备以及存储介质 | |
CN115034388B (zh) | 排序模型的量化参数的确定方法、装置及电子设备 | |
CN115034198B (zh) | 语言模型中嵌入模块计算优化的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |