CN118519610A - 一种基于脉动阵列的运算方法、装置、设备及存储介质 - Google Patents

一种基于脉动阵列的运算方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN118519610A
CN118519610A CN202410552179.5A CN202410552179A CN118519610A CN 118519610 A CN118519610 A CN 118519610A CN 202410552179 A CN202410552179 A CN 202410552179A CN 118519610 A CN118519610 A CN 118519610A
Authority
CN
China
Prior art keywords
data
output data
output
operation unit
basic operation
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
CN202410552179.5A
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 Lichi Semiconductor Technology Co ltd
Original Assignee
Shenzhen Lichi Semiconductor 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 Lichi Semiconductor Technology Co ltd filed Critical Shenzhen Lichi Semiconductor Technology Co ltd
Priority to CN202410552179.5A priority Critical patent/CN118519610A/zh
Publication of CN118519610A publication Critical patent/CN118519610A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/57Arithmetic 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/575Basic 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

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

Abstract

本公开提供了一种基于脉动阵列的运算方法、装置、设备及存储介质,通过获取待处理数据和脉动阵列;将所述权重数据输入至所述脉动阵列内基础运算单元的权重寄存器中;按照第一预设顺序,逐个将所述特征数据输入第一基础运算单元进行减法运算,得到第一输出数据和第二输出数据;依次对所述第一输出数据进行预处理,并将预处理后的第一输出数据作为新的特征数据,输出至横向相邻的第二基础运算单元内重复进行减法运算,直至满足计算周期,停止运算;获取多个第二输出数据作为除法运算结果进行输出,能够基于脉动阵列单元就能实现除法运算,有效提高了脉动阵列的利用率,并且避免调用外部运算单元,也同时提高了加速器的性能和运行效率。

Description

