CN114356494A - 一种神经网络模拟器的数据处理方法、装置和终端 - Google Patents

一种神经网络模拟器的数据处理方法、装置和终端 Download PDF

Info

Publication number
CN114356494A
CN114356494A CN202111494700.7A CN202111494700A CN114356494A CN 114356494 A CN114356494 A CN 114356494A CN 202111494700 A CN202111494700 A CN 202111494700A CN 114356494 A CN114356494 A CN 114356494A
Authority
CN
China
Prior art keywords
data
carrying
cache
level
instruction
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
CN202111494700.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.)
Jiangsu Yuntian Lifei Technology Co ltd
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Jiangsu Yuntian Lifei Technology Co ltd
Shenzhen Intellifusion Technologies 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 Jiangsu Yuntian Lifei Technology Co ltd, Shenzhen Intellifusion Technologies Co Ltd filed Critical Jiangsu Yuntian Lifei Technology Co ltd
Priority to CN202111494700.7A priority Critical patent/CN114356494A/zh
Publication of CN114356494A publication Critical patent/CN114356494A/zh
Priority to PCT/CN2022/100386 priority patent/WO2023103334A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请属于数据处理技术领域,尤其涉及一种神经网络模拟器的数据处理方法、装置和终端,其中,所述方法包括:获取指令数据;根据所述第一搬运指令携带的第一搬运参数将源端的数据采用事务级搬运方式搬运至目的端;根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存;若所述缓存不为空,则基于所述缓存中的数据执行所述颗粒度运算,得到周期级的数据处理结果;实现了周期级精确的指令运算和事务级模糊的数据搬运,使得神经网络模拟器的指令可以按照周期级进行计算,保持了与硬件的一致性与精确性,还优化了数据搬运的周期级依赖,降低了神经网络模拟器的复杂度。

Description

