CN111651207A - 一种神经网络模型运算芯片、方法、装置、设备及介质 - Google Patents

一种神经网络模型运算芯片、方法、装置、设备及介质 Download PDF

Info

Publication number
CN111651207A
CN111651207A CN202010780693.6A CN202010780693A CN111651207A CN 111651207 A CN111651207 A CN 111651207A CN 202010780693 A CN202010780693 A CN 202010780693A CN 111651207 A CN111651207 A CN 111651207A
Authority
CN
China
Prior art keywords
instruction
target
neural network
original
network model
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.)
Granted
Application number
CN202010780693.6A
Other languages
English (en)
Other versions
CN111651207B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010780693.6A priority Critical patent/CN111651207B/zh
Publication of CN111651207A publication Critical patent/CN111651207A/zh
Application granted granted Critical
Publication of CN111651207B publication Critical patent/CN111651207B/zh
Priority to PCT/CN2021/106148 priority patent/WO2022028220A1/zh
Priority to US17/954,163 priority patent/US20230021716A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • G06F9/30152Determining start or end of instruction; determining instruction length
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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

Abstract

本申请实施例涉及人工智能技术领域,公开了一种神经网络模型运算芯片、方法、装置、设备及介质,其中方法包括:从关于目标神经网络模型的混合指令集中获取当前待执行指令,若当前待执行指令为控制信息,则将逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令确定为目标指令。进一步地,解析目标指令,并基于解析结果调度目标引擎执行目标指令指示的目标操作。可以在内部在线更新指令,减少与其它设备(如通用处理器)的交互,更加高效地实现对需要在线更新参数的模型的运算。

Description

