CN113918221A - 运算模块、流水优化方法及相关产品 - Google Patents

运算模块、流水优化方法及相关产品 Download PDF

Info

Publication number
CN113918221A
CN113918221A CN202010654553.4A CN202010654553A CN113918221A CN 113918221 A CN113918221 A CN 113918221A CN 202010654553 A CN202010654553 A CN 202010654553A CN 113918221 A CN113918221 A CN 113918221A
Authority
CN
China
Prior art keywords
pipeline
instruction
target
vector
data
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
CN202010654553.4A
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.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN202010654553.4A priority Critical patent/CN113918221A/zh
Publication of CN113918221A publication Critical patent/CN113918221A/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Abstract

本申请公开了一种运算模块、流水优化方法及相关产品,应用于组合处理装置,该组合处理装置包括电子设备、接口装置、其他处理装置和存储装置,电子设备中可以包括一个或多个计算装置,该计算装置可以配置用于执行流水优化方法。采用本申请实施例可以节省计算资源。

Description

运算模块、流水优化方法及相关产品
技术领域
本申请涉及数据处理技术领域,尤其涉及一种运算模块、流水优化方法及相关产品。
背景技术
传统的处理器设计中使用单一流水线在同一个运算模块中实现多种运算功能,该流水线一般只有1个入口和1个出口,使用同一条运算通路,并且流水线中各个流水级之间通过握手协议传递数据和控制信号,但是,这样的设计会导致不同种类的运算指令都要经过所有的流水级,即使在某些流水级中未进行任何操作,而只是原样传递数据和控制信息,也需要经过所有的流水级,导致计算延迟,降低了计算效率。
发明内容
本申请实施例提供一种运算模块、流水优化方法及相关产品,能够减小计算延迟,并提升计算效率。
第一方面,本申请实施例提供了一种运算模块,所述运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,所述K、所述P、所述Q均为大于或等于2的整数;所述K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路;
所述运算模块用于依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作。
第二方面,本申请实施例还提供了一种流水优化方法,应用于运算模块,所述运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,所述K、所述P、所述Q均为大于或等于2的整数;所述K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路;所述方法包括:
获取目标指令;
依据目标指令所需要的计算资源配置所述运算电路、所述流水线入口和所述流水线出口,得到相应的目标流水路径;
依据所述目标流水路径执行与所述目标指令对应的运算操作。
第三方面,本申请实施例还提供了一种神经网络芯片,所述神经网络芯片包括如第一方面中任一方面所述的运算模块,或者,用于执行如第二方面所述的方法。
第四方面,本申请实施例还提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如第三方面所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
第五方面,本申请实施例还提供了一种电子设备,所述电子设备包括如第一方面任一项所述的运算模块,或者,所述电子设备用于执行如第二方面所述的方法,或者,所述电子设备包括如第三方面所述的神经网络芯片,或者,所述电子设备包括如第四方面所述的板卡。
第六方面,本申请实施例还提供了一种流水优化装置,应用于运算模块,所述运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,所述K、所述P、所述Q均为大于或等于2的整数;所述K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路;所述方法包括:获取单元、配置单元和执行单元,其中,
所述获取单元,用于获取目标指令;
所述配置单元,用于依据目标指令所需要的计算资源配置所述运算电路、所述流水线入口和所述流水线出口,得到相应的目标流水路径;
所述执行单元,用于依据所述目标流水路径执行与所述目标指令对应的运算操作。
第七方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第二方面中所描述的部分或全部步骤。
第八方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第二方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
采用本申请实施例,具备如下有益效果:
可以看出,在本申请实施例的所涉及的运算模块、流水优化方法及相关产品,运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,K、P、Q均为大于或等于2的整数,K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路,该运算模块用于依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作,如此,能够依据指令所需的计算资源灵活配置流水线,使得指令可以实现最小的计算延迟,并利用最少的计算资源在流水线中完成计算,提升了计算效率。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本申请实施例提供的一种运算模块的结构示意图;
图1B为本申请实施例提供的一种流水线的演示示意图;
图2为本申请实施例提供的一种流水优化方法的流程示意图;
图3为本申请实施例提供的一种电子设备的结构示意图;
图4是本申请实施例提供的一种流水优化装置的功能单元组成框图;
图5是本申请实施例提供的一种组合处理装置的功能单元组成框图;
图6是本申请实施例提供的一种板卡的功能单元组成框图。
具体实施方式
以下分别进行详细说明。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
电子设备可以包括各种具有无线通信功能的手持设备、车载设备、无线耳机、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(userequipment,UE),移动台(mobile station,MS),终端设备(terminal device)等等,电子设备例如可以为智能手机、平板电脑、耳机盒等等。为方便描述,上面提到的设备统称为电子设备。
上述电子设备可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。
本申请实施例中,运算模块可以为处理器、神经网络芯片、板卡,上述电子设备等等,还可以应用于实现本申请实施例所描述的方法的虚拟或者实体装置,在此不做限定。
相关技术中,CPU中的单一流水线运算单元具有如下缺点:
1、入口和出口均只有1个,不同种类的运算指令都要经过所有的流水级,即使在某些流水级中未进行任何操作,而只是原样传递数据和控制信息;
2、在控制信号只有1份的条件下,如果需要处理的数据为向量,则对其中各个元素的操作均会用到控制信号,会导致控制信号与每1个元素均有连接,物理可实现性差;
3、对于不同的运算指令,在计算过程中使用不同的寄存器传递数据,并且使用不同的基础运算单元,并未整合运算资源和复用寄存器资源。
本申请所描述的运算模块(如图1A所示),能够解决上述缺陷,灵活配置流水线,使得指令可以实现最小的计算延迟,并利用最少的计算资源在流水线中完成计算,且能够实现寄存器复制功能,分散了控制信号的驱动压力,在物理实现中可以减少布局布线的压力。
以下进行详细介绍。
请参阅图1A,图1A是本申请实施例提供的运算模块示意图,所述运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,所述K、所述P、所述Q均为大于或等于2的整数;所述K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路;
所述运算模块用于依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作。
其中,流水线可以包括多个流水级,每一流水级可以对应至少一个运算电路,运算电路可支持多种数据类型的运算,根据指令要求选择相应的运算电路完成对应运算,例如,数据类型可以为16位定点数据或者32位浮点数据等。举例说明下,指令是矩阵加矩阵,选择加法器;指令是矩阵乘矩阵,选择乘法器和加法器,指令是16位定点运算指令,接收该指令进行16位定点运算,等等。具体地,运算电路可以为算术逻辑电路,和/或,逻辑运算电路。算术逻辑电路可以为以下至少一种:乘法器单元、加法器单元。逻辑运算电路可以为以下至少一种:组合逻辑电路、时序逻辑电路等等,在此不做限定,组合逻辑电路由最基本的逻辑门电路组合而成,例如,加法器、译码器、编码器、数据选择器等等。时序逻辑电路,其由最基本的逻辑门电路加上反馈逻辑电路(输出到输入)或器件组合而成的电路,例如,触发器、锁存器、计数器、移位寄存器、存储器等等。上述计算资源可以理解为需要调用的运算电路。
其中,流水线处理的数据可以为以下至少一种:神经元数据、权值数据、偏置数据。流水线能够处理的数据可以为以下至少一种数据类型:定点数据、整型数据、离散型数据、连续型数据、幂次型数据、浮点型数据,数据表示的长度可为32位长度浮点数据,16位长度定点数据,16位长度浮点数据,8位长度定点数据,4位长度定点数据等等。数据可包括以下至少一种:输入神经元数据、权值数据和偏置数据。
目标指令可以为向量指令,向量指令可以为以下至少一种:向量加法指令、向量加标量指令、向量减法指令、向量乘法指令、向量乘标量指令、向量除法指令、标量除向量指令、向量间与指令、向量内与指令、向量间或指令、向量内或指令、向量指数指令、向量对数指令、向量大于判定指令、向量等于判定指令、向量非指令、向量选择合并指令、向量最大值指令、标量扩展指令、标量替换向量指令、向量替换标量指令、向量检索指令、向量点积指令、随机向量指令、循环移位指令、向量加载指令、向量存储指令、向量搬运指令、矩阵乘向量指令、向量乘矩阵指令、矩阵乘标量指令、张量运算指令、矩阵加法指令、矩阵减法指令、矩阵检索指令、矩阵加载指令、矩阵存储指令、矩阵搬运指令。
目标指令可以为单一功能指令或者可以为组合功能指令,单一功能指令可以用于实现单一功能,组合功能指令可以用于实现几个功能(组合功能),单一功能指令或者组合指令可以采用一条或者多条流水线执行。
本申请实施例中,运算模块可以包括K条流水线,以及P个流水线入口和Q个流水线出口,K、P、Q均为大于或等于2的整数,K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路,任一流水线均可以包括一个流水线入口、流水线出口以及t个中间流水级,t为自然数,举例说明下,如图1B所示,流水线入口、中间流水级1、中间流水级2和流水线出口2则可以构成一条流水线。
具体实现中,由于流水线的不同流水级中分布有不同的计算资源,例如,乘法器单元分布在第3和第4流水级,而加法器单元分布在第1和第2流水级。而不同的指令执行所需要的计算资源不同,且并不一定使用所有的计算资源,同时部分指令不需要流水到最后一级流水级才输出结果,所以,可以根据指令的计算资源使用情况,灵活配置该指令进入流水线的入口和出口。例如,单一乘法指令可以从第3级流水级进入,在3、4级完成计算后从第4级输出结果;又例如,单一加法指令可以从第5级流水级进入,在5、6级完成计算后从第6级输出结果。这样的好处在于,所有指令都可以以最小的计算延迟,使用最少的计算资源在流水线中完成计算。
本申请实施例中,运算模块采用上述多入口多出口的多流水线设计策略,在节省面积的同时,解决了物理可实现性问题,以2条流水线为例,其可以将该模块所要实现的指令按照功能、可复用性以及平衡原则划分为2类,分别在这2条流水线中实现。
在一个可能的示例中,在所述运算模块用于依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作方面,具体为:
A11、获取所述目标指令对应的目标运算类型;
A12、确定与所述目标运算类型所对应的目标运算电路、目标流水线入口和目标流水线出口;
A13、依据所述目标运算电路、目标流水线入口和目标流水线出口确定所述目标运算类型对应的目标流水路径;
A14、依据所述目标流水路径执行所述目标指令对应的运算操作。
其中,运算模块可以获取目标指令对应的目标运算类型,由于每一运算类型均需要相应的计算资源(运算电路)实现相应的指令功能,进而,可以确定与目标运算类型所需要的目标功能电路集,该目标功能电路集可以包括至少一个运算电路,每一流水级均预先配置相应的运算电路,进而,可以依据目标功能电路集寻找相应的流水级,由于目标指令的执行顺序决定了流水级的流水顺序,进而,也决定了流水级对应的功能电路的执行顺序,目标运算类型对应的流水顺序即为目标流水路径,运算模块可以依据目标流水路径相应的功能电路执行目标指令的运算操作,如此,能够结合运算类型实现流水路径规划,实现计算资源按需分配,有助于提升计算效率。
在一个可能的示例中,在所述运算模块用于依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作方面,具体为:
A21、获取所述目标指令对应的目标运算类型;
A22、按照预设的运算类型与流水路径之间的映射关系,确定所述目标运算类型对应的目标流水路径;
A23、调用所述目标流水路对应的功能电路径执行所述目标指令相应的运算操作。
具体实现中,运算模块中可以预先存储预设的运算类型与流水路径之间的映射关系,或者,采用该运算模块的电子设备中预先存储预设的运算类型与流水路径之间的映射关系。
具体地,运算模块可以获取目标指令对应的目标运算类型,并按照预设的运算类型与流水路径之间的映射关系,确定该目标运算类型对应的目标流水路径,目标流水路径可以包括多个流水级,每一流水级均对应相应的功能电路,进而,可以调用目标流水路对应的功能电路径执行目标指令相应的运算操作,如此,能够结合运算类型实现流水路径规划,实现计算资源按需分配,有助于提升计算效率。
在一个可能的示例中,在所述目标流水路径对应多条流水线时,所述多条流水线依据该多条流水线的执行时序将上一流水线的流水线出口连接下一流水线的流水线入口。
其中,流水线路径可以包括多条流水线,该多条流水线可以按照目标指令的执行顺序去流经该多条流水线。具体地,在目标流水路径对应多条流水线时,多条流水线依据该多条流水线的执行时序将上一流水线的流水线出口连接下一流水线的流水线入口,或者,每一条流水线也可以对应一个编号或者有优先级,例如,该多条流水线中每一流水线对应一优先级,任一优先级对应的流水线出口连接该优先级对应的下一优先级对应的流水线入口,实现多条流水线协同完成同一指令,能够将不同流水线串联起来,让流水线配置更加灵活。
在一个可能的示例中,所述K条流水线的相邻流水级之间包括多个寄存器,该所述多个寄存器能够供流经该寄存器的指令使用。
具体实现中,对于任何一条流水线而言,其流水级与流水级间可以包括多个寄存器,该多个寄存器中的控制信号是可以复制的,能够实现后续寄存器复制功能。
在一个可能的示例中,所述K条流水线的相邻流水级之间包括多个寄存器,所述多个寄存器中的每一寄存器对应一组指令。
具体实现中,一份控制信号(一个寄存器中的控制信号)可以对应一组指令,一组指令可以包括一个指令或者多个指令,如此,物理实现性强。由于流水级间存在多个复制寄存器,而一级流水可能有多个功能电路,流经此级流水的指令可能使用其中一个功能电路,所以寄存器复制的控制信号,可以是针对其中一个功能电路的,所以是对应一组指令。例如,第一条流水线的第一级流水是加法电路,而第二条流水线的第一级流水是数据类型转换电路,可以将加法指令和数据类型转换指令这两组指令都流入,此时,在第一级流水级的多个寄存器中复制的控制信号可以是加法这一组,也可以是数据类型转换指令这一组,也可以是两组都有。
进一步地,在一个可能的示例中,所述多个寄存器用于复制相同指令。
其中,相同指令可以为一个或者多个指令,例如,多个寄存器可以用于复制同一个指令,或者,多个寄存器可以用于复制相同的多个指令。
进一步地,在一个可能的示例中,所述多个寄存器用于复制多个指令中相同操作的控制信号。
具体实现中,在本申请实施例中,多个寄存器用于复制多个指令中相同操作的控制信号,举例说明下,控制信号可以是微处理器送往存储器和输入输出设备接口电路的信号,比如:读/写信号、片选信号、中断响应信号等;控制信号也可以是其它部件反馈给CPU的控制信号,比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等。该多个指令可以为一组指令。
进一步地,所述指令为以下至少一种为单一功能指令或者可以为组合功能指令;
在所述指令为单一功能指令时,所述指令为向量指令,该向量指令为以下至少一种:向量加法指令、向量加标量指令、向量减法指令、向量乘法指令、向量乘标量指令、向量除法指令、标量除向量指令、向量间与指令、向量内与指令、向量间或指令、向量内或指令、向量指数指令、向量对数指令、向量大于判定指令、向量等于判定指令、向量非指令、向量选择合并指令、向量最大值指令、标量扩展指令、标量替换向量指令、向量替换标量指令、向量检索指令、向量点积指令、随机向量指令、循环移位指令)、向量加载指令、向量存储指令、向量搬运指令、矩阵乘向量指令、向量乘矩阵指令、矩阵乘标量指令、张量运算指令、矩阵加法指令、矩阵减法指令、矩阵检索指令、矩阵加载指令、矩阵存储指令、矩阵搬运指令。
在一个可能的示例中,所述K条流水线的相邻流水级之间包括多个寄存器,所述多个寄存器中的每一寄存器对应一组数据。
具体实现中,多个寄存器中的每一寄存器的控制信号可以对应一组数据,例如,有四个复制寄存器,后续流水线处理的数据带宽是1024,则4个寄存器中,每个寄存器中一份控制信号,可以对应处理位宽为1024÷4=256的数据。如果是8个寄存器,则每个寄存器中的一份控制信号,对应处理位宽为1024÷8=128的数据,如此,物理可实现性强。
进一步地,所述数据为以下至少一种:神经元数据、权值数据、偏置数据。
在一个可能的示例中,所述运算模块还用于根据所述相邻流水级之间寄存器的数量对待处理数据进行分组,得到多组数据。
具体实现中,运算模块可以根据相邻流水级之间寄存器的数量对待处理数据进行分组,得到多组数据,每一寄存器对应一组数据,如此,可以实现依据寄存器的数量对待处理数据进行分组。
在一个可能的示例中,所述寄存器中的指令包括需要使用所述寄存器对应的计算资源的部分或者全部指令。
具体实现中,对寄存器而言,流水级之间的寄存器可以供流经该寄存器的所有指令使用。对计算资源而言,由于同一时刻只会有1条指令使用该计算资源,所以可以将使用该计算资源的所有指令都设计在该流水级流过。例如,乘加指令从第3级流水级进入,在3、4级使用乘法器,在5、6级使用加法器。这样的好处在于,减少了计算资源的使用,提高了利用率。
在一个可能的示例中,在多条指令使用相同的目标计算资源时,所述运算模块还具体用于实现如下功能:
B1、获取所述多条指令对应的第一控制信号;
B2、提取所述第一控制信号的预设内容,得到第二控制信号;
B3、采用寄存器复制方法将所述第二控制信号复制多份,每一份第二控制信号对应一组指令或者一组元素。
具体实现中,对于计算资源而言,如果有多条指令使用同样的计算资源,就会导致需要控制信号对多种情况进行判断。同时,对于向量运算,向量中的每一个元素在做计算时,都需要使用控制信号。这样就会导致1份控制信号连接了许多数据信号或者计算资源,造成该信号的fan-out过大,不利于物理实现。所以,使用寄存器复制的方法,将预设内容对应的的控制信号复制多份,每份对应1组指令或者1组元素。预设内容可以理解为多条指令对应的相同运算,例如,多条指令中都包括加法运算,则该预设内容可以为加法运算,从而,分散了控制信号的驱动压力,在物理实现中可以减少布局布线的压力。
进一步地,举例说明下,关于控制信号的扇出过大的问题,以一份控制信号对应处理后续1024位宽的数据举例,1024位宽的数据假设对应A×B的存储空间,如果不做寄存器复制,则控制信号所在的寄存器需要在物理上设置在于数据较近的位置上,以保证控制信号的驱动效果。因在物理上如果距离较远,可能存在时延等各种问题。因为距离控制信号较远的数据会被后提取,大概这样。当控制信号复制后,A×B的数据存储空间分成多个小的存储空间,每个物理的存储空间对应设置控制信号所在的寄存器,这样会减少芯片上布局布线的压力,并保证信号驱动的效果。
可以看出,在本申请实施例的所涉及的运算模块,运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,K、P、Q均为大于或等于2的整数,K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路,该运算模块用于依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作,如此,能够依据指令所需的计算资源灵活配置流水线,使得指令可以实现最小的计算延迟,并利用最少的计算资源在流水线中完成计算,提升了计算效率。
与上述图1A所示的实施例一致地,请参阅图2,图2是本申请实施例提供的一种流水优化方法的流程示意图,应用于如图1A所示的运算模块,所述运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,所述K、所述P、所述Q均为大于或等于2的整数;所述K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路;如图所示,本流水优化方法包括:
201、获取目标指令。
202、依据目标指令所需要的计算资源配置所述运算电路、所述流水线入口和所述流水线出口,得到相应的目标流水路径。
203、依据所述目标流水路径执行与所述目标指令对应的运算操作。
具体实现中,上述步骤201-步骤203的具体描述可以参照上述描述,在此不再赘述。
可以看出,在本申请实施例的所涉及的流水优化方法,应用于运算模块,该运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,K、P、Q均为大于或等于2的整数,K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路,该运算模块用于依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作,如此,能够依据指令所需的计算资源灵活配置流水线,使得指令可以实现最小的计算延迟,并利用最少的计算资源在流水线中完成计算,提升了计算效率。
与上述实施例一致地,请参阅图3,图3是本申请实施例提供的一种电子设备的结构示意图,如图所示,该电子设备包括处理器、存储器、通信接口、运算模块以及一个或多个程序,所述运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,所述K、所述P、所述Q均为大于或等于2的整数;所述K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路;其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,本申请实施例中,上述程序包括用于执行以下步骤的指令:
获取目标指令;
依据目标指令所需要的计算资源配置所述运算电路、所述流水线入口和所述流水线出口,得到相应的目标流水路径;
依据所述目标流水路径执行与所述目标指令对应的运算操作。
可以看出,在本申请实施例的所涉及的电子设备,该电子设备包括运算模块,该运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,K、P、Q均为大于或等于2的整数,K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路,该运算模块用于依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作,如此,能够依据指令所需的计算资源灵活配置流水线,使得指令可以实现最小的计算延迟,并利用最少的计算资源在流水线中完成计算,提升了计算效率。
在一个可能的示例中,在所述依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作方面,上述程序包括用于执行以下步骤的指令:
获取所述目标指令对应的目标运算类型;
确定与所述目标运算类型所对应的目标运算电路、目标流水线入口和目标流水线出口;
依据所述目标运算电路、目标流水线入口和目标流水线出口确定所述目标运算类型对应的目标流水路径;
依据所述目标流水路径执行所述目标指令对应的运算操作。
在一个可能的示例中,在所述目标流水路径对应多条流水线时,所述多条流水线依据该多条流水线的执行时序将上一流水线的流水线出口连接下一流水线的流水线入口。
在一个可能的示例中,所述K条流水线的相邻流水级之间包括多个寄存器,该所述多个寄存器能够供流经该寄存器的指令使用。
在一个可能的示例中,所述多个寄存器用于复制相同指令。
在一个可能的示例中,所述多个寄存器用于复制多个指令中相同操作的控制信号。
在一个可能的示例中,所述指令为以下至少一种为单一功能指令或者可以为组合功能指令;
在所述指令为单一功能指令时,所述指令为向量指令,向量指令为以下至少一种:向量加法指令、向量加标量指令、向量减法指令、向量乘法指令、向量乘标量指令、向量除法指令、标量除向量指令、向量间与指令、向量内与指令、向量间或指令、向量内或指令、向量指数指令、向量对数指令、向量大于判定指令、向量等于判定指令、向量非指令、向量选择合并指令、向量最大值指令、标量扩展指令、标量替换向量指令、向量替换标量指令、向量检索指令、向量点积指令、随机向量指令、循环移位指令)、向量加载指令、向量存储指令、向量搬运指令、矩阵乘向量指令、向量乘矩阵指令、矩阵乘标量指令、张量运算指令、矩阵加法指令、矩阵减法指令、矩阵检索指令、矩阵加载指令、矩阵存储指令、矩阵搬运指令。
在一个可能的示例中,所述K条流水线的相邻流水级之间包括多个寄存器,所述多个寄存器中的每一寄存器对应一组数据。
在一个可能的示例中,所述运算模块还用于根据所述相邻流水级之间寄存器的数量对待处理数据进行分组,得到多组数据。
在一个可能的示例中,所述数据为以下至少一种:神经元数据、权值数据、偏置数据。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
请参阅图4,图4是本实施例提供的一种流水优化装置的结构示意图。该流水优化装置应用于电子设备,该电子设备包括运算模块,所述运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,所述K、所述P、所述Q均为大于或等于2的整数;所述K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路;该流水优化装置可包括:获取单元401、配置单元402和执行单元403,其中,
所述获取单元401,用于获取目标指令;
所述配置单元402,用于依据目标指令所需要的计算资源配置所述运算电路、所述流水线入口和所述流水线出口,得到相应的目标流水路径;
所述执行单元403,用于依据所述目标流水路径执行与所述目标指令对应的运算操作。
可以看出,在本申请实施例的所涉及的流水优化装置,运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,K、P、Q均为大于或等于2的整数,K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路,该运算模块用于依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作,如此,能够依据指令所需的计算资源灵活配置流水线,使得指令可以实现最小的计算延迟,并利用最少的计算资源在流水线中完成计算,提升了计算效率。
在一个可能的示例中,在所述依据目标指令所需要的计算资源配置运算电路、流水线入口和流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作方面,所述流水优化装置具体用于:
获取所述目标指令对应的目标运算类型;
确定与所述目标运算类型所对应的目标运算电路、目标流水线入口和目标流水线出口;
依据所述目标运算电路、目标流水线入口和目标流水线出口确定所述目标运算类型对应的目标流水路径;
依据所述目标流水路径执行所述目标指令对应的运算操作。
在一个可能的示例中,在所述目标流水路径对应多条流水线时,所述多条流水线依据该多条流水线的执行时序将上一流水线的流水线出口连接下一流水线的流水线入口。
在一个可能的示例中,所述K条流水线的相邻流水级之间包括多个寄存器,该所述多个寄存器能够供流经该寄存器的指令使用。
在一个可能的示例中,所述K条流水线的相邻流水级之间包括多个寄存器,所述多个寄存器中的每一寄存器对应一组指令。
在一个可能的示例中,所述多个寄存器用于复制相同指令。
在一个可能的示例中,所述多个寄存器用于复制多个指令中相同操作的控制信号。
在一个可能的示例中,所述指令为以下至少一种为单一功能指令或者可以为组合功能指令;
在所述指令为单一功能指令时,所述指令为向量指令,向量指令为以下至少一种:向量加法指令、向量加标量指令、向量减法指令、向量乘法指令、向量乘标量指令、向量除法指令、标量除向量指令、向量间与指令、向量内与指令、向量间或指令、向量内或指令、向量指数指令、向量对数指令、向量大于判定指令、向量等于判定指令、向量非指令、向量选择合并指令、向量最大值指令、标量扩展指令、标量替换向量指令、向量替换标量指令、向量检索指令、向量点积指令、随机向量指令、循环移位指令)、向量加载指令、向量存储指令、向量搬运指令、矩阵乘向量指令、向量乘矩阵指令、矩阵乘标量指令、张量运算指令、矩阵加法指令、矩阵减法指令、矩阵检索指令、矩阵加载指令、矩阵存储指令、矩阵搬运指令。
在一个可能的示例中,所述K条流水线的相邻流水级之间包括多个寄存器,所述多个寄存器中的每一寄存器对应一组数据。
在一个可能的示例中,所述运算模块还用于根据所述相邻流水级之间寄存器的数量对待处理数据进行分组,得到多组数据。
在一个可能的示例中,所述数据为以下至少一种:神经元数据、权值数据、偏置数据。
可以理解的是,本实施例的流水优化装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
图5是示出根据本披露实施例的一种组合处理装置500的结构图。如图5中所示,该组合处理装置500包括电子设备502、接口装置504、其他处理装置506和存储装置508。根据不同的应用场景,电子设备中可以包括一个或多个计算装置510,该计算装置可以配置用于执行本文结合附图1A-4所描述的操作。
在不同的实施例中,本披露的电子设备可以配置成执行用户指定的操作。在示例性的应用中,该电子设备可以实现为单核人工智能处理器或者多核人工智能处理器。类似地,包括在电子设备内的一个或多个计算装置可以实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。当多个计算装置实现为人工智能处理器核或人工智能处理器核的部分硬件结构时,就本披露的电子设备而言,其可以视为具有单核结构或者同构多核结构。
在示例性的操作中,本披露的电子设备可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本披露的其他处理装置可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的电子设备而言,其可以视为具有单核结构或者同构多核结构。然而,当将电子设备和其他处理装置共同考虑时,二者可以视为形成异构多核结构。
在一个或多个实施例中,该其他处理装置可以作为本披露的电子设备(其可以具体化为人工智能例如神经网络运算的相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该电子设备协作以共同完成运算任务。
在一个或多个实施例中,该接口装置可以用于在电子设备与其他处理装置间传输数据和控制指令。例如,该电子设备可以经由所述接口装置从其他处理装置中获取输入数据,写入该电子设备片上的存储装置(或称存储器)。进一步,该电子设备可以经由所述接口装置从其他处理装置中获取控制指令,写入电子设备片上的控制缓存中。替代地或可选地,接口装置也可以读取电子设备的存储装置中的数据并传输给其他处理装置。
附加地或可选地,本披露的组合处理装置还可以包括存储装置。如图中所示,该存储装置分别与所述电子设备和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述电子设备和/或所述其他处理装置的数据。例如,该数据可以是在电子设备或其他处理装置的内部或片上存储装置中无法全部保存的数据。
在一些实施例里,本披露还公开了一种芯片(例如图6中示出的芯片602)。在一种实现中,该芯片是一种系统级芯片(System on Chip,SoC),并且集成有一个或多个如图5中所示的组合处理装置。该芯片可以通过对外接口装置(如图6中示出的对外接口装置606)与其他相关部件相连接。该相关部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。在一些应用场景中,该芯片上可以集成有其他处理单元(例如视频编解码器)和/或接口模块(例如DRAM接口)等。在一些实施例中,本披露还公开了一种芯片封装结构,其包括了上述芯片。在一些实施例里,本披露还公开了一种板卡,其包括上述的芯片封装结构。下面将结合图6对该板卡进行详细地描述。
图6是示出根据本披露实施例的一种板卡600的结构示意图。如图6中所示,该板卡包括用于存储数据的存储器件604,其包括一个或多个存储单元610。该存储器件可以通过例如总线等方式与控制器件608和上文所述的芯片602进行连接和数据传输。进一步,该板卡还包括对外接口装置606,其配置用于芯片(或芯片封装结构中的芯片)与外部设备612(例如服务器或计算机等)之间的数据中继或转接功能。例如,待处理的数据可以由外部设备通过对外接口装置传递至芯片。又例如,所述芯片的计算结果可以经由所述对外接口装置传送回外部设备。根据不同的应用场景,所述对外接口装置可以具有不同的接口形式,例如其可以采用标准PCIE接口等。
在一个或多个实施例中,本披露板卡中的控制器件可以配置用于对所述芯片的状态进行调控。为此,在一个应用场景中,该控制器件可以包括单片机(Micro ControllerUnit,MCU),以用于对所述芯片的工作状态进行调控。
根据上述结合图5和图6的描述,本领域技术人员可以理解本披露也公开了一种电子设备或装置,其可以包括一个或多个上述板卡、一个或多个上述芯片和/或一个或多个上述组合处理装置。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本披露的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本披露实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如CPU、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
虽然本文已经示出和描述了本披露的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本披露思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本披露的过程中,可以采用对本文所描述的本披露实施例的各种替代方案。所附权利要求书旨在限定本披露的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。

Claims (12)

1.一种运算模块,其特征在于,所述运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,所述K、所述P、所述Q均为大于或等于2的整数;所述K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路;
所述运算模块用于依据目标指令所需要的计算资源配置所述运算电路、所述流水线入口和所述流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作。
2.根据权利要求1所述的运算模块,其特征在于,在所述运算模块用于依据目标指令所需要的计算资源配置所述运算电路、所述流水线入口和所述流水线出口,得到相应的目标流水路径,并依据该目标流水路径执行与该目标指令对应的运算操作方面,具体为:
获取所述目标指令对应的目标运算类型;
确定与所述目标运算类型所对应的目标运算电路、目标流水线入口和目标流水线出口;
依据所述目标运算电路、目标流水线入口和目标流水线出口确定所述目标运算类型对应的目标流水路径;
依据所述目标流水路径执行所述目标指令对应的运算操作。
3.根据权利要求1或2所述的运算模块,其特征在于,所述K条流水线的相邻流水级之间包括多个寄存器,所述多个寄存器中的每一寄存器对应一组指令。
4.根据权利要求3所述的运算模块,其特征在于,
所述多个寄存器用于复制相同指令。
5.根据权利要求3所述的运算模块,其特征在于,所述多个寄存器用于复制多个指令中相同操作的控制信号。
6.根据权利要求3所述的运算模块,其特征在于,所述K条流水线的相邻流水级之间包括多个寄存器,所述多个寄存器中的每一寄存器对应一组数据。
7.根据权利要求6所述的运算模块,其特征在于,所述运算模块还用于根据所述相邻流水级之间寄存器的数量对待处理数据进行分组,得到多组数据。
8.一种流水优化方法,其特征在于,应用于运算模块,所述运算模块包括K条流水线以及P个流水线入口和Q个流水线出口,所述K、所述P、所述Q均为大于或等于2的整数;所述K条流水线中的每一条流水线均包括多个流水级,每一流水级对应至少一个运算电路;所述方法包括:
获取目标指令;
依据所述目标指令所需要的计算资源配置所述运算电路、所述流水线入口和所述流水线出口,得到相应的目标流水路径;
依据所述目标流水路径执行与所述目标指令对应的运算操作。
9.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求1-7任一项所述的运算模块,或者,用于执行如权利要求8所述的方法。
10.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求9所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
11.一种电子设备,其特征在于,所述电子设备用于执行如权利要求8所述的方法,或者,所述电子设备包括如所述权利要求1-7任一项所述的运算模块,所述电子设备包括如所述权利要求9所述的神经网络芯片,或者,所述电子设备包括如权利要求10所述的板卡。
12.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求8所述的方法。
CN202010654553.4A 2020-07-08 2020-07-08 运算模块、流水优化方法及相关产品 Pending CN113918221A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010654553.4A CN113918221A (zh) 2020-07-08 2020-07-08 运算模块、流水优化方法及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010654553.4A CN113918221A (zh) 2020-07-08 2020-07-08 运算模块、流水优化方法及相关产品

Publications (1)

Publication Number Publication Date
CN113918221A true CN113918221A (zh) 2022-01-11

Family

ID=79231848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010654553.4A Pending CN113918221A (zh) 2020-07-08 2020-07-08 运算模块、流水优化方法及相关产品

Country Status (1)

Country Link
CN (1) CN113918221A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115062329A (zh) * 2022-08-09 2022-09-16 深圳致星科技有限公司 隐私计算、隐私数据和联邦学习的流水计算装置及方法
CN115454507A (zh) * 2022-11-10 2022-12-09 统信软件技术有限公司 多任务并行执行的方法、装置、计算设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115062329A (zh) * 2022-08-09 2022-09-16 深圳致星科技有限公司 隐私计算、隐私数据和联邦学习的流水计算装置及方法
CN115454507A (zh) * 2022-11-10 2022-12-09 统信软件技术有限公司 多任务并行执行的方法、装置、计算设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN110597559B (zh) 计算装置以及计算方法
CN111047022B (zh) 一种计算装置及相关产品
CN112799726A (zh) 数据处理装置、方法及相关产品
CN113918221A (zh) 运算模块、流水优化方法及相关产品
CN111488976B (zh) 神经网络计算装置、神经网络计算方法及相关产品
CN111488963B (zh) 神经网络计算装置和方法
CN111767995B (zh) 运算方法、装置及相关产品
CN109711540B (zh) 一种计算装置及板卡
CN111047021B (zh) 一种计算装置及相关产品
WO2022001497A1 (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN113469337B (zh) 用于优化神经网络模型的编译方法及其相关产品
WO2022001500A1 (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN111367567B (zh) 一种神经网络计算装置和方法
CN112801276B (zh) 数据处理方法、处理器及电子设备
CN111368990B (zh) 一种神经网络计算装置和方法
CN111368987B (zh) 一种神经网络计算装置和方法
CN111368986B (zh) 一种神经网络计算装置和方法
CN113918222A (zh) 流水线控制方法、运算模块及相关产品
CN111967588A (zh) 量化运算方法及相关产品
CN113742266B (zh) 集成电路装置、电子设备、板卡和计算方法
CN113791996B (zh) 集成电路装置、电子设备、板卡和计算方法
CN113918220A (zh) 流水线控制方法、运算模块及相关产品
CN111368985B (zh) 一种神经网络计算装置和方法
WO2022001496A1 (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN112232498B (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