CN114429051B - 数据流芯片的建模方法、装置、设备及介质 - Google Patents
数据流芯片的建模方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114429051B CN114429051B CN202210337244.3A CN202210337244A CN114429051B CN 114429051 B CN114429051 B CN 114429051B CN 202210337244 A CN202210337244 A CN 202210337244A CN 114429051 B CN114429051 B CN 114429051B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- data stream
- target
- chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种数据流芯片的建模方法、装置、设备及介质,其中,方法包括:获取数据流芯片的架构数据,并按照所述架构数据生成与所述数据流芯片的结构匹配的多个数据流计算模块;创建目标连接模块,并将所有所述多个数据流计算模块连接至所述目标连接模块上;通过所述目标连接模块模拟所述数据流芯片进行数据流处理的过程。本申请将多个数据流计算模块均连接至目标连接模块,以使所有数据流计算模块均能通过目标连接模块进行数据传输,解决了需要开发人员熟悉芯片硬件所有模块及连接关系才能有效完成建模工作,而且模型可读性差,在模型体量庞大时容易造成连线混乱的问题。
Description
技术领域
本申请涉及芯片制造技术领域,尤其涉及一种数据流芯片的建模方法、装置、设备及介质。
背景技术
随着深度学习的快速发展,针对AI算法加速的数据流芯片应运而生,SystemC模型可以辅助完成流片前的芯片证以及驱动开发工作。现有的数据流芯片驱动的开发需要能够模拟芯片内部数据流动行为的模型,但是完全模拟芯片行为,会导致模型复杂,建模周期很长,并且仿真速度低下,此类接近于cycle级别的建模主要会用于芯片的早期架构设计模拟验证,由于模型复杂度高,进行架构验证的物理时间往往是us或ms级别,此类建模需要开发人员熟悉芯片硬件所有模块及连接关系才能有效完成建模工作,而且模型可读性差,在模型体量庞大时容易造成连线混乱的问题。
针对上述现有建模方法需要开发人员熟悉芯片硬件所有模块及连接关系才能有效完成建模工作,而且模型可读性差,在模型体量庞大时容易造成连线混乱的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种数据流芯片的建模方法、装置、设备及介质,以解决上述现有建模方法需要开发人员熟悉芯片硬件所有模块及连接关系才能有效完成建模工作,而且模型可读性差,在模型体量庞大时容易造成连线混乱的技术问题。
根据本申请实施例的一个方面,本申请提供了一种数据流芯片的建模方法,包括:获取数据流芯片的架构数据,并按照架构数据生成与数据流芯片的结构匹配的多个数据流计算模块,其中,多个数据流计算模块用于表示数据流芯片进行数据流处理的流程节点;创建目标连接模块,并将所有多个数据流计算模块连接至目标连接模块上;通过目标连接模块模拟数据流芯片进行数据流处理的过程。
可选地,通过目标连接模块模拟数据流芯片进行数据流处理的过程包括:在接收到第一模块的数据路由请求的情况下,根据数据路由请求确定待路由的第二模块,其中,所述第一模块和所述第二模块为所述多个数据流计算模块中的模块;确定第二模块与DMA的目标传输颗粒度;从数据路由请求中提取出目标数据,并将目标数据按照目标传输颗粒度路由至第二模块。
可选地,确定第二模块与DMA的目标传输颗粒度包括:从多维度确定第二模块与DMA的传输数据量,并将符合预设条件的传输数据量确定为目标传输颗粒度。
可选地,从多维度确定第二模块与DMA的传输数据量,并将符合预设条件的传输数据量确定为目标传输颗粒度包括:确定在高度方向、宽度方向、通道方向上输入操作算子的第一数据量、第二数据量、第三数据量以及操作算子的输出通道输出的第四数据量;将第一数据量、第二数据量、第三数据量及第四数据量之和确定为目标传输颗粒度。
可选地,多个数据流计算模块与DMA的交互方式为单次交互。
可选地,所述方法还包括:按照结构体变量形式和/或数组形式传递所述目标数据的关联数据。根据本申请实施例的另一方面,本申请提供了一种数据流芯片的建模装置,包括:生成模块,用于获取数据流芯片的架构数据,并按照架构数据生成与数据流芯片的结构匹配的多个数据流计算模块,其中,多个数据流计算模块用于表示数据流芯片进行数据流处理的流程节点;连接模块,用于创建目标连接模块,并将所有多个数据流计算模块连接至目标连接模块上;处理模块,用于通过多个目标连接模块模拟数据流芯片进行数据流处理的过程。
可选地,处理模块包括:第一确定单元,用于在接收到第一模块的数据路由请求的情况下,根据数据路由请求确定待路由的第二模块,其中,第一模块和第二模块为多个数据流计算模块中的模块;第二确定单元,用于确定第二模块与DMA的目标传输颗粒度;路由单元,用于从数据路由请求中提取出目标数据,并将目标数据按照目标传输颗粒度路由至第二模块。
根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述任一方法。
本申请提供了一种数据流芯片的建模方法,包括:获取数据流芯片的架构数据,并按照架构数据生成与数据流芯片的结构匹配的多个数据流计算模块,其中,多个数据流计算模块用于表示数据流芯片进行数据流处理的流程节点;创建目标连接模块,并将所有多个数据流计算模块连接至目标连接模块上;通过目标连接模块模拟数据流芯片进行数据流处理的过程。本申请将多个数据流计算模块均连接至目标连接模块,以使所有数据流计算模块均能通过目标连接模块进行数据传输,解决了需要开发人员熟悉芯片硬件所有模块及连接关系才能有效完成建模工作,而且模型可读性差,在模型体量庞大时容易造成连线混乱的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例提供的一种可选的数据流芯片的建模方法流程图;
图2为根据本申请实施例提供的一种可选的模拟数据流芯片的数据处理方法流程图;
图3为根据本申请实施例提供的一种可选的传统连接模型的示意图;
图4为根据本申请实施例提供的一种可选的优化后的连接模型的示意图;
图5为根据本申请实施例提供的一种可选的数据流芯片的建模装置示意图;
图6为根据本申请实施例提供的一种可选的模拟数据流芯片的数据处理装置示意图;
图7为本申请实施例提供的一种可选的电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
随着深度学习的快速发展,针对AI算法加速的数据流芯片应运而生,SystemC模型可以辅助完成流片前的芯片验证以及驱动开发工作。针对传统芯片的SystemC模型建模主要在于解析寄存器配置,完成算法实现,而不过多模拟细节行为,但数据流芯片最大的特点在于数据控制计算,直接根据算子类型完成计算的行为并无法验证到数据流芯片驱动开发的重点部分——关于数据流动配置的寄存器;数据流芯片驱动的开发需要能够模拟芯片内部数据流动行为的模型,但是完全模拟芯片行为,会导致模型复杂,建模周期很长,并且仿真速度低下,此类接近于cycle级别的建模主要会用于芯片的早期架构设计模拟验证,由于模型复杂度高,进行架构验证的物理时间往往是us或ms级别,此类模型运行效率低下,对于驱动开发无实际意义。
为了解决背景技术中提及的问题,根据本申请实施例的一个方面,如图1所示,本申请提供了一种数据流芯片的建模方法,包括:
步骤101,获取数据流芯片的架构数据,并按照架构数据生成与数据流芯片的结构匹配的多个数据流计算模块,其中,多个数据流计算模块用于表示数据流芯片进行数据流处理的流程节点;
步骤103,创建目标连接模块,并将所有多个数据流计算模块连接至目标连接模块上;
步骤105,通过目标连接模块模拟数据流芯片进行数据流处理的过程。
数据流芯片的运行过程中包括多个流程节点(例如,读取、解码、执行、读写内存及把数据写到寄存器等),也就需要用到多个数据流计算模块来处理相应的流程。
可选地,本方案先获取数据流芯片的架构数据,从而获取该数据流芯片的数据流计算模块和模块间的连接信息;创建目标连接模块,将所有多个数据流计算模块连接至目标连接模块上共同构成一个模型,其中,目标连接模块不但用于连接多个数据流计算模块,还用于实现多个数据流计算模块之间的路由功能。
本申请通过上述方法能够降低多个数据流计算模块各自相连的复杂程度,从而实现芯片建模结构的优化。
在通过目标连接模型将多个数据流计算模块连接后,即建立了数据流芯片的行为级数据模型,下面就该行为级数据模型模拟数据流芯片进行数据流处理的过程进行说明。
作为一种可选的实施例,通过目标连接模块模拟数据流芯片进行数据流处理的过程如图2所示,包括:
步骤201,在接收到第一模块的数据路由请求的情况下,根据数据路由请求确定待路由的第二模块,其中,第一模块和第二模块为多个数据流计算模块中的模块;
步骤203,确定第二模块与DMA的目标传输颗粒度;
步骤205,从数据路由请求中提取出目标数据,并将目标数据按照目标传输颗粒度路由至第二模块。
受制于硬件和软件的天然差异,芯片内部的并行以及pipeline计算方式无法使用软件完全建模。关于并行部分,即使软件可以通过多线程方式模拟并行计算但是由于芯片内部数据通路计算粒度非常小,计算时间粒度为cycle级别,而软件进行线程启动和同步的开销相比较而言会是百千倍的关系,所以使用多线程会造成性能极大下降,无法在实际中使用。Pipeline部分是硬件实现的天然优势,这部分功能也是软件无法模拟的,例如硬件只需要进行一次信息沟通,建立连接关系即可流水线式运算,而软件则需要在完成一次交互后再开始下一次交互,即使实际行为不涉及信息沟通,但是对应的时间开销并不会减少,比如小函数的多次调用开销,对应的压栈出栈开销,在大数据量小规模计算中,此类开销的占用比例会非常高。
针对上述问题,本申请提供了一种实施例,为了增大模块间单次运算的数据颗粒度,需要通过数据流计算模块与DMA的交互过程来确定数据流计算模块之间的最大传输颗粒度,即需要分析本申请实施例中第二模块与DMA的交互过程来确定目标传输颗粒度,然后控制目标连接模块将目标数据按照目标传输颗粒度路由至第二模块。
在传统SystemC模型开发阶段,往往也会存在连接模型,此类连接模型用于完成芯片之间的模型互联,仅仅提供进出接口,单纯起到传递作用,传统连接模型如图3所示,ENGINE模块未有任何实际动作,仅完成DMA/CSR和ENGINE模块的接口连接,此类接口适用于模块连接关系简单,模块数量少的场景,针对大体量模型的建模其连线将会很复杂。
本申请提供的一种可选的优化后连接模型如图4所示,通过目标连接模块完成各个数据流计算模块的互联,目标连接模块完成的不是简单的接口对接,而是起到路由的功能,由发出模块(例如,本申请中的第一模块)提供接收方信息,由目标连接模块直接路由到接收模块(例如,本申请中的第二模块),各个模块只需和目标连接模块连接,而无需和交互模块直连即可互相通信作用,简化架构设计及代码开发难度,极大提升可读性。
可选地,第一模块和第二模块均为数据流计算模块,第一模块(数据来源方)和第二模块(数据接收方)之间通过目标连接模块进行数据交互。
具体地,第一模块将数据路由请求发送给目标连接模块,其中,数据路由请求包括目标数据和接收方信息,目标连接模块提取数据路由请求中的接收方信息并确定待路由的第二模块。
本申请通过创建目标连接模块,使用目标连接模块实现各个数据流计算模块之间的互联,通过模拟数据流芯片数据流动方式的同时完成数据配置寄存器验证,起到优化模型结构的作用,提升模型可读性,避免了多个模块之间的连线,简化模型连接关系,提升架构图可读性,降低开发难度并提升模型的可读性。
本申请实施例中,大颗粒数据建模重点在于模块间信息的传递以及数据颗粒度的划分,下面对数据颗粒度的划分进行详细说明。
作为一种可选的实施例,确定第二模块与DMA的目标传输颗粒度包括:从多维度确定第二模块与DMA的传输数据量,并将符合预设条件的传输数据量确定为目标传输颗粒度。
可选地,利用OP算子从多维度来共同确定第二模块和DMA的传输数据量。
具体地,预设条件为能够在多维度进行数据传输的数据量总和,我们也可以简单理解为满足多维度的最大数据颗粒度。
作为一种可选的实施例,从多维度确定第二模块与DMA的传输数据量,并将符合预设条件的传输数据量确定为目标传输颗粒度包括:确定在高度方向、宽度方向、通道方向上输入操作算子的第一数据量、第二数据量、第三数据量以及操作算子的输出通道输出的第四数据量;将第一数据量、第二数据量、第三数据量及第四数据量之和确定为目标传输颗粒度。
具体地,计算OP算子的所有高度方向、宽度方向、通道方向的传输数据量及输出通道输出的数据量,并将多个数据量之和确定为一个目标数据颗粒度。
采用目标传输颗粒度进行模块间的交互,这样能够保证软件数据传输行为和芯片一致,同时增大单次运算的数据粒度,极大提升软件性能。
作为一种可选的实施例,多个数据流计算模块与DMA的交互方式为单次交互。
软件的行为都是串行的,每次只能做一件事,而数据传递都是通过调用接口传递,开销很大,效率很低,所以多个数据流计算模块与DMA的交互方式为单次交互,即一次性接收并且一次性返回。
采用单次交互方式能够极大地减少数据传输消耗。
作为一种可选的实施例,所述方法还包括:按照结构体变量形式和/或数组形式传递目标数据的关联数据。
例如,计算池化算子时,硬件实现是由数据模块给出池化模块需要的数据量,并在最后一个数据给出结束信号,池化模块本身不关注数据量;当优化为更大的数据颗粒度进行数据传递时,由于数据框大小存在动态变化的可能,所以需要传递更多类似动态框、pad信息给池化模块可使用结构体变量、数组等传递相关信息。
由于按照目标传输颗粒度进行数据交互,所以一次性路由的数据变多了,数据接受方一下子接收了大量信息,无法区分各数据对应的配置,因此负责数据路由请求的模块就预先对目标数据按照配置进行分类再打包路由给目标连接模块。
针对芯片模块的SystemC建模都是采用串行模拟并行实现的,但是并行部分的开销和小函数调用类开销,两个都是远超实际硬件开销的部分,在模拟大体量数据的简单计算时其所占比例会难以忽视,甚至导致无法进行实际的驱动调试支持。针对一般性芯片建模只需关注配置参数,直接完成所有数据计算即可,但是对于数据流芯片而言,这样的建模方式,虽然能够极大提升模型效率,但是无法验证大量的数据配置寄存器,对驱动开发助益很小。所以本文提出采用大颗粒数据粒度模拟数据流芯片建模,能够在验证数据配置寄存器的同时兼顾传输大颗粒数据。
本申请提供了一种数据流芯片的建模方法,包括:获取数据流芯片的架构数据,并按照架构数据生成与数据流芯片的结构匹配的多个数据流计算模块,其中,多个数据流计算模块用于表示数据流芯片进行数据流处理的流程节点;创建目标连接模块,并将所有多个数据流计算模块连接至目标连接模块上;通过目标连接模块模拟数据流芯片进行数据流处理的过程。
本申请将多个数据流计算模块均连接至目标连接模块,以使所有数据流计算模块均能通过目标连接模块进行数据传输,简化模型连接关系,提升模型可读,SystemC使用单个算子的数据颗粒度,模拟硬件神经网络并行运算数据流,在和硬件计算行为一致前提下,极大提升软件性能。
根据本申请实施例的另一方面,本申请提供了一种数据流芯片的建模装置,如图5所示,包括:
生成模块51,用于获取数据流芯片的架构数据,并按照架构数据生成与数据流芯片的结构匹配的多个数据流计算模块,其中,多个数据流计算模块用于表示数据流芯片进行数据流处理的流程节点;
连接模块52,用于创建目标连接模块,并将所有多个数据流计算模块连接至目标连接模块上;
处理模块53,用于通过多个目标连接模块模拟数据流芯片进行数据流处理的过程。
需要说明的是,该实施例中的生成模块51可以用于执行本申请实施例中的步骤101,该实施例中的连接模块52可以用于执行本申请实施例中的步骤103,该实施例中的处理模块53可以用于执行本申请实施例中的步骤105。
具体地,如图6所示,处理模块包括:
第一确定单元531,用于在接收到第一模块的数据路由请求的情况下,根据数据路由请求确定待路由的第二模块,其中,第一模块和第二模块为多个数据流计算模块中的模块;
第二确定单元532,用于确定第二模块与DMA的目标传输颗粒度;
路由单元533,用于从数据路由请求中提取出目标数据,并将目标数据按照目标传输颗粒度路由至第二模块。
需要说明的是,该实施例中的第一确定单元531可以用于执行本申请实施例中的步骤201,该实施例中的第二确定单元532可以用于执行本申请实施例中的步骤203,该实施例中的路由单元533可以用于执行本申请实施例中的步骤205。
可选地,该第二确定单元532,还用于从多维度确定第二模块与DMA的传输数据量,并将符合预设条件的传输数据量确定为目标传输颗粒度。
可选地,该第二确定单元532,还用于确定在高度方向、宽度方向、通道方向上输入操作算子的第一数据量、第二数据量、第三数据量以及操作算子的输出通道输出的第四数据量;将第一数据量、第二数据量、第三数据量及第四数据量之和确定为目标传输颗粒度。
可选地,该数据流芯片的建模装置还包括:传递模块,用于按照结构体变量形式和/或数组形式传递目标数据的关联数据。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。
根据本申请实施例的另一方面,如图7所示,本申请提供了一种电子设备,包括存储器71、处理器73、通信接口75及通信总线77,存储器71中存储有可在处理器73上运行的计算机程序,存储器71、处理器73通过通信总线77和通信接口75进行通信,处理器73执行计算机程序时实现上述方法的步骤。
上述电子设备中的存储器、处理器通过通信总线和通信接口进行通信。所述通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述任一方法。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种数据流芯片的建模方法,其特征在于,包括:
获取数据流芯片的架构数据,并按照所述架构数据生成与所述数据流芯片的结构匹配的多个数据流计算模块,其中,所述多个数据流计算模块用于表示所述数据流芯片进行数据流处理的流程节点;
创建目标连接模块,并将所有所述多个数据流计算模块连接至所述目标连接模块上;
通过所述目标连接模块模拟所述数据流芯片进行数据流处理的过程,包括:在接收到第一模块的数据路由请求的情况下,根据所述数据路由请求确定待路由的第二模块,其中,所述第一模块和所述第二模块为所述多个数据流计算模块中的模块;确定所述第二模块与DMA的目标传输颗粒度;从所述数据路由请求中提取出目标数据,并将所述目标数据按照所述目标传输颗粒度路由至所述第二模块,以通过所述目标连接模块完成所述多个数据流计算模块之间的互联,由所述第一模块提供信息,所述目标连接模块直接将所述信息路由到所述第二模块,所述第一模块和所述第二模块只需和所述目标连接模块连接。
2.根据权利要求1所述的方法,其特征在于,所述确定所述第二模块与DMA的目标传输颗粒度包括:
从多维度确定所述第二模块与所述DMA的传输数据量,并将符合预设条件的所述传输数据量确定为所述目标传输颗粒度。
3.根据权利要求2所述的方法,其特征在于,所述从多维度确定所述第二模块与DMA的传输数据量,并将符合预设条件的所述传输数据量确定为所述目标传输颗粒度包括:
确定在高度方向、宽度方向、通道方向上输入操作算子的第一数据量、第二数据量、第三数据量以及所述操作算子的输出通道输出的第四数据量;
将所述第一数据量、所述第二数据量、所述第三数据量及所述第四数据量之和确定为所述目标传输颗粒度。
4.根据权利要求3所述的方法,其特征在于,所述多个数据流计算模块与所述DMA的交互方式为单次交互。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
按照结构体变量形式和/或数组形式传递所述目标数据的关联数据。
6.一种数据流芯片的建模装置,其特征在于,包括:
生成模块,用于获取数据流芯片的架构数据,并按照所述架构数据生成与所述数据流芯片的结构匹配的多个数据流计算模块,其中,所述多个数据流计算模块用于表示所述数据流芯片进行数据流处理的流程节点;
连接模块,用于创建目标连接模块,并将所有所述多个数据流计算模块连接至所述目标连接模块上;
处理模块,用于通过所述目标连接模块模拟所述数据流芯片进行数据流处理的过程;
所述处理模块包括:
第一确定单元,用于在接收到第一模块的数据路由请求的情况下,根据所述数据路由请求确定待路由的第二模块,其中,所述第一模块和所述第二模块为所述多个数据流计算模块中的模块;
第二确定单元,用于确定所述第二模块与DMA的目标传输颗粒度;
路由单元,用于从所述数据路由请求中提取出目标数据,并将所述目标数据按照所述目标传输颗粒度路由至所述第二模块,以通过所述目标连接模块完成所述多个数据流计算模块之间的互联,由所述第一模块提供信息,所述目标连接模块直接将所述信息路由到所述第二模块,所述第一模块和所述第二模块只需和所述目标连接模块连接。
7.一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至5任一项所述的方法的步骤。
8.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至5任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210337244.3A CN114429051B (zh) | 2022-04-01 | 2022-04-01 | 数据流芯片的建模方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210337244.3A CN114429051B (zh) | 2022-04-01 | 2022-04-01 | 数据流芯片的建模方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114429051A CN114429051A (zh) | 2022-05-03 |
CN114429051B true CN114429051B (zh) | 2022-07-01 |
Family
ID=81314480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210337244.3A Active CN114429051B (zh) | 2022-04-01 | 2022-04-01 | 数据流芯片的建模方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114429051B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111753994A (zh) * | 2020-06-22 | 2020-10-09 | 深圳鲲云信息科技有限公司 | Ai芯片的数据处理方法、装置和计算机设备 |
CN113918233A (zh) * | 2021-09-13 | 2022-01-11 | 山东产研鲲云人工智能研究院有限公司 | 一种ai芯片控制方法、电子设备及ai芯片 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2948206B1 (fr) * | 2009-07-15 | 2011-08-05 | Commissariat Energie Atomique | Dispositif et procede pour l'execution distribuee de traitements de donnees numeriques |
CN106776044B (zh) * | 2017-01-11 | 2020-02-04 | 深圳鲲云信息科技有限公司 | 基于数据流的硬件加速方法及系统 |
US20200382377A1 (en) * | 2019-06-02 | 2020-12-03 | Lake of Bays Semiconductor Inc. | Polyhedral structures and network topologies for high performance computing |
CN111145076B (zh) * | 2019-12-27 | 2023-04-07 | 深圳鲲云信息科技有限公司 | 数据并行化处理方法、系统、设备及存储介质 |
CN111190741B (zh) * | 2020-01-03 | 2023-05-12 | 深圳鲲云信息科技有限公司 | 基于深度学习节点计算的调度方法、设备及存储介质 |
CN111752887B (zh) * | 2020-06-22 | 2024-03-15 | 深圳鲲云信息科技有限公司 | 人工智能芯片和基于人工智能芯片的数据处理方法 |
CN113505383A (zh) * | 2021-07-02 | 2021-10-15 | 中国科学院计算技术研究所 | 一种ecdsa算法执行系统及方法 |
-
2022
- 2022-04-01 CN CN202210337244.3A patent/CN114429051B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111753994A (zh) * | 2020-06-22 | 2020-10-09 | 深圳鲲云信息科技有限公司 | Ai芯片的数据处理方法、装置和计算机设备 |
CN113918233A (zh) * | 2021-09-13 | 2022-01-11 | 山东产研鲲云人工智能研究院有限公司 | 一种ai芯片控制方法、电子设备及ai芯片 |
Non-Patent Citations (1)
Title |
---|
工业机器视觉中的AI算力需求;牛昕宇;《机器人产业》;20201125;62-67 * |
Also Published As
Publication number | Publication date |
---|---|
CN114429051A (zh) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107247859B (zh) | 逻辑电路设计的验证方法、装置、电子设备及存储介质 | |
CN108628605A (zh) | 流式数据处理方法、装置、服务器和介质 | |
CN101231589B (zh) | 用于原位开发嵌入式软件的系统和方法 | |
US20220292248A1 (en) | Method, system and verifying platform for system on chip verification | |
JP6600011B2 (ja) | エミュレーションのための効率的波形生成 | |
CN115952758B (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
CN113656227A (zh) | 一种芯片验证方法、装置、电子设备及存储介质 | |
US8725486B2 (en) | Apparatus and method for simulating a reconfigurable processor | |
CN111767217A (zh) | Js单元测试案例生成方法及装置 | |
CN113420520B (zh) | 集成电路装置设计仿真方法、装置、设备和可读存储介质 | |
CN114548027A (zh) | 在验证系统中追踪信号的方法、电子设备及存储介质 | |
CN114429051B (zh) | 数据流芯片的建模方法、装置、设备及介质 | |
JP6155050B2 (ja) | 情報処理装置の論理検証方法及びプログラム | |
CN113535499B (zh) | 一种支持多核心共享访问的多类型并存访存流验证方法 | |
US10409624B1 (en) | Data array compaction in an emulation system | |
KR102325612B1 (ko) | 시뮬레이터를 구현하는 방법, 장치, 기기 및 매체 | |
CN116670660A (zh) | 片上网络的仿真模型生成方法、装置、电子设备及计算机可读存储介质 | |
CN113673189A (zh) | 基于dut替代模型的验证方法、装置、设备及介质 | |
US20200175128A1 (en) | Hardware incremental model checking verification | |
US10198539B1 (en) | Systems and methods for dynamic RTL monitors in emulation systems | |
CN114169287B (zh) | 生成验证环境的连接示意图的方法、电子设备及存储介质 | |
CN111143208A (zh) | 基于处理器技术辅助fpga实现ai算法的验证方法 | |
JP2004021907A (ja) | 性能評価用シミュレーションシステム | |
US20220382942A1 (en) | Non-functional loopback-paths removal from io-pads using logic replication | |
CN116451625B (zh) | 用于rtl和带sdf网表的联合仿真的装置和方法 |
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 |