一种神经网络模型运算芯片、方法、装置、设备及介质
技术领域
本申请涉及互联网技术领域,具体涉及人工智能技术领域,尤其涉及一种神经网络模型运算芯片、一种神经网络模型运算方法、一种神经网络模型运算装置、一种计算机设备及一种计算机存储介质。
背景技术
神经网络模型在具体领域应用时,硬件系统通常以异构网络的形式组成(例如图1所示),由神经网络模型运算芯片和通用处理器配合使用。神经网络模型运算芯片专注于神经网络模型密集计算的加速,通用处理器用来完成神经网络模型前处理(比如图片的尺寸裁剪等)和后处理(比如图片信息的标注等)等工作,这部分工作计算不够密集,特点在于灵活性要求高,常规的通用处理器可以完成。
为了应对不同的神经网络模型,目前主要通过提前编译整个神经网络模型的静态指令,再通过指令驱动神经网络模型运算芯片的方式进行神经网络模型的运算。但随着一些需要在线更新参数的模型出现,例如,NLP (Nature Language processing,自然语言处理)的译码阶段,有些模型需要边识别,边分析译码的结果是否是EOF(End Of File,文件结束符),进而决定是否停止。又例如,transformer模型的译码阶段的pushback运算,反馈回来的输入序列长度参数也需要变化。这些变化,在编译阶段是无法获取的信息,只能在具体的数据输入模型,计算后才可以获得。可见,现有通过整个神经网络模型的静态编译指令,驱动神经网络模型运算芯片进行神经网络模型运算的处理方式,无法适用于需要在线更新参数的模型。因此,如何实现对需要在线更新参数的模型的运算,成为一个亟待解决的问题。
发明内容
本申请实施例提供了一种神经网络模型运算芯片、方法、装置、设备及介质,可以在芯片内部在线更新指令,减少与其它设备的交互,高效地实现对需要在线更新参数的模型的运算。
一方面,本申请实施例提供了一种神经网络模型运算芯片,该芯片包括指令处理单元、指令解析单元、调度单元和用于数据搬移与运算的执行单元,该执行单元包括预配置的多个引擎,其中:
指令处理单元,用于向指令解析单元提供目标指令,目标指令包括目标神经网络模型的原始指令,或者基于目标神经网络模型的控制信息对目标原始指令更新后得到的更新指令,目标原始指令为目标神经网络模型的原始指令中与控制信息匹配的原始指令;
指令解析单元,用于解析目标指令,并将解析结果输入调度单元;
调度单元,用于基于解析结果调度目标引擎执行目标指令指示的目标操作,目标操作包括运算操作或数据搬移操作,目标引擎为所述执行单元中的任一个引擎。
另一方面,本申请实施例提供了一种神经网络模型运算方法,该方法包括:
从关于目标神经网络模型的混合指令集中获取当前待执行指令,混合指令集中包括N条待执行指令,混合指令集是基于目标神经网络模型的模型数据预先编译得到的,N条待执行指令中包括原始指令和/或用于对目标神经网络模型的目标原始指令进行更新的控制信息,N为大于1的整数;
基于当前待执行指令确定目标指令;其中,若当前待执行指令为控制信息,则目标指令为逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令;
解析目标指令,并基于解析结果调度目标引擎执行目标指令指示的目标操作,目标操作包括运算操作或数据搬移操作,目标引擎为预配置的多个引擎中的任一个。
再一方面,本申请实施例提供了一种神经网络模型运算装置,该装置包括:
获取模块,用于从关于目标神经网络模型的混合指令集中获取当前待执行指令,混合指令集中包括N条待执行指令,混合指令集是基于目标神经网络模型的模型数据预先编译得到的,N条待执行指令中包括原始指令和/或用于对目标神经网络模型的目标原始指令进行更新的控制信息,该N为大于1的整数;
处理模块,用于基于当前待执行指令确定目标指令;其中,若当前待执行指令为控制信息,则目标指令为逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令;
处理模块,还用于解析目标指令,并基于解析结果调度目标引擎执行目标指令指示的目标操作,目标操作包括运算操作或数据搬移操作,目标引擎为预配置的多个引擎中的任一个。
相应地,本申请实施例还提供了一种计算机设备,计算机设备上安装有神经网络模型运算芯片,该神经网络运算芯片包括处理器和存储装置;存储装置,用于存储程序指令;处理器,用于调用程序指令并执行上述的神经网络模型运算方法。
相应地,本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述的神经网络模型运算方法。
相应地,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述提供的神经网络模型运算方法。
本申请实施例中,可以从关于目标神经网络模型的混合指令集中获取当前待执行指令,若当前待执行指令为控制信息,则将逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令确定为目标指令。进一步地,解析目标指令,并基于解析结果调度目标引擎执行目标指令指示的目标操作。可以在芯片内部在线更新指令,减少与其它设备(如通用处理器)的交互,有利于更加高效地实现对需要在线更新参数的模型的运算。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种神经网络模型应用的硬件系统的结构示意图;
图2a是本申请实施例提供的一种神经网络模型运算芯片的结构示意图;
图2b是本申请实施例提供的另一种神经网络模型应用的硬件系统的结构示意图;
图2c是本申请实施例提供的一种指令处理单元的结构示意图;
图3是本申请实施例提供的一种混合指令集的结构示意图;
图4是本申请实施例提供的一种神经网络模型运算芯片的工作流程示意图;
图5是本申请实施例提供的一种指令处理单元的工作流程示意图;
图6是本申请实施例提供的一种神经网络模型运算方法的流程示意图;
图7是本申请实施例提供的一种在线更新指令的场景示意图;
图8是本申请实施例提供的一种神经网络模型运算装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
AI (Artificial Intelligence,人工智能)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
其中,自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
其中,无论是自然语言处理或者机器学习,均涉及神经网络模型的使用,该神经网络模型例如可以指CNN(Convolutional Neural Network,卷积神经网络)、RNN(RecurrentNeural Network,循环神经网络)、Transformer模型,残差网络ResNet等等。神经网络模型可以应用于多种领域,包括图像处理领域(例如图像识别、图像分类、人脸识别等等)、文本处理领域(例如命名实体识别、关键词提取等等)、语音处理领域(例如语音识别)等等。
神经网络模型在具体领域应用时,硬件系统通常以异构网络的形式组成(例如图1所示),由神经网络模型运算芯片和通用处理器配合使用。神经网络模型运算芯片用于神经网络密集计算的加速,通用处理器用来完成神经网络之前(比如图片的尺寸裁剪等)和之后(比如图片信息的标注等)的工作,这部分工作计算不够密集,特点在于灵活性要求高,常规的通用处理器可以完成。其中,该神经网络模型运算芯片可以为GPU(Graphics ProcessingUnit、图像处理器)、FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)等芯片,通用处理器可以为(CPU(central processing unit,中央处理器)。
传统的CNN/RNN模型,模型训练出来后,整个运算流程是已知的,密集的计算,特别是常见的矩阵运算,可以针对神经网络模型运算芯片,把整个计算流程编译出来,形成完整的静态指令,让神经网络模型运算芯片全力执行,模型计算过程中和通用处理器之间没有交互,可以充分发挥神经网络模型运算芯片的计算能力。
但随着模型变种越来越多,一些需要在线更新参数的模型出现,例如,NLP的译码阶段结束的时间不固定,需要判断EOF才能结束;transformer模型中的pushback运算,需要把下一轮运算的输入参数进行调整。这样运算的过程无法通过编译出完整的计算指令流程给神经网络模型运算芯片,需要和通用处理器之间交互配合。由于神经网络模型运算芯片和通用处理器两者之间交互的时间延时大,容易造成神经网络模型运算芯片等待,不能充分利用神经网络模型运算芯片的计算能力,神经网络模型运算的效率低下。
例如,针对需要在线更新参数的模型,现有的通用做法是:把目标神经网络模型拆分成多个子模型,计算密集的部分交给神经网络模型运算芯片完成,需要计算过程中重新生成的部分则把子模型的中间结果返回通用处理器再次计算,子模型之间往返于通用处理器和神经网络模型运算芯片。从整个模型角度看,执行过程中需要频繁的进行通用处理器和神经网络模型运算芯片的交互,包括任务完成的中断交互,以及计算结果从神经网络模型运算芯片到通用处理器之间的往返交互。两者之间交互的总线通常采用PCIe接口,相比通用处理器和神经网络模型运算芯片系统内部的处理能力,总线的交互成为了瓶颈,同时频繁的交互,引入延时等待,造成了神经网络模型运算芯片不能充分发挥其计算能力。这也是神经网络模型运算芯片为什么理论峰值算力很高,但是有些模型实际算力表现不理想的一个主要原因。
为了解决上述问题,本申请实施例提出了一种神经网络模型运算芯片,请参见图2a,该芯片包括指令处理单元、指令解析单元、调度单元和用于数据搬移与运算的执行单元,其中:
指令处理单元,用于向指令解析单元提供目标指令,该目标指令包括目标神经网络模型的原始指令,或者基于目标神经网络模型的控制信息对目标原始指令更新后得到的更新指令,目标原始指令为目标神经网络模型的原始指令中与控制信息匹配的原始指令,该目标原始指令也可以为理解为控制信息指示的待更新的原始指令。其中,目标神经网络模型可以指运算过程中不需要在线更新参数的模型(例如CNN、RNN等),也可以指运算过程中需要在线更新参数的模型。
由于神经网络模型经过训练后,对应的模型结构以及每层的参数已经确定,可以把待处理数据(例如图像数据、语音数据、文本数据等)输入神经网络,经过计算后得到输出。本申请实施例中,可以结合神经网络模型运算芯片的具体结构(例如支持的运算单元类型,调度方式等),通过编译器把训练后的目标神经网络模型编译为神经网络模型运算芯片可以识别的语言,即指令的生成过程。对于本芯片,可以预先编译目标神经网络模型的混合指令集,该混合指令集包括N(N为大于1的整数)条待执行指令,N条待执行指令包括原始指令和控制信息,该控制信息用于指示指令处理单元逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令。
具体实现中,指令处理单元可以逐条读取混合指令集中的各条待执行指令,对于原始指令,可以直接将其作为目标指令,并直接输入指令解析单元。对于控制信息,可以逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令,并将该更新指令作为目标指令输入指令解析单元,从而在芯片内部在线生成新的指令,而无需与其它设备(例如通用处理器)交互。
本申请实施例中,在线生成新的指令中的“在线生成”,是一种相对于静态编译的概念,具体是指可以在神经网络模型的运行过程中,通过控制信息的指示更新对应的目标原始指令,得到该目标原始指令对应的更新指令,从而完成更新指令的“在线生成”。
示例性地,假设对于控制信息1包含如下指示:根据原始指令2引擎执行结果,依据控制信息操作,在原始指令2基础上在线生成目标指令2_1。那么这种情况下,当指令处理单元读取到控制信息1时,可以将原始指令2确定为目标原始指令,并获取原始指令2引擎执行结果(即目标神经网络模型的中间运算结果),执行控制信息,依据控制信息内容在原始指令2基础上在线生成新的指令2_1,该新的指令2_1即为原始指令2对应的更新指令,从而完成新的指令2_1的“在线生成”。
指令解析单元,用于解析目标指令,并将解析结果输入调度单元。
调度单元,用于基于解析结果调度目标引擎执行目标指令指示的目标操作,该目标操作包括运算操作或数据搬移操作,该目标引擎为执行单元中的任一个引擎。
其中,执行单元中包括预配置的多个引擎,该多个引擎可以包括计算引擎和数据搬移引擎,具体地,针对不同类型的运算,计算引擎也可以包括多种类型的计算引擎,例如用于卷积的计算引擎,用于池化的计算引擎;由于目标神经网络模型运算过程中,涉及相应数据的搬入和搬出,相应地,数据搬移引擎也可以包括用于搬出数据的数据搬移引擎和用于搬入数据的数据搬移引擎。
具体实现中,调度单元可以基于指令解析单元输入的针对目标指令的解析结果,调度目标引擎执行目标指令指示的目标操作,该目标操作包括运算操作或数据搬移操作,该运算操作包括神经网络设计的各种运算,例如卷积、池化等等,该数据搬移操作包括数据的搬入或搬出。以此类推,当混合指令集中的N条待执行指令全部执行完毕后,对应的整个目标神经网络模型运算完毕。
其中,通常情况下,混合指令集中的最后一条待执行指令为用于数据搬出的指令,最后一条待执行指令对应的目标引擎为用于数据搬出的数据搬移引擎。这种情况下,当神经网络模型运算芯片通过目标引擎执行最后一条待执行指令时,目标引擎可以将神经网络模型运算芯片对神经网络的最终运算结果搬出至存储介质,后续其它设备(例如通用处理器)可以从存储介质中获取神经网络模型运算芯片对目标神经网络模型的最终运算结果,并完成其他需要的后处理工作(例如图像信息的标注、文本信息的标注、图层处理等等)。
由上述可知,本申请提出的神经网络模型运算芯片,具备在芯片内部在线更新指令的能力,可以高效地实现对需要在线更新参数的模型的运算。除此之外,相比于现有针对需要在线更新参数的模型所采用的通用做法,由于在线更新指令是在内部完成,可以减少与其它设备(例如通用处理器)的交互,从而更加充分的发挥神经网络模型运算芯片的计算能力,提高目标神经网络模型的运算效率。
请参见图2b,上述神经网络模型运算芯片还可以包括指令生成单元、指令缓存单元和片上缓存,该芯片部署于硬件系统,该硬件系统还包括通用处理器和存储介质,其中:
指令生成单元,用于通过编译器,依照目标神经网络模型的模型数据编译目标神经网络模型的混合指令集,该混合指令集包括N条待执行指令,该N条待执行指令包括原始指令和/或用于对目标原始指令进行更新的控制信息。在一个实施例中,上述混合指令集可以为指令生成单元离线编译的。
由上述可知,神经网络模型经过训练后,对应的模型结构以及每层的参数已经确定,可以把待处理数据(例如图像数据、语音数据、文本数据等)输入神经网络,经过计算后得到输出。指令生成单元,可以结合神经网络模型运算芯片的具体结构(例如支持的运算单元类型,调度方式等)和训练后目标神经网络模型的模型数据,通过编译器把训练后的目标神经网络模型编译为神经网络模型运算芯片可以识别的语言,即指令的生成过程。
其中,上述原始指令可以理解为一种预先编译的静态指令,是基于训练后目标神经网络模型的固定模型数据编译得到,这部分数据可以理解为模型训练后可以提前知道的模型数据,该固定模型数据可以为目标神经网络模型的模型结构,每层的参数等等,比如某一层卷积运算,包含了输入特征所在的片上缓存的位置,大小,卷积核对应的缓存位置,大小,以及stride大小等。通常的CNN/RNN模型在模型确定后,即可生成这部分信息,用于驱动神经网络模型运算芯片工作。
上述控制信息为可选项,主要用于需要在线更新参数的模型,比如有些NLP模型的译码部分需要识别出当前计算结果是EOF时,停止本轮运算。对于CNN/RNN等不需要边计算边确定后续模型结构时,不需要包含控制信息。控制信息包含的内容用于指示指令处理单元获取出模型的中间运算结果(存放在片上缓存中),同时对该中间运算结果做一些比较判断、加减、比较等运算,然后在目标原始指令的基础上生成新的指令。
需要说明的是,对于一个目标神经网络模型而言,可以包括M(大于1的整数)个网络层,每一个网络层可以对应一个或者多个原始指令,每一个网络层可以对应一个或者多个控制信息。其中,在本申请实施例中,一个目标神经网络模型对应原始指令的数量远小于控制信息的数量,一般可以9:1或者其它,本申请对此不作具体限定。
具体实现中,在指令生成单元生成上述混合指令集的过程中,混合指令集中的各条待执行指令是依照目标神经网络模型中各网络层的先后顺序排列的,例如,某一目标神经网络模型包括的网络层依次为:第一网络层→第二网络层→第二网络层→第三网络层→第四网络层→第五网络层→第六网络层,第一网络层对应原始指令1、第二网络层对应原始指令2、第三网络层对应控制信息1、第四网络层对应原始指令3、第五网络层对应控制信息2、第六网络层对应原始指令4。这种情况下,生成的混合指令集可参见图3所示。
指令缓存单元,用于存储上述目标神经网络模型的混合指令集。目标神经网络模型确定后,目标神经网络模型的上述混合指令集不会发生变化,可以一次性加载到神经网络模型运算芯片中,以便于后续持续的对输入的待运算数据(例如图像数据、语音数据、文本数据等)进行推理运算。
指令处理单元,具体用于逐条读取混合指令集中的各条待执行指令,对于原始指令,可以直接将其作为目标指令,并直接输入指令解析单元;对于控制信息,可以逐条获取并执行控制信息中的各条控制指令。指令处理单元具备直接访问片上缓存的能力,它可以高效的获取目标神经网络模型的中间运算结果(中间运算结果存储于片上缓存),指令处理单元可以识别并执行控制消息,把目标原始指令和中间运算结果作为输入,对目标原始指令进行二次加工,得到目标原始指令对应的更新指令,从而使神经网络模型运算芯片能够在内部在线生成新的指令。
示例性地,假设对于控制信息1包含如下指示:根据原始指令2引擎执行结果,依据控制信息操作,在原始指令2基础上在线生成目标指令2_1。那么这种情况下,当指令处理单元读取到控制信息1时,可以将原始指令2确定为目标原始指令,从片上缓存中获取原始指令2引擎执行结果(即目标神经网络模型的中间运算结果),执行控制信息,依据控制信息内容在原始指令2基础上在线生成新的指令2_1,该新的指令2_1即为原始指令2对应的更新指令。
可以看出,指令处理单元起到了指令在线动态生成的作用,能够根据混合指令集中定义的控制信息,通过直接读取片上缓存,高效的获取模型的中间运算结果,进一步按照控制信息的要求产生更新后的指令,从而适应需要在线变化的参数模型的需要,整个过程全部在神经网络模型运算芯片内部完成。
存储介质和片上缓存,用于存储目标神经网络模型运算所需的目标数据。该目标数据包括以下任意一种:由通用处理器预处理后的待运算数据、目标神经网络模型运算的中间运算结果和最终运算结果,待运算数据包括图像数据、语音数据或文本数据。在本申请实施例中,目标神经网络模型运算的中间运算结果可以通过片上缓存存储,指令处理单元具备直接访问片上缓存的能力,可以高效的获取模型的中间运算结果。
其中,该预处理可以理解为对待运算数据的前处理,例如待运算数据为图像时,该处理可以为对图像的尺寸裁剪。示例性地,通常情况下,混合指令集中的第一条指令为用于搬入数据的搬移指令,在需要通过神经网络模型运算芯片进行运算之前,通用处理器可以将预处理后的待运算数据存入存储介质(此时预处理后的待运算数据,即可视为存储介质存储的上述目标数据),并通过寄存器或者开关触发神经网络模型运算芯片进行工作,神经网络模型运算芯片开始工作后,可以首先执行第一条用于搬入数据的搬移指令,将预处理后的待运算数据从存储介质搬入自身的片上缓存(此时预处理后的待运算数据,即可视为片上缓存存储的上述目标数据))。
进一步地,依次读取并执行混合指令集中的其它待执行指令,通常情况下,混合指令集中的最后一条待执行指令为用于数据搬出的指令,最后一条待执行指令对应的目标引擎为用于数据搬出的数据搬移引擎。当神经网络模型运算芯片执行最后一条待执行指令时,可以将对目标神经网络模型的最终运算结果搬出至存储介质(此时目标神经网络模型的最终运算结果,即可视为存储介质存储的上述目标数据),后续通用处理器可以从存储介质中获取神经网络模型运算芯片对目标神经网络模型的最终运算结果,并完成其他需要的后处理工作(例如图像信息的标注、文本信息的标注、图层处理等等)。
示例性地,上述图2b中的神经网络模型运算芯片的工作流程可以参见图4所示,该流程包括:S401,通过指令生成单元根据目标神经网络模型的模型数据生成上述混合指令集。S402,加载上述混合指令集到指令缓存单元。具体实现中,可以将指令单元生成的混合指令集,加载到指令缓存单元。它将持续作用于后续的输入,每一个输入的待运算数据都将按照整个混合指令执行一遍,完成整个模型的操作。
S403,持续输入待运算数据(例如图像数据、语音数据、文本数据等),依次完成推理运算。运算过程中,需要在线把混合指令集中的控制信息转换成更新指令。具体地,指令处理单元执行控制信息,对目标原始指令进行更新得到更新指令,在芯片内部实现指令的在线更新。进一步地,将更新指令输入指令解析单元,指令解析单元解析更新指令,从中提取出相关引擎需要的参数信息以及引擎之间的组合关系信息,然后将提取出的这些信息输入调度单元,调度单元将引擎需要的参数信息按照组合关系分发给各个引擎,引擎完成对应的运算或者数据搬移。混合指令集中的所有待执行指令全部执行完毕后,对应的整个模型运算完毕,将目标神经网络模型的最终运算结果交由通用处理器侧,由通用处理器侧完成其他需要的后处理工作。
可以看出,本申请实施提出的神经网络模型运算芯片,能够更高效的解决深度学习中有些神经网络模型需要在线生成新的指令时遇到的任务和数据反复在通用处理器和神经网络模型运算芯片之间交互带来效率降低的问题,可以更好的适应不断演进变化的深度学习网络。一方面,通过“混合指令集”的方法,可以兼容原始指令保持不受影响,控制信息具有可扩展性,灵活支持各种在线需要的处理;另一方面,通过增加指令处理单元,能够高效的访问片上缓存得到目标神经网络模型的中间运算结果,避免了中间运算结果搬移到通用处理器的耗时;再一方面,执行控制消息在神经网络模型运算芯片内部完成,避免和通用处理器进行任务的交互,减少等待时间,进而最大限度的发挥神经网络模型运算芯片本身的性能。
请参见图2c,图2b中的指令处理单元具体可以包括预解析单元、控制信息执行单元和目标指令缓存单元,其中:
预解析单元,用于从指令缓存单元存储的混合指令集中逐条读取待执行指令,并将混合指令集中的原始指令输入目标指令缓存单元,将混合指令集中的控制信息输入控制信息执行单元。
控制信息执行单元,用于基于控制信息对目标原始指令更新后得到更新指令,并将更新指令输入目标指令缓存单元。其中,控制信息执行单元,具体可用于执行控制信息包含的内容,对目标原始指令更新后得到更新指令,并将更新指令输入目标指令缓存单元。控制信息执行单元可以直接访问片上缓存,快速的访问片上缓存中的中间运算结果,结合控制信息完成需要的运算,刷新原始缓存中的目标原始指令,得到更新指令,最终指定更新指令在指令缓存单元中的位置,取出后输入目标指令缓存单元。控制信息执行单元面向AI应用,支持如下几种指令“获取操作数指令”、“运算指令”、“更新指令”和“跳转指令”。
示例性地,假设关于目标神经网络模型的混合指令集依序包括原始指令1、原始指令2、控制信息1和原始指令3,对于控制信息1包含如下指示:根据原始指令2引擎执行结果,依据控制信息操作,在原始指令2基础上在线生成目标指令2_1。这种情况下,预解析单元可以逐条读取混合指令集中的各条待执行指令,对于原始指令1和原始指令2不需要更新,直接将原始指令1和原始指令2输入目标指令缓存单元,由目标指令缓存单元送入指令解析单元,后续可以直接解析后驱动对应引擎执行。对于控制信息1,预解析单元可以将控制信息1输入控制信息执行单元,控制信息执行单元可以识别并执行控制信息1,从片上缓存中获取原始指令2的引擎执行结果(即中间运算结果),依据控制信息内容更新原始指令2,得到原始指令2对应的更新指令2_1,并指定下一条指令地址为更新指令2_1的起始位置,那么下一条指令会从更新指令2_1开始读取,并将读取到的更新指令2_1输入目标指令缓存单元,由目标指令缓存单元送入指令解析单元,后续可以直接解析后驱动对应引擎执行更新指令2_1。
进一步地,更新指令2_1执行完毕后,预解析单元读取原始指令3,对于原始指令3不需要更新,直接将原始指令3输入目标指令缓存单元,由目标指令缓存单元送入指令解析单元,后续可以直接解析后驱动对应引擎执行,若检测到原始指令3的头部信息指示出这是最后一条指令,那么整个模型执行完毕这条指令后结束。
目标指令缓存单元,用于存储原始指令和更新指令,并将原始指令和更新指令输入指令解析单元。后续,指令解析单元可以解析更新指令或者原始指令,从中提取出相关引擎需要的参数信息以及引擎之间的组合关系信息,然后将提取出的这些信息输入调度单元,调度单元将引擎需要的参数信息按照组合关系分发给各个引擎,驱动各个引擎开始工作,各个引擎完成对应的运算或者数据搬移。
由上述可知,本申请实施例提出的指令处理单元,可以直接对混合指令集中的各条待执行指令和计算引擎的结果(该结果存储在片上缓存,指令处理单元可直接从片上缓存获取)进行访问运算,避免了该数据搬移回通用处理器,有利于提高对原始指令的在线更新速度。
示例性地,上述指令处理单元的工作流程可以参见图5所示,通过预解析单元从混合指令集中逐条读取待执行指令,判断读取到的当前待执行指令是否为控制信息,若是,则通过控制信息执行单元读取该当前待执行指令对应的目标控制信息(通常为混合指令集中未执行的第一条控制信息),解析目标控制信息包括的控制指令的条数,执行目标控制信息中的第一条控制指令,依序读取并执行目标控制信息中的下一条控制指令,直到目标控制信息中的最后一条控制指令执行完毕,跳转到控制信息指定的新的指令(即上述更新指令)的起始点,读取该更新指令,并将该更新指令输入目标指令缓存单元缓存。进一步地,通过目标指令缓存单元将更新指令输入目标神经网络模型运算中的指令解析单元。可以看出,上述更新指令的生成,与目标神经网络模型的原始指令集解耦,动态生成的更新指令不影响原始指令的调度方式,灵活性和通用性强。
可以理解是,本申请实施例中的混合指令集包括原始指令和控制指令,但其中,控制指令是可选项,对于运算过程中需要在线更新参数的模型,才需要包括控制指令,对于CNN、RNN等运算过程中不需要在线更新参数的模型,则可以包括控制信息。本申请实施例提出的神经网络模型运算芯片,既可以适用于处理某些需要在线更新参数的模型的场景,也适用于广泛应用的CNN/RNN网络。
需要说明的是,图2a~图2c只是示意性地表征神经网络模型运算芯片和指令处理单元的结构,并不对本申请实施例所提出的神经网络模型运算芯片和指令处理单元的结构进行限定。
基于上述的神经网络模型运算芯片,本申请实施例提出了一种如图6所示的神经网络模型运算方法,该神经网络模型运算方法可以由神经网络模型运算芯片执行,该神经网络模型运算芯片为用于神经网络模型密集计算加速的芯片,神经网络模型运算芯片可以指GPU,FPGA和ASIC等芯片,该神经网络模型运算芯片部署于包括通用处理器的硬件系统。请参见图6所示,该神经网络模型运算方法可包括以下步骤S601-S603:
S601:从关于目标神经网络模型的混合指令集中获取当前待执行指令,该混合指令集中包括N(N为大于1的整数)条待执行指令,该混合指令集是基于目标神经网络模型的模型数据预先编译得到的,该N条待执行指令中包括原始指令和/或用于对目标神经网络模型的目标原始指令进行更新的控制信息。
其中,目标神经网络模型可以包括运算过程中不需要在线更新参数的模型(例如CNN、RNN等),也可以指运算过程中需要在线更新参数的模型。对于不需要在线更新参数的模型,对应混合指令集中仅包括原始指令;对于需要在线更新参数的模型,对应混合指令集中包括原始指令和控制信息。
S602:基于当前待执行指令确定目标指令,其中,若当前待执行指令为控制信息,则目标指令为逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令。或者,若当前待执行指令为原始指令,则目标指令为当前待执行指令。
其中,控制信息包括至少一条控制指令和待更新指令的标识信息,该至少一条控制指令包括以下任意一种或者多种:操作数指令、运算指令、更新指令和跳转指令,该标识信息可以用于标识待更新指令,例如可以为待更新指令的编号,或者待更新指令在混合指令集中的位置等等。
具体实现中,可以通过编译器,依照目标神经网络模型的模型数据预先编译关于目标神经网络模型的混合指令集,该混合指令集的具体编译方式可以参见上述对指令生成单元的相关描述,此处不再赘述。
进一步地,可以逐条读取上述混合指令集中的各条待执行指令,在读取过程中,可以对读取到的当前待执行指令进行解析,确定该当前待执行指令的类型(该类型包括静态指令和控制信息),若确定出该当前待执行指令为静态指令,则可以将当前执行指令本身确定为目标指令。
或者,若确定出该当前待执行指令为控制信息,则从混合指令集中将与上述标识信息匹配的原始指令确定为目标原始指令,并逐条读取并执行控制信息中的各条控制指令,以实现对目标原始指令的更新,将更新后的目标原始指令确定为目标指令。
其中,操作数指令包括操作数信息,操作数信息包括以下任意一种或者多种:指定常量、目标操作数存储的位置和长度,操作数指令用于指示获取目标操作数或者上述指定常量;运算指令包括以下任意一种或者多种:比较运算指令、加减运算指令和比较判断运算指令,运算指令用于指示进行目标运算,目标运算包括以下任意一种或者多种:比较运算、加减运算和比较判断运算;更新指令包括更新字段的位置和更新值的来源,更新指令用于指示依照来源获取更新值,并基于更新值在所述目标原始指令中更新目标字段,该目标字段为目标原始指令中更新字段的位置对应的字段;跳转指令,用于指示下一条执行的指令的起始地址。
原始指令和控制信息的头部均包括位置信息、长度信息和类型信息,位置信息用于指示原始指令或控制信息在混合指令中的起始位置,长度信息用于指示原始指令或控制信息的长度,类型信息用于指示原始指令或控制信息的类型,该类型包括原始指令类型和控制信息类型;原始指令的净荷包括引擎的配置信息,该配置信息包括以下任意一种或者多种:引擎的类型、引擎执行对应原始指令所需的参数信息和引擎之间的调用关系,该参数信息包括运算参数和/或操作对象的位置长度。控制信息的净荷包括至少一条控制指令。
其中,如果某一条原始指令为超长指令,也即,一条指令支持多个引擎组合工作,那么,该原始指令的配置信息还包括各个引擎之间的调用关系。示例性地,混合指令集中原始指令和控制信息这两类指令所包括的内容,可以参见表1所示。
表1
Figure 928784DEST_PATH_IMAGE001
示例性地,假设关于目标神经网络模型的混合指令集参见图3所示,依序包括原始指令1、原始指令2、控制信息1、原始指令3、控制信息2和原始指令4,对于控制信息1包含如下指示:根据原始指令2引擎执行结果,依据控制信息操作,在原始指令2基础上在线生成目标指令2_1;控制信息2包含如下指示:根据原始指令3引擎执行结果,依据控制信息操作,在原始指令4基础上在线生成目标指令4_1。那么,这种情况下,那么基于控制信息在线更新目标原始指令,得到所述目标原始指令对应的更新指令的流程可以参见图7所示。具体地,神经网络模型运算芯片可以逐条读取混合指令集中的各条待执行指令,对于原始指令1和原始指令2不需要更新,直接将原始指令1确定为目标指令1,原始指令2确定为目标指令2,后续可以直接解析后驱动对应引擎执行。对于控制信息1,可以基于控制信息1的指示,从片上缓存中获取原始指令2的引擎执行结果,依据控制信息内容在原始指令2基础上在线生成新的指令2_1(也即更新原始指令2,得到原始指令2对应的更新指令2_1),将更新指令2_1确定为目标指令2_1,并指定下一条指令地址为目标指令2_1的起始位置,那么下一条指令会从目标指令2_1开始读取,后续可以对目标指令2_1解析后驱动对应引擎执行目标指令2_1。
进一步地,目标指令2_1执行完毕后,读取原始指令3,对于原始指令3不需要更新,直接将原始指令3确定为目标指令3,后续直接解析后驱动对应引擎执行目标指令3。目标指令3执行完毕后,读取控制信息2,基于控制信息2的指示,从片上缓存读取目标指令3的引擎执行结果,根据控制信息内容更新原始指令4为目标指令4_1,指定下一条指令地址为目标指令4_1的起始位置。那么下一条指令会从目标指令4_1开始读取,后续可以对目标指令4_1解析后驱动对应引擎执行目标指令4_1。若检测到目标指令4_1的头部信息指示出这是最后一条指令,那么整个模型执行完毕这条指令后结束。
又例如,结合上述图7对应的示例,假设控制信息1表征的更具体的信息为:检测片上缓存A地址中的内容,如果等于B,则重新执行指令2,并且把指令2中C字段更新为D;否则执行下一条指令3。这种情况,基于控制信息1在线更新指令的处理流程为:
1、读取并执行控制信息1中的获取操作数指令,将把A地址中的内容确定为目标操作数,把A地址中的内容读取到处理单元内部。
2、读取并执行控制信息1中的运算指令,执行比较运算,将A地址中的内容与B进行比较。
3、如果比较运算结果为A地址中的内容与B一致,则读取并执行控制信息1中的更新指令,把指令2的C字段更新为D,从而得到更新指令2_1,然后通过控制信息1中的跳转指令,指定下一条执行指令的地址为更新指令2_1的起始地址。
4、如果比较运算结果为A地址中的内容与B不一致,则不执行更新操作,通过控制信息1中的跳转指令,指定下一条执行指令的地址为原始指令3的起始地址。
由上述可知,本申请实施例中的控制信息部分面向AI应用设计,仅需要获取操作数、运算、更新和跳转这几种操作,即可完成指令的在线更新,实现复杂度低,消耗芯片面积小,以更小的代价完成了和神经网络模型运算芯片内部的交互。
S603:解析目标指令,并基于解析结果调度目标引擎执行目标指令指示的目标操作,该目标操作包括运算操作或数据搬移操作,该目标引擎为预配置的多个引擎中的任一个。
其中,该多个引擎可以包括计算引擎和数据搬移引擎,具体地,针对不同类型的运算,计算引擎也可以包括多种类型的计算引擎,例如用于卷积的计算引擎,用于池化的计算引擎;由于目标神经网络模型运算过程中,涉及相应数据的搬入和搬出,相应地,数据搬移引擎也可以包括用于搬出数据的数据搬移引擎和用于搬入数据的数据搬移引擎。此处的数据搬入和搬出,可以理解为将数据从存储介质搬入神经网络模型运算芯片的片上缓存,将数据从片上缓存搬出至存储介质。上述运算操作可以与计算引擎的类型匹配,例如包括卷积计算、池化计算等等;数据搬移操作例如可以为数据搬出操作、数据搬入操作。
当目标指令为超长指令时,该指令可以支持多个引擎组合工作,这种情况下,该目标指令的配置信息还包括多个引擎之间的调用关系。具体实现中,假设目标指令为超长指令,目标指令对应的待调用引擎包括多个,解析目标指令得到的解析结果包括各个待调用引擎的配置信息,那么,上述基于解析结果调度与目标指令匹配的目标引擎,执行目标指令指示的目标操的具体实现方式可以为:从各个待调用引擎的配置信息中获取各个待调用引擎的类型、执行目标指令所需的参数信息,以及各个待调用引擎之间的调用关系,将预配置的多个引擎中与各个待调用引擎的类型匹配的引擎,确定为目标引擎。进一步地,依照各个待调用引擎之间的调用关系,依序向各个目标引擎分发执行目标指令所需的参数信息,并依序调用各个目标引擎执行目标指令指示的目标操作。
其中,待调用引擎的类型可以包括不同运算类型的计算引擎(例如卷积计算引擎、池化计算引擎等等),也可以包括用于搬出数据的数据搬移引擎和用于搬入数据的数据搬移引擎。上述各个目标引擎分发执行目标指令所需的参数信息,例如可以为计算引擎待计算数据在片上缓存的存储地址,搬移引擎待搬移数据在片上缓存或者存储介质上的存储地址等等。
示例性地,假设目标指令对应的待调用引擎包括待调用引擎1和待调用引擎2,待调用引擎1的类型为搬入数据的数据搬移引擎,待调用引擎2的类型为卷积计算引擎,待调用引擎1和待调用引擎2之间的调用关系为:待调用引擎1→待调用引擎2。这种情况下,将预配置的多个引擎中的用于搬入数据的数据搬移引擎确定为与待调用引擎1的类型匹配的目标引擎1,将预配置的多个引擎中的卷积计算引擎确定为与待调用引擎2的类型匹配的目标引擎2,依照各个待调用引擎之间的调用关系,依序首先向目标引擎1分发执行目标指令所需的参数信息,调用目标引擎1执行目标指令指示的数据搬移操作。进一步地,在数据搬移操作完成后,首先向目标引擎2分发执行目标指令所需的参数信息,调用目标引擎2执行目标指令指示的卷积计算。
可以理解的是,本申请实施例可以依照S601-S603的方式,读取并执行混合指令集中的所有待执行指令,当混合指令集中的所有待执行指令全部执行完毕后,对应的整个模型运算完毕,可以将目标神经网络模型的最终运算结果交由通用处理器侧,由通用处理器侧完成其他需要的后处理工作(例如对图像信息的标注、图层处理等等)。
本申请实施例中,神经网络模型运算芯片可以从关于目标神经网络模型的混合指令集中获取当前待执行指令,若当前待执行指令为控制信息,则将逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令确定为目标指令。进一步地,解析目标指令,并基于解析结果调度目标引擎执行目标指令指示的目标操作。可以在神经网络模型运算芯片内部在线更新指令,减少与其它设备(如通用处理器)的交互,有利于更加高效地实现对需要在线更新参数的模型的运算。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述实施例中描述的相应方法。
再请参见图8,是本申请实施例的一种神经网络模型运算装置的结构示意图,本申请实施例的神经网络模型运算装置可以设置于上述神经网络模型运算芯片中,该装置包括:
获取模块80,用于从关于目标神经网络模型的混合指令集中获取当前待执行指令,所述混合指令集中包括N条待执行指令,所述混合指令集是基于所述目标神经网络模型的模型数据预先编译得到的,所述N条待执行指令中包括原始指令和/或用于对所述目标神经网络模型的目标原始指令进行更新的控制信息,所述N为大于1的整数;
处理模块81,用于基于所述当前待执行指令确定目标指令;其中,若所述当前待执行指令为控制信息,则所述目标指令为逐条获取并执行所述控制信息中的各条控制指令,得到的所述目标原始指令对应的更新指令;
所述处理模块81,还用于解析所述目标指令,并基于解析结果调度目标引擎执行所述目标指令指示的目标操作,所述目标操作包括运算操作或数据搬移操作,所述目标引擎为预配置的多个引擎中的任一个。
在一个实施例中,所述处理模块81,还用于若所述当前待执行指令为原始指令,则所述目标指令为所述当前待执行指令。
在一个实施例中,所述控制信息包括至少一条控制指令和待更新指令的标识信息,所述至少一条控制指令包括以下任意一种或者多种:操作数指令、运算指令、更新指令和跳转指令,所述处理模块81,具体用于从所述混合指令集中将与所述标识信息匹配的原始指令确定为目标原始指令;逐条读取并执行所述控制信息中的各条控制指令,以实现对所述目标原始指令的更新;将更新后的目标原始指令确定为目标指令。
在一个实施例中,所述操作数指令包括操作数信息,所述操作数信息包括以下任意一种或者多种:指定常量、目标操作数存储的位置和长度,所述操作数指令用于指示获取所述目标操作数或者所述指定常量;所述运算指令包括以下任意一种或者多种:比较运算指令、加减运算指令和比较判断运算指令,所述运算指令用于指示进行目标运算,所述目标运算包括以下任意一种或者多种:比较运算、加减运算和比较判断运算;所述更新指令包括更新字段的位置和更新值的来源,所述更新指令用于指示依照所述来源获取更新值,并基于所述更新值在所述目标原始指令中更新目标字段,所述目标字段为所述目标原始指令中所述更新字段的位置对应的字段;所述跳转指令,用于指示下一条执行的指令的起始地址。
在一个实施例中,所述原始指令和所述控制信息的头部均包括位置信息、长度信息和类型信息,所述位置信息用于指示所述原始指令或所述控制信息在所述混合指令中的起始位置,所述长度信息用于指示所述原始指令或所述控制信息的长度,所述类型信息用于指示所述原始指令或所述控制信息的类型,所述类型包括原始指令类型和控制信息类型;所述原始指令的净荷包括引擎的配置信息,所述配置信息包括以下任意一种或者多种:所述引擎的类型、所述引擎执行所述原始指令所需的参数信息和所述引擎之间的调用关系,所述参数信息包括运算参数和/或操作对象的位置长度;所述控制信息的净荷包括至少一条控制指令。
在一个实施例中,所述目标指令对应的待调用引擎包括多个,所述解析结果包括各个待调用引擎的配置信息,所述处理模块81,还具体用于从所述各个待调用引擎的配置信息中获取所述各个待调用引擎的类型、执行所述目标指令所需的参数信息,以及所述各个待调用引擎之间的调用关系;将所述预配置的多个引擎中与所述各个待调用引擎的类型匹配的引擎,确定为目标引擎;依照所述各个待调用引擎之间的调用关系,向各个目标引擎分发执行所述目标指令所需的参数信息,并调用所述各个目标引擎执行所述目标指令指示的目标操作。
在本申请实施例中,上述各个模块的具体实现可参考前述各个附图所对应的实施例中相关内容的描述。
本申请实施例中的神经网络模型运算装置可从关于目标神经网络模型的混合指令集中获取当前待执行指令,若当前待执行指令为控制信息,则将逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令确定为目标指令。进一步地,解析目标指令,并基于解析结果调度目标引擎执行目标指令指示的目标操作。可以在内部在线更新指令,减少与其它设备(如通用处理器)的交互,有利于更加高效地实现对需要在线更新参数的模型的运算。
再请参见图9,是本申请实施例的一种计算机设备的结构示意图,本申请实施例的计算机设备包括供电模块等结构,计算机设备上安装有神经网络模型运算芯片,该神经网络运算芯片包括处理器90和存储装置91。处理器90和存储装置91之间可以交互数据,由处理器90实现相应的神经网络模型运算功能。
存储装置91可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置91也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;存储装置91还可以包括上述种类的存储器的组合。
处理器90可以为用于神经网络模型密集计算加速的专用处理器,例如可以为GPU、FPGA和ASIC等等。
在一个实施例中,存储装置91用于存储程序指令。处理器90可以调用程序指令,实现如本申请实施例中上述涉及的各种方法。
在第一个可能的实施方式中,计算机设备中的处理器90,调用存储装置91中存储的程序指令,用于从关于目标神经网络模型的混合指令集中获取当前待执行指令,混合指令集中包括N条待执行指令,混合指令集是基于目标神经网络模型的模型数据预先编译得到的,N条待执行指令中包括原始指令和/或用于对目标神经网络模型的目标原始指令进行更新的控制信息,N为大于1的整数;基于当前待执行指令确定目标指令;其中,若当前待执行指令为控制信息,则目标指令为逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令;解析目标指令,并基于解析结果调度目标引擎执行目标指令指示的目标操作,目标操作包括运算操作或数据搬移操作,目标引擎为预配置的多个引擎中的任一个。
在一个实施例中,处理器90,还用于:
从关于目标神经网络模型的混合指令集中获取当前待执行指令,该混合指令集中包括N条待执行指令,混合指令集是基于目标神经网络模型的模型数据预先编译得到的,N条待执行指令中包括原始指令和/或用于对目标神经网络模型的目标原始指令进行更新的控制信息,N为大于1的整数;
基于当前待执行指令确定目标指令;其中,若当前待执行指令为控制信息,则目标指令为逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令;
解析目标指令,并基于解析结果调度目标引擎执行所述目标指令指示的目标操作,目标操作包括运算操作或数据搬移操作,目标引擎为预配置的多个引擎中的任一个。
在一个实施例中,处理器90,还用于若当前待执行指令为原始指令,则目标指令为当前待执行指令。
在一个实施例中,控制信息包括至少一条控制指令和待更新指令的标识信息,至少一条控制指令包括以下任意一种或者多种:操作数指令、运算指令、更新指令和跳转指令,处理器90,具体用于:
从混合指令集中将与标识信息匹配的原始指令确定为目标原始指令;
逐条读取并执行控制信息中的各条控制指令,以实现对目标原始指令的更新;
将更新后的目标原始指令确定为目标指令。
在一个实施例中,操作数指令包括操作数信息,操作数信息包括以下任意一种或者多种:指定常量、目标操作数存储的位置和长度,操作数指令用于指示获取目标操作数或者指定常量;
运算指令包括以下任意一种或者多种:比较运算指令、加减运算指令和比较判断运算指令,运算指令用于指示进行目标运算,目标运算包括以下任意一种或者多种:比较运算、加减运算和比较判断运算;
更新指令包括更新字段的位置和更新值的来源,更新指令用于指示依照该来源获取更新值,并基于更新值在目标原始指令中更新目标字段,目标字段为目标原始指令中更新字段的位置对应的字段;
跳转指令,用于指示下一条执行的指令的起始地址。
在一个实施例中,原始指令和控制信息的头部均包括位置信息、长度信息和类型信息,位置信息用于指示原始指令或控制信息在混合指令中的起始位置,长度信息用于指示原始指令或控制信息的长度,类型信息用于指示原始指令或控制信息的类型,该类型包括原始指令类型和控制信息类型;
原始指令的净荷包括引擎的配置信息,配置信息包括以下任意一种或者多种:引擎的类型、引擎执行所述原始指令所需的参数信息和引擎之间的调用关系,参数信息包括运算参数和/或操作对象的位置长度;
控制信息的净荷包括至少一条控制指令。
在一个实施例中,所述目标指令对应的待调用引擎包括多个,所述解析结果包括各个待调用引擎的配置信息,处理器90,具体用于:
从各个待调用引擎的配置信息中获取各个待调用引擎的类型、执行目标指令所需的参数信息,以及各个待调用引擎之间的调用关系;
将预配置的多个引擎中与各个待调用引擎的类型匹配的引擎,确定为目标引擎;
依照各个待调用引擎之间的调用关系,向各个目标引擎分发执行目标指令所需的参数信息,并调用各个目标引擎执行目标指令指示的目标操作。
在本申请实施例中,上述处理器90的具体实现可参考前述各个附图所对应的实施例中相关内容的描述。
本申请实施例中的计算机设备可通过神经网络运算芯片从关于目标神经网络模型的混合指令集中获取当前待执行指令,若当前待执行指令为控制信息,则将逐条获取并执行控制信息中的各条控制指令,得到的目标原始指令对应的更新指令确定为目标指令。进一步地,解析目标指令,并基于解析结果调度目标引擎执行目标指令指示的目标操作。可以在内部在线更新指令,减少与其它设备(如通用处理器)的交互,有利于更加高效地实现对需要在线更新参数的模型的运算。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所描述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (13)

