CN111857989B - 人工智能芯片和基于人工智能芯片的数据处理方法 - Google Patents

人工智能芯片和基于人工智能芯片的数据处理方法 Download PDF

Info

Publication number
CN111857989B
CN111857989B CN202010575487.1A CN202010575487A CN111857989B CN 111857989 B CN111857989 B CN 111857989B CN 202010575487 A CN202010575487 A CN 202010575487A CN 111857989 B CN111857989 B CN 111857989B
Authority
CN
China
Prior art keywords
module
data
flow
calculation
gate
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
Application number
CN202010575487.1A
Other languages
English (en)
Other versions
CN111857989A (zh
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 Corerain Technologies Co Ltd
Original Assignee
Shenzhen Corerain 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 Shenzhen Corerain Technologies Co Ltd filed Critical Shenzhen Corerain Technologies Co Ltd
Priority to CN202010575487.1A priority Critical patent/CN111857989B/zh
Publication of CN111857989A publication Critical patent/CN111857989A/zh
Priority to PCT/CN2021/101414 priority patent/WO2021259231A1/zh
Priority to US18/069,216 priority patent/US20230126978A1/en
Application granted granted Critical
Publication of CN111857989B publication Critical patent/CN111857989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • G06F15/825Dataflow computers
    • 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
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/045Combinations of networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种人工智能芯片和基于人工智能芯片的数据处理方法。该人工智能芯片包括:用于基于AI算法对待处理数据进行处理的数据流网络,所述数据流网络包括:至少一个计算模块,所述计算模块用于基于所述AI算法对应的其中一个运算节点对所述待处理数据进行计算,输出计算结果;当前的计算模块对应的下一流转模块,用于接收所述计算模块输出的计算结果,并对所述计算结果进行处理;其中,所述待处理数据按照预设的数据流向在所述数据流网络中流动。通过待处理数据按照预设的数据流向在数据流网络中流动进行数据处理,达到提高AI芯片的资源利用率的效果。

Description

人工智能芯片和基于人工智能芯片的数据处理方法
技术领域
本发明实施例涉及人工智能技术领域,尤其涉及一种人工智能芯片和基于 人工智能芯片的数据处理方法。
背景技术
随着人工智能的迅速发展,市场上出现了许多用于计算人工智能学习模型 的AI芯片。
目前,常用的AI芯片是通过指令集的方式获取数据,并按照AI算法的运 算规则对数据进行处理。
然而,通过指令集的方式获取数据,需要消耗AI芯片的资源来实现,导致 AI芯片的资源利用率较低。
发明内容
本发明实施例提供一种人工智能芯片和基于人工智能芯片的数据处理方法, 以实现提高AI芯片的资源利用率的效果。
第一方面,本发明实施例提供了一种人工智能芯片,用于基于AI算法对待 处理数据进行处理的数据流网络,所述数据流网络包括:
至少一个计算模块,所述计算模块用于基于所述AI算法对应的其中一个运 算节点对所述待处理数据进行计算,输出计算结果;
当前的计算模块对应的下一流转模块,用于接收所述计算模块输出的计算 结果,并对所述计算结果进行处理;
其中,所述待处理数据按照预设的数据流向在所述数据流网络中流动。
可选的,所述数据流网络还包括:
处理模块,用于对所述待处理数据进行处理,得到所述待处理数据所携带 的参数;
所述计算模块用于基于所述参数对所述待处理数据进行计算。
可选的,所述当前的计算模块和所述下一流转模块之间设置有控制流坝, 所述控制流坝用于控制所述计算结果由所述当前的计算模块向所述下一流转模 块流动。
可选的,所述控制流坝包括写入端、读取端、满载端和空载端,还包括:
第一与门,与所述写入端连接以表示上行有效端,所述上行有效端用于接 收所述当前的计算模块发送的第一有效信号;
第二与门,与所述读取端连接以表示下行许可端,所述下行许可端用于接 收所述下一流转模块发送的第二有效信号;
第一非门,与所述满载端连接以表示上行许可端,所述第上行许可端用于 发送第一许可信号给所述当前的计算模块和第一与门;
第二非门,与所述空载端连接以表示下行有效端,所述下行有效端用于发 送第二有效信号给所述下一流转模块和第二与门。
可选的,所述当前的计算模块用于接收所述控制流坝发送的第一许可信号;
所述当前的计算模块提供所述第一有效信号给所述控制流坝,以将所述待 处理数据中的第一数据写入所述控制流坝,所述当前的计算模块用于按照所述 运算节点指向的处理方式对所述第一数据进行处理,得到所述计算结果;
所述控制流坝用于接收所述下一流转模块发送的第二许可信号;
所述控制流坝提供所述第二有效信号给所述下一流转模块,以将所述计算 结果写入所述下一流转模块。
第二方面,本发明实施例提供了一种基于人工智能芯片的数据处理方法, 所述方法包括:
数据流网络中的至少一个计算模块基于AI算法对应的其中一个运算节点 对待处理数据进行计算,输出计算结果,所述数据流网络用于基于所述AI算法 对所述待处理数据进行处理;
下一流转模块接收所述计算模块输出的计算结果,并对所述计算结果进行 处理;
其中,所述待处理数据按照预设的数据流向在所述数据流网络中流动。
可选的,所述方法还包括:
数据流网络中的处理模块对待处理数据进行处理,得到所述待处理数据所 携带的参数;
所述计算模块基于AI算法对应的其中一个运算节点对所述待处理数据进 行计算,包括:
确定所述计算模块对应的AI算法对应的其中一个运算节点;
所述计算模块基于所述运算节点对所述参数进行计算。
可选的,所述当前的计算模块和所述下一流转模块之间设置有控制流坝, 所述方法还包括:
所述控制流坝控制所述计算结果由所述当前的计算模块向所述下一流转模 块流动。
可选的,所述控制流坝包括写入端、读取端、满载端和空载端,还包括第 一与门、第二与门、第一非门和第二非门,所述第一与门与所述写入端连接以 表示上行有效端,所述第二与门与所述读取端连接以表示下行许可端,第一非 门与所述满载端连接以表示上行许可端,第二非门与所述空载端连接以表示下 行有效端,所述方法还包括:
所述上行有效端接收所述当前的计算模块发送的第一有效信号;
所述下行许可端接收所述下一流转模块发送的第二有效信号;
所述第上行许可端发送第一许可信号给所述当前的计算模块和第一与门;
所述下行有效端发送第二有效信号给所述下一流转模块和第二与门。
可选的,所述当前的计算模块提供所述第一有效信号给所述控制流坝,以 将所述待处理数据中的第一数据写入所述控制流坝,所述当前的计算模块用于 按照所述运算节点指向的处理方式对所述第一数据进行处理,得到所述计算结 果;
所述控制流坝接收所述下一流转模块发送的第二许可信号;
所述控制流坝提供所述第二有效信号给所述下一流转模块,以将所述计算 结果写入所述下一流转模块。
本发明实施例的人工智能芯片包括用于基于AI算法对待处理数据进行处 理的数据流网络,所述数据流网络包括:至少一个计算模块,所述计算模块用 于基于所述AI算法对应的其中一个运算节点对所述待处理数据进行计算,输出 计算结果;当前的计算模块对应的下一流转模块,用于接收所述计算模块输出 的计算结果,并对所述计算结果进行处理;其中,所述待处理数据按照预设的 数据流向在所述数据流网络中流动,解决了AI芯片是通过指令集的方式获取数据,需要消耗AI芯片的资源来实现,导致AI芯片的资源利用率较低的问题, 实现了提高AI芯片的资源利用率的效果。
附图说明
图1是本发明实施例一提供的人工智能芯片的结构示意图;
图2是本发明实施例二提供的另一种人工智能芯片的结构示意图;
图3是本发明实施例二提供的一种运行CNN模型的人工智能芯片的结构示 意图;
图4是本发明实施例三提供的另一种人工智能芯片的结构示意图;
图5是本发明实施例二提供的基于人工智能芯片的数据处理方法。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此 处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需 要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结 构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被 描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理, 但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺 序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括 在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子计算机程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步 骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅 用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。 举例来说,在不脱离本申请的范围的情况下,可以将第一有效信号为第二有效 信号,且类似地,可将第二有效信号称为第一有效信号。第一有效信号和第二有效信号两者都是有效信号,但其不是同一有效信号。术语“第一”、“第二” 等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。 由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多 个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等, 除非另有明确具体的限定。
实施例一
图1为本发明实施例一提供的一种人工智能芯片的结构示意图。如图1所 示,本发明实施例提供了一种人工智能芯片10,包括用于基于AI算法对待处 理数据进行处理的数据流网络,所述数据流网络包括:至少一个计算模块110 和下一流转模块120。本实施例的人工智能芯片适用于基于预设的数据流向和 AI算法对待处理数据进行数据处理。其中:
所述计算模块110用于基于所述AI算法对应的其中一个运算节点对所述待 处理数据进行计算,输出计算结果;
当前的计算模块110对应的下一流转模块120,用于接收所述计算模块110 输出的计算结果,并对所述计算结果进行处理;
其中,所述待处理数据按照预设的数据流向在所述数据流网络中流动。
在本实施例中,待处理数据是指需要通过AI算法进行处理的数据。可选的, 待处理数据可以是待处理的图像数据、待处理的文本数据等可以基于AI算法进 行处理的数据,此处不作具体限制。AI算法是指人工智能模型对应的算法,例 如CNN模型对应的算法等,此处不作具体限制。运算节点为AI算法中用于计算的节点。需要说明的是,AI算法的本质是一些数学模型,因此有一些系数,通 过AI算法进行计算时,需要AI算法对应系数和待处理数据通过给计算模块110 进行计算。当前的计算模块110为至少一个计算模块110的其中一个,本实施 例不限定当前的计算模块110具体为哪个计算模块110。其中,数据流向按照 AI算法的运算顺序表征在数据流网络中,指示待处理数据的流动方向。
示例性的,CNN模型包括卷积层、池化层和全连接层,则CNN算法为在卷 积层计算,然后在池化层计算,最后在全连接层进行计算,则运算节点可以是 在卷积层、池化层或全连接层计算的节点,也可以是在卷积层内计算的其中一 个节点,例如第一卷积子层或第二卷积子层的计算模块110,此处不作具体限 制。
其中,下一流转模块120是指与当前的计算模块110连接的下一模块。可 选的,下一流转模块120可以是当前的计算模块110对应的下一计算模块,或 者是当前的计算模块110对应的下一存储模块,可以根据需要设置,此处不作 具体限制。需要说明的是,计算模块110的数量可以根据具体的人工智能模型 对应的AI算法确定,数据流向也可以根据AI算法的运算过程确定,即确定待 处理数据在计算模块110和下一流转模块120之间的流动,本实施例不作具体 限制。
可以理解的是,待处理数据是按照预设的数据流向在数据流网络中流动, 计算模块110和下一流转模块120均不需要对数据进行获取,只需要等待数据 按照数据流向到达计算模块110和下一流转模块120时,对获取到的待处理数 据进行处理即可,减少了指令的开销,提高了芯片的资源利用率。
参考图2,图2是本实施例提供的另一种人工智能芯片的结构示意图。在 一个实施例中,可选的,数据流网络还包括处理模块130,其中:
处理模块130,用于对所述待处理数据进行处理,得到所述待处理数据所 携带的参数;
所述计算模块110用于基于所述参数对所述待处理数据进行计算。
其中,处理模块130可以与芯片外的片外存储200直接相连,用于接收片 外存储200发送的待处理数据后,对待处理数据进行处理以得到数据流网络计 算所需的参数,供数据流网络中的计算模块110基于所述参数对所述待处理数 据进行计算。
参考图3,图3为本实施例提供的一种运行CNN模型的人工智能芯片的结 构示意图。通过图3可知,本实施例中的待处理数据为待处理的图像数据,人 工智能芯片包括计算模块A111、计算模块B112和计算模块C113,其中,计算 模块A111用于在卷积层计算,计算模块B112用于在池化层计算,计算模块C113 用于在全连接层计算。则预设的数据流向依次为计算模块A111、计算模块B112 和计算模块C113。可以理解的是,待处理的图像数据按照预设的数据流向在计 算模块A111、计算模块B112和计算模块C113中流动,图像数据到达计算模块 A111时,进行卷积层的计算,计算完成后到达计算模块B112,进行池化层的计 算,最后到达计算模块C113进行全连接层的计算,输出最后的计算结果。其中,最后的计算结果可以保存在人工智能芯片外的片外存储中,此处不作具体限制。 同时参考图1和图3,当计算模块A111作为当前的计算模块110时,则对应的 下一流转模块120为计算模块B112,当计算模块C113为当前的计算模块110 时,对应的下一流转模块120为存储最后的计算结果的最终存储模块。
可选的,当相邻的两个计算模块110,例如计算模块A111和计算模块B112 之间设置有中间存储模块时,则计算模块A111的下一流转模块120则是该中间 存储模块,此处不作具体限制。可以理解的是,当上一计算模块110已计算完 成,但下一计算模块110未计算完成时,将上一计算模块110的计算结果先发 送至中间存储模块等待,则上一计算模块110可以处于空闲状态,继续获取新的数据进行计算,且在下一计算模块110计算完成时,中间存储模块再将上一 计算模块110的计算结果发送至下一计算模块进行计算,进一步提高了芯片的 资源利用率。
可以理解的是,本实施例的上一计算模块110和下一计算模块110仅表示 存在数据交互的两个计算模块110,而不限于具体的计算模块110。
需要说明的是,为了使芯片的资源利用率最大化,数据的流向需要保证计 算模块110和下一流转模块120之间刚好没有空闲时间,本实施例不作具体限 制。
参考图4,图4是本实施例提供的另一种人工智能芯片的结构示意图。本 实施例中的当前的计算模块110和所述下一流转模块120之间设置有控制流坝 140,其中,所述控制流坝140用于控制所述计算结果由所述当前的计算模块 110向所述下一流转模块120流动。
具体的,为了实现通过控制流坝140作为计算模块110和下一流转模块120 之间的自动流控制,其基本思想如下:
A)输入数据速率(F_in)=有效输入数据数/单位时间(T_d)
B)输出数据速率(F_out)=有效输出数据数/单位时间(T_d)
C)在整个运行期间,如果F_in==F_out,则
为了完全避免背压:数据坝应该能够存储max(F_in)–min(F_out)数 据。控制流坝140将计算模块110和下一流转模块120的内部状态结合在一起。 纯粹由硬件决定是否将数据从当前的计算模块110中流出来。因此,该控制流 坝140可以理解为调节数据流的屏障。基于算法要求,控制流坝140进一步扩 展为支持预定静态流量控制。
可选的,控制流坝140包括写入端、读取端、满载端和空载端,还包括:
第一与门,与所述写入端连接以表示上行有效端,所述上行有效端用于接 收所述当前的计算模块110发送的第一有效信号;
第二与门,与所述读取端连接以表示下行许可端,所述下行许可端用于接 收所述下一流转模块120发送的第二有效信号;
第一非门,与所述满载端连接以表示上行许可端,所述第上行许可端用于 发送第一许可信号给所述当前的计算模块110和第一与门;
第二非门,与所述空载端连接以表示下行有效端,所述下行有效端用于发 送第二有效信号给所述下一流转模块120和第二与门。
具体的,所述当前的计算模块110用于接收所述控制流坝140发送的第一 许可信号;
所述当前的计算模块110提供所述第一有效信号给所述控制流坝140,以 将所述待处理数据中的第一数据写入所述控制流坝140,所述当前的计算模块 110用于按照所述运算节点指向的处理方式对所述第一数据进行处理,得到所 述计算结果,其中第一数据为待处理数据中,适用当前的计算模块110进行计 算的数据;
所述控制流坝140用于接收所述下一流转模块120发送的第二许可信号;
所述控制流坝140提供所述第二有效信号给所述下一流转模块120,以将 所述计算结果写入所述下一流转模块120。
本实施例中,当前的计算模块110接收到控制流坝140发送的第一许可信 号,即表示控制流坝140已准备好接收当前的计算模块110中需要写入的数据, 在当前的计算模块110接收到控制流坝140发送的第一许可信号后,当前的计 算模块110可以读取计算结果。当前的计算模块110给控制流坝140提供第一 有效信号,即表示当前的计算模块110可以将计算结果写入控制流坝140中, 在控制流坝140接收到当前的计算模块110发送的第一有效信号后,控制流坝 140可以写入计算结果。
当前的计算模块110接收到控制流坝140发送的第一许可信号,同时控制 流坝140也接收到当前的计算模块110发送的第一有效信号时,计算结果便开 始从当前的计算模块110中写入控制流坝140。其中,当任一信号停止发送时, 即控制流坝140停止给当前的计算模块110发送第一许可信号或当前的计算模 块110停止给控制流坝140发送第一有效信号时,该通信的传输将会立即停止。 此时,计算结果已经从当前的计算模块110中写入控制流坝140内,控制流坝 140中存储有计算结果。当控制流坝140接收到下一流转模块120发送的第一 许可信号,即表示下一流转模块120已准备好接收控制流坝140中需要写入的 数据,在控制流坝140接收到下一流转模块120发送的第二许可信号后,控制 流坝140可以读取计算结果。当控制流坝140提供第二有效信号给下一流转模 块120,即表示控制流坝140可以将计算结果写入下一流转模块120中,在下 一流转模块120接收到控制流坝140发送的第二有效信号后,下一流转模块120 可以写入计算结果。
当控制流坝140接收到下一流转模块120发送的第一许可信号,同时下一 流转模块120也接收到控制流坝140发送的第二有效信号时,计算结果便开始 从控制流坝140中写入下一流转模块120。其中,当任一信号停止发送时,即 下一流转模块120停止给控制流坝140发送第二许可信号或控制流坝140停止 给下一流转模块120发送第二有效信号时,该通信的传输将会立即停止。由此 完成计算结果从当前的计算模块110到下一流转模块120的传输。另外需要说 明的是,计算结果并非指按顺序的计算结果,该计算结果可以为实际通信中的 任意一段数据。
本发明实施例的技术方案,人工智能芯片包括用于基于AI算法对待处理数 据进行处理的数据流网络,所述数据流网络包括至少一个计算模块,所述计算 模块用于基于所述AI算法对应的其中一个运算节点对所述待处理数据进行计 算,输出计算结果;当前的计算模块对应的下一流转模块,用于接收所述计算 模块输出的计算结果,并对所述计算结果进行处理;其中,所述待处理数据按 照预设的数据流向在所述数据流网络中流动,达到提高AI芯片的资源利用率的技术效果。
实施例二
图5为本发明实施例二提供的一种基于人工智能芯片的数据处理方法,可 适用于基于预设的数据流向和AI算法对待处理数据进行数据处理的场景,该方 法可以本实施例提供的人工智能芯片实现。
如图5所示,本发明实施例二提供的基于人工智能芯片的数据处理方法包 括:
S610、数据流网络中的至少一个计算模块基于AI算法对应的其中一个运算 节点对待处理数据进行计算,输出计算结果,所述数据流网络用于基于所述AI 算法对所述待处理数据进行处理;
其中,数据流网络是指人工智能芯片中,各个模块组成的用于基于AI算法 对待处理数据进行处理的网络。待处理数据是指需要通过AI算法进行处理的数据。可选的,待处理数据可以是待处理的图像数据、待处理的文本数据等可以 基于AI算法进行处理的数据,此处不作具体限制。AI算法是指人工智能模型 对应的算法,例如CNN模型对应的算法等,此处不作具体限制。运算节点为AI 算法中用于计算的节点。需要说明的是,AI算法的本质是一些数学模型,因此 有一些系数,通过AI算法进行计算时,需要AI算法对应系数和待处理数据通过给计算模块进行计算。
示例性的,CNN模型包括卷积层、池化层和全连接层,则CNN算法为在卷 积层计算,然后在池化层计算,最后在全连接层进行计算,则运算节点可以是 在卷积层、池化层或全连接层计算的节点,也可以是在卷积层内计算的其中一 个节点,例如第一卷积子层或第二卷积子层的计算模块,此处不作具体限制。
S620、当前的计算模块对应的下一流转模块接收所述计算模块输出的计算 结果,并对所述计算结果进行处理,其中,所述待处理数据按照预设的数据流 向在所述数据流网络中流动。
其中,当前的计算模块为至少一个计算模块的其中一个,本实施例不限定 当前的计算模块具体为哪个计算模块。下一流转模块是指与当前的计算模块连 接的下一模块。可选的,下一流转模块可以是当前的计算模块对应的下一计算 模块,或者是当前的计算模块对应的下一存储模块,可以根据需要设置,此处不作具体限制。需要说明的是,计算模块的数量可以根据具体的人工智能模型 对应的AI算法确定,数据流向也可以根据AI算法的运算过程确定,即确定待 处理数据在计算模块和下一流转模块之间的流动,本实施例不作具体限制。
可以理解的是,待处理数据是按照预设的数据流向在数据流网络中流动, 计算模块和下一流转模块均不需要对数据进行获取,只需要等待数据按照数据 流向到达计算模块和下一流转模块时,对获取到的待处理数据进行处理即可, 减少了指令的开销,提高了芯片的资源利用率。
在一个可选的实施方式中,该基于人工智能芯片的数据处理方法还包括:
数据流网络中的处理模块对待处理数据进行处理,得到所述待处理数据所 携带的参数;所述计算模块基于AI算法对应的其中一个运算节点对所述待处理 数据进行计算,包括:确定所述计算模块对应的AI算法对应的其中一个运算节 点;所述计算模块基于所述运算节点对所述参数进行计算。
其中,处理模块可以与芯片外的片外存储直接相连,用于接收片外存储发 送的待处理数据后,对待处理数据进行处理以得到数据流网络计算所需的参数, 供数据流网络中的计算模块基于所述参数对所述待处理数据进行计算。
可选的,可以将数据流网络中的计算瓶颈对应的目标计算模块设置为至少 两个目标计算子模块串行计算,或将数据流网络中的计算瓶颈对应的目标计算 模块设置为至少两个目标计算子模块并行计算,使芯片的资源利用率最大化。
在一个可选的实施方式中,当前的计算模块和所述下一流转模块之间设置 有控制流坝,该基于人工智能芯片的数据处理方法还包括:所述控制流坝控制 所述计算结果由所述当前的计算模块向所述下一流转模块流动。
具体的,为了实现通过控制流坝作为计算模块和下一流转模块之间的自动 流控制,其基本思想如下:
A)输入数据速率(F_in)=有效输入数据数/单位时间(T_d)
B)输出数据速率(F_out)=有效输出数据数/单位时间(T_d)
C)在整个运行期间,如果F_in==F_out,则
为了完全避免背压:数据坝应该能够存储max(F_in)–min(F_out)数 据。控制流坝将计算模块和下一流转模块的内部状态结合在一起。纯粹由硬件 决定是否将数据从当前的计算模块中流出来。因此,该控制流坝可以理解为调 节数据流的屏障。基于算法要求,控制流坝进一步扩展为支持预定静态流量控 制。
在一个可选的实施方式中,控制流坝包括写入端、读取端、满载端和空载 端,还包括第一与门、第二与门、第一非门和第二非门,所述第一与门与所述 写入端连接以表示上行有效端,所述第二与门与所述读取端连接以表示下行许 可端,第一非门与所述满载端连接以表示上行许可端,第二非门与所述空载端 连接以表示下行有效端,基于人工智能芯片的数据处理方法还包括:所述上行有效端接收所述当前的计算模块发送的第一有效信号;所述下行许可端接收所 述下一流转模块发送的第二有效信号;所述第上行许可端发送第一许可信号给 所述当前的计算模块和第一与门;所述下行有效端发送第二有效信号给所述下 一流转模块和第二与门。
具体的,所述当前的计算模块提供所述第一有效信号给所述控制流坝,以 将所述待处理数据中的第一数据写入所述控制流坝,所述当前的计算模块用于 按照所述运算节点指向的处理方式对所述第一数据进行处理,得到所述计算结 果;
所述控制流坝接收所述下一流转模块发送的第二许可信号;
所述控制流坝提供所述第二有效信号给所述下一流转模块,以将所述计算 结果写入所述下一流转模块。
在本实施方式中,当前的计算模块接收到控制流坝发送的第一许可信号, 即表示控制流坝已准备好接收当前的计算模块中需要写入的数据,在当前的计 算模块接收到控制流坝发送的第一许可信号后,当前的计算模块可以读取计算 结果。当前的计算模块给控制流坝提供第一有效信号,即表示当前的计算模块 可以将计算结果写入控制流坝中,在控制流坝接收到当前的计算模块发送的第一有效信号后,控制流坝可以写入计算结果。
当前的计算模块接收到控制流坝发送的第一许可信号,同时控制流坝也接 收到当前的计算模块发送的第一有效信号时,计算结果便开始从当前的计算模 块中写入控制流坝。其中,当任一信号停止发送时,即控制流坝停止给当前的 计算模块发送第一许可信号或当前的计算模块停止给控制流坝发送第一有效信 号时,该通信的传输将会立即停止。此时,计算结果已经从当前的计算模块中写入控制流坝内,控制流坝中存储有计算结果。当控制流坝接收到下一流转模 块发送的第一许可信号,即表示下一流转模块已准备好接收控制流坝中需要写 入的数据,在控制流坝接收到下一流转模块发送的第二许可信号后,控制流坝 可以读取计算结果。当控制流坝提供第二有效信号给下一流转模块,即表示控 制流坝可以将计算结果写入下一流转模块中,在下一流转模块接收到控制流坝 发送的第二有效信号后,下一流转模块可以写入计算结果。
当控制流坝接收到下一流转模块发送的第一许可信号,同时下一流转模块 也接收到控制流坝发送的第二有效信号时,计算结果便开始从控制流坝中写入 下一流转模块。其中,当任一信号停止发送时,即下一流转模块停止给控制流坝发送第二许可信号或控制流坝停止给下一流转模块发送第二有效信号时,该 通信的传输将会立即停止。由此完成计算结果从当前的计算模块到下一流转模 块的传输。另外需要说明的是,计算结果并非指按顺序的计算结果,该计算结 果可以为实际通信中的任意一段数据。
本发明实施例的技术方案,通过数据流网络中的至少一个计算模块基于AI 算法对应的其中一个运算节点对待处理数据进行计算,输出计算结果,所述数 据流网络用于基于所述AI算法对所述待处理数据进行处理;当前的计算模块对 应的下一流转模块接收所述计算模块输出的计算结果,并对所述计算结果进行 处理,其中,所述待处理数据按照预设的数据流向在所述数据流网络中流动, 达到提高AI芯片的资源利用率的技术效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员 会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进 行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽 然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以 上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (6)

