CN116843006A - 点积计算硬件装置、方法、芯片及计算设备 - Google Patents

点积计算硬件装置、方法、芯片及计算设备 Download PDF

Info

Publication number
CN116843006A
CN116843006A CN202310773492.7A CN202310773492A CN116843006A CN 116843006 A CN116843006 A CN 116843006A CN 202310773492 A CN202310773492 A CN 202310773492A CN 116843006 A CN116843006 A CN 116843006A
Authority
CN
China
Prior art keywords
data
dot product
calculation
module
vector
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
Application number
CN202310773492.7A
Other languages
English (en)
Inventor
黎健
林锦鸿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhongke Lanxun Technology Co ltd
Original Assignee
Shenzhen Zhongke Lanxun Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhongke Lanxun Technology Co ltd filed Critical Shenzhen Zhongke Lanxun Technology Co ltd
Priority to CN202310773492.7A priority Critical patent/CN116843006A/zh
Publication of CN116843006A publication Critical patent/CN116843006A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及机器学习领域,公开了一种点积计算硬件装置、方法、芯片及计算设备。应用于神经网络,包括:数据读取模块、数据计算模块及数据输出模块,数据计算模块与数据读取模块及数据输出模块相连,数据输出模块还与内部存储器相连;其中,数据读取模块,用于读取当前层的权重向量及输入向量;数据计算模块,用于根据权重向量及输入向量进行点积计算,得到计算结果,并将计算结果输入到数据输出模块;数据输出模块,用于将计算结果输出到内部存储器。通过该点积计算硬件装置,将神经网络的点积计算过程硬件化处理,从而使得中央处理器的资源不被占用,能够有效提高整体处理效率。

Description