一种基于脉动阵列的运算方法、装置、设备及存储介质
技术领域
本公开涉及计算机处理技术领域,尤其涉及一种基于脉动阵列的运算方法、装置、设备及存储介质。
背景技术
神经网络是一种模拟人脑神经元网络的计算模型,通过大量的神经元和神经连接来进行复杂的计算任务。传统神经网络中常用的运算方法包括Softmax,Normalization等,可支持包含除法的复杂运算。其中,除法运算在神经网络的前向传播过程中起到了非常重要的作用,是完整神经网络计算过程中所必须的运算能力。
脉动阵列是一种针对矩阵乘法和卷积运算进行加速的运算单元,目前,现有的脉动阵列通常仅支持乘法和加法计算,在遇到复杂计算时就要将运算所需数据搬移出脉动阵列后,由外部专用硬件计算单元进行完成,或者采用查找表的方式来进行快速近似计算。
其中,使用额外计算单元的方式,由于不同运算单元之间的数据交互需要占用大量的带宽资源和额外的逻辑电路,会限制了加速器的性能和效率,导致延迟时间较长;而采用查找表会存在占用内存和精度低等问题。因此,如何减少不同运算单元之间数据交互的带宽占用和时延,和/或解决查找表法占用内存、精度不足的限制是当前神经网络加速器研究中亟待解决的问题。
发明内容
本公开提供了一种基于脉动阵列的运算方法、装置、设备及存储介质,以至少解决现有技术中存在的以上技术问题。
根据本公开的第一方面,提供了一种基于脉动阵列的运算方法,所述方法包括:
获取待处理数据和脉动阵列,其中,所述脉动阵列包含矩阵式排列连接的多个基础运算单元,每个基础运算单元包括特征寄存器、乘加器、比较器、权重寄存器以及结果缓存器,所述待处理数据包括多个特征数据和权重数据,所述多个特征数据为被除数,所述权重数据为除数;
将所述权重数据输入至所述脉动阵列内基础运算单元的权重寄存器中;
按照第一预设顺序,逐个将所述特征数据输入第一基础运算单元进行减法运算,得到第一输出数据和第二输出数据;
依次对所述第一输出数据进行预处理,并将预处理后的第一输出数据作为新的特征数据,输出至横向相邻的第二基础运算单元内重复进行减法运算,直至满足计算周期,停止运算;
获取多个第二输出数据作为除法运算结果进行输出。
在一可实施方式中,所述减法运算的运算包括,包括:
将所述特征数据/新的特征数据输入第一基础运算单元/第二基础运算单元内的特征寄存器;
基于所述乘加器,对所述特征寄存器存储的数据和权重寄存器存储的权重数据进行减法运算,得到第一输出数据存储至所述结果缓存器;
按照预设取出规则,得到第二输出数据并输出。
在一可实施方式中,所述按照预设取出规则,得到第二输出数据,包括:
通过所述比较器,判断所述第一输出数据是否小于第一预设数值;
根据判断结果,将所述判断结果所对应的第二预设数值作为第二输出数据。
在一可实施方式中,所述对所述第一输出数据进行预处理,包括:
统计所述第一输出数据的位数,其中,所述位数设为N;
按照第二预设顺序,获取所述第一输出数据的第N-1位数字。
在一可实施方式中,所述获取多个第二输出数据作为除法运算结果进行输出,包括:
根据所述多个特征数据的个数,得到提取次数;
基于所述多个第二输出数据所占用的存储空间,从首行首列的存储空间单元开始,按照逐列加一的方式进行单次提取,其中,所述存储空间由多个存储空间单元组成;
在单次提取过程中,按照横纵坐标累计加一的方式,逐个提取各个存储空间单元内存储的数据,作为单次提取结果;
汇总各个单次提取结果,作为除法运算结果进行输出。
在一可实施方式中,在所述获取待处理数据和脉动阵列之后,还包括:
获取所述多个特征数据的最大位数;
根据所述最大位数和所述特征数据的个数,确定所述计算周期。
在一可实施方式中,在所述停止运算之后,还包括:
判断所述结果缓存器是否存储有临时数据;
若有,则将所述临时数据作为余数,输出至相邻的第三基础运算单元,并由所述第三基础运算单元直接输出。
相应的,获取多个第二输出数据作为除法运算结果进行输出,包括:
获取多个第二输出数据和余数作为除法运算结果进行输出。
根据本公开的第二方面,提供了一种基于脉动阵列的运算装置,所述装置包括:
获取模块,用于获取待处理数据和脉动阵列,其中,所述脉动阵列包含矩阵式排列连接的多个基础运算单元,每个基础运算单元包括特征寄存器、乘加器、比较器、权重寄存器以及结果缓存器,所述待处理数据包括多个特征数据和权重数据,所述多个特征数据为被除数,所述权重数据为除数;
权重输入模块,用于将所述权重数据输入至所述脉动阵列内基础运算单元的权重寄存器中;
第一运算模块,用于按照第一预设顺序,逐个将所述特征数据输入第一基础运算单元进行减法运算,得到第一输出数据和第二输出数据;
第二运算模块,用于依次对所述第一输出数据进行预处理,并将预处理后的第一输出数据作为新的特征数据,输出至横向相邻的第二基础运算单元内,重复进行减法运算,直至满足计算周期,停止运算;
输出模块,用于获取多个第二输出数据作为除法运算结果进行输出。
在一可实施方式中,所述第一运算模块,具体用于:将所述特征数据/新的特征数据输入第一基础运算单元/第二基础运算单元内的特征寄存器;基于所述乘加器,对所述特征寄存器存储的数据和权重寄存器存储的权重数据进行减法运算,得到第一输出数据存储至所述结果缓存器;按照预设取出规则,得到第二输出数据并输出。
在一可实施方式中,所述第一运算模块,具体还用于:通过所述比较器,判断所述第一输出数据是否小于第一预设数值;根据判断结果,将所述判断结果所对应的第二预设数值作为第二输出数据。
在一可实施方式中,所述第二运算模块,具体用于:统计所述第一输出数据的位数,其中,所述位数设为N;按照第二预设顺序,获取所述第一输出数据的第N-1位数字。
在一可实施方式中,所述输出模块,具体用于:根据所述多个特征数据的个数,得到提取次数;基于所述多个第二输出数据所占用的存储空间,从首行首列的存储空间单元开始,按照逐列加一的方式进行单次提取,其中,所述存储空间由多个存储空间单元组成;在单次提取过程中,按照横纵坐标累计加一的方式,逐个提取各个存储空间单元内存储的数据,作为单次提取结果;汇总各个单次提取结果,作为除法运算结果进行输出。
在一可实施方式中,所述获取模块,具体还用于:在所述获取待处理数据和脉动阵列之后,获取所述多个特征数据的最大位数;根据所述最大位数和所述特征数据的个数,确定所述计算周期。
在一可实施方式中,第二运算模块,具体还用于:在所述停止运算之后,判断所述结果缓存器是否存储有临时数据;若有,则将所述临时数据作为余数,输出至相邻的第三基础运算单元,并由所述第三基础运算单元直接输出。
相应的,输出模块,具体用于:获取多个第二输出数据和余数作为除法运算结果进行输出。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法。
本公开的基于脉动阵列的运算方法、装置、设备及存储介质,通过获取待处理数据和脉动阵列;将所述权重数据输入至所述脉动阵列内基础运算单元的权重寄存器中;按照第一预设顺序,逐个将所述特征数据输入第一基础运算单元进行减法运算,得到第一输出数据和第二输出数据;依次对所述第一输出数据进行预处理,并将预处理后的第一输出数据作为新的特征数据,输出至横向相邻的第二基础运算单元内重复进行减法运算,直至满足计算周期,停止运算;获取多个第二输出数据作为除法运算结果进行输出,能够基于脉动阵列单元就能实现除法运算,有效提高了脉动阵列的利用率,并且避免调用外部运算单元,也同时提高了加速器的性能和运行效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了本公开实施例提供的一种脉动阵列系统的结构示意图;
图2示出了本公开实施例提供的一种脉动阵列的结构示意图;
图3示出了本公开实施例提供的一种基础运算单元的结构示意图;
图4示出了本公开实施例提供的一种基于脉动阵列的运算方法的流程图;
图5示出了本公开实施例提供的一种示例性的除法运算方法的过程示意图(一);
图6示出了本公开实施例提供的一种示例性的除法运算方法的过程示意图(二);
图7示出了本公开实施例提供的一种示例性的第二输出数据显示方式的展示示意图;
图8示出了本公开实施例提供的一种基于脉动阵列的运算装置的结构示意图;
图9示出了本公开实施例一种电子设备的组成结构示意图。
具体实施方式
为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
为了方便理解,本公开先简单介绍下脉动阵列系统和脉动阵列。图1为本公开实施例提供的一种脉动阵列系统的结构示意图,包括:脉动阵列,系统总线、阵列控制器、特征缓存器、权重缓存器以及输出缓存器,用于在除法运算模式下完成除法操作。其中,
系统总线分别与阵列控制器、特征缓存器、权重缓存器以及输出缓存器连接,用于向阵列控制器发送除法控制指令,并在除法运算结束后,接收输出缓存器上传的除法运算结果;
阵列控制器分别与特征缓存器、脉动阵列、权重缓存器以及输出缓存器连接,用于在根据除法控制指令发送除法控制信号后,控制将多个特征数据输入特征缓存器,权重数据输入权重缓存器,以及在分配给脉动阵列中各个基础运算单元的控制寄存器关于除法运算模式的配置值后,逐个将特征缓存器内的特征数据和权重数据输入脉动阵列进行除法操作,并在除法结束后,将第二输出数据传输至输出缓存器,其中,特征数据为被除数,权重数据为除数。
其中,系统总线是连接计算机系统的主要组件,用于接收中央控制器发送的工作指令和需要进行除法运算的数据,并向阵列控制器发送除法控制指令。阵列控制器用于对接收到的除法控制指令进行控制和译码,来实现数据的存储、转发以及整个阵列的管理。特征缓存器用于将多个特征数据作为被除数进行存储,权重缓存器用于将权重数据作为除数进行存储,输出缓存器则用于接收脉动阵列上传的第二输出数据结果,再回传至系统总线。
其中,除法控制指令为系统总线经过对工作指令的解析而得的指令,并发送至阵列控制系统。除法控制信号为阵列控制系统中各个器件进行交互的除法执行信号,用于实现除法运算。由于本实施例中的脉动阵列除了能够实现除法运算,还能实现其他类型运算,如卷积运算和排序运算等,因此脉动阵列中各个基础运算单元的控制寄存器会设置多套配置值,不同配置值对应于不同的工作模式,从而向基础运算单元中的各个器件发送不同工作模式下的控制信号。本实施例若需要使用脉动阵列实现除法运算,则向各个基础运算单元的控制寄存器发送关于除法运算模式的配置值即可。
具体的,以卷积神经网络处理图像为例进行说明,第一特征数据为神经网络模型产生的多个候选检测框分值。本实施例中的系统总线在接收到工作指令后,会根据工作指令的内容发送第一控制指令至阵列控制器,阵列控制器再根据该第一控制指令向脉动阵列系统中的相关器件发送第一控制信号,以完成排序操作。具体为,本实施例将参与排序运算的图像数据按照预设格式作为第一特征数据传输至特征缓存器,以变更为真正排序计算时所采用的数据顺序;分配给脉动阵列中各个基础运算单元的控制寄存器第一配置值,以使得各个基础运算单元配合执行排序操作;逐个将特征缓存器内的第一特征数据输入脉动阵列进行排序操作;排序结束后,将脉动阵列中的第一数据结果传输至输出缓存器,并回传至系统总线。
图2为本公开实施例提供的一种脉动阵列的结构示意图,该脉动阵列可由M x N个可配置的基础运算单元组成。所述脉动阵列包含矩阵式排列连接的多个基础运算单元,每个基础运算单元包括特征寄存器、乘加器、比较器、权重寄存器以及结果缓存器,用于在除法运算模式下完成除法运算,如图3所示。
图3为本公开实施例提供的一种基础运算单元的结构示意图。如图3所示,控制寄存器与特征寄存器、乘加器、比较器、权重寄存器以及结果缓存器均有连接,图中省略其连接关系表示。
其中,基础运算单元指的是脉动阵列中最小的组成单元,每个基础运算单元都能独立的完成除法运算。特征寄存器可以是用于存储特征数据的寄存器;权重寄存器可以是用于存储权重数据的寄存器;乘加器可以是对特征寄存器输出的特征数据和权重寄存器输出的权重数据进行计算的电子元件,在输出端输出第一输出数据至结果缓存器和比较器;比较器指的是通过比较第一输出数据和第一预设数值,在输出端输出第二输出数据的电子元件;结果缓存器可以是用于存储第一输出数据的存储器,并在对第一输出数据进行预处理后输出至下一基础运算单元;控制寄存器指的是存储有不同工作模式执行命令的存储器。其中,寄存器指的是有限存贮容量的高速存贮部件,可用来暂存指令、数据和地址;缓存器指的是可以进行高速数据交换的存储器。本实施例通过基于该基础运算单元的硬件结构,能够实现脉动阵列的除法运算。
图4为本公开实施例提供的一种基于脉动阵列的运算方法的流程图,该方法可以由本公开实施例提供的基于脉动阵列的运算装置来执行,该装置可采用软件和/或硬件的方式实现。该方法具体包括:
S410、获取待处理数据和脉动阵列。
其中,所述脉动阵列包含矩阵式排列连接的多个基础运算单元,每个基础运算单元包括特征寄存器、乘加器、比较器、权重寄存器以及结果缓存器,所述待处理数据包括多个特征数据和权重数据,所述多个特征数据为被除数,所述权重数据为除数。
其中,特征数据是按照一定顺序排列的、需要进行除法运算的一系列数据,权重数据是除数,可以相同也可以不同。本实施例进行除法运算所占用的基础运算单元为特征数据的位数所决定,例如若特征数据的位数(二进制式)为4,则占用4个基础运算单元;若特征数据的位数(二进制式)为5,则占用5个基础运算单元。
S420、将所述权重数据输入至所述脉动阵列内基础运算单元的权重寄存器中。
具体的,本实施例将权重数据输入至脉动阵列内各个基础运算单元的权重寄存器中,若除数不同,则按照一定顺序将权重数据进行排列,等待输入各个基础运算单元的权重寄存器。
S430、按照第一预设顺序,逐个将所述特征数据输入第一基础运算单元进行减法运算,得到第一输出数据和第二输出数据。
其中,第一预设顺序可以是根据用户需求而设定的顺序,第一输出数据是将特征数据和权重数据进行减法运算后的数据,也是需要输出至下一相邻基础运算单元的数据;第二输出数据是需要作为除法运算结果进行输出的部分数据。具体的,由于本实施例是进行除法运算,因此可以将被除数拆分为多个减法过程进行运算。
图5为本公开实施例提供的一种示例性的除法运算方法的过程示意图(一)。如图5所示,包括脉动阵列510和各个基础运算单元520。本实施例以特征数据为4,11以及9,权重数据为3为例进行说明,为了完成除法运算,图5示例性的示出4个基础运算单元520。
S440、依次对所述第一输出数据进行预处理,并将预处理后的第一输出数据作为新的特征数据,输出至横向相邻的第二基础运算单元内重复进行减法运算,直至满足计算周期,停止运算。
由于各个基础运算单元内的乘加器只能进行简单的加减法计算和乘法运算,而本申请是在不想改变原有脉动阵列结构的基础上,完成除法运算,因此本实施例为了实现除法运算,适应性的调整了计算逻辑,例如可以利用乘法器中的移位模块进行后续的移位操作,能够有效的节约硬件开销。
具体的,第一基础运算单元是特征数据输入脉动阵列的第一个基础运算单元,第二基础运算单元和第一基础运算单元的作用一样,均是进行减法运算,且本实施例为了顺利完成除法运算,需要通过多个第二基础运算单元依次进行重复性的减法运算。
具体的,本实施例需要对第一输出数据进行预处理,将预处理后的第一输出数据输入相邻的第二基础运算单元内重复进行减法运算,第二基础运算单元同样将输出一个第一输出数据,并经过预处理后输入下一相邻的第二基础运算单元,直至满足计算周期,才能完成该次除法运算。
在本公开实施例中,所述对所述第一输出数据进行预处理,包括:统计所述第一输出数据的位数,其中,所述位数设为N;按照第二预设顺序,获取所述第一输出数据的第N-1位数字。
其中,第二预设顺序可以是从左向右的顺序。由于第一输出数据是二进制的表示方式,因此,本实施例按照第二预设顺序获取第N-1位数字。示例性的,本实施例实际上是将第一输出数据右移一位,再输入第二基础运算单元。
S450、获取多个第二输出数据作为除法运算结果进行输出。
具体的,针对同一个被除数,由于需要经过多个基础运算单元进行减法运算,而每个基础运算单元都会有输出一个第二输出数据,因此本实施例可以将多个基础运算单元对应输出的多个第二输出数据进行汇总,作为除法运算结果输出至输出缓存器。
本实施例通过获取待处理数据和脉动阵列;将所述权重数据输入至所述脉动阵列内基础运算单元的权重寄存器中;按照第一预设顺序,逐个将所述特征数据输入第一基础运算单元进行减法运算,得到第一输出数据和第二输出数据;依次对所述第一输出数据进行预处理,并将预处理后的第一输出数据作为新的特征数据,输出至横向相邻的第二基础运算单元内重复进行减法运算,直至满足计算周期,停止运算;获取多个第二输出数据作为除法运算结果进行输出,能够基于脉动阵列单元就能实现除法运算,有效提高了脉动阵列的利用率,并且避免调用外部运算单元,也同时提高了加速器的性能和运行效率。
在本公开实施例中,所述减法运算的运算包括,包括:将所述特征数据/新的特征数据输入第一基础运算单元/第二基础运算单元内的特征寄存器;基于所述乘加器,对所述特征寄存器存储的数据和权重寄存器存储的权重数据进行减法运算,得到第一输出数据存储至所述结果缓存器;按照预设取出规则,得到第二输出数据并输出。
具体的,第一基础运算单元和第二基础运算单元都要进行减法运算。示例性的,本实施例将特征数据输入第一基础运算单元内的特征寄存器;基于乘加器,对特征寄存器存储的数据和权重寄存器存储的权重数据进行减法运算,将相减后的数据作为第一输出数据存储至结果缓存器,在结果缓存器对第一输出数据进行处理作为新的特征数据输出至第二基础运算单元,以进行下一次的减法运算。同时,本实施例按照预设取出规则获取第二输出数据。
示例性的,本实施例也将从第一基础运算单元输出的新的特征数据输入至第二基础运算单元内的特征寄存器;基于乘加器,对特征寄存器存储的新的特征数据和权重寄存器存储的权重数据再次进行减法运算,并将得到的针对第二基础运算单元的第一输出数据存储至结果缓存器。同时按照预设取出规则获取针对第二基础运算单元的第二输出数据。
需要说明的是,本实施例因为将除法运算拆分为多次连续的减法运算过程,第二基础运算单元会设置为多个,因此在上述第二基础运算单元计算结束后,同样会将结果缓存器内存储的数据进行处理输出至下一相邻的第二基础运算单元。本实施例不断地在下一相邻的第二基础运算单元进行重复性减法运算过程,直至达到计算周期才停止运算。
需要说明的是,上述本实施例是针对同一个特征数据(被除数)进行说明,具体为同一特征数据是在多次减法运算的过程中不断传递至下一相邻的基础运算单元。因此,如果是针对多个特征数据(被除数)的除法运算,本实施例可以不断地在第一基础运算单元输入特征数据,每个特征数据在第一基础运算单元进行减法运算之后,都要传递至第二基础运算单元进行重复性减法运算。
本实施例提供的减法运算方式,不仅能实现多个被除数的除法运算,还能最大限度的利用每个基础运算单元,提高基础运算单元的利用率。
在本公开实施例中,所述按照预设取出规则,得到第二输出数据,包括:通过所述比较器,判断所述第一输出数据是否小于第一预设数值;根据判断结果,将所述判断结果所对应的第二预设数值作为第二输出数据。
其中,第一预设数值可以是根据运算需求而设定的任意数值,例如第一预设数值可以是0;第二预设数值可以是跟判断结果相关的、所设定的定向数值。
具体的,本实施例将特征数据和权重数据进行减法运算后,将相减后的数据作为第一输出数据输出至比较器,并通过比较器,判断第一输出数据是否小于第一预设数值。若小于,则将数值0作为第二预设数值作为第二输出数据进行输出;若大于等于,则将数值1作为第二预设数值作为第二输出数据进行输出。
图6为本公开实施例提供的一种示例性的除法运算方法的过程示意图(二)。如图6所示,本实施例将特征数据和权重数据通过二进制方式进行表示,并将特征数据为4,11以及9,权重数据为3为例进行说明。同时,为了方便理解,本实施例示例性的显示出四个周期的减法运算过程;以及带有相同填充图案的基础运算单元是属于同一个特征数据在不同周期的减法过程。
具体的,在第一周期内,本实施例将特征数据9输入第一基础运算单元,特征数据9的二进制表示数为1001,权重数据3的二进制表示数为11,在第一运算单元进行减法运算后,将相减后的结果110作为第一输出数据输入至下一横向相邻基础运算单元,也即第二基础运算单元。同时,本实施例对第一输出数据110进行判断是否小于0,由于大于0,因此将数值1作为第一周期内、与第一基础运算单元相关的第二输出数据进行输出。
需要说明的是,在第一周期内,本实施例除了第一基础运算单元进行减法运算之外,其他基础运算单元均处于初始化状态,仅接收到权重数据11进行显示,并未进行实质上的减法运算。
具体的,在第二周期内,本实施例将上个周期相减后的结果110进行右移一位,输入至第二基础运算单元,也即得到二进制表示数11。在第二基础运算单元内,将新的特征数据11和权重数据11进行减法运算。由于相减后的结果为0,因此将0作为第一输出数据输入至下一横向相邻的第二基础运算单元。同理,本实施例对第一输出数据0进行判断是否小于0,由于等于0,因此将数值1作为第二周期内、与第二基础运算单元相关的第二输出数据进行输出。
同时,在第二周期内,本实施例继续将特征数据11输入第一基础运算单元,特征数据11的二进制表示数为1011,在第一运算单元进行减法运算后,将相减后的结果1000作为第一输出数据输入至第二基础运算单元。同理,本实施例对第一输出数据1000进行判断是否小于0,由于大于0,因此将数值1作为第二周期内、与第一基础运算单元相关的第二输出数据进行输出。
具体的,在第三周期内,针对特征数据9,本实施例将上个周期相减后的结果0进行右移一位,输入至下一相邻的第二基础运算单元,也即将0输入至第二个第二基础运算单元。为了减少功耗,在输入新的特征数据为0时,可以不对其进行计算,因此在第二个第二基础运算单元内,可以直接将数值0作为第三周期内、与第二个第二基础运算单元相关的第二输出数据进行输出。
同时,在第三周期内,针对特征数据11,本实施例将上个周期相减后的结果1000进行右移一位,得到100输入至第二基础运算单元。在第二基础运算单元内,将新的特征数据100和权重数据11进行减法运算。由于相减后的结果为1,因此将1作为第一输出数据输入至第二个第二基础运算单元。同理,本实施例对相减后的结果判断是否小于0,由于大于0,因此将数值1作为第三周期内、与第一个第二基础运算单元相关的第二输出数据进行输出。
同时,在第三周期内,针对特征数据4,本实施例继续将特征数据4输入第一基础运算单元,特征数据4的二进制表示数为100,在第一运算单元进行减法运算后,将相减后的结果1作为第一输出数据输入至第二基础运算单元。同理,本实施例对第一输出数据1进行判断是否小于0,由于大于0,因此将数值1作为第二周期内、与第一基础运算单元相关的第二输出数据进行输出。
具体的,在第四周期内,针对特征数据4,本实施例将上个周期相减后的结,1进行右移一位,输入至第二基础运算单元,也即将0输入至第二基础运算单元。在第二基础运算单元内,将新的特征数据0可以直接作为第四周期内、与第一个第二基础运算单元相关的第二输出数据进行输出。
需要说明的是,由于在第四周期内,针对特征数据9和特征数据11的减法运算过程上述有相似的,因此不再赘述。同时,在第四周内,由于新的特征数据输入至第一基础运算单元,因此,第一基础运算单元将休眠。
本实施例不需要调用外部运算单元,减少了不同运算单元之间的数据交互的带宽资需求,同时无需专门的硬件资源来计算常规脉动阵列无法计算的除法,能够减少硬件逻辑电路或调用CPU计算所需要的系统带宽以及由此产生的计算延迟。
在本公开实施例中,所述获取多个第二输出数据作为除法运算结果进行输出,包括:根据所述多个特征数据的个数,得到提取次数;基于所述多个第二输出数据所占用的存储空间,从首行首列的存储空间单元开始,按照逐列加一的方式进行单次提取,其中,所述存储空间由多个存储空间单元组成;在单次提取过程中,按照横纵坐标累计加一的方式,逐个提取各个存储空间单元内存储的数据,作为单次提取结果;汇总各个单次提取结果,作为除法运算结果进行输出。
具体的,由于本实施例是进行除法运算,因此有几个被除数,则提取几次。示例性的,如图5和图6所示,由于特征数据为3个,因此得到提取次数3次。又由于由各个基础运算单元输出的第二输出数据在系统阵列的输出缓存器内占用不同的存储空间单元,因此,本实施例可以根据除法计算所涉及的计算逻辑,在系统阵列的输出缓存器内,按照存储空间的坐标,横纵坐标逐个加一的获取方式进行提取,也即对角线提取方式进行提取,并汇总单次提取结果作为除法运算结果进行输出。
图7为本公开实施例提供的一种示例性的第二输出数据显示方式的展示示意图。为了方便查看提取方式,本实施例将不同特征数据所提取的存储空间单元进行了不同图案的填充。如图7所示,针对特征数据9的除法运算结果为1100;针对特征数据11的除法运算结果为1100;针对特征数据4的除法运算结果为1000。
本实施例提供的除法运算结果的提取方式完善了脉动阵列的除法运算过程,使得脉动阵列能够进行多样化的运算模式。
在本公开实施例中,在所述获取待处理数据和脉动阵列之后,还包括:获取所述多个特征数据的最大位数;根据所述最大位数和所述特征数据的个数,确定所述计算周期。
本实施例将特征数据通过二进制方式进行表示,并统计各个二进制数的最大位数和特征数据个数。通过特征数据个数和最大位数来确定计算周期,例如可以将特征数据和最大位数相加再减1的方式计算得到计算周期,从而确定该次除法运算的终止标志,并且提取除法运算结果。示例性的,如图5和图6所示的特征数据4,11以及9,由于特征数据为3个,最大位数为四位数,因此通过计算得到计算周期为6。
本实施例通过特征数据的最大位数和特征数据的个数可以获得计算周期,从而完善利用脉动阵列进行的除法运算。
在本公开实施例中,在所述停止运算之后,还包括:判断所述结果缓存器是否存储有临时数据;若有,则将所述临时数据作为余数,输出至相邻的第三基础运算单元,并由所述第三基础运算单元直接输出。相应的,获取多个第二输出数据作为除法运算结果进行输出,包括:获取多个第二输出数据和余数作为除法运算结果进行输出。
其中,第三基础运算单元为输出余数的运算单元,不进行任何计算过程。
由于上述实施例的除法运算过程仅是提取了商,并未涉及到余数的提取,因此若想获得余数,可以判断最后一个第二基础运算单元内的结果缓存器是否存储有临时数据。若存储有临时数据,则将该临时数据作为余数,输出至相邻的第三基础运算单元。在第三基础运算单元内不进行任何计算,而是由特征输入寄存器输入的余数直接输出至结果缓存器,由结果缓存器进行结果输出。同时,本实施例所提取的除法运算结果不仅包括多个第二输出数据,还要包括余数。
本实施例提供了更为完善的除法运算过程,不仅能够得到商,还能得到余数。
图8是本公开实施例提供的一种基于脉动阵列的运算装置的结构示意图,该装置具体包括:
获取模块810,用于获取待处理数据和脉动阵列,其中,所述脉动阵列包含矩阵式排列连接的多个基础运算单元,每个基础运算单元包括特征寄存器、乘加器、比较器、权重寄存器以及结果缓存器,所述待处理数据包括多个特征数据和权重数据,所述多个特征数据为被除数,所述权重数据为除数;
权重输入模块820,用于将所述权重数据输入至所述脉动阵列内基础运算单元的权重寄存器中;
第一运算模块830,用于按照第一预设顺序,逐个将所述特征数据输入第一基础运算单元进行减法运算,得到第一输出数据和第二输出数据;
第二运算模块840,用于依次对所述第一输出数据进行预处理,并将预处理后的第一输出数据作为新的特征数据,输出至横向相邻的第二基础运算单元内,重复进行减法运算,直至满足计算周期,停止运算;
输出模块850,用于获取多个第二输出数据作为除法运算结果进行输出。
在一可实施方式中,所述第一运算模块830,具体用于:将所述特征数据/新的特征数据输入第一基础运算单元/第二基础运算单元内的特征寄存器;基于所述乘加器,对所述特征寄存器存储的数据和权重寄存器存储的权重数据进行减法运算,得到第一输出数据存储至所述结果缓存器;按照预设取出规则,得到第二输出数据并输出。
在一可实施方式中,所述第一运算模块830,具体还用于:通过所述比较器,判断所述第一输出数据是否小于第一预设数值;根据判断结果,将所述判断结果所对应的第二预设数值作为第二输出数据。
在一可实施方式中,所述第二运算模块840,具体用于:统计所述第一输出数据的位数,其中,所述位数设为N;按照第二预设顺序,获取所述第一输出数据的第N-1位数字。
在一可实施方式中,所述输出模块850,具体用于:根据所述多个特征数据的个数,得到提取次数;基于所述多个第二输出数据所占用的存储空间,从首行首列的存储空间单元开始,按照逐列加一的方式进行单次提取,其中,所述存储空间由多个存储空间单元组成;在单次提取过程中,按照横纵坐标累计加一的方式,逐个提取各个存储空间单元内存储的数据,作为单次提取结果;汇总各个单次提取结果,作为除法运算结果进行输出。
在一可实施方式中,所述获取模块810,具体还用于:在所述获取待处理数据和脉动阵列之后,获取所述多个特征数据的最大位数;根据所述最大位数和所述特征数据的个数,确定所述计算周期。
在一可实施方式中,第二运算模块840,具体还用于:在所述停止运算之后,判断所述结果缓存器是否存储有临时数据;若有,则将所述临时数据作为余数,输出至相邻的第三基础运算单元,并由所述第三基础运算单元直接输出。相应的,输出模块850,具体用于:获取多个第二输出数据和余数作为除法运算结果进行输出。
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如基于脉动阵列的运算方法。例如,在一些实施例中,基于脉动阵列的运算方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的基于脉动阵列的运算方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行音效校正方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种基于脉动阵列的运算方法,其特征在于,所述方法包括:
获取待处理数据和脉动阵列,其中,所述脉动阵列包含矩阵式排列连接的多个基础运算单元,每个基础运算单元包括特征寄存器、乘加器、比较器、权重寄存器以及结果缓存器,所述待处理数据包括多个特征数据和权重数据,所述多个特征数据为被除数,所述权重数据为除数;
将所述权重数据输入至所述脉动阵列内基础运算单元的权重寄存器中;
按照第一预设顺序,逐个将所述特征数据输入第一基础运算单元进行减法运算,得到第一输出数据和第二输出数据;
依次对所述第一输出数据进行预处理,并将预处理后的第一输出数据作为新的特征数据,输出至横向相邻的第二基础运算单元内重复进行减法运算,直至满足计算周期,停止运算;
获取多个第二输出数据作为除法运算结果进行输出。
2.根据权利要求1所述的方法,其中,所述减法运算的运算包括,包括:
将所述特征数据/新的特征数据输入第一基础运算单元/第二基础运算单元内的特征寄存器;
基于所述乘加器,对所述特征寄存器存储的数据和权重寄存器存储的权重数据进行减法运算,得到第一输出数据存储至所述结果缓存器;
按照预设取出规则,得到第二输出数据并输出。
3.根据权利要求2所述的方法,其特征在于,所述按照预设取出规则,得到第二输出数据,包括:
通过所述比较器,判断所述第一输出数据是否小于第一预设数值;
根据判断结果,将所述判断结果所对应的第二预设数值作为第二输出数据。
4.根据权利要求1或3所述的方法,其特征在于,所述对所述第一输出数据进行预处理,包括:
统计所述第一输出数据的位数,其中,所述位数设为N;
按照第二预设顺序,获取所述第一输出数据的第N-1位数字。
5.根据权利要求4所述的方法,其特征在于,所述获取多个第二输出数据作为除法运算结果进行输出,包括:
根据所述多个特征数据的个数,得到提取次数;
基于所述多个第二输出数据所占用的存储空间,从首行首列的存储空间单元开始,按照逐列加一的方式进行单次提取,其中,所述存储空间由多个存储空间单元组成;
在单次提取过程中,按照横纵坐标累计加一的方式,逐个提取各个存储空间单元内存储的数据,作为单次提取结果;
汇总各个单次提取结果,作为除法运算结果进行输出。
6.根据权利要求5所述的方法,其特征在于,在所述获取待处理数据和脉动阵列之后,还包括:
获取所述多个特征数据的最大位数;
根据所述最大位数和所述特征数据的个数,确定所述计算周期。
7.根据权利要求6所述的方法,其特征在于,在所述停止运算之后,还包括:
判断所述结果缓存器是否存储有临时数据;
若有,则将所述临时数据作为余数,输出至相邻的第三基础运算单元,并由所述第三基础运算单元直接输出;
相应的,获取多个第二输出数据作为除法运算结果进行输出,包括:
获取多个第二输出数据和余数作为除法运算结果进行输出。
8.一种基于脉动阵列的运算装置,其特征在于,所述装置包括:
获取模块,用于获取待处理数据和脉动阵列,其中,所述脉动阵列包含矩阵式排列连接的多个基础运算单元,每个基础运算单元包括特征寄存器、乘加器、比较器、权重寄存器以及结果缓存器,所述待处理数据包括多个特征数据和权重数据,所述多个特征数据为被除数,所述权重数据为除数;
权重输入模块,用于将所述权重数据输入至所述脉动阵列内基础运算单元的权重寄存器中;
第一运算模块,用于按照第一预设顺序,逐个将所述特征数据输入第一基础运算单元进行减法运算,得到第一输出数据和第二输出数据;
第二运算模块,用于依次对所述第一输出数据进行预处理,并将预处理后的第一输出数据作为新的特征数据,输出至横向相邻的第二基础运算单元内,重复进行减法运算,直至满足计算周期,停止运算;
输出模块,用于获取多个第二输出数据作为除法运算结果进行输出。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行根据权利要求1-7中任一项所述的方法。
CN202410552179.5A 2024-05-06 2024-05-06 一种基于脉动阵列的运算方法、装置、设备及存储介质 Pending CN118519610A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410552179.5A CN118519610A (zh) 2024-05-06 2024-05-06 一种基于脉动阵列的运算方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410552179.5A CN118519610A (zh) 2024-05-06 2024-05-06 一种基于脉动阵列的运算方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN118519610A true CN118519610A (zh) 2024-08-20