一种神经网络模拟器的数据处理方法、装置和终端
技术领域
本申请属于数据处理技术领域,尤其涉及一种神经网络模拟器的数据处理方法、装置和终端。
背景技术
随着人工智能大数据技术的发展,神经网络模拟器在处理器微架构设计、TVM工具链开发推广以及RTL开发验证,体现出重大优势。
然而,伴随着神经网络处理器处理数据量大,数据维度多,计算方式复杂多样的变化,目前的神经网络模拟器的数据处理方法已无法满足使用需求。
发明内容
本申请实施例提供一种神经网络模拟器的数据处理方法、装置、终端及计算机可读存储介质,可以降低神经网络模拟器的复杂度,使得神经网络模拟器能够在神经网络处理器大数据搬运、大算力特性、架构评估、指令集工具链开发、RTL验证等方面发挥极大作用。
本申请实施例第一方面提供一种神经网络模拟器的数据处理方法,包括:
获取指令数据;所述指令数据包括携带第一搬运参数的第一搬运指令、携带第二搬运参数的第二搬运指令以及颗粒度运算指令;
根据所述第一搬运指令携带的第一搬运参数将源端的数据采用事务级搬运方式搬运至目的端;
根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存;
若所述缓存不为空,则基于所述缓存中的数据执行颗粒度运算,得到周期级的数据处理结果。
可选的,基于上述第一方面提供的一种神经网络模拟器的数据处理方法,在本申请的第一种可能的实现方式中,上述将源端的数据采用事务级搬运方式搬运至目的端,包括:
基于源端与目的端之间的通信握手,将所述源端的数据采用事务级搬运方式搬运至所述目的端。
可选的,基于上述第一方面提供的一种神经网络模拟器的数据处理方法,在本申请的第二种可能的实现方式中,第二搬运参数包括当前搬运的数据对应的运算模式;
所述根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,包括:
根据所述当前搬运的数据对应的运算模式计算所述颗粒度运算所需要的目的端的数据对应的真实数据量;
根据所述真实数据量以及所述源端搬运至目的端的数据量,判断所述目的端的数据量是否大于或等于所述颗粒度运算所需要的真实数据量;
若所述目的端的数据量大于或等于所述颗粒度运算所需要的真实数据量,则根据所述第二搬运参数将所述目的端的数据按周期级的精度搬运至缓存。
可选的,基于上述第一方面提供的一种神经网络模拟器的数据处理方法,在本申请的第三种可能的实现方式中,所述第二搬运参数包括切割参数和当前搬运的数据对应的运算模式;
所述根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,包括:
根据所述第二搬运参数中的切割参数将所述目的端的数据按周期级精度进行切割,得到切割数据;
根据所述当前搬运的数据对应的运算模式对所述切割数据进行运算,得到所述颗粒度运算所需要的目标数据;
将所述目标数据搬运至所述缓存。
可选的,基于上述第一方面提供的一种神经网络模拟器的数据处理方法,以及上述第一种、第二种和第三种可能的实现方式,在本申请的第四种可能的实现方式中,当所述颗粒度运算所需要的目标数据为目的端的矩阵数据中的部分数据时,所述第二搬运参数包括所述部分数据中的每个数据对应的第一位置坐标;
所述根据所述第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,包括:
将所述目的端的矩阵数据中与所述第一位置坐标对应的数据搬运至所述缓存。
可选的,基于上述第一方面提供的一种神经网络模拟器的数据处理方法,以及上述第一种、第二种和第三种可能的实现方式,在本申请的第五种可能的实现方式中,当所述颗粒度运算所需要的目标数据为winograd前变换的值时,所述第二搬运参数包括winograd前变换所需要的4*4的数据表中的数据的第二位置坐标;
所述根据所述第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,包括:
根据所述第二位置坐标读取所述目的端存储的4*4的数据表,并基于所述4*4的数据表计算得到所述winograd前变换的值,并将所述winograd前变换的值搬运至所述缓存。
可选的,基于上述第一方面提供的一种神经网络模拟器的数据处理方法,以及上述第一种、第二种和第三种可能的实现方式,在本申请的第六种可能的实现方式中,在所述若所述缓存不为空,则基于所述缓存中的数据执行所述颗粒度运算,得到周期级的数据处理结果之前,包括:
获取所述缓存的卷绕标志位的值,以及所述缓存的读地址和写地址;
根据所述缓存的读地址和写地址是否重合,以及所述缓存的卷绕标志位的值,判断所述缓存是否为空。
本申请实施例第二方面提供一种神经网络模拟器的数据处理装置,包括:
获取单元,用于获取指令数据;所述指令数据包括携带第一搬运参数的第一搬运指令、携带第二搬运参数的第二搬运指令以及颗粒度运算指令;
第一搬运单元,用于根据所述第一搬运指令携带的第一搬运参数将源端的数据采用事务级搬运方式搬运至目的端;
第二搬运单元,用于根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存;
数据处理单元,用于若所述缓存不为空,则基于所述缓存中的数据执行颗粒度运算,得到周期级的数据处理结果。
可选的,基于上述第二方面提供的一种神经网络模拟器的数据处理装置,在本申请的第一种可能的实现方式中,所述第一搬运单元,还用于:
基于源端与目的端之间的通信握手,将所述源端的数据采用事务级搬运方式搬运至所述目的端。
可选的,基于上述第二方面提供的一种神经网络模拟器的数据处理装置,在本申请的第二种可能的实现方式中,第二搬运参数包括当前搬运的数据对应的运算模式;
所述第二搬运单元,还用于:
根据所述当前搬运的数据对应的运算模式计算所述颗粒度运算所需要的目的端的数据对应的真实数据量;
根据所述真实数据量以及所述源端搬运至目的端的数据量,判断所述目的端的数据量是否大于或等于所述颗粒度运算所需要的真实数据量;
若所述目的端的数据量大于或等于所述颗粒度运算所需要的真实数据量,则根据所述第二搬运参数将所述目的端的数据按周期级的精度搬运至缓存。
可选的,基于上述第二方面提供的一种神经网络模拟器的数据处理装置,在本申请的第三种可能的实现方式中,所述第二搬运参数包括切割参数和当前搬运的数据对应的运算模式;
所述第二搬运单元,还用于:
根据所述第二搬运参数中的切割参数将所述目的端的数据按周期级精度进行切割,得到切割数据;
根据所述当前搬运的数据对应的运算模式对所述切割数据进行运算,得到所述颗粒度运算所需要的目标数据;
将所述目标数据搬运至所述缓存。
可选的,基于上述第二方面提供的一种神经网络模拟器的数据处理装置,以及上述第一种、第二种和第三种可能的实现方式,在本申请的第四种可能的实现方式中,当所述颗粒度运算所需要的目标数据为目的端的矩阵数据中的部分数据时,所述第二搬运参数包括所述部分数据中的每个数据对应的第一位置坐标;
所述第二搬运单元,还用于:
将所述目的端的矩阵数据中与所述第一位置坐标对应的数据搬运至所述缓存。
可选的,基于上述第一方面提供的一种神经网络模拟器的数据处理装置,以及上述第一种、第二种和第三种可能的实现方式,在本申请的第五种可能的实现方式中,当所述颗粒度运算所需要的目标数据为winograd前变换的值时,所述第二搬运参数包括winograd前变换所需要的4*4的数据表中的数据的第二位置坐标;
所述第二搬运单元,还用于:
根据所述第二位置坐标读取所述目的端存储的4*4的数据表,并基于所述4*4的数据表计算得到所述winograd前变换的值,并将所述winograd前变换的值搬运至所述缓存。
可选的,基于上述第二方面提供的一种神经网络模拟器的数据处理方法,以及上述第一种、第二种和第三种可能的实现方式,在本申请的第六种可能的实现方式中,所述数据处理单元,还用于:
在所述若所述缓存不为空,则基于所述缓存中的数据执行所述颗粒度运算,得到周期级的数据处理结果之前,获取所述缓存的卷绕标志位的值,以及所述缓存的读地址和写地址;
根据所述缓存的读地址和写地址是否重合,以及所述缓存的卷绕标志位的值,判断所述缓存是否为空。
本申请实施例第三方面提供一种终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
本申请实施例第四方面提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例中,通过将源端的数据采用事务级搬运方式搬运至目的端,并将目的端的数据按周期级精度搬运至缓存,再基于所述缓存中的数据以及所述颗粒度运算指令执行所述颗粒度运算,使得本申请的神经网络模拟器混合了周期级和事务级的模拟器设计方法,实现了周期级精确的指令运算和事务级模糊的数据搬运,还使得神经网络模拟器的指令可以按照周期级进行计算,保持了与硬件的一致性与精确性,还优化了数据搬运的周期级依赖,降低了神经网络模拟器的复杂度,且使得神经网络模拟器能够在神经网络处理器大数据搬运、大算力特性、架构评估、指令集工具链开发、RTL验证等方面发挥极大作用。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请实施例提供的一种神经网络模拟器的数据处理方法的实现流程示意图;
图2是本申请实施例提供的数据切割的示意图;
图3是本申请实施例提供的一种神经网络模拟器的数据处理方法步骤103的第一具体实现流程示意图;
图4是本申请实施例提供的一种神经网络模拟器的数据处理方法步骤103的第二具体实现流程示意图;
图5是本申请实施例提供的矩阵数据搬运的示意图;
图6是本申请实施例提供的判断缓存是否为空的示意图;
图7是本申请实施例提供的神经网络模拟器的数据处理装置的结构示意图;
图8是本申请实施例提供的终端的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。
神经网络模拟器是一种技术工具,可以为人工神经网络提供建模或某种研究原型。一般来说,神经网络模拟器是研究人员研究神经网络如何工作的资源。不同种类的数据收集有助于模拟器评估人工神经网络内部发生的事情。为了有效地向研究人员展示神经网络是如何运作的,神经网络模拟器通常包括多功能的可视界面,以图形化的方式显示数据。其中许多有多个窗口,这些窗口可以被标记为便于识别的数据模块。
传统的神经网络模拟器使用周期级(cycle级)建模或者是事务级建模。然而,单纯的cycle级建模对于神经网络处理器建模复杂度、运行速度、建模周期、工具链的使用有重大影响;而单纯事务级建模,只能用于近似仿真和前期评估,无法真正做到与实际硬件保持一致的情况。这两种神经网络模拟器均无法满足逐渐往处理数据量大、数据维度多、计算方式复杂多样的方向的变化的神经网络处理器的需求。
基于此,本申请实施例提供了一种神经网络模拟器的数据处理方法、装置和终端,混合了周期级和事务级的模拟器设计方法,可以实现周期级精确的指令运算和事务级模糊的数据搬运,保持了与硬件的一致性与精确性,能够在神经网络处理器大数据搬运、大算力特性、架构评估、指令集工具链开发、RTL验证等方面发挥极大作用。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
如图1示出了本申请实施例提供的一种神经网络模拟器的数据处理方法的实现流程示意图,该方法应用于终端,可以由终端上配置的神经网络模拟器的数据处理装置执行。其中,上述终端可以为电脑、服务器等智能终端。上述神经网络模拟器的数据处理方法可以包括步骤101至步骤104,详述如下:
步骤101,获取指令数据。
本申请实施例中,上述指令数据可以包括携带第一搬运参数的第一搬运指令、携带第二搬运参数的第二搬运指令以及颗粒度运算指令。并且,上述指令数据可以为神经网络模拟器中的不同模块从指令控制流中获取的指令数据。
例如,上述第一搬运指令为神经网络模拟器中的exdma模块从指令控制流中获取的指令数据,上述第二搬运指令为神经网络模拟器中的xdma模块从指令控制流中获取的指令数据,上述颗粒度运算指令为神经网络模拟器中的颗粒度运算模块cube从指令控制流中获取的指令数据。
上述第一搬运指令用于将源端的数据按事务级搬运方式搬运至目的端,上述第二搬运指令用于将所述目的端的数据按周期级精度搬运至缓存中。
上述源端和目的端可以为神经网络模拟器中的不同模块,例如,上述源端和目的端可以为神经网络模拟器中的exdma模块,如eidma模块和eodma,上述目的端可以为神经网络模拟器中的xdma模块,如idma模块和odma。
在本申请的一些实施方式中,可选的,上述第一搬运参数可以包括每次从源端搬运至目的端的数据的数据量,即,握手颗粒度,例如,1Kb或5Kb,以及,当前需要搬运的总数据量。
上述第二搬运参数可以包括切割参数以及当前搬运数据对应的运算模式。
其中,上述运算模式可以包括winograd运算模式、矩阵运算模式、填充模式padding、插0模式deconvlution和跳地址模式dilated。
上述切割参数可以包括对数据高度(zeta)、宽度(epsilon=ci)和深度(dense)三个方向进行切割的切割参数H、W、D,以及dense次数、zeta次数、epsilon次数、kernel dense维度的滑窗次数、winograd_loop16、权重参数复用次数等数据。其中,当前搬运数据对应的运算模式为winograd运算模式时,winograd_loop16=16,表示16次piexl循环,当前搬运的数据对应的运算模式为非winograd运算模式时,winograd_loop16=1。
例如,如图2所示,当H=16、W=32、D=8时,对目的端的数据进行切割,可以得到数据ci0,并且,延ci方向切割,可以依次得到数据ci0至数据ci7。
并且,上述源端的数据可以为图像数据或参数数据,本申请对此不做限制。
步骤102,根据第一搬运指令携带的第一搬运参数将源端的数据采用事务级搬运方式搬运至目的端。
本申请实施例中,将源端的数据搬运至目的端属于数据的准备过程,该过程采用的是事务级的搬运,并且,属于松耦合的搬运,可以与周期级的搬运过程相互独立,即,与将目的端的数据搬运至缓存这一周期级的搬运过程独立,使得目的端的数据可以提前进行准备,减少将目的端的数据搬运至缓存时的等待。
可选的,在本申请的一些实施方式中,上述步骤102中,将源端的数据采用事务级搬运方式搬运至目的端可以包括:基于源端与目的端之间的通信握手,将源端的数据采用事务级搬运方式搬运至目的端。
本申请实施例中,源端与目的端之间进行通信握手是指,在将目的端的数据按周期级精度搬运至缓存目的端之前,目的端需要等待源端根据第一搬运参数将数据写入目的端,并且,源端将数据写入目的端之后,需要通知目的端数据已准备好。
具体的,目的端从自身的存储空间dm读数据前,向源端发送等待信号dest_wo_src,等待源端将数据写入目的端的dm。源端将数据写入目的端后,向目的端发送使能信号src_ub_dest,由目的端从dm中进行数据读取,并在完成数据读取后,向源端发送使能信号dest_ub_src,通知源端数据空间已经释放。
需要说明的是,在本申请的一些实施方式中,目的端从dm中读数据前,可以向源端继续发送等待信号dest_wo_src,由源端进行累加计数,并提前将数据存入dm中,而不需要等待目的端将dm中的数据读取完之后,再向源端继续发送使能信号dest_wo_src,减少了数据读取等待的时间,提高了数据存储和读取的效率。
步骤103,根据第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存。
本申请实施例中,上述缓存是指颗粒度运算对应的存储空间。上述将目的端的数据搬运至缓存属于周期级的搬运和计算。
具体的,在本申请的一些实施方式中,如图3所示,上述步骤103中,根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,可以包括如下步骤301至步骤303。
步骤301,根据所述第二搬运参数中的切割参数将所述目的端的数据按周期级精度进行切割,得到切割数据。
如上述步骤101所示,上述切割参数可以包括对数据从高度(zeta)、宽度(epsilon=ci)和深度(dense)三个方向进行切割的切割参数H、W、D,以及dense次数、zeta次数、epsilon次数、kernel dense维度的滑窗次数、winograd_loop16、weight参数复用次数等数据。
步骤302,根据当前搬运的数据对应的运算模式对所述切割数据进行运算,得到所述颗粒度运算所需要的目标数据。
本申请实施例中,上述运算模式可以包括填充模式padding、插0模式deconvlution和跳地址模式dilated。
上述步骤302中根据当前搬运的数据对应的运算模式对所述切割数据进行运算,得到所述颗粒度运算所需要的目标数据可以包括以下情况:若当前搬运的数据对应的运算模式为deconvlution运算模式时,则对所述切割数据进行插0计算得到所述颗粒度运算所需要的目标数据;若当前搬运的数据对应的运算模式为dilated,则对所述切割数据计算跳地址后的数据,得到所述颗粒度运算所需要的目标数据。
步骤303,将所述目标数据搬运至所述缓存。
本申请实施例中,通过在搬运数据的过程中,计算得到所述颗粒度运算所需要的目标数据之后,直接将目标数据搬运至缓存中,无需进行中间的缓存。
步骤104,若所述缓存不为空,则基于所述缓存中的数据执行颗粒度运算,得到周期级的数据处理结果。
本申请实施例中,当缓存不为空时,表示用于进行颗粒度运算的数据已经准备好,因而,可以直接基于所述缓存中的数据执行所述颗粒度运算,即,cube运算,该计算为周期级的精确计算,因而,实现了周期级精确结果的输出,可以用于RTL数据计算比对。
本申请实施例中,通过将源端的数据采用事务级搬运方式搬运至目的端,并将目的端的数据按周期级精度搬运至缓存,再基于所述缓存中的数据以及所述颗粒度运算指令执行所述颗粒度运算,使得本申请的神经网络模拟器混合了周期级和事务级的模拟器设计方法,实现了周期级精确的指令运算和事务级模糊的数据搬运,保持了与硬件的一致性与精确性,能够在神经网络处理器大数据搬运、大算力特性、架构评估、指令集工具链开发、RTL验证等方面发挥极大作用。
示例性的,当上述神经网络模拟器为用于模拟用于进行人脸识别的人工神经网络模型的神经网络模拟器时,上述源端的数据可以为人脸图像数据,上述第一搬运指令携带的第一搬运参数可以包括该人脸图像数据的数据量,该第一搬运指令用于将源端的人脸图像数据按事务级搬运方式搬运至目的端,上述第二搬运指令携带的第二搬运参数可以包括对该人脸图像数据的数据高度(zeta)、宽度(epsilon=ci)和深度(dense)三个方向进行切割的切割参数H0、W0、D0,用于将目的端的人脸图像数据按周期级精度进行切割,得到切割数据,以实现对目的端的人脸图像数据按周期级精度搬运至缓存中,并在缓存不为空时,实现基于所述缓存中的数据执行颗粒度运算,即,cube运算,最终得到周期级的人脸识别结果。
其中,上述cube运算是指利用神经网络算法对缓存中的人脸图像数据进行运算,得到人脸分类结果,例如,得到上述人脸图像数据对应的人脸识别结果为张三的脸,或者李四的脸。
上述神经网络算法可以包括Layer Cubing算法(逐层算法)、By-layer SparkCubing算法、Fast(in-mem)Cubing算法,即,“逐段”(By Segment)或“逐块”(By Split)算法等等神经网络算法,本申请对此不做限制。
本申请通过将源端的人脸图像数据采用事务级搬运方式搬运至目的端,并将目的端的人脸图像数据按周期级精度搬运至缓存,再基于该缓存中的人脸图像数据以及所述颗粒度运算指令执行颗粒度运算,使得本申请的神经网络模拟器混合了周期级和事务级的模拟器设计方法,实现了周期级精确的指令运算和事务级模糊的数据搬运,在模拟人工神经网络模型实现人脸图像识别的过程中,保持了与硬件的一致性与精确性,能够在神经网络处理器大数据搬运、大算力特性、架构评估、指令集工具链开发、RTL验证等方面发挥极大作用。
还需要说明的是,上述神经网络模拟器还可以为用于模拟其他应用场景的人工神经网络模型的工作过程的神经网络模拟器,例如,上述神经网络模拟器还可以为用于模拟用于车牌识别、障碍物识别或动物分类的人工神经网络模型的工作过程的模拟器,本申请对此不做限制。
还需要说明的是,上述源端的数据除了为图像数据以外,还可以为语音数据等等不同类型的数据,本申请对源端的数据的数据类型不做限制。
可选的,当上述源端的数据为语音数据时,相应的,上述神经网络模拟器可以为用于对语音数据进行分析处理的神经网络模拟器,例如,上述神经网络模拟器可以为用于对语音数据进行分类、去噪等处理的神经网络模拟器。
可选的,在本申请的一些实施方式中,上述步骤103,将所述目的端的数据按周期级精度搬运至缓存的过程中,可以先对源端搬运至目的端的数据量以及颗粒度运算所需要的真实数据量进行同步,以判断目的端是否存在可搬运的数据,然后再进行数据搬运,具体地,如图4所示,上述步骤103还可以通过下述步骤401至步骤403的方式实现。
步骤401,根据所述当前搬运的数据对应的运算模式计算所述颗粒度运算所需要的目的端的数据对应的真实数据量。
本申请实施例中,当前搬运的数据对应的运算模式可以包括winograd运算模式、矩阵运算模式、填充模式padding、插0模式deconvlution和跳地址模式dilated。
由于颗粒度运算所需要的目标数据有可能是根据所述当前搬运的数据对应的运算模式运算得到的,而非直接是目的端中的数据,因此,颗粒度运算所需要的目标数据对应的数据量与颗粒度运算所需要的目的端的数据对应的真实数据量有可能不一致。例如,颗粒度运算所需要的目标数据对应的数据量大于颗粒度运算所需要的目的端的数据对应的真实数据量。并且,由于目标数据的数据量是已知的,且为固定的数据量,因此,可以根据所述当前搬运的数据对应的运算模式反推出所述颗粒度运算所需要的目的端的数据对应的真实数据量。
例如,当前搬运的数据对应的运算模式为插0模式时,则可以根据该运算模式以及目标数据的数据量,计算出颗粒度运算所需要的目的端的数据对应的真实数据量。
步骤402,根据所述真实数据量以及所述源端搬运至目的端的数据量,判断所述目的端的数据量是否大于或等于所述颗粒度运算所需要的真实数据量。
本申请实施例中,通过将计算得到的真实数据量与源端搬运的数据量进行握手,确定源端搬运目的端的数据量是否达到所述颗粒度运算所需要的真实数据量,当未达到时,等待源端将数据搬运目的端。
步骤403,若所述目的端的数据量大于或等于所述颗粒度运算所需要的真实数据量,则根据所述第二搬运参数将所述目的端的数据按周期级的精度搬运至缓存。
当目的端的数据量满足所述颗粒度运算所需要的真实数据量时,表示目的端的数据量已经达到颗粒度运算所需要的真实数据量,因而可以进行数据搬运。
本申请实施例中,由于只需要在将所述目的端的数据按周期级精度搬运至缓存的过程中,先对源端搬运至目的端的数据量以及颗粒度运算所需要的真实数据量进行一次同步即可,无需周期级的中间过程的同步,使得将源端的数据搬运至目的端这一事务级的搬运过程可以与将目的端的数据搬运至缓存这一周期级的搬运过程独立,目的端的数据可以提前进行准备,减少将目的端的数据搬运至缓存时的等待。另外,本申请实施例在搬运数据过程中,通过一边计算padding,deconvlution,dilated等模式需要跳地址或者填充的数据,一边搬运dm真实有效数据,避免数据中间对ddr缓存及带宽访问,提高了数据搬运的效率。
可选的,在本申请的一些实施方式中,还可以通过采用事务级的搬运方式将源端的数据搬运至目的端,并在将所述目的端的数据按周期级精度搬运至缓存时,通过抽象不同模式下运算依赖的数据集,如抽象转置运算模式及winograd运算模式下运算依赖的数据集,减少系统复杂度对RTL cycle级场景复杂信号的运算级迭代,降低cycle级建模复杂度的同时大幅提升神经网络模拟器的性能。
具体的,在本申请的一些实施方式中,当上述颗粒度运算所需要的目标数据为目的端的矩阵数据中的部分数据时,上述第二搬运参数可以包括该部分数据中的每个数据对应的第一位置坐标;上述步骤103中,根据所述第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,可以包括:将目的端的矩阵数据中与所述第一位置坐标对应的数据搬运至所述缓存。
例如,颗粒度运算所需要的目标数据为目的端的矩阵数据转置后的第一行数据,则上述第二搬运参数可以包括这一行数据中的每个数据在目的端的矩阵数据中对应的第一位置坐标,然后根据第一位置坐标从目的端的矩阵数据中挑选出这一行数据,并将其搬运至缓存。
具体的,如图5所示,目的端的矩阵数据为16*16的矩阵数据时,若颗粒度运算所需要的目标数据为矩阵数据的第一列数据时,则可以通过第一位置坐标挑选出这一列包含的16个数据,并将其搬运至缓存。
需要说明的是,由于传统的神经网络模拟器,其数据搬运方式,需要与硬件保持同步,因而,无法根据当前搬运的数据对应的运算模式对包含多行多列的矩阵数据进行抽象处理得到该运算模式所依赖的数据,或者,需要通过复杂的运算迭代才能得到该数据,例如,对于上述16*16的矩阵数据,其无法通过第一位置坐标挑选出这一列包含的16个数据,因而,存在数据运算的复杂度较高,以及系统复杂度较高的问题。
本申请通过输入数据指令循环参数矩阵,转置矩阵中的特殊行,例如,通过转置矩阵中的数据的坐标(x,y),使x=y,y=x,得到颗粒度运算所需的数据,无需与硬件进行数据同步,解耦数据搬运,有效地减少了系统复杂度对RTL cycle级场景复杂信号的运算级迭代,降低cycle级建模复杂度的同时,大幅提升神经网络模拟器的性能。
可选的,在本申请的一些实施方式中,当上述颗粒度运算所需要的目标数据为winograd前变换的值时,第二搬运参数可以包括winograd前变换所需要的4*4的数据表中的数据的第二位置坐标。
上述步骤103中,根据所述第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,可以包括:根据所述第二位置坐标读取所述目的端存储的4*4的数据表,并基于所述4*4的数据表计算得到所述winograd前变换的值,并将所述winograd前变换的值搬运至所述缓存。
例如,如下表1所示,根据winograd前变换所需要的4*4的数据表中的第一个数据d0-d2-d8+d10的坐标,向下和向右平移3个坐标得到4*4的数据表,并基于该4*4的数据表计算得到winograd前变换的值。
表一:
Figure BDA0003399784250000131
需要说明的是,由于传统的神经网络模拟器,其数据搬运方式,需要与硬件保持同步,一次只能读取4*4的数据表中的一个数据,无法根据第二位置坐标读取目的端存储的整个4*4的数据表,或者,需要通过复杂的运算迭代才能得到该数据,因而,存在数据运算的复杂度较高,以及系统复杂度较高的问题。
本申请通过根据winograd前变换所需要的4*4的数据表中的第一个数据d0-d2-d8+d10的坐标,向下和向右平移3个坐标得到4*4的数据表,无需与硬件缓存进行握手,可以解耦数据搬运,有效地减少了系统复杂度对RTL cycle级场景复杂信号的运算级迭代,降低cycle级建模复杂度的同时,大幅提升神经网络模拟器的性能。
本申请的神经网络模拟器指令集按照cycle级计算,保持了与硬件的一致性与精确性,数据搬运采用事务级搬运,通过基本握手颗粒度,抽象不同模式下如转置及winograd算法的加速,padding,deconvlution,dilated等场景计算依赖的数据集,减少系统复杂度对暂存器转移层次cycle级场景复杂信号运算级迭代,降低cycle级建模复杂的同时大幅提升系统性能。
可选的,在本申请的一些实施方式中,在上述步骤104之前,可以先检测缓存是否为空。
具体的,可以通过获取缓存的卷绕标志位的值,以及读地址和写地址是否重合,判断缓存是否为空,若为空,则等待数据写入,若不为空,则基于所述缓存中的数据执行所述颗粒度运算,得到周期级的数据处理结果。其中,缓存采用先进先出的数据读写方式,卷绕标志位的值可以通过cube运算模块与目的端进行读写交互得到。
例如,当目的端向缓存中写入数据以及cube运算从缓存中读取数据的过程中,如图6中的(a)所示,当卷绕标志位ring_flag=0时,表示缓存的读写处于非卷绕的情况,若读写地址相同,则表示缓存为空状态。如图6中的(b)所示,当卷绕标志位ring_flag=1时,表示缓存的读写产生了卷绕。该情况下,读写地址相同,表示缓存为满状态。
本申请实施例中,利用上述卷绕标志位的值以及缓存的读地址和写地址确定缓存是否为空,简化了周期级的cube运算的握手流程,提升了运算效率,降低了神经网络模拟器的复杂度,使得周期级的cube运算与硬件设置相互独立。
可选的,在本申请的一些实施方式中,基于所述缓存中的数据执行所述颗粒度运算,得到周期级的数据处理结果之后,还可以将该结果存储至目的端,提供给其他颗粒度运算。
本申请实施例中,通过将源端的数据采用事务级搬运方式搬运至目的端,并将目的端的数据按周期级精度搬运至缓存,再基于所述缓存中的数据以及所述颗粒度运算指令执行所述颗粒度运算,使得本申请的神经网络模拟器混合了周期级和事务级的模拟器设计方法,实现了周期级精确的指令运算和事务级模糊的数据搬运,使得神经网络模拟器的指令可以按照周期级进行计算,保持了与硬件的一致性与精确性,还优化了数据搬运的周期级依赖,降低了神经网络模拟器的复杂度,能够在神经网络处理器大数据搬运、大算力特性、架构评估、指令集工具链开发、RTL验证等方面发挥极大作用。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为根据本发明,某些步骤可以采用其它顺序进行。
图7示出了本申请实施例提供的一种神经网络模拟器的数据处理装置700的结构示意图,包括获取单元701、第一搬运单元702,第二搬运单元703和数据处理单元704。
获取单元701,用于获取指令数据;所述指令数据包括携带第一搬运参数的第一搬运指令、携带第二搬运参数的第二搬运指令以及颗粒度运算指令;
第一搬运单元702,用于根据所述第一搬运指令携带的第一搬运参数将源端的数据采用事务级搬运方式搬运至目的端;
第二搬运单元703,用于根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存;
数据处理单元704,用于若所述缓存不为空,则基于所述缓存中的数据执行所述颗粒度运算,得到周期级的数据处理结果。
在本申请的一些实施方式中,上述第一搬运单元702,还用于:
基于源端与目的端之间的通信握手,将所述源端的数据采用事务级搬运方式搬运至所述目的端。
在本申请的一些实施方式中,所述第二搬运参数包括当前搬运的数据对应的运算模式;上述第二搬运单元703,还用于:
根据所述当前搬运的数据对应的运算模式计算所述颗粒度运算所需要的目的端的数据对应的真实数据量;
根据所述真实数据量以及所述源端搬运至目的端的数据量,判断所述目的端的数据量是否大于或等于所述颗粒度运算所需要的真实数据量;
若所述目的端的数据量大于或等于所述颗粒度运算所需要的真实数据量,则根据所述第二搬运参数将所述目的端的数据按周期级的精度搬运至缓存。
在本申请的一些实施方式中,所述第二搬运参数包括切割参数和当前搬运的数据对应的运算模式;
上述第二搬运单元703,还用于:
根据所述第二搬运参数中的切割参数将所述目的端的数据按周期级精度进行切割,得到切割数据;
根据所述当前搬运的数据对应的运算模式对所述切割数据进行运算,得到所述颗粒度运算所需要的目标数据;
将所述目标数据搬运至所述缓存。
在本申请的一些实施方式中,当所述颗粒度运算所需要的目标数据为目的端的矩阵数据中的部分数据时,所述第二搬运参数包括所述部分数据中的每个数据对应的第一位置坐标;上述第二搬运单元703,还用于:
将所述目的端的矩阵数据中与所述第一位置坐标对应的数据搬运至所述缓存。
在本申请的一些实施方式中,当所述颗粒度运算所需要的目标数据为winograd前变换的值时,所述第二搬运参数包括winograd前变换所需要的4*4的数据表中的数据的第二位置坐标;上述第二搬运单元703,还用于:
根据所述第二位置坐标读取所述目的端存储的4*4的数据表,并基于所述4*4的数据表计算得到所述winograd前变换的值,并将所述winograd前变换的值搬运至所述缓存。
在本申请的一些实施方式中,上述数据处理单元,还用于:
在所述若所述缓存不为空,则基于所述缓存中的数据执行所述颗粒度运算,得到周期级的数据处理结果之前,获取所述缓存的卷绕标志位的值,以及所述缓存的读地址和写地址;
根据所述缓存的读地址和写地址是否重合,以及所述缓存的卷绕标志位的值,判断所述缓存是否为空。
需要说明的是,为描述的方便和简洁,上述描述的神经网络模拟器的数据处理装置700的具体工作过程,可以参考上述图1至图6中描述的方法的对应过程,在此不再赘述。
如图8所示,本申请提供一种用于实现上述神经网络模拟器的数据处理方法的终端,该终端8可以包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机程序82,例如内存分配程序。所述处理器80执行所述计算机程序82时实现上述各个神经网络模拟器的数据处理方法实施例中的步骤,例如图1所示的步骤101至104。或者,所述处理器80执行所述计算机程序82时实现上各装置实施例中各模块/单元的功能,例如图7所示单元701至704的功能。
所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端中的执行过程。例如,所述计算机程序可以被分割成获取单元、第一搬运单元、第二搬运单元和数据处理单元,各单元具体功能如下:
获取单元,用于获取指令数据;所述指令数据包括携带第一搬运参数的第一搬运指令、携带第二搬运参数的第二搬运指令以及颗粒度运算指令;
第一搬运单元,用于根据所述第一搬运指令携带的第一搬运参数将源端的数据采用事务级搬运方式搬运至目的端;
第二搬运单元,用于根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存;
数据处理单元,用于若所述缓存不为空,则基于所述缓存中的数据执行所述颗粒度运算,得到周期级的数据处理结果。
所述终端可以是电脑、服务器等计算设备。所述终端可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是终端的示例,并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端还可以包括输入输出设备、网络接入设备、总线等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字内存分配器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器81可以是所述终端的内部存储单元,例如终端的硬盘或内存。所述存储器81也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述终端的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种神经网络模拟器的数据处理方法,其特征在于,包括:
获取指令数据;所述指令数据包括携带第一搬运参数的第一搬运指令、携带第二搬运参数的第二搬运指令以及颗粒度运算指令;
根据所述第一搬运指令携带的第一搬运参数将源端的数据采用事务级搬运方式搬运至目的端;
根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存;
若所述缓存不为空,则基于所述缓存中的数据执行颗粒度运算,得到周期级的数据处理结果。
2.如权利要求1所述的神经网络模拟器的数据处理方法,其特征在于,所述将源端的数据采用事务级搬运方式搬运至目的端,包括:
基于源端与目的端之间的通信握手,将所述源端的数据采用事务级搬运方式搬运至所述目的端。
3.如权利要求1所述的神经网络模拟器的数据处理方法,其特征在于,所述第二搬运参数包括当前搬运的数据对应的运算模式;
所述根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,包括:
根据所述当前搬运的数据对应的运算模式计算所述数据处理所需要的目的端的数据对应的真实数据量;
根据所述真实数据量以及所述源端搬运至目的端的数据量,判断所述目的端的数据量是否大于或等于所述颗粒度运算所需要的真实数据量;
若所述目的端的数据量大于或等于所述颗粒度运算所需要的真实数据量,则根据所述第二搬运参数将所述目的端的数据按周期级的精度搬运至缓存。
4.如权利要求1所述的神经网络模拟器的数据处理方法,其特征在于,所述第二搬运参数包括切割参数和当前搬运的数据对应的运算模式;
所述根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,包括:
根据所述第二搬运参数中的切割参数将所述目的端的数据按周期级精度进行切割,得到切割数据;
根据所述当前搬运的数据对应的运算模式对所述切割数据进行运算,得到所述颗粒度运算所需要的目标数据;
将所述目标数据搬运至所述缓存。
5.如权利要求1-4任意一项所述的神经网络模拟器的数据处理方法,其特征在于,当所述颗粒度运算所需要的目标数据为目的端的矩阵数据中的部分数据时,所述第二搬运参数包括所述部分数据中的每个数据对应的第一位置坐标;
所述根据所述第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,包括:
将所述目的端的矩阵数据中与所述第一位置坐标对应的数据搬运至所述缓存。
6.如权利要求1-4任意一项所述的神经网络模拟器的数据处理方法,其特征在于,当所述颗粒度运算所需要的目标数据为winograd前变换的值时,所述第二搬运参数包括winograd前变换所需要的4*4的数据表中的数据的第二位置坐标;
所述根据所述第二搬运参数将所述目的端的数据按周期级精度搬运至缓存,包括:
根据所述第二位置坐标读取所述目的端存储的4*4的数据表,并基于所述4*4的数据表计算得到所述winograd前变换的值,并将所述winograd前变换的值搬运至所述缓存。
7.如权利要求1-4任意一项所述的神经网络模拟器的数据处理方法,其特征在于,在所述若所述缓存不为空,则基于所述缓存中的数据执行颗粒度运算,得到周期级的数据处理结果之前,包括:
获取所述缓存的卷绕标志位的值,以及所述缓存的读地址和写地址;
根据所述缓存的读地址和写地址是否重合,以及所述缓存的卷绕标志位的值,判断所述缓存是否为空。
8.一种神经网络模拟器的数据处理装置,其特征在于,包括:
获取单元,用于获取指令数据;所述指令数据包括携带第一搬运参数的第一搬运指令、携带第二搬运参数的第二搬运指令以及颗粒度运算指令;
第一搬运单元,用于根据所述第一搬运指令携带的第一搬运参数将源端的数据采用事务级搬运方式搬运至目的端;
第二搬运单元,用于根据所述第二搬运指令携带的第二搬运参数将所述目的端的数据按周期级精度搬运至缓存;
数据处理单元,用于若所述缓存不为空,则基于所述缓存中的数据执行颗粒度运算,得到周期级的数据处理结果。
9.一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述方法的步骤。
CN202111494700.7A 2021-12-08 2021-12-08 一种神经网络模拟器的数据处理方法、装置和终端 Pending CN114356494A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111494700.7A CN114356494A (zh) 2021-12-08 2021-12-08 一种神经网络模拟器的数据处理方法、装置和终端
PCT/CN2022/100386 WO2023103334A1 (zh) 2021-12-08 2022-06-22 一种神经网络模拟器的数据处理方法、装置和终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111494700.7A CN114356494A (zh) 2021-12-08 2021-12-08 一种神经网络模拟器的数据处理方法、装置和终端