点积计算硬件装置、方法、芯片及计算设备
技术领域
本发明涉及机器学习领域,具体涉及一种点积计算硬件装置、方法、芯片及计算设备。
背景技术
神经网络是一种模拟人类神经***的工作方式来实现机器学习的算法。它可以自动识别数据中的模式,从而使计算设备学习并进行决策,由于神经网络能够处理大量复制的非线性关系,从而实现更准确的预测和分类,在图像识别、自然语言处理、语音识别等领域已被广泛应用。在神经网络中,许多计算都是点积计算,当前的点积计算方式,通常是中央处理器(Central Processing Unit,CPU)直接从快闪存储器(Flash Memory)和静态随机存取存储器(Static Random-Access Memory,SRAM)中分别读取该层的权重向量和输入向量进行计算,耗费了大量的中央处理器资源,降低了整体处理效率。
发明内容
本发明实施例旨在提供一种点积计算硬件装置、方法、芯片及计算设备,通过在计算设备中嵌入点积计算硬件装置,将神经网络的点积计算过程硬件化处理,从而使得中央处理器的资源不被占用,中央处理器可以开展其他任务处理,提高了整体处理效率。
在第一方面,本发明实施例提供一种点积计算硬件装置,应用于神经网络,所述点积计算硬件装置包括:数据读取模块、数据计算模块及数据输出模块,所述数据计算模块与所述数据读取模块及所述数据输出模块相连,所述数据输出模块还与内部存储器相连;其中,所述数据读取模块,用于读取当前层的权重向量及输入向量;所述数据计算模块,用于根据所述权重向量及所述输入向量进行点积计算,得到计算结果,并将所述计算结果输入到所述数据输出模块;所述数据输出模块,用于将所述计算结果输出到所述内部存储器。
可选地,所述数据读取模块与外部的快闪存储器及所述内部存储器相连;所述数据读取模块用于读取权重向量及输入向量时,具体用于:从所述快闪存储器中读取所述权重向量,从所述内部存储器读取输入向量。
可选地,所述数据读取模块还用于:将所述权重向量及所述输入向量转换为目标向量处理格式,所述目标向量处理格式根据所述数据计算模块的数据处理类型预先设定。
可选地,所述数据读取模块包括第一直接内存访问控制器。
可选地,所述权重向量包括n个元素对应的权重参数,所述输入向量包括n个元素对应的输入参数;所述数据计算模块包括至少一个乘法器和至少一个累加器;其中,所述乘法器,用于计算当前层第i个元素的权重参数wi和输入参数xi,得到中间结果yi,并将所述中间结果yi输入到所述累加器中;所述累加器,用于根据中间结果yi进行累加操作,直到当前层的所有元素计算完毕后,得到计算结果。
可选地,所述数据输出模块,用于将所述计算结果输出到所述内部存储器时,具体用于:将所述计算结果转换为目标数据存储格式后输出到所述内部存储器,所述目标数据存储格式根据下一步计算需求和/或所述内部存储器的物理结构实现预先设定。
可选地,所述下一步计算需求包括下一步计算所需的数据位宽、存储优先级、存储空间中的任意一种或多种。
可选地,所述数据输出模块包括第二直接内存访问控制器。
在第二方面,本发明实施例提供一种基于如第一方面所述的点积计算硬件装置的点积计算方法,所述方法包括:读取当前层的权重向量及输入向量;根据所述权重向量及所述输入向量进行点积计算,得到计算结果;将所述计算结果输出到内部存储器。
在第三方面,本发明实施例提供一种芯片,包括:内部存储器,以及如第一方面所述的点积计算硬件装置。
在第四方面,本发明实施例提供一种计算设备,包括:快闪存储器以及,如第三方面所述的点积计算硬件装置。
在本发明实施例提供的点积计算硬件装置,设置数据读取模块、数据计算模块及数据输出模块,通过该数据读取模块读取当前层的权重向量及输入向量,然后通过该数据计算模块根据权重向量及输入向量进行点击计算,得到计算结果,最后通过该数据输出模块将计算结果输出到内部存储器,可以将神经网络的点积计算过程硬件化,无需使用中央处理器进行读取和计算,从而使得中央处理器的资源不被占用,中央处理器可以开展其他任务处理,提高了整体处理效率。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为本发明实施例提供的一种点积计算硬件装置的结构示意图;
图2为本发明实施例提供的一种计算设备的结构示意图;
图3为本发明实施例提供的一种点积计算方法的流程示意图;
图4为本发明实施例提供的一种基于点积计算硬件装置实现的点积计算方法的数据处理示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”“第二”“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
为更详细描述本发明,首先介绍本发明所涉及的神经网络算法。神经网络算法是一种基于人工神经元模型构建的机器学习算法,通过学习样本数据集中的模式和规律,来实现各种不同的任务,例如分类、回归、聚类等。在神经网络中,输入数据经过一系列的神经元层进行处理和转换,最终输出预测结果或特征表示。
一般情况下,神经网络可以不同类型的神经网络结构会包含不同类型的层,如输入层、全连接层、卷积层、池化层、循环层、长短时记忆(LSTM)层等等。其中,输入层可以用于接收输入数据,通常是原始数据或特征向量;全连接层可以用于每个神经元与上一层的所有神经元都有连接,通常用于将输入数据进行特征提取和转换;卷积层可以包含多个卷积核,可以对输入数据进行特征提取和降维,通常用于图像和语音信号处理等领域;池化层可以对输入数据进行下采样和降维,通常用于减少计算量和防止过拟合;循环层可以将前一时刻的输出作为当前时刻的输入,通常用于处理序列数据,例如自然语言处理和语音识别;LSTM层可以帮助循环神经网络处理长序列数据,避免梯度消失和梯度***问题。需要说明的是,每个层级均包括若干数量的神经元。
在神经网络中,常常需要使用到点积计算,神经网络的点积计算是指对两个向量进行点积运算,得到一个标量数据的操作,神经网络的点积计算是神经网络中重要的一种基本计算操作,在全连接层、卷积层等不同类型的层中都会用到。
当前用于神经网络的点积计算通常在计算设备的CPU上进行,占用了大量CPU的资源,降低了计算设备的整体处理效率。为解决上述问题,本发明旨在提供一种点积计算硬件装置、方法、芯片及计算设备,通过配置点积计算硬件装置,将神经网络的点积计算过程硬件化处理,从而使得中央处理器的资源不被占用,中央处理器可以开展其他任务处理,提高整体处理效率。
下面请参阅图1和图2,为本发明实施例提供一种点积计算硬件装置10,该点积计算硬件装置10应用于神经网络,该点积计算硬件装置10包括:数据读取模块101、数据计算模块102、数据输出模块103。该数据读取模块101与该数据计算模块102相连,该数据计算模块102分别与该数据计算模块102及该数据输出模块103相连,该数据输出模块103还与内部存储器相连。在一个实施例中,该内部存储器可以为静态存储器(SRAM,Static Random-Access Memory)。
其中,该数据读取模块101,用于读取当前层的权重向量及输入向量。
需要说明的是,该权重向量是指在神经网络连接不同神经元的权重参数所组成的向量,在神经网络中,每个神经元都与上一层的所有神经元相连接,每条连接都有一个对应的权重参数,这些权重参数组成权重向量。该权重参数可将输入信号传递到下一层神经元中,并在神经网络中实现特定的计算任务。
该输入向量是指被输入到神经网络中进行计算和处理的一组数据和信息,可以是数字、图像、文本或任何其他形式的数据。在神经网络中,输入向量可以被视为神经网络的输入层,该输入向量将信息传递到神经网络中的下一层,以产生相应的输出。
该输入向量的大小和形状通常取决于问题的特性和数据的类型。例如,在图像分类问题中,输入向量可能是一个由像素值组成的向量,其大小取决于图像的分辨率。在自然语言处理问题中,输入向量可能是一个由单词向量组成的序列,其长度取决于输入文本的长度,本发明实施例对此不作任何限制。
在一个实施例中,请参阅图2,该数据读取模块101分别与外部的快闪存储器(Flash Memory)202及该内部存储器201相连。
在一些可行的实施方式中,权重向量由于数据量较大,通常通过外部的快闪存储器202进行存储。
可选地,该快闪存储器202可以包括存储单元、控制电路、数据总线、地址总线、电源和接口电路等,其中,该快闪存储器202的基本存储单元是闪存单元。每个闪存单元可包含一个晶体管和一个电荷储存单元,用于存储一个位。闪存单元通常被组成为页和块,页通常包含数百个闪存单元,块通常包含数千个闪存单元。在该快闪存储器202中,每个存储单元通常只能写入一次,但可以擦除和重新写入。该控制电路可用于管理存储单元的擦除、写入和读取操作,以及处理其他与存储相关的任务,控制电路通常由闪存控制器、编码器、译码器、多路复用器等组件组成。该数据总线可用于传输存储单元中存储的数据。该地址总线可用于指示要读取或写入的存储单元的地址。该快闪存储器202通常使用行地址和列地址来编址存储单元。该电源和接口电路可用于提供电源,并将快闪存储器202与其他设备连接起来,例如CPU、内存、外设等。
在一些可行的实施方式中,该内部存储器201可存储该输入向量。
可选地,该内部存储器201为静态存储器时,可包括存储单元、译码器、读写控制电路、地址总线、数据总线、供电和接口电路等,其中,该静态存储器的基本存储单元是存储电路(flip-flop),每个存储电路可以存储一个位(0或1)。该静态存储器通常使用六晶体管(6T)存储电路,它由两个互补的反相器组成,可以实现高速的数据读写操作。该译码器可用于将地址信号转换成存储单元的选择信号,该静态存储器可使用二进制译码器,将地址信号转换成行选择信号和列选择信号。该读写控制电路可通常使用读使能信号和写使能信号用于控制存储单元的读写操作。该地址总线用于指示要读取或写入的存储单元的地址,数据总线用于传输存储单元中存储的数据。该供电和接口电路用于提供电源,并将该静态存储器与其他设备连接起来,例如CPU、内存、外设等。
在一个实施例中,该数据读取模块101用于读取权重向量及输入向量时,具体用于:从该快闪存储器202中读取该权重向量,从该内部存储器201读取该输入向量。
举例而言,该权重向量在该快闪存储器202按照一定顺序排列存放,该点积计算硬件装置10根据神经网络计算中当前层所需要的数据,从快闪存储器202中不同的地址读取该权重向量,并预加载到数据读取模块101几个字节的缓冲器里面,同时也从内部存储器201预加载输入向量。
在一个实施例中,该数据读取模块101还用于:将该权重向量及该输入向量转换为目标向量处理格式,该目标向量处理格式根据该数据计算模块的数据处理类型预先设定。
举例而言,该数据处理类型可以包括int、short int、float、long、char等,每种数据处理类型所占据的字节长度不同。假设数据计算模块的数据处理类型为int,数据读取模块101读取的权重向量和输入向量为float型数据,则该数据读取模块可以将该folat型数据转换为int型。
在一个实施例中,该数据读取模块101可以包括第一直接内存访问控制器(DirectMemory Access,DMA),该第一直接内存访问控制器可以为数据读取模块101中的一个执行单元,在一些可行的实施方式中,该数据读取模块101还可包括输入输出电路、信号触发/中断电路等,第一直接内存访问控制器可配合输入输出电路、信号触发/中断电路等实现对权重向量和输入向量的数据读取功能。
在一些可行的实施方式中,该数据读取模块101也可以为该第一直接内存访问控制器。也就是说,该第一直接内存访问控制器可实现该数据读取模块101的所有功能。
可选地,该第一直接内存访问控制器可包括控制器、请求发生器、数据通道、中断控制器等组成,其中,控制器是该第一直接内存访问控制器传输的核心部件,负责控制数据传输的整个过程。该控制器可包括状态寄存器、控制寄存器、DMA地址寄存器、计数寄存器等,用于实现该第一直接内存访问控制器传输过程中实现地址的自动增加、数据的自动传输、中断的控制等。该请求发生器负责向该一直接内存访问控制器10发送DMA请求信号,触发DMA传输的开始。该请求发生器可包括中断请求发生器和外设请求发生器。该数据通道是连接外设和该控制器之间的数据传输通道,它通常由数据总线、地址总线、控制信号线等组成。该中断控制器负责管理CPU和外设之间的中断信号,可以将外设产生的中断请求信号转发给CPU,使CPU能够及时处理中断。
该数据计算模块102,用于根据该权重向量及该输入向量进行点积计算,得到计算结果,并将该计算结果输入到该数据输出模块103。
在一个实施例中,该权重向量包括n个元素对应的权重参数,该输入向量包括n个元素对应的输入参数。该数据计算模块102包括至少一个乘法器和至少一个累加器。该乘法器用于计算当前层第i个元素的权重参数wi和输入参数xi,得到中间结果yi,并将该中间结果yi输入到该累加器中。该乘法器通常由多个乘法单元组成,每个乘法单元可以同时计算多组输入向量和权重向量的对应元素,从而保证连续计算多组点积。
该累加器用于根据中间结果yi进行累加操作,直到当前层的所有元素计算完毕后,得到计算结果。该累加器可以由多个加法单元组成,每个加法单元可以同时处理多组数据。
在一个可行的实施方式中,该数据计算模块102,还可以包括:多路选择器(Multiplexer)、寄存器(Register)等。该多路选择器可用于选择输入向量和权重向量的对应元素进行计算,该多路选择器可包括多个输入端口和一个输出端口,数据计算模块102可根据控制信号选择其中一个输入端口的数据作为输出。该寄存器可用于暂存输入向量和权重向量的对应元素,以便多个计算单元对它们进行并行计算,该寄存器还可以用于数据的缓存和流水线控制,提高点积计算的效率和速度。
举例而言,假设输入向量用x表示,权重向量用w表示,输入向量x和权重向量w的长度相等,均为n,则该数据计算模块102可以用以下公式进行点积运算:
y=w·x=∑(wi*xi),i=1,2,...,n
其中,wi和xi分别表示权重向量w和输入向量x中第i个元素的参数。
该数据输出模块103,用于将该计算结果输出到该内部存储器201。
在一个实施例中,该数据输出模块103,用于将该计算结果输出到该内部存储器201时,具体用于:将该计算结果转换为目标数据存储格式后输出到该内部存储器201,该目标数据处理格式根据下一步计算需求和/或内部存储器201的物理结构实现预先设定。
需要说明的是,该计算结果的数据存储方式会影响该内部存储器201占用空间和读写性能,因此可以根据该内部存储器201的物理结构实现或下一步计算需求确定数据存储方式,选择适当的存储格式对点积计算的计算结果进行存储。
在一个实施例中,该数据输出模块103包括第二直接内存访问控制器。该第二直接内存访问控制器可以为数据输出模块103中的一个执行单元,在一些可行的实施方式中,该数据输出模块103还可包括输入输出电路、信号触发/中断电路等,第二直接内存访问控制器可配合输入输出电路、信号触发/中断电路等实现对权重向量和输入向量的数据读取功能。
在一些可行的实施方式中,该数据输出模块103也可以为该第二直接内存访问控制器。也就是说,该第二直接内存访问控制器可实现该数据输出模块103的所有功能。
可选地,该第二直接内存访问控制器可包括控制器、请求发生器、数据通道、中断控制器等组成,其中,控制器是该第二直接内存访问控制器传输的核心部件,负责控制数据传输的整个过程。该控制器可包括状态寄存器、控制寄存器、DMA地址寄存器、计数寄存器等,用于实现该第二直接内存访问控制器传输过程中实现地址的自动增加、数据的自动传输、中断的控制等。该请求发生器负责向该第二直接内存访问控制器发送DMA请求信号,触发DMA传输的开始。该请求发生器可包括中断请求发生器和外设请求发生器。该数据通道是连接外设和该控制器之间的数据传输通道,它通常由数据总线、地址总线、控制信号线等组成。该中断控制器负责管理CPU和外设之间的中断信号,可以将外设产生的中断请求信号转发给CPU,使CPU能够及时处理中断。
通过本发明实施例所提供的点积计算硬件装置,该点积计算硬件装置用于神经网络,该点积计算硬件装置嵌入在计算设备中,具体包括数据读取模块、数据计算模块及数据输出模块,通过该数据读取模块读取当前层的权重向量及输入向量,然后通过该数据计算模块根据权重向量及输入向量进行点击计算,得到计算结果,最后通过该数据输出模块将计算结果输出到该内部存储器,可以将神经网络的点积计算过程硬件化,实现数据读算一体化,且可以自动保存点积的计算结果,无需使用中央处理器,从而使得中央处理器的资源不被占用,中央处理器可以开展其他任务处理,提高了整体处理效率。
下面请参阅图3,为本发明实施例所提供的一种基于点积计算硬件装置的点积计算方法的示意图。需要说明的是,图3所示的方法基于图1和图2所示的点积计算硬件装置进行实现,对于该点积计算硬件装置的描述可参考前述点积计算硬件装置实施例,在此不做赘述。
如图3所示的点积计算方法可包括:
301、读取当前层的权重向量及输入向量。
在一个实施例中,该读取当前层的权重向量及输入向量,包括:从外部的快闪存储器中读取该权重向量,从内部存储器读取输入向量。
在一个实施例中,该内部存储器为静态存储器。
在一个实施例中,该读取当前层的权重向量及输入向量之后,还包括:将该权重向量及输入向量转换为目标向量处理格式,该目标向量处理格式根据该点积计算硬件装置数据处理类型预先设定。
302、根据该权重向量及所述输入向量进行点积计算,得到计算结果。
在一个实施例中,该根据该权重向量及该输入向量进行点积计算,得到计算结果,包括:计算当前层第i个元素的权重参数wi和输入参数xi,得到中间结果yi;根据中间结果yi进行累加操作,直到当前层的所有元素计算完毕后,得到计算结果。
303、将该计算结果输出到内部存储器。
在一个实施例中,该将该计算结果输出到内部存储器,包括:将该计算结果转换为目标数据存储格式后输出到该内部存储器,该目标数据存储格式根据下一步计算需求和/或该内部存储器的物理结构实现预先设定。
在一个实施例中,该下一步计算需求包括下一计算所需的数据位宽、存储优先级、存储空间中的任意一种或多种。
举例而言,请参阅图4,为本发明实施例提供的一种基于点积计算硬件装置实现的点积计算方法的数据处理示意图。该点积计算硬件装置的数据读取模块从内部存储器中读取输入向量x,从内部存储器中读取权重向量w,然后将该输入向量x和权重向量w输入到该点积计算硬件装置的数据计算模块;该数据计算模块接收该输入向量x和权重向量w,根据该输入向量x和权重向量w进行点积计算,得到计算结果y,将该计算结果y输入到该点积计算硬件装置的数据输出模块,该数据输出模块接收该计算结果y,并将该计算结果y输入到内部存储器中进行自动存储,以便于中央处理器需要对计算结果作进一步处理时,从该内部存储器直接进行读取。
可见,通过实施本发明实施例所提供的点积计算方法,基于点积计算硬件装置,读取当前层的权重向量及输入向量,然后根据权重向量及输入向量进行点击计算,得到计算结果,最后将计算结果输出到该内部存储器,可以实现数据读算一体化,且可以自动保存点积的计算结果,无需使用中央处理器,从而使得中央处理器的资源不被占用,中央处理器可以开展其他任务处理,提高了整体处理效率。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
下面介绍本发明实施例所提供的一种芯片,请参阅图2,图2所示的芯片20包括该点积计算硬件装置10及该内部存储器201。其中,该内部存储器位于芯片内部,可用于存储临时的、容量较小的数据,在一个实施例中,该内部存储器可以为静态存储器。该芯片可外接快闪存储器,该快闪存储器可用于存储容量较大的数据。
该内部存储器201为静态存储器时,可包括存储单元、译码器、读写控制电路、地址总线、数据总线、供电和接口电路等,其中,该静态存储器的基本存储单元是存储电路(flip-flop),每个存储电路可以存储一个位(0或1)。该静态存储器通常使用六晶体管(6T)存储电路,它由两个互补的反相器组成,可以实现高速的数据读写操作。该译码器可用于将地址信号转换成存储单元的选择信号,该静态存储器可使用二进制译码器,将地址信号转换成行选择信号和列选择信号。该读写控制电路可通常使用读使能信号和写使能信号用于控制存储单元的读写操作。该地址总线用于指示要读取或写入的存储单元的地址,数据总线用于传输存储单元中存储的数据。该供电和接口电路用于提供电源,并将该静态存储器与其他设备连接起来,例如CPU、内存、外设等。
该快闪存储器202可以包括存储单元、控制电路、数据总线、地址总线、电源和接口电路等,其中,该快闪存储器202的基本存储单元是闪存单元。每个闪存单元可包含一个晶体管和一个电荷储存单元,用于存储一个位。闪存单元通常被组成为页和块,页通常包含数百个闪存单元,块通常包含数千个闪存单元。在该快闪存储器202中,每个存储单元通常只能写入一次,但可以擦除和重新写入。该控制电路可用于管理存储单元的擦除、写入和读取操作,以及处理其他与存储相关的任务,控制电路通常由闪存控制器、编码器、译码器、多路复用器等组件组成。该数据总线可用于传输存储单元中存储的数据。该地址总线可用于指示要读取或写入的存储单元的地址。快闪存储器202通常使用行地址和列地址来编址存储单元。该电源和接口电路可用于提供电源,并将快闪存储器202与其他设备连接起来,例如CPU、内存、外设等。
该点积计算硬件装置包括数据读取模块101、数据计算模块102以及数据输出模块103。该数据计算模块102与该数据读取模块101及该数据输出模块103相连,该数据输出模块103与内部存储器201相连;其中,该数据读取模块101,用于读取当前层的权重向量及输入向量;该数据计算模块102,用于根据该权重向量及该输入向量进行点积计算,得到计算结果,并将该计算结果输入到该数据输出模块;该数据输出模块103,用于将该计算结果输出到该内部存储器201。
下面介绍本发明实施例所提供的一种计算设备。同样请参阅图2,如图2所示,该计算设备包括:上述快闪存储器202以及上述芯片20。
在一个实施例中,该计算设备还包括中央存储器,该中央存储器可与内部存储器201以及快闪存储器202通过总线或者其他方式连接。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以计算软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (11)