Family

ID=92273293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410552179.5A Pending CN118519610A (zh) 2024-05-06 2024-05-06 一种基于脉动阵列的运算方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN118519610A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118709729A (zh) * 2024-08-28 2024-09-27 上海励驰半导体有限公司 针对神经网络的数据处理方法、加速器及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118709729A (zh) * 2024-08-28 2024-09-27 上海励驰半导体有限公司 针对神经网络的数据处理方法、加速器及电子设备
CN118709729B (zh) * 2024-08-28 2024-11-22 上海励驰半导体有限公司 针对神经网络的数据处理方法、加速器及电子设备

Similar Documents

Publication Publication Date Title
CN111290732B (zh) 基于posit数据格式的浮点数乘法运算电路
US20220113943A1 (en) Method for multiply-add operations for neural network
CN112506935A (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
CN116227599A (zh) 一种推理模型的优化方法、装置、电子设备及存储介质
CN118519610A (zh) 一种基于脉动阵列的运算方法、装置、设备及存储介质
CN106371808B (zh) 一种并行计算的方法及终端
CN111325332B (zh) 卷积神经网络的处理方法和装置
CN111694648B (zh) 一种任务调度方法、装置以及电子设备
CN115237992B (zh) 数据格式转换的方法、装置及矩阵处理的方法、装置
CN115237991B (zh) 数据格式转换的方法、装置及矩阵处理的方法、装置
CN115237372A (zh) 一种乘法电路、机器学习运算电路、芯片及数据处理方法
CN115292662B (zh) 一种卷积加速运算方法、装置、电子设备及存储介质
CN117271840B (zh) 图数据库的数据查询方法、装置及电子设备
CN115408061B (zh) 复数矩阵运算的硬件加速方法、装置、芯片及存储介质
CN112036561A (zh) 数据处理方法、装置、电子设备及存储介质
JP2023103419A (ja) 演算方法、装置、チップ、電子機器及び記憶媒体
CN116472700A (zh) 数据处理方法、装置、终端及存储介质
CN116882475A (zh) 应用于神经网络的训练方法及装置以及相关产品
CN112230884B (zh) 目标检测硬件加速器及加速方法
CN117632431A (zh) 云计算任务的调度方法、装置、设备及存储介质
CN115185482A (zh) 一种基于神经网络的运算方法以及装置
CN117371498A (zh) 数据处理方法、乘累加器、计算架构、设备及存储介质
CN113986194A (zh) 基于预处理的神经网络近似乘法器实现方法及装置
CN115480731A (zh) 运算方法、装置、芯片、设备和介质
CN112418418A (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