1.一种神经网络模型运算芯片,其特征在于,该芯片包括指令处理单元、指令解析单元、调度单元和用于数据搬移与运算的执行单元,所述执行单元包括预配置的多个引擎,其中:
指令处理单元,用于向所述指令解析单元提供目标指令,所述目标指令包括目标神经网络模型的原始指令,或者基于目标神经网络模型的控制信息对目标原始指令更新后得到的更新指令,所述目标原始指令为所述目标神经网络模型的原始指令中与所述控制信息匹配的原始指令;
所述指令解析单元,用于解析所述目标指令,并将解析结果输入调度单元;
所述调度单元,用于基于所述解析结果调度目标引擎执行所述目标指令指示的目标操作,所述目标操作包括运算操作或数据搬移操作,所述目标引擎为所述执行单元中的任一个引擎。
2.如权利要求1所述的芯片,其特征在于,所述芯片还包括指令生成单元、指令缓存单元和片上缓存,其中:
所述指令生成单元,用于通过编译器,依照目标神经网络模型的模型数据编译所述目标神经网络模型的混合指令集,所述混合指令集包括N条待执行指令,所述N条待执行指令包括原始指令和/或用于对所述目标原始指令进行更新的控制信息,所述N为大于1的整数;
所述指令缓存单元,用于存储所述混合指令集;
所述片上缓存,用于存储所述目标神经网络模型运算所需的目标数据。
3.如权利要求2所述的芯片,其特征在于,所述芯片部署于硬件系统,所述硬件系统还包括通用处理器,所述目标数据包括以下任意一种:由所述通用处理器预处理后的待运算数据、所述目标神经网络模型运算的中间运算结果和最终运算结果,所述待运算数据包括图像数据、语音数据或文本数据。
4.如权利要求2所述的芯片,其特征在于,所述指令处理单元包括:预解析单元、控制信息执行单元和目标指令缓存单元,其中:
所述预解析单元,用于从所述指令缓存单元存储的所述混合指令集中逐条读取待执行指令,并将所述混合指令集中的原始指令输入所述目标指令缓存单元,将所述混合指令集中的控制信息输入所述控制信息执行单元;
所述控制信息执行单元,用于基于所述控制信息对目标原始指令更新后得到更新指令,并将所述更新指令输入所述目标指令缓存单元;
所述目标指令缓存单元,用于存储所述原始指令和所述更新指令,并将所述原始指令和所述更新指令输入所述指令解析单元。
5.一种神经网络模型运算方法,其特征在于,应用于神经网络模型运算芯片,所述方法包括:
从关于目标神经网络模型的混合指令集中获取当前待执行指令,所述混合指令集中包括N条待执行指令,所述混合指令集是基于所述目标神经网络模型的模型数据预先编译得到的,所述N条待执行指令中包括原始指令和/或用于对所述目标神经网络模型的目标原始指令进行更新的控制信息,所述N为大于1的整数;
基于所述当前待执行指令确定目标指令;其中,若所述当前待执行指令为控制信息,则所述目标指令为逐条获取并执行所述控制信息中的各条控制指令,得到的所述目标原始指令对应的更新指令;
解析所述目标指令,并基于解析结果调度目标引擎执行所述目标指令指示的目标操作,所述目标操作包括运算操作或数据搬移操作,所述目标引擎为预配置的多个引擎中的任一个。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:若所述当前待执行指令为原始指令,则所述目标指令为所述当前待执行指令。
7.如权利要求6所述的方法,其特征在于,所述控制信息包括至少一条控制指令和待更新指令的标识信息,所述至少一条控制指令包括以下任意一种或者多种:操作数指令、运算指令、更新指令和跳转指令,所述目标指令为逐条获取并执行所述控制信息中的各条控制指令,得到的所述目标原始指令对应的更新指令,包括:
从所述混合指令集中将与所述标识信息匹配的原始指令确定为目标原始指令;
逐条读取并执行所述控制信息中的各条控制指令,以实现对所述目标原始指令的更新;
将更新后的目标原始指令确定为目标指令。
8.如权利要求7所述的方法,其特征在于,所述操作数指令包括操作数信息,所述操作数信息包括以下任意一种或者多种:指定常量、目标操作数存储的位置和长度,所述操作数指令用于指示获取所述目标操作数或者所述指定常量;
所述运算指令包括以下任意一种或者多种:比较运算指令、加减运算指令和比较判断运算指令,所述运算指令用于指示进行目标运算,所述目标运算包括以下任意一种或者多种:比较运算、加减运算和比较判断运算;
所述更新指令包括更新字段的位置和更新值的来源,所述更新指令用于指示依照所述来源获取更新值,并基于所述更新值在所述目标原始指令中更新目标字段,所述目标字段为所述目标原始指令中所述更新字段的位置对应的字段;
所述跳转指令,用于指示下一条执行的指令的起始地址。
9.如权利要求5或6所述的方法,其特征在于,所述原始指令和所述控制信息的头部均包括位置信息、长度信息和类型信息,所述位置信息用于指示所述原始指令或所述控制信息在所述混合指令中的起始位置,所述长度信息用于指示所述原始指令或所述控制信息的长度,所述类型信息用于指示所述原始指令或所述控制信息的类型,所述类型包括原始指令类型和控制信息类型;
所述原始指令的净荷包括引擎的配置信息,所述配置信息包括以下任意一种或者多种:所述引擎的类型、所述引擎执行所述原始指令所需的参数信息和所述引擎之间的调用关系,所述参数信息包括运算参数和/或操作对象的位置长度;
所述控制信息的净荷包括至少一条控制指令。
10.如权利要求9所述的方法,其特征在于,所述目标指令对应的待调用引擎包括多个,所述解析结果包括各个待调用引擎的配置信息,所述基于解析结果调度与所述目标指令匹配的目标引擎,执行所述目标指令指示的目标操作,包括:
从所述各个待调用引擎的配置信息中获取所述各个待调用引擎的类型、执行所述目标指令所需的参数信息,以及所述各个待调用引擎之间的调用关系;
将所述预配置的多个引擎中与所述各个待调用引擎的类型匹配的引擎,确定为目标引擎;
依照所述各个待调用引擎之间的调用关系,向各个目标引擎分发执行所述目标指令所需的参数信息,并调用所述各个目标引擎执行所述目标指令指示的目标操作。
11.一种神经网络模型运算装置,其特征在于,所述装置包括:
获取模块,用于从关于目标神经网络模型的混合指令集中获取当前待执行指令,所述混合指令集中包括N条待执行指令,所述混合指令集是基于所述目标神经网络模型的模型数据预先编译得到的,所述N条待执行指令中包括原始指令和/或用于对所述目标神经网络模型的目标原始指令进行更新的控制信息,所述N为大于1的整数;
处理模块,用于基于所述当前待执行指令确定目标指令;其中,若所述当前待执行指令为控制信息,则所述目标指令为逐条获取并执行所述控制信息中的各条控制指令,得到的所述目标原始指令对应的更新指令;
所述处理模块,还用于解析所述目标指令,并基于解析结果调度目标引擎执行所述目标指令指示的目标操作,所述目标操作包括运算操作或数据搬移操作,所述目标引擎为预配置的多个引擎中的任一个。
12.一种计算机设备,其特征在于,所述计算机设备上安装有神经网络模型运算芯片,所述神经网络运算芯片包括处理器和存储装置,所述处理器和存储装置相互连接,其中,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求5-10任一项所述的方法。
13.一种计算机存储介质,其特征在于,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现如权利要求5-10任一项所述的方法。
CN202010780693.6A 2020-08-06 2020-08-06 一种神经网络模型运算芯片、方法、装置、设备及介质 Active CN111651207B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010780693.6A CN111651207B (zh) 2020-08-06 2020-08-06 一种神经网络模型运算芯片、方法、装置、设备及介质
PCT/CN2021/106148 WO2022028220A1 (zh) 2020-08-06 2021-07-14 一种神经网络模型运算芯片、方法、装置、设备及介质
US17/954,163 US20230021716A1 (en) 2020-08-06 2022-09-27 Neural network model computing chip, method, and apparatus, device, and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010780693.6A CN111651207B (zh) 2020-08-06 2020-08-06 一种神经网络模型运算芯片、方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN111651207A true CN111651207A (zh) 2020-09-11
CN111651207B CN111651207B (zh) 2020-11-17