1.一种点积计算硬件装置,应用于神经网络,其特征在于,所述点积计算硬件装置包括:
数据读取模块、数据计算模块及数据输出模块,所述数据计算模块分别与所述数据读取模块及所述数据输出模块相连,所述数据输出模块还与内部存储器相连;其中,
所述数据读取模块,用于读取当前层的权重向量及输入向量;
所述数据计算模块,用于根据所述权重向量及所述输入向量进行点积计算,得到计算结果,并将所述计算结果输入到所述数据输出模块;
所述数据输出模块,用于将所述计算结果输出到所述内部存储器。
2.如权利要求1所述的点积计算硬件装置,其特征在于,所述数据读取模块分别与外部的快闪存储器及所述内部存储器相连;所述数据读取模块用于读取权重向量及输入向量时,具体用于:
从所述快闪存储器中读取所述权重向量,从所述内部存储器读取所述输入向量。
3.如权利要求1或2所述的点积计算硬件装置,其特征在于,所述数据读取模块还用于:
将所述权重向量及所述输入向量转换为目标向量处理格式,所述目标向量处理格式根据所述数据计算模块的数据处理类型预先设定。
4.如权利要求1所述的点积计算硬件装置,其特征在于,所述数据读取模块包括第一直接内存访问控制器。
5.如权利要求1所述的点积计算硬件装置,其特征在于,所述权重向量包括n个元素对应的权重参数,所述输入向量包括n个元素对应的输入参数;所述数据计算模块包括至少一个乘法器和至少一个累加器;其中,
所述乘法器,用于计算当前层第i个元素的权重参数wi和输入参数xi,得到中间结果yi,并将所述中间结果yi输入到所述累加器中;
所述累加器,用于根据中间结果yi进行累加操作,直到当前层的所有元素计算完毕后,得到计算结果。
6.如权利要求1所述的点积计算硬件装置,其特征在于,所述数据输出模块,用于将所述计算结果输出到所述内部存储器时,具体用于:
将所述计算结果转换为目标数据存储格式后输出到所述内部存储器,所述目标数据存储格式根据下一步计算需求和/或所述内部存储器的物理结构实现预先设定。
7.如权利要求6所述的点积计算硬件装置,其特征在于,所述下一步计算需求包括下一步计算所需的数据位宽、存储优先级、存储空间中的任意一种或多种。
8.如权利要求1所述的点积计算硬件装置,其特征在于,所述数据输出模块包括第二直接内存访问控制器。
9.一种基于如权利要求1-8任一项所述的点积计算硬件装置的点积计算方法,其特征在于,所述点积计算方法包括:
读取当前层的权重向量及输入向量;
根据所述权重向量及所述输入向量进行点积计算,得到计算结果;
将所述计算结果输出到内部存储器。
10.一种芯片,其特征在于,所述芯片包括:
内部存储器,以及如权利要求1至8任一项所述的点积计算硬件装置。
11.一种计算设备,其特征在于,包括:
快闪存储器,以及如权利要求10所述的芯片。
CN202310773492.7A 2023-06-27 2023-06-27 点积计算硬件装置、方法、芯片及计算设备 Pending CN116843006A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310773492.7A CN116843006A (zh) 2023-06-27 2023-06-27 点积计算硬件装置、方法、芯片及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310773492.7A CN116843006A (zh) 2023-06-27 2023-06-27 点积计算硬件装置、方法、芯片及计算设备