1.一种人工智能芯片,其特征在于,包括用于基于AI算法对待处理数据进行处理的数据流网络,所述数据流网络包括:
至少一个计算模块,所述计算模块用于基于所述AI算法对应的其中一个运算节点对所述待处理数据进行计算,输出计算结果;
当前的计算模块对应的下一流转模块,用于接收所述计算模块输出的计算结果,并对所述计算结果进行处理;
其中,所述待处理数据按照预设的数据流向在所述数据流网络中流动;
所述当前的计算模块和所述下一流转模块之间设置有控制流坝,所述控制流坝用于控制所述计算结果由所述当前的计算模块向所述下一流转模块流动;
所述控制流坝包括写入端、读取端、满载端和空载端,还包括:
第一与门,与所述写入端连接以表示上行有效端,所述上行有效端用于接收所述当前的计算模块发送的第一有效信号;
第二与门,与所述读取端连接以表示下行许可端,所述下行许可端用于接收所述下一流转模块发送的第二有效信号;
第一非门,与所述满载端连接以表示上行许可端,所述上行许可端用于发送第一许可信号给所述当前的计算模块和所述第一与门;
第二非门,与所述空载端连接以表示下行有效端,所述下行有效端用于发送所述第二有效信号给所述下一流转模块和所述第二与门。
2.如权利要求1所述的人工智能芯片,其特征在于,所述数据流网络还包括:
处理模块,用于对所述待处理数据进行处理,得到所述待处理数据所携带的参数;
所述计算模块用于基于所述参数对所述待处理数据进行计算。
3.如权利要求1所述的人工智能芯片,其特征在于,所述当前的计算模块用于接收所述控制流坝发送的第一许可信号;
所述当前的计算模块提供所述第一有效信号给所述控制流坝,以将所述待处理数据中的第一数据写入所述控制流坝,所述当前的计算模块用于按照所述运算节点指向的处理方式对所述第一数据进行处理,得到所述计算结果;
所述控制流坝用于接收所述下一流转模块发送的第二许可信号;
所述控制流坝提供所述第二有效信号给所述下一流转模块,以将所述计算结果写入所述下一流转模块。
4.一种基于人工智能芯片的数据处理方法,其特征在于,所述方法包括:
数据流网络中的至少一个计算模块基于AI算法对应的其中一个运算节点对待处理数据进行计算,输出计算结果,所述数据流网络用于基于所述AI算法对所述待处理数据进行处理;
当前的计算模块对应的下一流转模块接收所述计算模块输出的计算结果,并对所述计算结果进行处理;
其中,所述待处理数据按照预设的数据流向在所述数据流网络中流动;
所述当前的计算模块和所述下一流转模块之间设置有控制流坝,所述方法还包括:
所述控制流坝控制所述计算结果由所述当前的计算模块向所述下一流转模块流动;
所述控制流坝包括写入端、读取端、满载端和空载端,还包括第一与门、第二与门、第一非门和第二非门,所述第一与门与所述写入端连接以表示上行有效端,所述第二与门与所述读取端连接以表示下行许可端,所述第一非门与所述满载端连接以表示上行许可端,所述第二非门与所述空载端连接以表示下行有效端,所述方法还包括:
所述上行有效端接收所述当前的计算模块发送的第一有效信号;
所述下行许可端接收所述下一流转模块发送的第二有效信号;
所述上行许可端发送第一许可信号给所述当前的计算模块和所述第一与门;
所述下行有效端发送所述第二有效信号给所述下一流转模块和所述第二与门。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
数据流网络中的处理模块对待处理数据进行处理,得到所述待处理数据所携带的参数;
所述计算模块基于AI算法对应的其中一个运算节点对所述待处理数据进行计算,包括:
确定所述计算模块对应的AI算法对应的其中一个运算节点;
所述计算模块基于所述运算节点对所述参数进行计算。
6.如权利要求4所述的方法,其特征在于,所述当前的计算模块提供所述第一有效信号给所述控制流坝,以将所述待处理数据中的第一数据写入所述控制流坝,所述当前的计算模块用于按照所述运算节点指向的处理方式对所述第一数据进行处理,得到所述计算结果;
所述控制流坝接收所述下一流转模块发送的第二许可信号;
所述控制流坝提供所述第二有效信号给所述下一流转模块,以将所述计算结果写入所述下一流转模块。
CN202010575487.1A 2020-06-22 2020-06-22 人工智能芯片和基于人工智能芯片的数据处理方法 Active CN111857989B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010575487.1A CN111857989B (zh) 2020-06-22 2020-06-22 人工智能芯片和基于人工智能芯片的数据处理方法
PCT/CN2021/101414 WO2021259231A1 (zh) 2020-06-22 2021-06-22 人工智能芯片和基于人工智能芯片的数据处理方法
US18/069,216 US20230126978A1 (en) 2020-06-22 2022-12-20 Artificial intelligence chip and artificial intelligence chip-based data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010575487.1A CN111857989B (zh) 2020-06-22 2020-06-22 人工智能芯片和基于人工智能芯片的数据处理方法