Publications (1)

Publication Number Publication Date
CN114356494A true CN114356494A (zh) 2022-04-15

Family

ID=81097443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111494700.7A Pending CN114356494A (zh) 2021-12-08 2021-12-08 一种神经网络模拟器的数据处理方法、装置和终端

Country Status (2)

Country Link
CN (1) CN114356494A (zh)
WO (1) WO2023103334A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023103334A1 (zh) * 2021-12-08 2023-06-15 深圳云天励飞技术股份有限公司 一种神经网络模拟器的数据处理方法、装置和终端

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9984326B1 (en) * 2015-04-06 2018-05-29 Hrl Laboratories, Llc Spiking neural network simulator for image and video processing
CN105653409B (zh) * 2015-12-25 2019-02-01 北京时代民芯科技有限公司 一种基于数据类型转换的硬件仿真器验证数据提取系统
CN108804380A (zh) * 2018-05-21 2018-11-13 南京大学 矢量运算硬件加速器多核级联的周期精确模型
CN112632885B (zh) * 2020-12-25 2023-01-03 山东产研鲲云人工智能研究院有限公司 软硬件联合验证系统及方法
CN113704043A (zh) * 2021-08-30 2021-11-26 地平线(上海)人工智能技术有限公司 芯片功能验证方法、装置、可读存储介质及电子设备
CN114356494A (zh) * 2021-12-08 2022-04-15 深圳云天励飞技术股份有限公司 一种神经网络模拟器的数据处理方法、装置和终端

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023103334A1 (zh) * 2021-12-08 2023-06-15 深圳云天励飞技术股份有限公司 一种神经网络模拟器的数据处理方法、装置和终端