Family

ID=72348651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010780693.6A Active CN111651207B (zh) 2020-08-06 2020-08-06 一种神经网络模型运算芯片、方法、装置、设备及介质

Country Status (3)

Country Link
US (1) US20230021716A1 (zh)
CN (1) CN111651207B (zh)
WO (1) WO2022028220A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111832720A (zh) * 2020-09-21 2020-10-27 电子科技大学 一种可配置神经网络推理与在线学习融合计算电路
WO2022028220A1 (zh) * 2020-08-06 2022-02-10 腾讯科技(深圳)有限公司 一种神经网络模型运算芯片、方法、装置、设备及介质
CN114428630A (zh) * 2022-03-31 2022-05-03 浙江地芯引力科技有限公司 芯片算法升级方法、装置和芯片
WO2022161059A1 (zh) * 2021-01-29 2022-08-04 展讯通信(上海)有限公司 一种模型运行方法及相关装置
CN115994115A (zh) * 2023-03-22 2023-04-21 成都登临科技有限公司 芯片控制方法、芯片组及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116185532B (zh) * 2023-04-18 2023-07-21 之江实验室 一种任务执行系统、方法、存储介质及电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992329A (zh) * 2017-07-20 2018-05-04 上海寒武纪信息科技有限公司 一种计算方法及相关产品
CN108108190A (zh) * 2017-12-15 2018-06-01 北京中科寒武纪科技有限公司 一种计算方法及相关产品
CN109242091A (zh) * 2018-09-03 2019-01-18 郑州云海信息技术有限公司 图像识别方法、装置、设备及可读存储介质
CN109389213A (zh) * 2017-08-02 2019-02-26 上海寒武纪信息科技有限公司 存储装置及方法、数据处理装置及方法、电子装置
CN109409510A (zh) * 2018-09-14 2019-03-01 中国科学院深圳先进技术研究院 神经元电路、芯片、系统及其方法、存储介质
WO2019141014A1 (zh) * 2018-01-16 2019-07-25 腾讯科技(深圳)有限公司 基于芯片的指令集处理方法、装置及存储介质
CN110147251A (zh) * 2019-01-28 2019-08-20 腾讯科技(深圳)有限公司 用于计算神经网络模型的架构、芯片及计算方法
CN110858151A (zh) * 2018-08-22 2020-03-03 上海寒武纪信息科技有限公司 一种运算流水级重构方法、运算方法和可读存储介质
CN110909870A (zh) * 2018-09-14 2020-03-24 中科寒武纪科技股份有限公司 训练装置及方法
CN111045732A (zh) * 2019-12-05 2020-04-21 腾讯科技(深圳)有限公司 数据处理方法、芯片、设备及存储介质
CN111352896A (zh) * 2020-03-03 2020-06-30 腾讯科技(深圳)有限公司 人工智能加速器、设备、芯片以及数据处理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6745019B2 (ja) * 2015-10-29 2020-08-26 株式会社Preferred Networks 情報処理装置及び情報処理方法
CN110058882B (zh) * 2019-03-14 2023-01-06 深圳市比昂芯科技有限公司 一种用于cnn加速的opu指令集定义方法
CN110347399B (zh) * 2019-05-31 2023-06-06 深圳绿米联创科技有限公司 数据处理方法、实时计算系统以及信息系统
CN111651207B (zh) * 2020-08-06 2020-11-17 腾讯科技(深圳)有限公司 一种神经网络模型运算芯片、方法、装置、设备及介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107992329A (zh) * 2017-07-20 2018-05-04 上海寒武纪信息科技有限公司 一种计算方法及相关产品
CN109389213A (zh) * 2017-08-02 2019-02-26 上海寒武纪信息科技有限公司 存储装置及方法、数据处理装置及方法、电子装置
CN108108190A (zh) * 2017-12-15 2018-06-01 北京中科寒武纪科技有限公司 一种计算方法及相关产品
WO2019141014A1 (zh) * 2018-01-16 2019-07-25 腾讯科技(深圳)有限公司 基于芯片的指令集处理方法、装置及存储介质
CN110858151A (zh) * 2018-08-22 2020-03-03 上海寒武纪信息科技有限公司 一种运算流水级重构方法、运算方法和可读存储介质
CN109242091A (zh) * 2018-09-03 2019-01-18 郑州云海信息技术有限公司 图像识别方法、装置、设备及可读存储介质
CN109409510A (zh) * 2018-09-14 2019-03-01 中国科学院深圳先进技术研究院 神经元电路、芯片、系统及其方法、存储介质
CN110909870A (zh) * 2018-09-14 2020-03-24 中科寒武纪科技股份有限公司 训练装置及方法
CN110147251A (zh) * 2019-01-28 2019-08-20 腾讯科技(深圳)有限公司 用于计算神经网络模型的架构、芯片及计算方法
CN111045732A (zh) * 2019-12-05 2020-04-21 腾讯科技(深圳)有限公司 数据处理方法、芯片、设备及存储介质
CN111352896A (zh) * 2020-03-03 2020-06-30 腾讯科技(深圳)有限公司 人工智能加速器、设备、芯片以及数据处理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022028220A1 (zh) * 2020-08-06 2022-02-10 腾讯科技(深圳)有限公司 一种神经网络模型运算芯片、方法、装置、设备及介质
CN111832720A (zh) * 2020-09-21 2020-10-27 电子科技大学 一种可配置神经网络推理与在线学习融合计算电路
CN111832720B (zh) * 2020-09-21 2020-12-29 电子科技大学 一种可配置神经网络推理与在线学习融合计算电路
WO2022161059A1 (zh) * 2021-01-29 2022-08-04 展讯通信(上海)有限公司 一种模型运行方法及相关装置
CN114428630A (zh) * 2022-03-31 2022-05-03 浙江地芯引力科技有限公司 芯片算法升级方法、装置和芯片
CN115994115A (zh) * 2023-03-22 2023-04-21 成都登临科技有限公司 芯片控制方法、芯片组及电子设备
CN115994115B (zh) * 2023-03-22 2023-10-20 成都登临科技有限公司 芯片控制方法、芯片组及电子设备