Publications (2)

Publication Number Publication Date
CN111857989A CN111857989A (zh) 2020-10-30
CN111857989B true CN111857989B (zh) 2024-02-27

Family

ID=72988037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010575487.1A Active CN111857989B (zh) 2020-06-22 2020-06-22 人工智能芯片和基于人工智能芯片的数据处理方法

Country Status (3)

Country Link
US (1) US20230126978A1 (zh)
CN (1) CN111857989B (zh)
WO (1) WO2021259231A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857989B (zh) * 2020-06-22 2024-02-27 深圳鲲云信息科技有限公司 人工智能芯片和基于人工智能芯片的数据处理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019136762A1 (zh) * 2018-01-15 2019-07-18 深圳鲲云信息科技有限公司 人工智能处理器、及其所应用的处理方法
CN110046704A (zh) * 2019-04-09 2019-07-23 深圳鲲云信息科技有限公司 基于数据流的深度网络加速方法、装置、设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256640A (zh) * 2016-12-28 2018-07-06 上海磁宇信息科技有限公司 卷积神经网络实现方法
CN107704922B (zh) * 2017-04-19 2020-12-08 赛灵思公司 人工神经网络处理装置
US20190228340A1 (en) * 2017-08-19 2019-07-25 Wave Computing, Inc. Data flow graph computation for machine learning
CN109272112B (zh) * 2018-07-03 2021-08-27 北京中科睿芯科技集团有限公司 一种面向神经网络的数据重用指令映射方法、系统及装置
CN110851779B (zh) * 2019-10-16 2021-09-14 北京航空航天大学 用于稀疏矩阵运算的脉动阵列架构
CN111857989B (zh) * 2020-06-22 2024-02-27 深圳鲲云信息科技有限公司 人工智能芯片和基于人工智能芯片的数据处理方法
CN111752887B (zh) * 2020-06-22 2024-03-15 深圳鲲云信息科技有限公司 人工智能芯片和基于人工智能芯片的数据处理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019136762A1 (zh) * 2018-01-15 2019-07-18 深圳鲲云信息科技有限公司 人工智能处理器、及其所应用的处理方法
CN110046704A (zh) * 2019-04-09 2019-07-23 深圳鲲云信息科技有限公司 基于数据流的深度网络加速方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US20230126978A1 (en) 2023-04-27
WO2021259231A1 (zh) 2021-12-30
CN111857989A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN111752887B (zh) 人工智能芯片和基于人工智能芯片的数据处理方法
CN108965014B (zh) QoS感知的服务链备份方法及系统
US20160378570A1 (en) Techniques for Offloading Computational Tasks between Nodes
US20210247987A1 (en) Algorithm program loading method and related apparatus
CN104778074A (zh) 一种计算任务处理方法及装置
CN112667400B (zh) 边缘自治中心管控的边云资源调度方法、装置及系统
CN111857989B (zh) 人工智能芯片和基于人工智能芯片的数据处理方法
CN113660173B (zh) 一种流量控制方法、装置、计算机设备及存储介质
WO2021259232A1 (zh) Ai芯片的数据处理方法、装置和计算机设备
CN111752879B (zh) 一种基于卷积神经网络的加速系统、方法及存储介质
CN111198754A (zh) 一种任务调度方法及装置
CN114124942B (zh) 核心网资源调度方法、装置及电子设备
CN116302580B (zh) 纳米继电器算力资源调度方法及装置
CN116185596B (zh) 提升广域多集群分布式系统执行任务效率的方法及装置
US20230143270A1 (en) Apparatus and method with scheduling
CN115150437B (zh) 应用于车辆的自动驾驶系统的节点部署方法、装置及设备
CN114490458B (zh) 数据传输方法、芯片、服务器以及存储介质
CN106484879B (zh) 一种基于MapReduce的Map端数据的聚合方法
CN102624622B (zh) 基于多级转发的网络视频的路由计算方法和装置
CN114443262A (zh) 计算资源管理方法、装置、设备及系统
CN109547360A (zh) 数据传输调度方法和装置
CN105740713A (zh) 一种基于优先级的tpm读写控制方法
CN114365148A (zh) 神经网络运行系统和方法
EP4135225A1 (en) Service flow transmission method and apparatus, and device and storage medium
US10860386B2 (en) Device for managing distributed storage resources and method for managing such storage resources

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