Publications (1)

Publication Number Publication Date
CN116843006A true CN116843006A (zh) 2023-10-03

Family

ID=88159265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310773492.7A Pending CN116843006A (zh) 2023-06-27 2023-06-27 点积计算硬件装置、方法、芯片及计算设备

Country Status (1)

Country Link
CN (1) CN116843006A (zh)

Similar Documents

Publication Publication Date Title
CN107844828B (zh) 神经网络中的卷积计算方法和电子设备
CN108108811B (zh) 神经网络中的卷积计算方法和电子设备
KR102142889B1 (ko) 스파스 연결용 인공 신경망 계산 장치와 방법
CN110415157B (zh) 一种矩阵乘法的计算方法及装置
US10643126B2 (en) Systems, methods and devices for data quantization
US20210319821A1 (en) Integrated Circuit Device with Deep Learning Accelerator and Random Access Memory
CN111915001A (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
US20220188604A1 (en) Method and Apparatus for Performing a Neural Network Operation
KR20230084449A (ko) 신경 프로세싱 유닛
WO2021036362A1 (zh) 用于处理数据的方法、装置以及相关产品
US10990525B2 (en) Caching data in artificial neural network computations
Reis et al. A fast and energy efficient computing-in-memory architecture for few-shot learning applications
US11436486B2 (en) Neural network internal data fast access memory buffer
CN111783984A (zh) 一种神经网络运算方法、装置、设备及存储介质
CN114897159B (zh) 一种基于神经网络的快速推断电磁信号入射角的方法
CN116843006A (zh) 点积计算硬件装置、方法、芯片及计算设备
CN113378115B (zh) 一种基于磁性随机存储器的近存稀疏向量乘法器
US20230047364A1 (en) Partial sum management and reconfigurable systolic flow architectures for in-memory computation
CN116415100A (zh) 业务处理方法、装置、处理器及计算设备
US12032959B2 (en) Non-volatile memory die with latch-based multiply-accumulate components
EP3895024A1 (en) Caching data in artificial neural network computations
Shivanandamurthy et al. ODIN: A bit-parallel stochastic arithmetic based accelerator for in-situ neural network processing in phase change RAM
US20220215235A1 (en) Memory system to train neural networks
CN110826704B (zh) 一种用于防止神经网络过拟合的处理装置及***
US20240202526A1 (en) Memory device performing pruning, method of operating the same, and electronic device performing pruning

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