CN111738429A - 一种计算装置及相关产品 - Google Patents
一种计算装置及相关产品 Download PDFInfo
- Publication number
- CN111738429A CN111738429A CN201910229823.4A CN201910229823A CN111738429A CN 111738429 A CN111738429 A CN 111738429A CN 201910229823 A CN201910229823 A CN 201910229823A CN 111738429 A CN111738429 A CN 111738429A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- address information
- decoder
- register
- 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
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/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
-
- 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)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本申请提供了一种计算装置及相关产品,其中,相关产品包括神经网络芯片和板卡,该板卡包括存储器件、接口装置和控制器件以及该神经网络芯片,该神经网络芯片与该存储器件、该控制器件以及该接口装置分别连接;该存储器件,用于存储数据;该接口装置,用于实现该神经网络芯片与外部设备之间的数据传输;该控制器件,用于对所述神经网络芯片的状态进行监控。实施本申请实施例,有利于解决在神经网络运算过程中数据传输延迟高、能耗高的问题,打破神经网络运算的瓶颈,从而满足用户的实际需求,提升用户体验。
Description
技术领域
本申请涉及信息处理技术领域,具体涉及一种计算装置及相关产品。
背景技术
随着信息技术的不断发展和人们日益增长的需求,人们对数据存储的要求越来越高了,尤其是在神经网络算法的运算过程中。
然而,在现有技术中,由于存储装置存在存储密度低、面积大、功耗高,访问延迟高的问题,从而导致在神经网络运算过程中数据传输延迟高、能耗高,使得数据传输成为神经网络运算的瓶颈,也无法满足用户的实际需求,给用户的体验不好。
发明内容
本申请实施例提供了一种计算装置及相关产品,有利于解决在神经网络运算过程中数据传输延迟高、能耗高的问题,打破神经网络运算的瓶颈,从而满足用户的实际需求,提升用户体验。
第一方面,本申请实施例提供了提供一种计算装置,所述计算装置包括存储单元和控制器单元,其中,所述存储单元包括:3D解码器和3D存储器;
所述控制器单元,用于向所述3D解码器发送访问指令;
所述3D解码器,用于解码所述控制器单元传输的所述访问指令,得到所述访问指令携带的待访问数据的地址信息;
所述3D解码器,还用于向所述3D存储器发送所述地址信息;
所述3D存储器,用于根据所述3D解码器传输的所述地址信息在所述3D存储器中访问所述待访问数据。
第二方面,本申请实施例提供了一种神经网络芯片,该神经网络芯片包括上述第一方面所述的计算装置。
第三方面,本申请实施例提供了一种板卡,该板卡包括上述第二方面所述的神经网络芯片封装结构。
第四方面,本申请实施例提供了一种电子设备,该电子设备包括上述第二方面所述的神经网络芯片或者上述第三方面所述的板卡。
第五方面,本申请实施例还提供一种执行机器学习模型的计算方法,所述计算方法应用于计算装置,所述计算装置包括存储单元和控制器单元,其中,所述存储单元包括:3D解码器和3D存储器;所述方法包括:
所述控制器单元,用于向所述3D解码器发送访问指令;
所述3D解码器,用于解码所述控制器单元传输的所述访问指令,得到所述访问指令携带的待访问数据的地址信息;
所述3D解码器,还用于向所述3D存储器发送所述地址信息;
所述3D存储器,用于根据所述3D解码器传输的所述地址信息在所述3D存储器中访问所述待访问数据。
在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
在一些实施例中,所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的一种计算装置的结构示意图。
图1B是本申请一个实施例提供的存储单元的结构图。
图1C是本申请另一个实施例提供的存储单元的结构图。
图1D是本申请实施例提供的又一种计算装置的结构图。
图1E是本申请实施例提供的又一种计算装置的结构图。
图1F是本申请实施例提供的又一种计算装置的结构示意图。
图1G是本申请实施例提供的又一种计算装置的结构图。
图1H是本申请实施例提供的又一种计算装置的结构图。
图1I是本申请实施例提供的又一种计算装置的结构图。
图1J是本申请实施例提供的树型模块的结构示意图。
图1K是本申请实施例提供的又一种计算装置的结构图。
图1L是本申请实施例提供的又一种计算装置的结构图。
图1M是本申请实施例提供的又一种计算装置的结构图。
图1N是本申请实施例提供的又一种计算装置的结构图。
图2A是本申请实施例提供的一种计算装置的结构示意图。
图3A是本申请实施例提供的一种板卡的结构示意图。
图3B是本申请实施例提供的一种板卡的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先介绍本申请使用的计算装置。参阅图1A,提供了一种计算装置,所述计算装置包括存储单元10和控制器单元11,其中,所述存储单元10包括:3D解码器201和3D存储器202;
所述控制器单元11,用于向所述3D解码器发送访问指令。
在一种可选方案中,具体的,在上述访问指令为读取指令时,该读取指令携带地址信息和待访问数据的数据大小,其中,在一种可选方案中,该读取指令的结构可以如下表所示:
Layer_id | Cell_id | Row_id | Col_id | Data_size |
其中,Layer_id是活动层索引地址信息,表示目标活动层在3D存储器中活动层的位置;Cell_id是存储器索引地址信息,表示目标存储器在目标活动层的位置;Row_id是行索引地址信息,表示待访问数据在目标存储器中目标存储空间的行地址;Col_id是列索引地址信息,表示待访问数据在目标存储器中目标存储空间的列地址;Data_size是数据大小,表示待访问数据的数据大小。
在上述访问指令为写入指令时,该写入指令携带地址信息和待访问数据,其中,在一种可选方案中,该写入指令的结构可以如下表所示:
Layer_id | Cell_id | Row_id | Col_id | Data |
其中,Layer_id是活动层索引地址信息,表示目标活动层在3D存储器中活动层的位置;Cell_id是存储器索引地址信息,表示目标存储器在目标活动层的位置;Row_id是行索引地址信息,表示待访问数据在目标存储器中目标存储空间的行地址;Col_id是列索引地址信息,表示待访问数据在目标存储器中目标存储空间的列地址;Data是数据,表示待访问数据。
所述3D解码器201,用于解码所述控制器单元传输的所述访问指令,得到所述访问指令携带的待访问数据的地址信息。
所述3D解码器201,还用于向所述3D存储器发送所述地址信息。
所述3D存储器202,用于根据所述3D解码器传输的所述地址信息在所述3D存储器中访问所述待访问数据。
本申请提供的技术方案将存储单元设置成3D存储器和3D解码器,满足了神经网络运算的存储需求,同时,减少了数据I/O单元,解决了在神经网络运算过程中数据传输延迟高、能耗高的问题,打破神经网络运算的瓶颈,从而满足用户的实际需求,提升用户体验。
参阅图1B,在上述访问指令为读取指令时,所述3D解码器201具体,用于解码所述控制器单元传输的所述读取指令,得到所述读取指令携带的待访问数据的地址信息和数据大小;向所述3D存储器发送所述地址信息和所述数据大小。
所述3D存储器202具体,用于根据所述3D解码器传输的所述地址信息从所述3D存储器中读取与所述数据大小匹配的所述待访问数据。
参阅图1C,在上述访问指令为写入指令时,所述3D解码器201具体,用于解码所述控制器单元传输的所述写入指令,得到所述写入指令携带的待访问数据的地址信息和待访问数据;向所述3D存储器发送所述地址信息和所述待访问数据。
所述3D存储器202具体,用于根据所述3D解码器传输的所述地址信息在所述3D存储器中写入所述待访问数据。
可选的,所述3D存储器202包括:N个活动层,所述N个活动层中的每个活动层包括一个2D存储器,所述第i个活动层中的2D存储器与第(i+1)个活动层中的2D存储器连接,1≤i<N且i为整数,每个2D存储器由M个类型相同的存储器阵列排布得到,其中,N为大于1的正整数,M为正整数。
其中,在本方案的一种可能的实施方式中,第i个活动层中的2D存储器与第(i+1)个活动层中的2D存储器通过硅通道连接。
其中,i例如可以为1、2、3、4、5、7、8、9等数值。
其中,M例如可以为1、2、3、4、5、7、8、9等数值。
其中,N例如可以为2、3、4、5、7、8、9等数值。
其中,存储器的类型例如可以包括:动态随机存取存储器、静态随机存取存储器、寄存器、闪存等。
举例来说,一个3D-寄存器,有4个活动层,每个活动层包括一个2D寄存器,相邻2D寄存器之间通过硅通道连接,且每个2D寄存器由M个寄存器阵列排布得到,即可有m行、n列的寄存器构成一个2D寄存器,其中,m*n=M,其中m,n为大于等于1的正整数。
又举例来说,一个3D-静态随机存取存储器,有4个活动层,每个活动层包括一个2D静态随机存取存储器,相邻2D静态随机存取存储器之间通过硅通道连接,且每个2D静态随机存取存储器由M个静态随机存取存储器阵列排布得到,即可有m行、n列的静态随机存取存储器构成一个2D静态随机存取存储器,其中,m*n=M,其中m,n为大于等于1的正整数。
又举例来说,一个3D-动态随机存取存储器,有4个活动层,每个活动层包括一个2D动态随机存取存储器,相邻2D动态随机存取存储器之间通过硅通道连接,且每个2D动态随机存取存储器由M个动态随机存取存储器阵列排布得到,即可有m行、n列的动态随机存取存储器构成一个2D动态随机存取存储器,其中,m*n=M,其中m,n为大于等于1的正整数。
其中,在本方案的一种可能的实施方式中,所述地址信息包括:活动层索引地址信息、存储器索引地址信息、行索引地址信息和列索引地址信息;在根据所述3D解码器传输的所述地址信息在所述3D存储器中访问所述待访问数据时,所述3D存储器202,具体用于:
将所述待访问数据访问到所述3D存储器中的目标存储空间,其中,所述目标存储空间为目标存储器中与所述行索引地址信息和列索引地址信息对应的存储空间,所述目标存储器为目标活动层中与所述存储器索引地址信对应的存储器,所述目标活动层为所述3D存储器中与所述活动层索引地址信息对应的活动层。
可选的,在本方案的一个实施例中,外部设备13和3D存储器可以如图1D和图1E所示,上述计算装置还可以包括:外部设备13,所述外部设备13的外部存储单元包括:3D-动态随机存取存储器和3D-静态随机存取存储器;所述待访问数据包括:输入数据和所述输入数据中的标量数据,其中,所述输入数据包括:输入神经元数据和权值数据;
在所述外部存储单元为所述3D-动态随机存取存储器时,所述3D存储器102包括:3D-静态随机存取存储器和3D-寄存器;
所述3D-静态随机存取存储器,用于存储所述输入数据;
所述3D-寄存器,用于存储所述标量数据;
或者,在所述外部存储单元为所述3D-静态随机存取存储器时,所述3D存储器102为3D-寄存器;
所述3D-寄存器,用于存储所述输入数据;
所述3D-寄存器,还用于存储所述标量数据。
可选的,在本方案的又一个实施例中,如图1F所示,在所述外部存储单元301为所述3D-动态随机存取存储器3012时,所述3D存储器202进入第一工作模式,所述第一工作模式包括:
所述3D-静态随机存取存储器2021根据所述3D解码器传输的所述地址信息在所述3D-静态随机存取存储器中访问所述输入数据;以及,
所述3D-寄存器2022根据所述3D解码器传输的所述地址信息在所述3D-寄存器中访问所述标量数据;
或者,在所述外部存储单元为所述3D-静态随机存取存储器3011时,所述3D存储器202进入第二工作模式,所述第二工作模式包括:
所述3D-寄存器2022根据所述3D解码器传输的所述地址信息在所述3D-寄存器中访问所述输入数据和所述标量数据。
在本方案的有一个实施例中,所述计算装置用于执行机器学习计算,所述计算装置还包括:运算单元12,其中,控制器单元11与运算单元12连接,所述运算单元12包括:一个主处理电路和多个从处理电路;
控制器单元11,还用于获取输入数据以及计算指令;在一种可选方案中,具体的,获取输入数据以及计算指令方式可以通过数据输入输出单元得到,该数据输入输出单元具体可以为一个或多个数据I/O接口或I/O引脚。
上述计算指令包括但不限于:正向运算指令或反向训练指令,或其他神经网络运算指令等等,例如卷积运算指令,本申请具体实施方式并不限制上述计算指令的具体表现形式。
控制器单元11,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
主处理电路101,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据以及运算指令;
多个从处理电路102,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
主处理电路101,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
本申请提供的技术方案将运算单元设置成一主多从结构,对于正向运算的计算指令,其可以将依据正向运算的计算指令将数据进行拆分,这样通过多个从处理电路即能够对计算量较大的部分进行并行运算,从而提高运算速度,节省运算时间,进而降低功耗。
可选的,上述机器学习计算具体可以包括:人工神经网络运算,上述输入数据具体可以包括:输入神经元数据和权值数据。上述计算结果具体可以为:人工神经网络运算的结果即输出神经元数据。
对于神经网络中的运算可以为神经网络中的一层的运算,对于多层神经网络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指令会将运算单元中计算出的输出神经元作为下一层的输入神经元进行运算(或者是对该输出神经元进行某些操作再作为下一层的输入神经元),同时,将权值也替换为下一层的权值;在反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元中计算出的输入神经元梯度作为下一层的输出神经元梯度进行运算(或者是对该输入神经元梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值替换为下一层的权值。
上述机器学习计算还可以包括支持向量机运算,k-近邻(k-nn)运算,k-均值(k-means)运算,主成分分析运算等等。为了描述的方便,下面以人工神经网络运算为例来说明机器学习计算的具体方案。
对于人工神经网络运算,如果该人工神经网络运算具有多层运算,多层运算的输入神经元和输出神经元并非是指整个神经网络的输入层中神经元和输出层中神经元,而是对于网络中任意相邻的两层,处于网络正向运算下层中的神经元即为输入神经元,处于网络正向运算上层中的神经元即为输出神经元。以卷积神经网络为例,设一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,我们将第K层称为输入层,其中的神经元为所述输入神经元,第K+1层称为输出层,其中的神经元为所述输出神经元。即除最顶层外,每一层都可以作为输入层,其下一层为对应的输出层。
可选的,该控制器单元包括:指令存储单元110、指令处理单元111和存储队列单元113;
指令存储单元110,用于存储所述人工神经网络运算关联的计算指令;
所述指令处理单元111,用于对所述计算指令解析得到多个运算指令;
存储队列单元113,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。
举例说明,在一个可选的技术方案中,主运算处理电路也可以包括一个控制器单元,该控制器单元可以包括主指令处理单元,具体用于将指令译码成微指令。当然在另一种可选方案中,从运算处理电路也可以包括另一个控制器单元,该另一个控制器单元包括从指令处理单元,具体用于接收并处理微指令。上述微指令可以为指令的下一级指令,该微指令可以通过对指令的拆分或解码后获得,能被进一步解码为各部件、各单元或各处理电路的控制信号。
在一种可选方案中,该计算指令的结构可以如下表所示。
操作码 | 寄存器或立即数 | 寄存器/立即数 | ... |
上表中的省略号表示可以包括多个寄存器或立即数。
在另一种可选方案中,该计算指令可以包括:一个或多个操作域以及一个操作码。该计算指令可以包括神经网络运算指令。以神经网络运算指令为例,如表1所示,其中,寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以为操作域。其中,每个寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以是一个或者多个寄存器的号码。
上述寄存器可以为片外存储器,当然在实际应用中,也可以为片内存储器,用于存储数据,该数据具体可以为n维数据,n为大于等于1的整数,例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维张量。
可选的,该控制器单元还可以包括:
所述依赖关系处理单元108,用于在具有多个运算指令时,确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,则将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元;
所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需数据(例如矩阵)的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需矩阵的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第零运算指令不具有关联关系。
在另一种可选实施例中,运算单元12如图1G和图1H所示,可以包括一个主处理电路101和多个从处理电路102。在一个实施例里,如图1G和图1H所示,多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个从处理电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,需要说明的是,如图1G和图1H所示的K个从处理电路仅包括第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,即该k个从处理电路为多个从处理电路中直接与主处理电路连接的从处理电路。
K个从处理电路,用于在所述主处理电路以及多个从处理电路之间的数据以及指令的转发。
另一个实施例里,该运算指令为矩阵乘以矩阵的指令、累加指令、激活指令等等计算指令。
下面通过神经网络运算指令来说明如图1A所示的计算装置的具体计算方法。对于神经网络运算指令来说,其实际需要执行的公式可以为:s=s(∑wxi+b),其中,即将权值w乘以输入数据xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果s。
在一种可选的实施方案中,如图1I所示,所述运算单元包括:树型模块40,所述树型模块包括:一个根端口401和多个支端口404,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;
上述树型模块具有收发功能,例如如图1I所示,该树型模块即为发送功能,如图2A所示,该树型模块即为接收功能。
所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值以及运算指令。
可选的,该树型模块为计算装置的可选择结果,其可以包括至少1层节点,该节点为具有转发功能的线结构,该节点本身可以不具有计算功能。如树型模块具有零层节点,即无需该树型模块。
可选的,该树型模块可以为n叉树结构,例如,如图1J所示的二叉树结构,当然也可以为三叉树结构,该n可以为大于等于2的整数。本申请具体实施方式并不限制上述n的具体取值,上述层数也可以为2,从处理电路可以连接除倒数第二层节点以外的其他层的节点,例如可以连接如图1J所示的倒数第一层的节点。
可选的,上述运算单元可以携带单独的缓存,如图1K所示,可以包括:神经元缓存单元,该神经元缓存单元63缓存该从处理电路的输入神经元向量数据和输出神经元值数据。
如图1L所示,该运算单元还可以包括:权值缓存单元64,用于缓存该从处理电路在计算过程中需要的权值数据。
在一种可选实施例中,运算单元12如图1M和图1N所示,可以包括分支处理电路103;其具体的连接结构如图1M和图1N所示,其中,
主处理电路101与分支处理电路103(一个或多个)连接,分支处理电路103与一个或多个从处理电路102连接;
分支处理电路103,用于执行转发主处理电路101与从处理电路102之间的数据或指令。
在一种可选实施例中,以神经网络运算中的全连接运算为例,过程可以为:y=f(wx+b),其中,x为输入神经元矩阵,w为权值矩阵,b为偏置标量,f为激活函数,具体可以为:sigmoid函数,tanh、relu、softmax函数中的任意一个。这里假设为二叉树结构,具有8个从处理电路,其实现的方法可以为:
控制器单元从存储单元内获取输入神经元矩阵x,权值矩阵w以及全连接运算指令,将输入神经元矩阵x,权值矩阵w以及全连接运算指令传输给主处理电路;
主处理电路确定该输入神经元矩阵x为广播数据,确定权值矩阵w为分发数据,将权值矩阵w拆分成8个子矩阵,然后将8个子矩阵通过树型模块分发给8个从处理电路,将输入神经元矩阵x广播给8个从处理电路,
从处理电路并行执行8个子矩阵与输入神经元矩阵x的乘法运算和累加运算得到8个中间结果,将8个中间结果发送给主处理电路;
主处理电路,用于将8个中间结果排序得到wx的运算结果,将该运算结果执行偏置b的运算后执行激活操作得到最终结果y,将最终结果y发送至控制器单元,控制器单元将该最终结果y输出或存储至存储单元内。
如图1A所示的计算装置执行神经网络正向运算指令的方法具体可以为:
控制器单元从指令存储单元内提取神经网络正向运算指令、神经网络运算指令对应的操作域以及至少一个操作码,控制器单元将该操作域传输至数据访问单元,将该至少一个操作码发送至运算单元。
控制器单元从存储单元内提取该操作域对应的权值w和偏置b(当b为0时,不需要提取偏置b),将权值w和偏置b传输至运算单元的主处理电路,控制器单元从存储单元内提取输入数据Xi,将该输入数据Xi发送至主处理电路。
主处理电路依据该至少一个操作码确定为乘法运算,确定输入数据Xi为广播数据,确定权值数据为分发数据,将权值w拆分成n个数据块;
控制器单元的指令处理单元依据该至少一个操作码确定乘法指令、偏置指令和累加指令,将乘法指令、偏置指令和累加指令发送至主处理电路,主处理电路将该乘法指令、输入数据Xi以广播的方式发送给多个从处理电路,将该n个数据块分发给该多个从处理电路(例如具有n个从处理电路,那么每个从处理电路发送一个数据块);多个从处理电路,用于依据该乘法指令将该输入数据Xi与接收到的数据块执行乘法运算得到中间结果,将该中间结果发送至主处理电路,该主处理电路依据该累加指令将多个从处理电路发送的中间结果执行累加运算得到累加结果,依据该偏置指令将该累加结果执行加偏置b得到最终结果,将该最终结果发送至该控制器单元。
另外,加法运算和乘法运算的顺序可以调换。
本申请提供的技术方案通过一个指令即神经网络运算指令即实现了神经网络的乘法运算以及偏置运算,在神经网络计算的中间结果均无需存储或提取,减少了中间数据的存储以及提取操作,所以其具有减少对应的操作步骤,提高神经网络的计算效果的优点。
本申请还揭露了一个机器学习运算装置,其包括一个或多个在本申请中提到的计算装置,用于从其他处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给***设备。***设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上计算装置时,计算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制***,也可以有各自独立的控制***;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。参阅图3A和图3B,图3A和图3B提供了2种板卡,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391、控制器件392和外部设备394;
所述外部设备394的外部存储单元可以是3D-动态随机存取存储器,也可以是3D-静态随机存取存储器;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括图3A或图3B的存储单元393。所述存储单元与所述芯片通过总线连接。可以理解,在所述外部设备394的外部存储单元是3D-动态随机存取存储器时,所述存储单元可以是3D解码器、3D-静态随机存取存储器和3D-寄存器;在所述外部设备394的外部存储单元是3D-静态随机存取存储器时,所述存储单元是3D解码器和3D-寄存器。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE3.0X16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种计算装置,其特征在于,所述计算装置包括存储单元和控制器单元,其中,所述存储单元包括:3D解码器和3D存储器;
所述控制器单元,用于向所述3D解码器发送访问指令;
所述3D解码器,用于解码所述控制器单元传输的所述访问指令,得到所述访问指令携带的待访问数据的地址信息;
所述3D解码器,还用于向所述3D存储器发送所述地址信息;
所述3D存储器,用于根据所述3D解码器传输的所述地址信息在所述3D存储器中访问所述待访问数据。
2.根据权利要求1所述的计算装置,其特征在于,所述3D存储器包括:N个活动层,所述N个活动层中的每个活动层包括一个2D存储器,所述第i个活动层中的2D存储器与第(i+1)个活动层中的2D存储器连接,1≤i<N且i为整数,每个2D存储器由M个类型相同的存储器阵列排布得到,其中,N为大于1的正整数,M为正整数。
3.根据权利要求1或2所述的计算装置,其特征在于,所述地址信息包括:活动层索引地址信息、存储器索引地址信息、行索引地址信息和列索引地址信息;在根据所述3D解码器传输的所述地址信息在所述3D存储器中访问所述待访问数据时,所述3D存储器,具体用于:
将所述待访问数据访问到所述3D存储器中的目标存储空间,其中,所述目标存储空间为目标存储器中与所述行索引地址信息和列索引地址信息对应的存储空间,所述目标存储器为目标活动层中与所述存储器索引地址信对应的存储器,所述目标活动层为所述3D存储器中与所述活动层索引地址信息对应的活动层。
4.根据权利要求1所述的计算装置,其特征在于,所述计算装置包括外部设备,所述外部设备的外部存储单元包括:3D-动态随机存取存储器和3D-静态随机存取存储器;所述待访问数据包括:输入数据和所述输入数据中的标量数据,其中,所述输入数据包括:输入神经元数据和权值数据;
在所述外部存储单元为所述3D-动态随机存取存储器时,所述3D存储器包括:3D-静态随机存取存储器和3D-寄存器;
所述3D-静态随机存取存储器,用于存储所述输入数据;
所述3D-寄存器,用于存储所述标量数据;
或者,在所述外部存储单元为所述3D-静态随机存取存储器时,所述3D存储器为3D-寄存器;
所述3D-寄存器,用于存储所述输入数据;
所述3D-寄存器,还用于存储所述标量数据。
5.根据权利要求4所述的计算装置,其特征在于,在所述外部存储单元为所述3D-动态随机存取存储器时,所述3D存储器进入第一工作模式,所述第一工作模式包括:
所述3D-静态随机存取存储器根据所述3D解码器传输的所述地址信息在所述3D-静态随机存取存储器中访问所述输入数据;以及,
所述3D-寄存器根据所述3D解码器传输的所述地址信息在所述3D-寄存器中访问所述标量数据;
或者,在所述外部存储单元为所述3D-静态随机存取存储器时,所述3D存储器进入第二工作模式,所述第二工作模式包括:
所述3D-寄存器根据所述3D解码器传输的所述地址信息在所述3D-寄存器中访问所述输入数据和所述标量数据。
6.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求1至5任一项所述的计算装置。
7.一种电子设备,其特征在于,所述电子设备包括如所述权利要求6所述的芯片。
8.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求7所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
9.一种执行机器学习模型的计算方法,其特征在于,所述计算方法应用于计算装置,所述计算装置包括存储单元和控制器单元,其中,所述存储单元包括:3D解码器和3D存储器;所述方法包括:
所述控制器单元,用于向所述3D解码器发送访问指令;
所述3D解码器,用于解码所述控制器单元传输的所述访问指令,得到所述访问指令携带的待访问数据的地址信息;
所述3D解码器,还用于向所述3D存储器发送所述地址信息;
所述3D存储器,用于根据所述3D解码器传输的所述地址信息在所述3D存储器中访问所述待访问数据。
10.根据权利要求9所述的方法,其特征在于,所述3D存储器包括:N个活动层,所述N个活动层中的每个活动层包括一个2D存储器,所述第i个活动层中的2D存储器与第(i+1)个活动层中的2D存储器连接,1≤i<N且i为整数,每个2D存储器由M个类型相同的存储器阵列排布得到,其中,N为大于1的正整数,M为正整数。
11.根据权利要求9或10所述的方法,其特征在于,所述地址信息包括:活动层索引地址信息、存储器索引地址信息、行索引地址信息和列索引地址信息;在根据所述3D解码器传输的所述地址信息在所述3D存储器中访问所述待访问数据时,所述3D存储器将所述待访问数据访问到所述3D存储器中的目标存储空间,其中,所述目标存储空间为目标存储器中与所述行索引地址信息和列索引地址信息对应的存储空间,所述目标存储器为目标活动层中与所述存储器索引地址信对应的存储器,所述目标活动层为所述3D存储器中与所述活动层索引地址信息对应的活动层。
12.根据权利要求9所述的方法,其特征在于,所述计算装置包括外部设备,所述外部设备的外部存储单元包括:3D-动态随机存取存储器和3D-静态随机存取存储器;所述待访问数据包括:输入数据和所述输入数据中的标量数据,其中,所述输入数据包括:输入神经元数据和权值数据;
在所述外部存储单元为所述3D-动态随机存取存储器时,所述3D存储器包括:3D-静态随机存取存储器和3D-寄存器;
所述3D-静态随机存取存储器,用于存储所述输入数据;
所述3D-寄存器,用于存储所述标量数据;
或者,在所述外部存储单元为所述3D-静态随机存取存储器时,所述3D存储器为3D-寄存器;
所述3D-寄存器,用于存储所述输入数据;
所述3D-寄存器,还用于存储所述标量数据。
13.根据权利要求12所述的方法,其特征在于,在所述外部存储单元为所述3D-动态随机存取存储器时,所述3D存储器进入第一工作模式,所述第一工作模式包括:
所述3D-静态随机存取存储器根据所述3D解码器传输的所述地址信息在所述3D-静态随机存取存储器中访问所述输入数据;以及,
所述3D-寄存器根据所述3D解码器传输的所述地址信息在所述3D-寄存器中访问所述标量数据;
或者,在所述外部存储单元为所述3D-静态随机存取存储器时,所述3D存储器进入第二工作模式,所述第二工作模式包括:
所述3D-寄存器根据所述3D解码器传输的所述地址信息在所述3D-寄存器中访问所述输入数据和所述标量数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910229823.4A CN111738429B (zh) | 2019-03-25 | 2019-03-25 | 一种计算装置及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910229823.4A CN111738429B (zh) | 2019-03-25 | 2019-03-25 | 一种计算装置及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111738429A true CN111738429A (zh) | 2020-10-02 |
CN111738429B CN111738429B (zh) | 2023-10-13 |
Family
ID=72646330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910229823.4A Active CN111738429B (zh) | 2019-03-25 | 2019-03-25 | 一种计算装置及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111738429B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5448682A (en) * | 1992-05-30 | 1995-09-05 | Gold Star Electron Co., Ltd. | Programmable multilayer neural network |
US20130262358A1 (en) * | 2010-12-08 | 2013-10-03 | Rodolphe Heliot | Electronic circuit with neuromorphic architecture |
WO2015016640A1 (ko) * | 2013-08-02 | 2015-02-05 | Ahn Byungik | 신경망 컴퓨팅 장치 및 시스템과 그 방법 |
CN105404925A (zh) * | 2015-11-02 | 2016-03-16 | 上海新储集成电路有限公司 | 一种三维神经网络芯片 |
CN105789139A (zh) * | 2016-03-31 | 2016-07-20 | 上海新储集成电路有限公司 | 一种神经网络芯片的制备方法 |
CN106991477A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 一种人工神经网络压缩编码装置和方法 |
CN107862380A (zh) * | 2017-10-19 | 2018-03-30 | 珠海格力电器股份有限公司 | 人工神经网络运算电路 |
CN108154227A (zh) * | 2016-12-06 | 2018-06-12 | 上海磁宇信息科技有限公司 | 一种使用模拟计算的神经网络芯片 |
CN109104876A (zh) * | 2017-04-20 | 2018-12-28 | 上海寒武纪信息科技有限公司 | 一种运算装置及相关产品 |
US20190042250A1 (en) * | 2018-06-08 | 2019-02-07 | Intel Corporation | Variable format, variable sparsity matrix multiplication instruction |
CN109478139A (zh) * | 2016-08-13 | 2019-03-15 | 英特尔公司 | 用于共享存储器中的访问同步的装置、方法和*** |
-
2019
- 2019-03-25 CN CN201910229823.4A patent/CN111738429B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5448682A (en) * | 1992-05-30 | 1995-09-05 | Gold Star Electron Co., Ltd. | Programmable multilayer neural network |
US20130262358A1 (en) * | 2010-12-08 | 2013-10-03 | Rodolphe Heliot | Electronic circuit with neuromorphic architecture |
WO2015016640A1 (ko) * | 2013-08-02 | 2015-02-05 | Ahn Byungik | 신경망 컴퓨팅 장치 및 시스템과 그 방법 |
CN105404925A (zh) * | 2015-11-02 | 2016-03-16 | 上海新储集成电路有限公司 | 一种三维神经网络芯片 |
CN106991477A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 一种人工神经网络压缩编码装置和方法 |
CN105789139A (zh) * | 2016-03-31 | 2016-07-20 | 上海新储集成电路有限公司 | 一种神经网络芯片的制备方法 |
CN109478139A (zh) * | 2016-08-13 | 2019-03-15 | 英特尔公司 | 用于共享存储器中的访问同步的装置、方法和*** |
CN108154227A (zh) * | 2016-12-06 | 2018-06-12 | 上海磁宇信息科技有限公司 | 一种使用模拟计算的神经网络芯片 |
CN109104876A (zh) * | 2017-04-20 | 2018-12-28 | 上海寒武纪信息科技有限公司 | 一种运算装置及相关产品 |
CN107862380A (zh) * | 2017-10-19 | 2018-03-30 | 珠海格力电器股份有限公司 | 人工神经网络运算电路 |
US20190042250A1 (en) * | 2018-06-08 | 2019-02-07 | Intel Corporation | Variable format, variable sparsity matrix multiplication instruction |
Also Published As
Publication number | Publication date |
---|---|
CN111738429B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109543832B (zh) | 一种计算装置及板卡 | |
CN109522052B (zh) | 一种计算装置及板卡 | |
US20210117810A1 (en) | On-chip code breakpoint debugging method, on-chip processor, and chip breakpoint debugging system | |
CN110163363B (zh) | 一种计算装置及方法 | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
CN109753319B (zh) | 一种释放动态链接库的装置及相关产品 | |
CN111047022A (zh) | 一种计算装置及相关产品 | |
CN109670581B (zh) | 一种计算装置及板卡 | |
CN111353591A (zh) | 一种计算装置及相关产品 | |
CN111488976B (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
CN110163349B (zh) | 一种网络模型的计算方法及装置 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
US11775808B2 (en) | Neural network computation device and method | |
CN109711540B (zh) | 一种计算装置及板卡 | |
CN111930681A (zh) | 一种计算装置及相关产品 | |
CN111079908A (zh) | 片上网络数据处理方法、存储介质、计算机设备和装置 | |
CN111368967A (zh) | 一种神经网络计算装置和方法 | |
CN111047021A (zh) | 一种计算装置及相关产品 | |
CN111368987B (zh) | 一种神经网络计算装置和方法 | |
CN111078624B (zh) | 片上网络处理***和片上网络数据处理方法 | |
CN111078623B (zh) | 片上网络处理***和片上网络数据处理方法 | |
CN111078625B (zh) | 片上网络处理***和片上网络数据处理方法 | |
CN111738429B (zh) | 一种计算装置及相关产品 | |
CN110472734B (zh) | 一种计算装置及相关产品 | |
CN111368990B (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 |