Also Published As

Publication number Publication date
WO2023103334A1 (zh) 2023-06-15

Similar Documents

Publication Publication Date Title
Pestana et al. A full featured configurable accelerator for object detection with YOLO
CN110050267B (zh) 用于数据管理的系统和方法
CN110537194B (zh) 被配置用于层和操作防护和依赖性管理的功率高效的深度神经网络处理器及方法
US11200724B2 (en) Texture processor based ray tracing acceleration method and system
Liu et al. Bio-sequence database scanning on a GPU
RU2374684C1 (ru) Параллельно-конвейерное устройство для векторизации аэрокосмических изображений земной поверхности
US8676874B2 (en) Data structure for tiling and packetizing a sparse matrix
Van den Braak et al. Fast hough transform on GPUs: Exploration of algorithm trade-offs
CN110471409B (zh) 机器人巡检方法、装置、计算机可读存储介质及机器人
CN109426519A (zh) 线内数据检查以进行工作量简化
CN111708511A (zh) 用于神经网络的数据压缩
JP2022506345A (ja) ドット積計算機およびその演算方法
CN111506520B (zh) 一种地址生成的方法、相关装置以及存储介质
CN101093577A (zh) 图像处理引擎及包含图像处理引擎的图像处理系统
CN111445003A (zh) 神经网络生成器
CN112005251A (zh) 运算处理装置
CN110490308B (zh) 加速库的设计方法、终端设备及存储介质
CN114356494A (zh) 一种神经网络模拟器的数据处理方法、装置和终端
WO2023048824A1 (en) Methods, apparatus, and articles of manufacture to increase utilization of neural network (nn) accelerator circuitry for shallow layers of an nn by reformatting one or more tensors
WO2022041850A1 (en) Methods and apparatuses for coalescing function calls for ray-tracing
CN110515872B (zh) 直接内存存取方法、装置、专用计算芯片及异构计算系统
CN114115993A (zh) 用在处理设备中的装置及用于人工神经网络的装置和方法
GB2607348A (en) Graphics processing
WO2021120577A1 (zh) 神经网络模型中的数据计算方法、图像处理方法及装置
CN107680031A (zh) 一种rgb转yuv方法、系统及计算机可读存储介质

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