Also Published As

Publication number Publication date
US20230021716A1 (en) 2023-01-26
WO2022028220A1 (zh) 2022-02-10
CN111651207B (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN111651207B (zh) 一种神经网络模型运算芯片、方法、装置、设备及介质
US11093225B2 (en) High parallelism computing system and instruction scheduling method thereof
CN111104120B (zh) 神经网络编译方法、系统及相应异构计算平台
CN110659069B (zh) 用于执行神经网络计算的指令调度方法及相应计算系统
KR102479264B1 (ko) 트랜스포머 기반 생성 작업들에 대한 추론 시스템을 위한 동적 배칭
CN111488177A (zh) 数据处理方法、装置、计算机设备和存储介质
US20210089873A1 (en) Apparatus and system for execution of neural network
US20240062116A1 (en) Model processing method and apparatus
CN111352896B (zh) 人工智能加速器、设备、芯片以及数据处理方法
CN109858610A (zh) 一种卷积神经网络的加速方法、装置、设备及存储介质
Balkenius et al. Ikaros: Building cognitive models for robots
CN117032807A (zh) 基于risc-v指令集的ai加速处理器架构
CN114286985A (zh) 用于预测内核调谐参数的方法和设备
CN111460832A (zh) 对象编码的方法、装置、系统、设备及计算机存储介质
CN116821307B (zh) 内容交互方法、装置、电子设备和存储介质
CN112990461B (zh) 构建神经网络模型的方法、装置、计算机设备和存储介质
US20210034900A1 (en) Method and apparatus for extracting image data in parallel from multiple convolution windows, device, and computer-readable storage medium
CN112748953A (zh) 基于神经网络模型的数据处理方法、装置及电子设备
CN111667060B (zh) 深度学习算法的编译方法、装置及相关产品
KR102498595B1 (ko) 트랜스포머 기반 생성 작업들에 대한 추론 시스템을 위한 선택적 배칭
CN115860066A (zh) 一种基于批处理的神经网络推理流水线复用的方法
CN112819684B (zh) 一种面向图像文本识别的加速装置
Kempf et al. The ZuSE-KI-mobil AI accelerator SOC: overview and a functional safety perspective
CN114298329A (zh) 一种模型训练方法、装置、设备及存储介质
CN111475775B (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
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40028942

Country of ref document: HK