CN110147251A - 用于计算神经网络模型的架构、芯片及计算方法 - Google Patents
用于计算神经网络模型的架构、芯片及计算方法 Download PDFInfo
- Publication number
- CN110147251A CN110147251A CN201910082421.6A CN201910082421A CN110147251A CN 110147251 A CN110147251 A CN 110147251A CN 201910082421 A CN201910082421 A CN 201910082421A CN 110147251 A CN110147251 A CN 110147251A
- Authority
- CN
- China
- Prior art keywords
- task
- affairs
- data processing
- engine
- module
- 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
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 106
- 238000004364 calculation method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 226
- 238000010079 rubber tapping Methods 0.000 claims abstract description 60
- 238000013500 data storage Methods 0.000 claims abstract description 55
- 239000011159 matrix material Substances 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 30
- 238000004422 calculation algorithm Methods 0.000 claims description 26
- 238000003860 storage Methods 0.000 claims description 26
- 230000003287 optical effect Effects 0.000 claims description 23
- 230000002123 temporal effect Effects 0.000 claims description 14
- 238000007781 pre-processing Methods 0.000 claims description 12
- 239000004575 stone Substances 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 4
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 241000208340 Araliaceae Species 0.000 claims description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 2
- 235000008434 ginseng Nutrition 0.000 claims description 2
- 230000006399 behavior Effects 0.000 claims 1
- 238000005194 fractionation Methods 0.000 abstract description 10
- 238000013473 artificial intelligence Methods 0.000 abstract description 8
- 230000010354 integration Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 15
- 238000012805 post-processing Methods 0.000 description 10
- 238000012549 training Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000007667 floating Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 210000004218 nerve net Anatomy 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013517 stratification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种用于计算神经网络模型的架构、芯片及计算方法,涉及人工智能领域。上述芯片包括片外接口模块、总线互连模块、指令存储器、数据存储器、任务处理器引擎、多任务拆分调度器、至少两个数据处理引擎;通过在芯片上集成任务处理器引擎、多任务拆分调度器以及至少两个数据处理引擎,由任务处理器引擎将事务划分为至少两个任务,之后通过多任务拆分调度器将至少两个任务分别调度到至少两个数据处理引擎进行处理;同一个事务由至少两个数据处理引擎来协同完成,相当于使用多个AI计算核心共同处理事务,针对不同的事务可以选用不同的数据处理引擎组合来进行计算,因此实现了同一AI芯片对多种AI应用的兼容,提高了AI芯片的适用性和扩展性。
Description
技术领域
本申请涉及人工智能领域,特别涉及一种用于计算神经网络模型的架构、芯片及计算方法。
背景技术
人工智能(Artificial Intelligence,AI)芯片是适用于对人工智能进行计算的芯片。比如,用于神经网络模型计算的芯片。
相关技术中会针对不同的应用场景设计不同的芯片架构。比如,针对图像识别应用时,设计用于图像识别的AI芯片架构;针对金融行业的时序数据处理应用时,设计用于时序数据处理的AI芯片架构;针对翻译应用场景,设计用于文字处理的AI芯片架构。
随着人工智能的发展,会不断出现新式的AI应用。鉴于不同AI芯片架构无法兼容且可扩展性较差的问题,若为每一种AI应用,都专门设计一个AI芯片架构,不仅研发成本较高,而且研发时长也可能无法满足AI应用的使用需求。
发明内容
本申请实施例提供了一种用于计算神经网络模型的架构、芯片及计算方法,可以解决不同AI芯片架构无法兼容且可扩展性较差的问题。所述技术方案包括:
根据本申请的一个方面,提供了一种用于计算神经网络模型的架构,该架构包括:
片外接口模块、指令存储器、数据存储器、任务处理器引擎、多任务拆分调度器、至少两个数据处理引擎;
片外接口模块,用于获取待处理的事务,并将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器;
指令存储器,用于存储事务的指令部分;
数据存储器,用于存储事务的数据部分;
任务处理器引擎,用于将事务的指令部分划分为至少两个任务;
多任务拆分调度器,用于将至少两个任务调度至至少两个数据处理引擎进行处理;
至少两个数据处理引擎,用于根据至少两个任务对事务的数据部分进行处理。
根据本申请的另一个方面,提供了一种用于计算神经网络模型的芯片,该芯片包括:片外接口模块、总线互连模块、指令存储器、数据存储器、任务处理器引擎、多任务拆分调度器、至少两个数据处理引擎;
片外接口模块与总线互连模块电性相连;
总线互连模块与指令存储器电性相连,总线互连模块还与数据存储器电性相连;
指令存储器与任务处理器引擎电性相连,任务处理器引擎与多任务拆分调度器电性相连,多任务拆分调度器与至少两个数据处理引擎电性相连,至少两个数据处理引擎与数据存储器电性相连;
其中,至少两个数据处理引擎中存在用于计算神经网络模型的引擎。
根据本申请的另一个方面,提供了一种神经网络模型的计算方法,应用于如上述第二方面所述的芯片中,该方法包括:
片外接口模块获取待处理的事务,将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器;
任务处理器引擎将事务划分为至少两个任务;
多任务拆分调度器将至少两个任务调度到至少两个数据处理引擎进行处理。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过在芯片上集成任务处理器引擎、多任务拆分调度器以及至少两个数据处理引擎,由任务处理器引擎将事务划分为至少两个任务,之后通过多任务拆分调度器将至少两个任务分别调度到至少两个数据处理引擎进行处理;同一个事务由至少两个数据处理引擎来协同完成,相当于使用多个AI计算核心共同处理事务,针对不同的事务可以选用不同的数据处理引擎组合来进行计算,因此实现了同一AI芯片对多种AI应用的兼容,提高了AI芯片的适用性和扩展性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的用于计算神经网络模型的芯片的框图;
图2是本申请另一个示例性实施例提供的用于计算神经网络模型的芯片的框图;
图3是本申请另一个示例性实施例提供的用于计算神经网络模型的芯片的框图;
图4是本申请另一个示例性实施例提供的用于计算神经网络模型的芯片的框图;
图5是本申请另一个示例性实施例提供的用于计算神经网络模型的芯片的框图;
图6是本申请另一个示例性实施例提供的用于计算神经网络模型的芯片的框图;
图7是本申请另一个示例性实施例提供的用于计算神经网络模型的芯片的框图;
图8是本申请另一个示例性实施例提供的用于计算神经网络模型的芯片的框图;
图9是本申请一个示例性实施例提供的神经网络模型的计算方法的流程图;
图10是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图;
图11是本申请另一个示例性实施例提供的用于计算神经网络模型的芯片的框图;
图12是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图;
图13是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图;
图14是本申请一个示例性实施例提供的用于神经网络模型的计算方法的实施环境框图;
图15是本申请另一个示例性实施例提供的用于神经网络模型的计算方法的实施环境框图;
图16是本申请另一个示例性实施例提供的用于神经网络模型的计算方法的实施环境框图;
图17是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图;
图18是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图;
图19是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图;
图20是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图;
图21是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图;
图22是本申请一个示例性实施例提供的用于计算神经网络模型的架构的框图;
图23是本申请另一个示例性实施例提供的用于计算神经网络模型的架构的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的若干个名词进行简介:
端侧:是指存在神经网络模型的计算需求的电子设备侧。比如,智能手机、物联网设备、平板电脑或者电子阅读器等。属于端侧的电子设备通常具有移动性使用需求,对空间和/或功耗要求敏感。上述电子设备中可以包括AI芯片,能够实现对神经网络模型的处理。但是,由于端侧的电子设备中AI芯片的性能有限或功耗要求比较苛刻,所以对神经网络模型的运算能力较低;上述电子设备中还可以不包括AI芯片,通过有线或者无线网络向云侧请求实现对神经网络模型的处理。
云侧:是指一个服务器或者服务器集群,通过有线或者无线网络为多个端侧提供后台服务以及资源共享服务,实现端侧之间的互联互通;还能够为服务器提供大数据的分析、加工,实现云侧的数据处理。上述服务器或者服务器集群中包括了AI芯片,能够实现对神经网络模型的快速运算;相对于端侧,云侧对神经网络模型的运算能力强。
高速串口模块:是采用串行通信方式的扩展接口,能够实现双向通信。本申请中高速串口模块可以作为端侧接口模块,也可以作为云侧接口模块。
光模块:用于实现光电转换,发送端的光模块将电信号转换为光信号,从而通过光纤进行传送,接收端的光模块接收到光信号之后将光信号转换为电信号。本申请中光模块可以作为端侧接口模块,也可以作为云侧接口模块。
摄像头采集模块:是用于采集外界环境中的光信号形成取景图像。本申请中摄像头采集模块可以作为端侧接口模块。
高速数据接口模块:符合串行接口标准的高速数据接口模块,用于数据传输。本申请中高速数据接口模块可以作为端侧接口模块,也可以作为云侧接口模块。
高速串行计算机扩展总线标准(Peripheral Component Interconnect express,PCIe)硬核模块:用于高速串行点对点双通道高带宽传输,连接设备分配不共享通道带宽,也不共享总线带宽。本申请中PCIe硬核模块可以作为云侧接口模块。
以太网接口模块:一种网络数据连接的端口,用于局域网或广域网通信。在本申请中以太网接口模块可以作为端侧接口模块,也可以作为云侧接口模块。
直接内存访问(Direct Memory Access,DMA)模块:用于直接向存储器读写数据,本申请中用于直接向芯片中的数据存储器中读写数据。在本申请中DMA模块用于连接端侧和/或云侧接口模块与总线互连模块之间。
定点运算:也叫做整点运算,采用定点数(fixed-point number)进行数据运算。其中,定点数是计算机中采用的一种数的表示方法,约定机器中所有数据的小数点位置是固定不变的。在计算机中通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。一般常称前者为定点小数,后者为定点整数。定点运算中,当数据小于定点数能表示的最小值时,计算机将它们作0处理,称为下溢;大于定点数能表示的最大值时,计算机将无法表示,称为上溢,上溢和下溢统称为溢出。
浮点运算:也叫做实数运算,浮点运算中浮点数(floating-point number)是计算机中采用的另一种数的标识方法,与科学计数法相似,任意一个二进制数N,总可以写成:
N=2E*M;
式中M成为浮点数N的小数部分(也称尾数mantissa),是一个带符号的纯小数;E为浮点数N的指数部分(也称阶码exponent),是一个整数。这种表示方法相当于数的小数点位置随比例因子的不同,而在一定范围内可以自由浮动,所以称为浮点标识法。
神经网络模型被广泛的应用于各个领域,比如,人脸识别、图像分类、语音识别、对象标注等新兴领域。相关技术中,当前的AI应用通常是一个应用对应一个架构。示意性的,人脸识别是通过一专用的AI芯片架构实现,语音识别是通过另一专用的AI芯片架构实现,二者互不兼容。
本申请提供的一种用于计算神经网络模型的芯片100,解决了不同AI芯片架构无法兼容且可扩展性较差的问题,具有较好的适用性和可扩展性,能够适应不同的应用场景。如图1所示,该芯片100包括片外接口模块101、总线互连模块102、指令存储器103、数据存储器104、任务处理器引擎105、多任务拆分调度器106、至少两个数据处理引擎107。
总线互连模块102分别与片外接口模块101、数据存储器104电性连接,总线互连模块102的输出端还与指令存储器103的输入端电性连接;指令存储器103的输出端与任务处理器引擎105的输入端电性连接;任务处理器引擎105的输出端与多任务拆分调度器106的输入端电性连接;多任务拆分调度器106的输出端与至少两个数据处理引擎107的输入端电性连接;至少两个数据处理引擎107与数据存储器104电性连接。其中,至少两个数据处理引擎107中存在用于计算神经网络模型的引擎。
上述芯片100中,片外接口模块101,用于获取待处理的事务,将事务的指令部分存储至指令存储器103,将事务的数据部分存储至数据存储器104;任务处理器引擎105,用于将事务划分为至少两个任务;多任务拆分调度器106,用于将至少两个任务调度到至少两个数据处理引擎107进行处理;至少两个数据处理引擎107,用于根据多任务拆分调度器106调度的任务对数据存储器104中存储的数据进行处理。
可选的,上述芯片100是中央处理器(Central Processing Unit,CPU)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、图形处理器(Graphics Processing Unit,GPU)或人工智能(Artificial Intelligence,AI)芯片中的任意一种。
在一些实施例中,上述芯片100中至少两个数据处理引擎107是相同类型的数据处理引擎;或,至少两个数据处理引擎107中存在不同类型的数据处理引擎;或,至少两个数据处理引擎107中存在不同类型的数据处理引擎,且存在相同类型的数据处理引擎。
可选的,数据处理引擎的类型包括如下类型中的至少一种:
预处理引擎;卷积/矩阵计算引擎;指定算法引擎;后处理引擎;低功耗引擎。
示意性的,预处理引擎用于在计算神经网络模型之前进行数据预处理,数据预处理包括:对数据进行格式转换、滤波、划窗等操作。比如精度转换、图像尺寸剪裁、滤波、移除常量型特征(即这个特征的最大值和最小值相等);或者,不接受非数值形式的输入,字符型变量要进行编码,示意性的,进行One hot编码、Dummy编码或者浓度编码。
卷积/矩阵计算引擎用于支持对神经网络模型中每个神经网络层的矩阵运算,比如矩阵的加法、数乘、乘法、转置、分块对角阵的行列式与逆阵、卷积计算、反卷积计算、向量相乘中的至少一种。在本申请中,卷积/矩阵计算引擎应用于对神经网络模型的训练、推理以及应用。
指定算法引擎用于支持指定数字信号处理的算法以及自定义算法的运算,比如二分法取值、最大期望算法、傅里叶变换、拉普拉斯变换、量化、哈希函数、归并排序、欧几里得算法、正余弦函数运算、以及除法运算中的至少一种。在本申请中,指定算法引擎应用于对神经网络模型的训练、推理以及应用。
后处理引擎用于在神经网络模型计算完成之后进行数据后处理,数据后处理包括输出结果转换、非线性运算(Relu)、池化(pooling)、全连接中的至少一种操作。
低功耗引擎用于在低功耗的应用场景中,以低功耗的形式进行神经网络模型的计算,并且控制切断其他不需要工作的电路模块的电源或者时钟。低功耗引擎可以仅在低功耗场景使用。比如,芯片中包括三个卷积/矩阵计算引擎和低功耗引擎,在对神经网络模型的计算过程中仅使用其中一个卷积/矩阵计算引擎,则低功耗引擎控制切断上述三个卷积/矩阵计算引擎中不工作的两个卷积/矩阵计算引擎的电源或者时钟。
示意性的,参考图2,至少两个数据处理引擎107中包括相同类型的数据处理引擎:卷积/矩阵计算引擎1071和卷积/矩阵计算引擎1072,均用于实现神经网络模型的计算。参考图3,至少两个数据处理引擎107中存在两个不同类型的数据处理引擎:卷积/矩阵计算引擎1072,用于实现神经网络模型的计算,以及预处理引擎1073,用于在对神经网络模型计算之前进行数据类型的转换。参考图4,至少两个数据处理引擎107中即包括相同类型的卷积/矩阵计算引擎1071、卷积/矩阵计算引擎1072,均用于实现神经网络模型的计算;还包括与上述数据处理引擎类型不同的后处理引擎1074,用于神经网络模型计算完成之后,将上述计算的计算结果再次进行数据处理。
在一些实施例中,参考图5,数据存储器104包括共享存储器1041和至少两个二级存储器1042。共享存储器1041与总线互连模块102电性相连;至少两个二级存储器1042与共享存储器1041电性相连;至少两个二级存储器1042还与至少两个数据处理引擎107电性相连。也即,每个数据处理引擎107均具有访问每个二级存储器1042的能力,当数据处理引擎107得到某一个二级存储器1042的访问授权时,能够独享使用该二级存储器1042。
上述共享存储器1041用于存储至少两个数据处理引擎107共享使用的数据;二级存储器1042用于存储指定数据处理引擎独立使用的数据,指定数据处理引擎是至少两个数据处理引擎107中被分配使用该二级存储器的引擎。
可选的,二级存储器的第一数量小于或者等于数据处理引擎的第二数量。示意性的,二级存储器的第一数量与数据处理引擎的第二数量相同,请参考图6,芯片满负荷运行时,每个数据处理引擎被分配使用一个二级存储器;示意性的,卷积/矩阵计算引擎1被分配使用二级存储1,卷积/矩阵计算引擎2被分配使用二级存储2,以此类推,卷积/矩阵计算引擎N被分配使用二级存储N,N为大于1的正整数。
数据处理引擎包括预处理引擎、卷积/矩阵计算引擎、指定算法引擎、后处理引擎、低功耗引擎中的至少一种。图6中仅以卷积/矩阵计算引擎进行举例说明,不代表数据处理引擎均为卷积/矩阵计算引擎。
在一些实施例中,片外接口模块101包括:端侧接口模块,和/或,云侧接口模块,其中,每个片外接口模块101对应一个直接内存访问(Direct Memory Access,DMA)模块。示意性的,参考图7,每个片外接口模块101通过各自对应的DMA模块108与总线互连模块102相连。
可选的,端侧接口模块包括高速串口模块、光模块、摄像头采集模块、高速数据接口模块、以太网接口模块、蓝牙接口模块中的至少一种模块;云侧接口模块包括PCIe硬核模块、以太网接口模块、高速串口模块、光模块、高速数据接口模块中的至少一种模块。
在一个示意性的实施例中,参考图8,所示芯片的片外接口模块包括了PCIe硬核模块1011、以太网接口模块1012、高速串口模块1013、光模块1014、摄像头采集模块1015、高速数据接口模块1016和蓝牙接口模块1017。图8中的芯片中PCIe硬核模块1011通过DMA模块1081与总线互连模块102连接,以太网接口模块1012通过DMA模块1082与总线互连模块102连接,高速串口模块1013通过DMA模块1083与总线互连模块102连接,光模块1014通过DMA模块1084与总线互连模块102连接,摄像头采集模块1015通过DMA模块1085与总线互连模块102连接,高速数据接口模块1016通过DMA模块1086与总线互连模块102连接,蓝牙接口模块1017通过DMA模块1087与总线互连模块102连接;总线互连模块102分别与指令存储器103、数据存储器104电性连接;指令存储器103与任务处理器引擎105电性连接;任务处理器引擎105与多任务拆分调度器106电性连接;多任务拆分调度器106与数据处理引擎电性连接,数据处理引擎包括:卷积/矩阵计算引擎1071、预处理引擎1073、后处理引擎1074、指定算法引擎1075以及低功耗引擎1076;上述数据处理引擎与数据存储器104电性相连。
在图8所示的芯片中,PCIe硬核模块1011和以太网接口模块1012用于与云侧之间的数据交换;高速串口模块1013和光模块1014可以用于芯片互连;摄像头采集模块1015、高速数据接口模块1016和蓝牙接口模块1017用于端侧的数据获取。
本申请提供的一种用于计算神经网络模型的芯片,集成了片上接口模块101、总线互连模块102、指令存储器103、数据存储器104、任务处理器引擎105、多任务拆分调度器106和至少两个数据处理引擎107;在该芯片上,通过任务处理器引擎105将事务划分为至少两个任务,之后通过多任务拆分调度器106将至少两个任务分别调度到至少两个数据处理引擎107,至少两个数据处理引擎107并行和/或串行地实现神经网络模型的计算;事务由至少两个数据处理引擎完成,相当于使用多个AI计算核心共同处理事务,实现了多个AI计算核架构的扩展和伸缩,提高了AI芯片的适用性和可扩展性。
另外,如图8所示,当片外接口模块101中包括高速串口模块1013和/或光模块1014,上述AI芯片还支持多个AI处理器或者AI芯片之间的互连互通。
图9是本申请一个示例性实施例提供的神经网络模型的计算方法的流程图,应用于上述图1至图8所示的任意一种用于计算神经网络模型的芯片中,该方法包括:
步骤201,片外接口模块获取待处理的事务。
片外接口模块包括端侧接口模块和/或云侧接口模块。
事务是端侧或者云侧产生的事件,该事件中包括对神经网络模型的计算。示意性的,事务可以包括图像识别或分类、语音识别、文本翻译、金融统计、对象标注中的至少一种。
可选的,端侧上产生一个操作事件,端侧的端侧接口模块将上述操作事件模拟为一个事务,获得一个待处理的事务;或者,云侧上产生一个操作事件,云侧的云侧接口模块将上述操作事件模拟为一个事务,获得一个待处理的事务;或者,端侧上产生一个操作事件,端侧的端侧接口模块将上述操作事件模拟为一个事务,获得一个待处理的事务,端侧的云侧接口模块将上述待处理的事务的部分内容上传至云侧进行处理,端侧和云侧共同处理上述事务。
可选的,片外接口模块包括高速串口模块、光模块、摄像头采集模块、高速数据接口模块、PCIe硬核模块、以太网接口模块、蓝牙接口模块的至少一种模块。
在一些实施例中,端侧接口模块包括高速串口模块、光模块、摄像头采集模块、高速数据接口模块、以太网接口模块、蓝牙接口模块中的至少一种模块。
在一些实施例中,云侧接口模块包括PCIe硬核模块、以太网接口模块、高速串口模块、光模块、高速数据接口模块中的至少一种模块。
步骤202,片外接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器。
片外接口模块将获取的待处理的事务分为指令部分与数据部分,指令部分存储至指令存储器中,数据部分存储至数据存储器中。
可选的,数据存储器包括随机存取存储器(Random Access Memory,RAM)、闪存(Flash Memory)、先进先出(First Input First Output,FIFO)存储器、先进后出(FirstInput Last Output)存储器中的任意一种。
可选的,指令存储器包括RAM、闪存、FIFO存储器以及FILO存储器中的任意一种。
步骤203,任务处理器引擎将事务划分为至少两个任务。
可选的,任务处理器引擎根据事务的事务属性,将事务划分为至少两个任务,其中,事务属性包括计算数据量、数据类型、计算类型、时序依赖关系中的至少一种。
步骤204,多任务拆分调度器将至少两个任务调度到至少两个数据处理引擎进行处理。
多任务拆分调度器将任务调度至数据处理引擎中,数据处理引擎根据任务从数据存储器中获取数据并进行处理。
可选的,待计算的数据从数据存储器被读入与数据处理引擎对应的二级存储器中,数据处理引擎根据任务从对应的二级存储器中获取数据并进行处理。其中,一个数据处理引擎被分配使用一个二级存储器。
可选的,一个任务包括N个指令,多任务拆分调度器将一个任务调度至一个数据处理引擎进行处理;或者,多任务拆分调度器将一个任务的N个指令调度到至少两个数据处理引擎进行处理;或者,多任务拆分调度器将两个及以上的任务调度至一个数据处理引擎进行处理;或者,多任务拆分调度器将两个及以上的任务中每个任务的N个指令调度到至少两个数据处理引擎进行处理。
可选的,至少两个数据处理引擎包括预处理引擎、卷积/矩阵计算引擎、指定算法引擎、后处理引擎、低功耗引擎中的至少一种。
需要说明的是,至少两个数据处理引擎中至少一个数据处理引擎用于神经网络模型的计算。
示意性的,在一些实施例中,任务处理器引擎根据事务的计算数据量将事务划分为至少两个任务,比如,通过卷积/矩阵计算引擎计算神经网络模型,一个卷积/矩阵计算引擎的计算量为1,当事务的计算数据量为2时,将事务划分为计算数据量均为1的两个任务;多任务拆分调度器将上述两个任务顺序调度至计算量为1的上述一个卷积/矩阵计算引擎进行数据处理。
在一些实施例中,任务处理器引擎根据事务的数据类型将事务划分为至少两个任务,比如,通过指定算法引擎计算神经网络模型,事务的数据中包括小数、整数、对数,任务处理器引擎将事务划分为小数对应的任务、整数对应的任务、对数对应的任务,共三个任务;多任务拆分调度器将上述三个任务调度至三个数据处理引擎进行数据处理,将小数对应的任务调度至一个指定算法引擎进行数据处理,将整数对应的任务调度至另一个指定算法引擎进行数据处理,将对数对应的任务调度至另一个指定算法引擎进行数据处理。
在一些实施例中,任务处理器引擎根据数据的计算类型将事务划分为至少两个任务,比如,事务的数据分为两部分进行计算,一部分需要进行卷积计算,另一部分需要进行拉普拉斯变换,任务处理器引擎将事务划分为两个任务,第一个任务用于对数据进行卷积计算的处理,第二个任务用于对数据进行拉普拉斯变换计算的处理;多任务拆分调度器将第一个任务调度至卷积/矩阵计算引擎中进行数据处理,将第二个任务调度至指定算法引擎进行数据处理。
在一些实施例中,任务处理器引擎根据时序依赖关系将事务划分为至少两个任务。可选的,任务处理器引擎根据时序依赖关系将事务划分为串行和/或并行的至少两个任务。比如,事务分为两个步骤处理,第一个步骤的数据处理结果是第二个步骤数据处理的输入数据,任务处理器引擎根据数据处理步骤的先后将事务划分为串行的两个任务;多任务拆分调度器将上述两个任务先后调度至数据处理引擎进行处理。再次,事务分为两个步骤处理,两个步骤是并行的两个数据处理步骤,任务处理器引擎将事务划分为并行的两个任务;多任务拆分调度器将上述两个任务同时调度至两个数据处理引擎进行处理。
综上所述,本实施例提供的神经网络模型的计算方法,通过片外接口模块获取待处理的事务,片外接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器,任务处理器引擎将事务划分为至少两个任务,多任务拆分调度器将至少两个任务调度到至少两个数据处理引擎进行处理;通过指令和数据的拆分满足了性能需求不同的应用场景。
需要说明的,多任务拆分调度器根据任务的任务属性将任务调度至数据处理引擎进行处理,参考图10,步骤204可替换为步骤2041,步骤如下:
步骤2041,对于至少两个任务中的任意一个任务,多任务拆分调度器根据任务的任务属性,将任务调度到至少两个数据处理引擎进行处理。
至少两个数据处理引擎按照串行顺序和/或并行顺序对至少两个任务进行处理。示意性的,将两个任务按照先后顺序调度至一个卷积/矩阵计算引擎中按串行顺序进行处理;或者,将两个任务同时调度至两个卷积/矩阵计算引擎中并行处理。
可选的,任务的任务属性包括计算数据量、数据类型、计算类型、时序依赖关系中的至少一种。
示意性的,在一些实施例中,对于至少两个任务中的任意一个任务,多任务拆分调度器根据任务的计算数据量,将任务调度到至少两个数据处理引擎进行处理,比如,第一个卷积/矩阵计算引擎的计算量为1,第二个卷积/矩阵计算引擎的计算量为2,当一个任务的计算量为1.5时,多任务拆分调度器将任务调度至第二个卷积/矩阵计算引擎中进行处理。
在一些实施例中,对于至少两个任务中的任意一个任务,多任务拆分调度器根据任务的数据类型,将任务调度到至少两个数据处理引擎进行处理,比如,第一指定算法引擎用于小数的计算,第二指定算法引擎用于指数的计算,第一个任务是对应于小数的处理,第二个任务是对应于指数的处理,第一任务与第二任务是并行的两个任务;多任务拆分处理器将第一任务调度至第一指定算法引擎进行处理,同时将第二任务调度至第二指定算法引擎进行处理。
在一些实施例中,对于至少两个任务中的任意一个任务,多任务拆分调度器根据任务的计算类型,将任务调度到至少两个数据处理引擎进行处理,比如,指定算法引擎用于根据傅里叶变换函数进行数据处理,卷积/矩阵计算引擎用于对数据进行卷积计算,两个任务中,第二个任务需要对第一任务卷积计算得到的计算结果进行傅里叶变换,是串行的两个任务;多任务拆分调度器将需要进行卷积计算的任务调度至卷积/矩阵计算引擎进行处理,得到卷积计算的计算结果之后将需要进行傅里叶变换的任务调度至指定算法引擎进行处理。
综上所述,本实施例提供的神经网络模型的计算方法,通过片外接口模块获取待处理的事务,片外接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器,任务处理器引擎将事务划分为至少两个任务,多任务拆分调度器根据任务的任务属性将至少两个任务调度到至少两个数据处理引擎进行处理;通过指令和数据的拆分满足了性能需求不同的应用场景,体现了AI芯片的可伸缩性。
还需要说明的是,一个任务对应一个指令队列,指令采用流水线方式执行,在一些实施例中,对于至少两个任务中的任意一个任务,多任务拆分调度器根据任务的任务属性,将任务调度到至少两个数据处理引擎进行处理,包括:
任务处理器引擎获取任务对应的指令队列,指令队列包括若干指令;任务处理器引擎按序获取指令队列中的指令,译码得到指令对应的操作参数集,操作参数集包括操作码和操作数中的至少一项;多任务拆分调度器根据操作参数集的类型和时序依赖关系,将操作参数集调度到至少两个数据处理引擎中的目标数据处理引擎中进行处理。
示意性的,对应硬件说明上述实现过程。参考图11,执行一个事务,一个事务包括N个任务,任务处理器引擎从指令存储器a获取上述一个任务的指令队列1;通过指令译码单元b译码得到指令对应的操作参数集,操作参数集包括操作码和操作数;指令执行单元c将操作码和操作数调度至目标数据处理引擎d进行处理;指令队列1执行完毕,执行指令队列2,以此类推,执行指令队列N,直至上述一个事务执行完毕。
综上所述,本实施例提供的计算方法,通过片外接口模块获取待处理的事务,片外接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器,任务处理器引擎将事务划分为至少两个任务,多任务拆分调度器将至少两个任务调度到至少两个数据处理引擎进行处理;通过分层的指令和数据的拆分满足了性能需求不同的应用场景,体现了AI芯片的可伸缩性。
示意性的,指令采用层次化的结构,如图12所示,分为事务层21、任务层22、指令层23和操作层24。
事务层21将片外接口模块从端侧和/或云侧的应用发起的每一次事件抽象成一个事务;任务层22将一个事务划分为N个任务,任务之间可以是相互独立或者有相互依赖顺序,N个任务可以启动多个数据处理引擎串行或者并行进行运算;指令层23将一个任务划分为N条指令每一条指令用于指示完成一个操作,指令可以包括数据搬移指令、卷积计算指令、反卷积计算指令、激活指令等一系列指令,这里对指令的种类和个数不进行限定;操作层24将一个指令经过译码获取对应的操作数和操作码,作为预处理引擎、指定算法引擎、卷积/矩阵计算引擎中的任意一个数据处理引擎的输入信号,调度数据处理引擎进行数据处理。
另外,在图9至图12任一所示神经网络模型的计算方法应用于如图8所示的芯片中,芯片上集成有卷积/矩阵计算引擎、预处理引擎、指定算法引擎和后处理引擎,可以完成对神经网络模型的训练和推理。
当前芯片处于训练的应用场景时,卷积/矩阵计算引擎进入高精度计算模式,可以实现浮点运算和高精度的定点运算,比如矩阵的相乘、转置相加等一系列计算,这里对计算的种类不加以限定;预处理引擎实现训练数据的格式转换;指定算法引擎实现神经网路模型计算之外的各种数字信号处理的运算,比如傅里叶变换、拉普拉斯变换等数字信号处理运算,这里对计算的种类不加以限定;后处理引擎主要完成除卷积、矩阵之外的神经网络模型的算子运算,比如非线性运算、池化、全连接等运算;通过上述数据处理引擎实现神经网络模型的训练。
当前芯片处于推理的应用场景时,卷积/矩阵计算引擎进入低精度计算模式,可以实现低精度的定点运算或者稀疏化运算,这里对计算的种类不加以限定;预处理引擎实现推理前数据的格式转换;后处理引擎主要完成除卷积、矩阵之外的神经网络模型的算子运算,比如非线性运算、池化、全连接等运算;通过上述数据处理引擎实现神经网络模型的推理。
再次,如图8所示,芯片上还集成了低功耗引擎,用于低功耗的应用场景下,比如物联网设备的处于低功耗运行模式,使芯片支持高性能的应用场景,又支持低功耗的应用场景,请参考图13,芯片进入低功耗的步骤如下:
步骤31,识别系统当前运行模式。
上述运行模式包括正常工作模式和低功耗工作模式。
系统检测或者自动识别当前应用场景的应用状态,判断当前应用场景的应用状态是否是处于低功耗应用状态;当前应用场景的应用状态处于低功耗应用状态时,执行步骤32。此处的系统是指应用有该芯片的硬件装置。
步骤32,启动低功耗引擎。
系统启动芯片上的低功耗引擎,使芯片进入低功耗运行模式。
步骤33,系统级调控。
系统根据耗电量的程度通过低功耗引擎控制AI芯片或者AI处理器处于不同级别的低功耗模式。比如,低功耗模式分为普通低功耗模式和最低功耗模式,当芯片的当前耗电量的程度很小的情况下,调控至最低功耗模式;当芯片的当前耗电量的程度较低的情况下,调控至普通低功耗模式。
步骤34,模块级控制。
系统将当前不需要运行的模块的电源或者时钟关闭。
示意性的,当计算神经网络模型时,如图8所示的芯片上,使用了数据存储器、指令存储器、任务处理器引擎、多任务拆分调度器、预处理引擎、卷积/矩阵计算引擎,而指定算法引擎以及后处理引擎处于不工作状态,低功耗引擎控制切断指定算法引擎以及后处理引擎的电源或者时钟。
综上所述,本申请的技术方案提出的一种用于计算神经网络模型的芯片,是一种可伸缩的硬件架构,其可伸缩性体现在如下四方面:
第一、支持多个AI处理器或者AI芯片之间的互连互通;
第二、通过指令和数据的拆分满足性能需要不同的应用场景;
第三、既能执行神经网络模型的训练,又能支持推理应用;
第四、在芯片包括低功耗引擎的前提下,既支持高性能的应用场景,又支持低功耗的应用场景。
在不同的实现场景中,端侧可以设置有本申请中提出的用于计算神经网络模型的芯片(简称AI芯片),也可以不设置本申请中提出的AI芯片;而云侧可以设置本申请中提出的AI芯片,也可以不设置本申请中提出的AI芯片。
如图14所示的神经网络模型计算的实施环境,端侧41设置有如图1至图8任一所示的用于计算神经网络模型的第一AI芯片411,第一AI芯片411的接口模块1与端侧设备412连接。在如图14所示的实施环境中,当接口模块1获取得到涉及计算神经网络模型的事务,第一AI芯片411自身完成上述事务。
如图15所示的神经网络模型计算的实施环境,端侧41设置有如图1至图8任一所示的用于计算神经网络模型的第一AI芯片411,第一AI芯片411的接口模块1与端侧设备412连接;云侧42设置有如图1至图8用于计算神经网络模型的第二AI芯片421,第二AI芯片421的接口模块4与服务器422连接;第一AI芯片411的接口模块2与第二AI芯片421的接口模块3之间通过有线或者无线网络43进行连接。在如图15所示的实施环境中,接口模块4获取涉及神经网络模型计算的待处理事务,第二AI芯片421可以直接对上述事务进行处理;或者,将上述事务下发到端侧41,通过第一AI芯片411对上述事务进行处理。接口模块1获取涉及神经网络模型计算的待处理事务,第一AI芯片411可以直接对上述事务进行处理;或者,将上述事务上传至云侧42,通过第二AI芯片421对上述事务进行处理。
如图16所示的神经网络模型计算的实施环境,云侧42设置有用于计算神经网络模型的第二AI芯片421,第二AI芯片421的接口模块4与服务器422连接;端侧不设置用于计算神经网络模型的芯片,端侧设备412与服务器422之间通过有线或者无线网络43进行通信。在如图16所示的实施环境中,接口模块4获取涉及神经网络模型计算的待处理事务,云侧直接对上述事务进行处理。
针对上述实施环境,神经网络模型的计算包括如下四种场景:
1、事务由端侧41产生,计算结果也由端侧41输出;
2、事务由云侧42产生,计算结果也由云侧42输出;
3、事务由端侧41产生,计算结果由云侧42输出;
4、事务由云侧42产生,计算结果由端侧41输出。
如图17所示的实施例是对上述第一种情况的说明;如图18所示的实施例是对上述第二种情况的说明;如图19以及图20所示的实施例是对上述第一种情况和第三种情况的说明;如图21所示的实施例是对上述第二种情况和第四种情况的说明。
图17是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图,应用于如图14或图15所示的实施环境中,端侧41包括如图1至图8任一所示的第一AI芯片411,其片外接口模块包括接口模块1,该方法包括:
步骤301,第一AI芯片的接口模块获取第一设备产生的待处理的事务。
本实施例中第一AI芯片的接口模块1属于端侧接口模块。可选的,端侧接口模块包括:高速串口模块、光模块、摄像头采集模块、高速数据接口模块、以太网接口模块、蓝牙接口模块中的至少一种模块。
可选的,第一设备包括智能手机、平板电脑、车载设备、手持设备、虚拟现实(Virtual Reality,VR)设备、便携式设备、物联网设备中的至少一种。
待处理的事务是第一设备上产生的事件,该事件涉及神经网络模型的计算,示意性的,待处理的事务可以包括图像识别与分类、语音识别、文本翻译、金融统计、对象标注中的至少一种。
结合图14或者图15,端侧41的第一AI芯片411的接口模块1获取端侧设备412(即第一设备)产生的待处理的事务。
步骤302,第一AI芯片的接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器。
端侧41的第一AI芯片411的接口模块1将获得的事务划分为指令部分和数据部分,将指令部分存储至指令存储器,将数据部分存储至数据存储器。
步骤303,任务处理器引擎将事务划分为至少两个任务。
请参考步骤203,在此不再加以赘述。
步骤304,多任务拆分调度器将至少两个任务调度到至少两个数据处理引擎进行处理。
请参考步骤204,在此不再加以赘述。
步骤305,第一AI芯片的接口模块将数据处理引擎的处理结果发送给第一设备和/或第二设备。
可选的,第二设备包括智能手机、平板电脑、车载设备、手持设备、VR设备、便携式设备、物联网设备中的至少一种。
示意性的,端侧41的第一AI芯片411的接口模块1将数据处理引擎的处理结果发送给第一设备,比如,智能手机包括第一AI芯片,该芯片能够完成人像识别功能。用户打开智能手机的摄像头,通过摄像头进行取景,并设置为取景图像中自动标记图像中的人物;智能手机中上述芯片的接口模块获取取景图像中自动标记图像中的人物的这一事务以及取景图像;智能手机通过上述芯片对取景图像中的人像进行识别,并通过接口模块输出识别得到的人像。
或者,端侧41的第一AI芯片411的接口模块1将数据处理引擎的处理结果发送给第二设备,比如,第一AI芯片的一接口模块连接有监控摄像头,另一接口模块连接有电脑;监控摄像头拍摄违停的车辆,与监控摄像头连接的一接口模块获取待处理的事务,上述事务中包括拍摄的违停车辆的图像;第一AI芯片计算标记图像中车辆的车牌号,并将标记完成的图像通过与电脑连接的另一接口模块发送给电脑。
综上所述,本实施例提供的神经网络模型的计算方法,通过端侧接口模块获取待处理的事务,端侧接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器,任务处理器引擎将事务划分为至少两个任务,多任务拆分调度器将至少两个任务调度到至少两个数据处理引擎进行处理;通过端侧接口模块实现了对端侧应用场景的支持。
图18是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图,应用于如图15或者图16所示的实施环境中,云侧42包括图1至图8任一所示的第二AI芯片421,片外接口模块包括接口模块4,该方法包括:
步骤401,第二AI芯片的接口模块获取云侧主机产生的待处理的事务。
本实施例中第二AI芯片的接口模块4属于云侧接口模块。可选的,云侧接口模块包括PCIe硬核模块、以太网接口模块、高速串口模块、光模块、高速数据接口模块中的至少一种模块。
可选的,待处理的事务包括云侧主机分配的事务。可选的,云侧主机是一台服务器或者服务器集群。
结合图15或者图16,云侧42的第二AI芯片421的接口模块4获取服务器422产生的待处理的事务,包括服务器422产生的指令部分和服务器422提供的数据部分。
步骤402,第二AI芯片的接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器。
云侧42的第二AI芯片421的接口模块4将从服务器422获取的事务的指令部分存储至指令存储器,将从服务器422获取的事务的数据部分存储至数据存储器。
步骤403,任务处理器引擎将事务划分为至少两个任务。
请参考步骤203,在此不再加以赘述。
步骤404,多任务拆分调度器将至少两个任务调度到至少两个数据处理引擎进行处理。
请参考步骤204,在此不再加以赘述。
步骤405,第二AI芯片的接口模块将数据处理引擎的处理结果回传给云侧主机。
云侧42的第二AI芯片421的接口模块4将数据处理引擎的处理结果回传给服务器422。
示意性的,服务器需要将存储的音乐的点击量、点赞量以及下载量进行分析处理,生成不同的榜单推送给用户;服务器生成上述对音乐的分析处理的事务,包括有关音乐的点击量、点赞量以及下载量的大量数据;第二AI芯片的接口模块获取服务器产生的上述事务;第二AI芯片通过相应的神经网络模型根据音乐的点击量、点赞量以及下载量分析得到音乐的推送参数,再次通过接口模块将上述音乐的推送参数返回给服务器;服务器根据上述音乐的推送参数生成榜单推送给用户。
综上所述,本实施例提供的神经网络模型的计算方法,通过云侧的云侧接口模块获取云侧主机待处理的事务,端侧接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器,任务处理器引擎将事务划分为至少两个任务,多任务拆分调度器将至少两个任务调度到至少两个数据处理引擎进行处理;通过云侧接口模块实现了对云侧应用场景的支持。
图19是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图,应用于如图15所示的实施环境中,端侧41包括如图1至图8任一所示的第一AI芯片411,其片外接口模块包括与端侧设备412相连的接口模块1以及与云侧42相连的接口模块2;云侧42包括如图1至图8任一所示的第二AI芯片421,其片外接口模块包括接口模块3和接口模块4,该方法包括:
步骤501,第一AI芯片的接口模块获取第一设备产生的待处理的事务。
本实施例中第一AI芯片的接口模块1属于端侧接口模块。可选的,端侧接口模块包括:高速串口模块、光模块、摄像头采集模块、高速数据接口模块、以太网接口模块、蓝牙接口模块中的至少一种模块。
可选的,第一设备包括智能手机、平板电脑、车载设备、手持设备、VR设备、便携式设备、物联网设备中的至少一种。
待处理的事务是第一设备上产生的事件,该事件涉及神经网络模型的计算,示意性的,待处理的事务可以包括图像识别与分类、语音识别、文本翻译、金融统计、对象标注中的至少一种。
结合图15,端侧41的第一AI芯片411的接口模块1获取端侧设备412(即第一设备)的待处理的事务。
步骤502,第一AI芯片的接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器。
端侧41的第一AI芯片411的接口模块1将获得的事务划分为指令部分和数据部分,将指令部分存储至指令存储器,将数据部分存储至数据存储器。
步骤503,第一AI芯片的任务处理器引擎将事务划分为至少两个任务。
请参考步骤203,在此不再加以赘述。
步骤504,第一AI芯片的任务处理器引擎判断至少两个任务是否超过承载量阈值。
其中,上述承载量阈值时完成一个事务所需的数据处理引擎能够承载的最大计算量。
当至少两个任务超过承载量阈值时,执行步骤505;否则直接执行步骤506。
步骤505,第一AI芯片的任务处理器引擎将目标任务通过接口模块传输给第二AI芯片进行处理。
第一AI芯片的任务处理器引擎从至少两个任务中确定出目标任务,目标任务是至少两个任务中超过承载量阈值的任务;并将目标任务通过端侧41的第一AI芯片411的接口模块2传输给第二AI芯片421进行处理;第二AI芯片421通过接口模块3接收上传的目标任务。
本实施例中第一AI芯片的接口模块2属于云侧接口模块。可选的,云侧接口模块包括PCIe硬核模块、以太网接口模块、高速串口模块、光模块、高速数据接口模块中的至少一种模块。
示意性的,参考图20,步骤51,第一AI芯片的任务处理器引擎判断事务的数据部分的数据量是否超过当前芯片的最大处理量。步骤52,划分和选择待上传的业务。当上述数据量超过当前芯片的最大处理量,第一AI芯片的任务处理器引擎将任务划分为两部分,确定其中一部分为待上传的业务。步骤53,端侧到云侧的数据上传。第一AI芯片的任务处理器引擎通过第一AI芯片的接口模块2将待上传的业务上传至云侧主机。步骤54,云侧主机对上传业务的数据进行分析与处理。
步骤506,第一AI芯片的多任务拆分调度器将至少两个任务(除目标任务之外)调度到至少两个数据处理引擎进行处理。
需要说明的是,当至少两个任务超过承载量阈值时,多任务拆分调度器将至少两个任务中除目标任务之外的其他任务调度到至少两个数据引擎进行处理。
步骤507,第二AI芯片的多任务拆分调度器将目标任务调度到数据处理器引擎进行处理。
其中,目标任务可以是一个或者是多个任务。第二AI芯片的多任务拆分调度器将上述目标任务调度到第二AI芯片的至少一个数据处理引擎进行处理。
步骤508,第二AI芯片的接口模块将处理结果返回至端侧设备;或者,云侧主机对处理结果进行保存。
本实施例中第二AI芯片的接口模块4属于云侧接口模块。
第二AI芯片421的接口模块3向端侧41发送处理结果;第一AI芯片411的接口模块2接收云侧主机发送的处理结果。
比如,智能手机需要对多张图像进行图像识别,由于多张图像包含的数据量过大,智能手机从多张图像中确定出一部分图像为目标图像,通过第一AI芯片的接口模块将图像识别的任务以及确定的目标图像上传至云侧主机,通过云侧主机进行图像识别;云侧主机完成图像识别,并将图像识别的结果通过第二AI芯片的接口模块返回至智能手机。
或者,第二AI芯片的接口模块4输出处理结果,将处理结果保存至云侧主机。
综上所述,本实施例提供的神经网络模型的计算方法,通过端侧接口模块获取待处理的事务,端侧接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器,任务处理器引擎将事务划分为至少两个任务,当至少两个任务超过承载量阈值时,将目标任务通过云侧接口模块传输给云侧主机进行处理,多任务拆分调度器将至少两个任务中除目标任务之外的其他任务调度到至少两个数据处理引擎进行处理;通过端侧接口模块和云侧接口模块的配合实现了对于端侧与云侧之间切换的应用场景的支持。
图21是本申请另一个示例性实施例提供的神经网络模型的计算方法的流程图,应用于如图15所示的实施环境中,端侧41包括如图1至图8任一所示的第一AI芯片411,其片外接口模块包括与端侧设备412相连的接口模块1以及与云侧42相连的接口模块2;云侧42包括如图1至图8任一所示的第二AI芯片421,其片外接口模块包括与端侧41相连的接口模块3,以及与服务器422相连的接口模块4,该方法包括:
步骤601,第一AI芯片的接口模块获取云侧主机产生的待处理的事务。
本实施例中第一AI芯片的接口模块2属于云侧接口模块。可选的,云侧接口模块包括PCIe硬核模块、以太网接口模块、高速串口模块、光模块、高速数据接口模块中的至少一种模块。
可选的,待处理的事务包括云侧主机分配的事务;和/或,中间计算结果,中间计算结果是云侧主机对业务数据计算得到的。示意性的,上述业务数据可以包括但不限于视频数据、流水数据、图像、音频数据、文本数据中的至少一种。
可选的,云侧主机可以是一台服务器或者服务器集群。
结合图15,端侧41的第一AI芯片411的接口模块2获取云侧主机产生的待处理的事务。
步骤602,第一AI芯片的接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器。
在一些示例性的例子中,端侧41的第一AI芯片411的接口模块2将获取得到的事务分为指令部分和数据部分,并指令部分存储至指令存储器,将数据部分存储至数据存储器。
在一些示例性的例子中,端侧41的第一AI芯片411的接口模块2将获取的中间计算结果存储至数据存储器;中间计算结果可以作为神经网络模型计算或者指定算法运算的输入值。
步骤603,第一AI芯片的任务处理器引擎将事务划分为至少两个任务。
请参考步骤203,在此不再加以赘述。
步骤604,第一AI芯片的多任务拆分调度器将至少两个任务调度到至少两个数据处理引擎进行处理。
请参考步骤204,在此不再加以赘述。
步骤605,第一AI芯片的接口模块将数据处理引擎的处理结果返回给云侧主机;或者,第一AI芯片的接口模块将数据处理引擎的处理结果发送给端侧设备。
端侧41的第一AI芯片411的接口模块2向云侧主机发送数据处理引擎的处理结果,云侧主机通过云侧42的第二AI芯片421的接口模块3接收上述处理结果;或者,端侧41的第一AI芯片411的接口模块1将数据引擎的数据处理结果发送给端侧设备412。
综上所述,本实施例提供的神经网络模型的计算方法,通过端侧的云侧接口模块获取云侧主机的待处理的事务,云侧接口模块将事务的指令部分存储至指令存储器,将事务的数据部分存储至数据存储器,任务处理器引擎将事务划分为至少两个任务,多任务拆分调度器将至少两个任务调度到至少两个数据处理引擎进行处理;通过云侧接口模块实现了对于端侧与云侧之间切换的应用场景的支持。
需要说明的是,基于图21,第一AI芯片的接口模块还可以获取云侧主机产生的模型参数,模型参数是云侧主机对神经网络模型进行训练后的参数。
在一些实施例中,第一AI芯片41的任务处理器引擎通过第一AI芯片41的接口模块2获取得到的云侧主机产生的模型参数,并根据上述模型参数设置数据处理引擎。示意性的,任务处理器引擎根据上述模型参数设置卷积/矩阵计算引擎中的计算参数;上述卷积/矩阵计算引擎根据上述设置的计算参数对神经网络模型进行计算。
综上所述,本申请的技术方案提出的一种用于计算神经网络模型的芯片,还是一种通用的硬件架构,其通用性体现在如下三方面:
第一、支持端侧应用场景;
第二、支持云侧应用场景;
第三、支持端侧和云侧之间的无缝转换的应用场景。
图22是本申请一个示例性实施例提供的用于计算神经网络模型的架构的框图,该架构包括:片外接口模块701、指令存储器702、数据存储器703、任务处理器引擎704、多任务拆分调度器705、至少两个数据处理引擎706;
片外接口模块701分别与指令存储器702、数据存储器703电性相连;指令存储器702与至少两个数据处理引擎706电性相连;数据存储器703与任务处理器引擎704电性相连;多任务拆分调度器705分别与任务处理器引擎704、至少两个数据处理引擎706电性相连。
在一些实施例中,片外接口模块701,用于获取待处理的事务,并将事务的指令部分存储至指令存储器702,将事务的数据部分存储至数据存储器703;
指令存储器702,用于存储事务的指令部分;
数据存储器703,用于存储事务的数据部分;
任务处理器引擎704,用于将事务的指令部分划分为至少两个任务;
多任务拆分调度器705,用于将至少两个任务调度至至少两个数据处理引擎706进行处理;
至少两个数据处理引擎706,用于根据至少两个任务对事务的数据部分进行处理。
在一些实施例中,任务处理器引擎704,用于根据事务的事务属性,将事务划分为的指令部分划分为至少两个任务;其中,事务属性包括:计算数据量、数据类型、计算类型、时序依赖关系中的至少一种。
在一些实施例中,多任务拆分调度器705,用于根据任务的任务属性,将任务调度至至少两个任务处理模块中进行处理,任务为至少两个任务中的任意一个任务;
至少两个数据处理引擎706,用于按照串行顺序和/或并行顺序对至少两个任务进行处理;其中,任务属性包括:计算数据量、数据类型、计算类型、时序依赖关系中的至少一种。
在一些实施例中,任务处理器引擎704,用于获取任务对应的指令队列,指令队列包括若干个指令;按序获取指令队列中的指令,译码得到指令对应的操作参数集,操作参数集包括操作码和操作数中的至少一项;
多任务拆分调度器705,用于根据操作参数集的类型和时序依赖关系,将操作参数集调度至至少两个数据处理引擎706中的目标数据处理引擎进行处理。
可选地,片外接口模块701包括端侧接口模块7011和/或云侧接口模块7012;如图23所示,端侧接口模块7011分别与指令存储器702、数据存储器703电性相连;云侧接口模块7012分别与指令存储器702、数据存储器703电性相连。
在一些实施例中,片外接口模块701包括端侧接口模块7011;
端侧接口模块7011,用于获取第一设备产生的待处理的事务;还用于将数据处理引擎的处理结果发送给第一设备和/或第二设备。
在一些实施例中,该架构应用于端侧设备中,片外接口模块701包括云侧接口模块7012;
云侧接口模块7012,用于获取云侧主机产生的待处理的事务,待处理的事务包括:云侧主机分配的事务,和/或,中间计算结果,中间计算结果是云侧主机对业务数据计算得到的;还用于将数据处理引擎的处理结果回传给云侧主机。
在一些实施例中,该架构应用于端侧设备中,片外接口模块701包括云侧接口模块7012;
云侧接口模块7012,用于获取云侧主机产生的模型参数,模型参数是云侧主机对神经网络模型进行训练后的参数;
任务处理器引擎704,还用于根据模型参数设置数据处理引擎。
在一些实施例中,该架构应用于端侧设备中,片外接口模块701包括与端侧设备相连的端侧接口模块7011,以及云侧接口模块7012;
端侧接口模块7011,用于获取第一设备产生的待处理的事务;
任务处理器引擎704,还用于在至少两个任务超过承载量阈值时,将目标任务通过云侧接口模块7012传输给云侧主机进行处理,目标任务是至少两个任务中超过承载量阈值的任务。
综上所述,本申请提供的用于计算神经网络模型的架构,包括片上接口模块、指令存储器、数据存储器、任务处理器引擎、多任务拆分调度器和至少两个数据处理引擎;在该架构中,通过任务处理器引擎将事务划分为至少两个任务,之后通过多任务拆分调度器将至少两个任务分别调度到至少两个数据处理引擎,至少两个数据处理引擎并行和/或串行地实现神经网络模型的计算;事务由至少两个数据处理引擎完成,相当于使用多个AI计算核心共同处理事务,实现了多个AI计算核架构的扩展和伸缩,提高了AI芯片的适用性和可扩展性。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (24)
1.一种用于计算神经网络模型的架构,其特征在于,所述架构包括:片外接口模块、指令存储器、数据存储器、任务处理器引擎、多任务拆分调度器、至少两个数据处理引擎;
所述片外接口模块,用于获取待处理的事务,并将所述事务的指令部分存储至所述指令存储器,将所述事务的数据部分存储至所述数据存储器;
所述指令存储器,用于存储所述事务的指令部分;
所述数据存储器,用于存储所述事务的数据部分;
所述任务处理器引擎,用于将所述事务的指令部分划分为至少两个任务;
所述多任务拆分调度器,用于将所述至少两个任务调度至所述至少两个数据处理引擎进行处理;
所述至少两个数据处理引擎,用于根据所述至少两个任务对所述事务的数据部分进行处理;
其中,所述至少两个数据处理引擎中存在用于计算所述神经网络模型的引擎。
2.根据权利要求1所述的架构,其特征在于,所述任务处理器引擎,用于根据所述事务的事务属性,将所述事务划分为至少两个任务;
其中,所述事务属性包括:计算数据量、数据类型、计算类型、时序依赖关系中的至少一种。
3.根据权利要求1所述的架构,其特征在于,
所述多任务拆分调度器,用于根据任务的任务属性,将所述任务调度至所述至少两个数据处理引擎中进行处理,所述任务为所述至少两个任务中的任意一个任务;
所述至少两个数据处理引擎,用于按照串行顺序和/或并行顺序对所述至少两个任务进行处理;
其中,所述任务属性包括:计算数据量、数据类型、计算类型、时序依赖关系中的至少一种。
4.根据权利要求3所述的架构,其特征在于,
所述任务处理器引擎,用于获取所述任务对应的指令队列,所述指令队列包括若干个指令;按序获取所述指令队列中的指令,译码得到所述指令对应的操作参数集,所述操作参数集包括操作码和操作数中的至少一项;
所述多任务拆分调度器,用于根据所述操作参数集的类型和时序依赖关系,将所述操作参数集调度至所述至少两个数据处理引擎中的目标数据处理引擎进行处理。
5.根据权利要求1至4任一所述的架构,其特征在于,所述片外接口模块包括端侧接口模块;
所述端侧接口模块,用于获取第一设备产生的所述待处理的事务;还用于将所述数据处理引擎的处理结果发送给所述第一设备和/或第二设备。
6.根据权利要求1至4任一所述的架构,其特征在于,所述架构应用于端侧设备中,所述片外接口模块包括云侧接口模块;
所述云侧接口模块,用于获取云侧主机产生的所述待处理的事务,所述待处理的事务包括:所述云侧主机分配的事务,和/或,中间计算结果,所述中间计算结果是所述云侧主机对业务数据计算得到的;还用于将所述数据处理引擎的处理结果回传给所述云侧主机。
7.根据权利要求1至4任一所述的架构,其特征在于,所述架构应用于端侧设备中,所述片外接口模块包括云侧接口模块;
所述云侧接口模块,用于获取云侧主机产生的模型参数,所述模型参数是所述云侧主机对所述神经网络模型进行训练后的参数;
所述任务处理器引擎,还用于根据所述模型参数设置所述数据处理引擎。
8.根据权利要求1至4任一所述的架构,其特征在于,所述架构应用于端侧设备中,所述片外接口模块包括与端侧设备相连的端侧接口模块,以及云侧接口模块;
所述端侧接口模块,用于获取第一设备产生的所述待处理的事务;
所述任务处理器引擎,还用于在所述至少两个任务超过承载量阈值时,将目标任务通过所述云侧接口模块传输给云侧主机进行处理,所述目标任务是所述至少两个任务中超过所述承载量阈值的任务。
9.一种用于计算神经网络模型的芯片,其特征在于,所述芯片包括:片外接口模块、总线互连模块、指令存储器、数据存储器、任务处理器引擎、多任务拆分调度器、至少两个数据处理引擎;
所述片外接口模块与所述总线互连模块电性相连;
所述总线互连模块与所述指令存储器电性相连,所述总线互连模块还与所述数据存储器电性相连;
所述指令存储器与所述任务处理器引擎电性相连,所述任务处理器引擎与所述多任务拆分调度器电性相连,所述多任务拆分调度器与所述至少两个数据处理引擎电性相连,所述至少两个数据处理引擎与所述数据存储器电性相连;
其中,所述至少两个数据处理引擎中存在用于计算所述神经网络模型的引擎。
10.根据权利要求9所述的芯片,其特征在于,
所述片外接口模块,用于获取待处理的事务,将所述事务的指令部分存储至所述指令存储器,将所述事务的数据部分存储至所述数据存储器;
所述任务处理器引擎,用于将所述事务划分为至少两个任务;
所述多任务拆分调度器,用于将所述至少两个任务调度至所述至少两个数据处理引擎进行处理。
11.根据权利要求9所述的芯片,其特征在于,
所述至少两个数据处理引擎是相同类型的数据处理引擎:
或,
所述至少两个数据处理引擎中存在不同类型的数据处理引擎;
或,
所述至少两个数据处理引擎中存在不同类型的数据处理引擎,且存在相同类型的数据处理引擎。
12.根据权利要求10所述的芯片,其特征在于,所述数据处理引擎的类型包括如下类型中的至少一种:
预处理引擎;
卷积/矩阵计算引擎;
指定算法引擎;
后处理引擎;
低功耗引擎。
13.根据权利要求9至12任一所述的芯片,其特征在于,所述数据存储器包括:共享存储器和至少两个二级存储器;
所述共享存储器与所述总线互连模块电性相连;所述至少两个二级存储器与所述共享存储器电性相连;所述至少两个二级存储器还与所述至少两个数据处理引擎电性相连;
所述共享存储器用于存储所述至少两个数据处理引擎使用的数据;
所述二级存储器用于存储指定数据处理引擎独立使用的数据,所述指定数据处理引擎是所述至少两个数据处理引擎中被分配使用所述二级存储器的引擎。
14.根据权利要求13所述的芯片,其特征在于,所述二级存储器的第一数量与所述数据处理引擎的第二数量相同。
15.根据权利要求9至12任一所述的芯片,其特征在于,所述片外接口模块包括:端侧接口模块,和/或,云侧接口模块;
每个所述片外接口模块通过各自对应的DMA模块与所述总线互连模块电性相连。
16.根据权利要求9至12任一所述的芯片,其特征在于,所述片外接口模块包括:高速串口模块、光模块、摄像头采集模块、高速数据接口模块、高速串行计算机扩展总线标准PCIe硬核模块、以太网接口模块、蓝牙接口模块的至少一种模块;
每个所述片外接口模块通过各自对应的直接内存访问DMA模块与所述总线互连模块相连。
17.一种神经网络模型的计算方法,其特征在于,应用于如权利要求9所述的芯片,其特征在于,所述方法包括:
所述片外接口模块获取待处理的事务;
所述片外接口模块将所述事务的指令部分存储至所述指令存储器,将所述事务的数据部分存储至所述数据存储器;
所述任务处理器引擎将所述事务划分为至少两个任务;
所述多任务拆分调度器将所述至少两个任务调度至所述至少两个数据处理引擎进行处理。
18.根据权利要求17所述的方法,其特征在于,所述任务处理器引擎将所述事务划分为至少两个任务,包括:
所述任务处理器引擎根据所述事务的事务属性,将所述事务划分为至少两个任务;
其中,所述事务属性包括:计算数据量、数据类型、计算类型、时序依赖关系中的至少一种。
19.根据权利要求17所述的方法,其特征在于,所述多任务拆分调度器将所述至少两个任务调度至所述至少两个数据处理引擎进行处理,包括:
对于所述至少两个任务中的任意一个任务,所述多任务拆分调度器根据所述任务的任务属性,将所述任务调度至所述至少两个数据处理引擎进行处理;
所述方法还包括:
所述至少两个数据处理引擎按照串行顺序和/或并行顺序对所述至少两个任务进行处理;
其中,所述任务属性包括:计算数据量、数据类型、计算类型、时序依赖关系中的至少一种。
20.根据权利要求19所述的方法,其特征在于,所述对于所述至少两个任务中的任意一个任务,所述多任务拆分调度器根据所述任务的任务属性,将所述任务调度至所述至少两个数据处理引擎进行处理,包括:
对于所述至少两个任务中的任意一个任务,所述任务处理器引擎获取所述任务对应的指令队列,所述指令队列包括若干个指令;
所述任务处理器引擎按序获取所述指令队列中的指令,译码得到所述指令对应的操作参数集,所述操作参数集包括操作码和操作数中的至少一项;
所述多任务拆分调度器根据所述操作参数集的类型和时序依赖关系,将所述操作参数集调度至所述至少两个数据处理引擎中的目标数据处理引擎进行处理。
21.根据权利要求17至19任一所述的方法,其特征在于,所述片外接口模块包括:端侧接口模块;
所述片外接口模块获取待处理的事务,包括:
所述端侧接口模块获取第一设备产生的所述待处理的事务;
所述方法还包括:
所述端侧接口模块将所述数据处理引擎的处理结果发送给所述第一设备和/或第二设备。
22.根据权利要求17至19任一所述的方法,其特征在于,所述芯片设置在端侧设备中,所述片外接口模块包括:云侧接口模块;
所述片外接口模块获取待处理的事务,包括:
所述云侧接口模块获取云侧主机产生的所述待处理的事务,所述待处理的事务包括:所述云侧主机分配的事务,和/或,中间计算结果,所述中间计算结果是所述云侧主机对业务数据计算得到的;
所述方法还包括:
所述云侧接口模块将所述数据处理引擎的处理结果回传给所述云侧主机。
23.根据权利要求17至19任一所述的方法,其特征在于,所述芯片设置在端侧设备中,所述片外接口模块包括:云侧接口模块;
所述片外接口模块获取待处理的事务,包括:
所述云侧接口模块获取云侧主机产生的模型参数,所述模型参数是所述云侧主机对所述神经网络模型进行训练后的参数;
所述方法,还包括:
所述任务处理器引擎根据所述模型参数设置所述数据处理引擎。
24.根据权利要求17至19任一所述的方法,其特征在于,所述芯片设置在端侧设备中,所述片外接口模块包括:与端侧设备相连的端侧接口模块,以及云侧接口模块;
所述片外接口模块获取待处理的事务,包括:
所述端侧接口模块获取第一设备产生的所述待处理的事务;
所述任务处理器引擎将所述事务划分为至少两个任务之后,还包括:
所述任务处理器引擎在所述至少两个任务超过承载量阈值时,将目标任务通过所述云侧接口模块传输给云侧主机进行处理,所述目标任务是所述至少两个任务中超过所述承载量阈值的任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910082421.6A CN110147251B (zh) | 2019-01-28 | 2019-01-28 | 用于计算神经网络模型的系统、芯片及计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910082421.6A CN110147251B (zh) | 2019-01-28 | 2019-01-28 | 用于计算神经网络模型的系统、芯片及计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110147251A true CN110147251A (zh) | 2019-08-20 |
CN110147251B CN110147251B (zh) | 2023-07-25 |
Family
ID=67588182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910082421.6A Active CN110147251B (zh) | 2019-01-28 | 2019-01-28 | 用于计算神经网络模型的系统、芯片及计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110147251B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750359A (zh) * | 2019-10-17 | 2020-02-04 | 中科寒武纪科技股份有限公司 | 硬件资源配置方法、装置、云侧设备和存储介质 |
CN110991619A (zh) * | 2019-12-09 | 2020-04-10 | Oppo广东移动通信有限公司 | 神经网络处理器、芯片和电子设备 |
CN111091181A (zh) * | 2019-12-09 | 2020-05-01 | Oppo广东移动通信有限公司 | 卷积处理单元、神经网络处理器、电子设备及卷积运算方法 |
CN111104459A (zh) * | 2019-08-22 | 2020-05-05 | 华为技术有限公司 | 存储设备、分布式存储系统以及数据处理方法 |
CN111124352A (zh) * | 2019-12-24 | 2020-05-08 | 苏州思必驰信息科技有限公司 | 一种gsc计算方法、引擎、装置、设备及介质 |
CN111651207A (zh) * | 2020-08-06 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种神经网络模型运算芯片、方法、装置、设备及介质 |
CN111680716A (zh) * | 2020-05-09 | 2020-09-18 | 浙江大华技术股份有限公司 | 一种识别对比方法、装置、计算机设备和存储介质 |
CN112163677A (zh) * | 2020-10-14 | 2021-01-01 | 杭州海康威视数字技术股份有限公司 | 应用机器学习模型的方法、装置及设备 |
CN112163468A (zh) * | 2020-09-11 | 2021-01-01 | 浙江大华技术股份有限公司 | 基于多线程的图像处理方法及装置 |
CN112463709A (zh) * | 2019-09-09 | 2021-03-09 | 上海登临科技有限公司 | 可配置的异构人工智能处理器 |
WO2021169369A1 (zh) * | 2020-02-24 | 2021-09-02 | 荣耀终端有限公司 | 一种数据传输方法、装置及系统 |
CN113592059A (zh) * | 2020-04-30 | 2021-11-02 | 伊姆西Ip控股有限责任公司 | 用于处理数据的方法、设备和计算机程序产品 |
WO2021259104A1 (zh) * | 2020-06-22 | 2021-12-30 | 深圳鲲云信息科技有限公司 | 人工智能芯片和基于人工智能芯片的数据处理方法 |
CN114385534A (zh) * | 2020-10-19 | 2022-04-22 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN117215774A (zh) * | 2023-08-21 | 2023-12-12 | 上海瞰融信息技术发展有限公司 | 一种自动识别与适配实景三维作业任务的引擎系统和方法 |
WO2023236479A1 (zh) * | 2022-06-07 | 2023-12-14 | 寒武纪(西安)集成电路有限公司 | 用于执行任务调度的方法及其相关产品 |
US12001681B2 (en) | 2019-08-22 | 2024-06-04 | Huawei Technologies Co., Ltd. | Distributed storage system and data processing method |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3139314A1 (en) * | 2015-09-04 | 2017-03-08 | Baidu USA LLC | Systems and methods for efficient neural network deployments |
US20170316312A1 (en) * | 2016-05-02 | 2017-11-02 | Cavium, Inc. | Systems and methods for deep learning processor |
CN107392309A (zh) * | 2017-09-11 | 2017-11-24 | 东南大学—无锡集成电路技术研究所 | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 |
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
CN107679621A (zh) * | 2017-04-19 | 2018-02-09 | 北京深鉴科技有限公司 | 人工神经网络处理装置 |
CN107679620A (zh) * | 2017-04-19 | 2018-02-09 | 北京深鉴科技有限公司 | 人工神经网络处理装置 |
CN107704922A (zh) * | 2017-04-19 | 2018-02-16 | 北京深鉴科技有限公司 | 人工神经网络处理装置 |
CN108243216A (zh) * | 2016-12-26 | 2018-07-03 | 华为技术有限公司 | 数据处理的方法、端侧设备、云侧设备与端云协同系统 |
CN108595369A (zh) * | 2018-04-28 | 2018-09-28 | 天津芯海创科技有限公司 | 算式并行计算装置及方法 |
CN108665059A (zh) * | 2018-05-22 | 2018-10-16 | 中国科学技术大学苏州研究院 | 基于现场可编程门阵列的卷积神经网络加速系统 |
CN108694694A (zh) * | 2017-04-10 | 2018-10-23 | 英特尔公司 | 用于使得能够进行可扩展分布式机器学习的抽象库 |
US20180307624A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | System cache optimizations for deep learning compute engines |
US20180307983A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Neural network optimization mechanism |
US20180315158A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Programmable coarse grained and sparse matrix compute hardware with advanced scheduling |
US20180314935A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Training with adaptive runtime and precision profiling |
US20180314521A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Intelligent thread dispatch and vectorization of atomic operations |
US20180322385A1 (en) * | 2017-05-05 | 2018-11-08 | Intel Corporation | Efficient learning and using of topologies of neural networks in machine learning |
CN108805272A (zh) * | 2018-05-03 | 2018-11-13 | 东南大学 | 一种基于fpga的通用卷积神经网络加速器 |
CN108805292A (zh) * | 2017-05-05 | 2018-11-13 | 英特尔公司 | 用于自主机器的机器学习中的即时深度学习 |
-
2019
- 2019-01-28 CN CN201910082421.6A patent/CN110147251B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3139314A1 (en) * | 2015-09-04 | 2017-03-08 | Baidu USA LLC | Systems and methods for efficient neural network deployments |
US20170316312A1 (en) * | 2016-05-02 | 2017-11-02 | Cavium, Inc. | Systems and methods for deep learning processor |
CN108243216A (zh) * | 2016-12-26 | 2018-07-03 | 华为技术有限公司 | 数据处理的方法、端侧设备、云侧设备与端云协同系统 |
CN108694694A (zh) * | 2017-04-10 | 2018-10-23 | 英特尔公司 | 用于使得能够进行可扩展分布式机器学习的抽象库 |
CN107679621A (zh) * | 2017-04-19 | 2018-02-09 | 北京深鉴科技有限公司 | 人工神经网络处理装置 |
CN107679620A (zh) * | 2017-04-19 | 2018-02-09 | 北京深鉴科技有限公司 | 人工神经网络处理装置 |
CN107704922A (zh) * | 2017-04-19 | 2018-02-16 | 北京深鉴科技有限公司 | 人工神经网络处理装置 |
US20180307983A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Neural network optimization mechanism |
US20180307624A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | System cache optimizations for deep learning compute engines |
US20180315158A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Programmable coarse grained and sparse matrix compute hardware with advanced scheduling |
US20180314935A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Training with adaptive runtime and precision profiling |
US20180314521A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Intelligent thread dispatch and vectorization of atomic operations |
US20180322385A1 (en) * | 2017-05-05 | 2018-11-08 | Intel Corporation | Efficient learning and using of topologies of neural networks in machine learning |
CN108805292A (zh) * | 2017-05-05 | 2018-11-13 | 英特尔公司 | 用于自主机器的机器学习中的即时深度学习 |
CN107392309A (zh) * | 2017-09-11 | 2017-11-24 | 东南大学—无锡集成电路技术研究所 | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 |
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
CN108595369A (zh) * | 2018-04-28 | 2018-09-28 | 天津芯海创科技有限公司 | 算式并行计算装置及方法 |
CN108805272A (zh) * | 2018-05-03 | 2018-11-13 | 东南大学 | 一种基于fpga的通用卷积神经网络加速器 |
CN108665059A (zh) * | 2018-05-22 | 2018-10-16 | 中国科学技术大学苏州研究院 | 基于现场可编程门阵列的卷积神经网络加速系统 |
Non-Patent Citations (3)
Title |
---|
ARASH FIRUZAN: "Reconfigurable network-on-chip for 3D neural network accelerators", NOCS \'18: PROCEEDINGS OF THE TWELFTH IEEE/ACM INTERNATIONAL SYMPOSIUM ON NETWORKS-ON-CHIP * |
廖湘科;肖侬;: "新型高性能计算系统与技术", 中国科学:信息科学, no. 09 * |
杨一晨;梁峰;张国和;何平;吴斌;高震霆;: "一种基于可编程逻辑器件的卷积神经网络协处理器设计", 西安交通大学学报, no. 07 * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115422284B (zh) * | 2019-08-22 | 2023-11-10 | 华为技术有限公司 | 存储设备、分布式存储系统以及数据处理方法 |
CN111104459A (zh) * | 2019-08-22 | 2020-05-05 | 华为技术有限公司 | 存储设备、分布式存储系统以及数据处理方法 |
US12001681B2 (en) | 2019-08-22 | 2024-06-04 | Huawei Technologies Co., Ltd. | Distributed storage system and data processing method |
CN115422284A (zh) * | 2019-08-22 | 2022-12-02 | 华为技术有限公司 | 存储设备、分布式存储系统以及数据处理方法 |
CN112463709A (zh) * | 2019-09-09 | 2021-03-09 | 上海登临科技有限公司 | 可配置的异构人工智能处理器 |
CN110750359B (zh) * | 2019-10-17 | 2022-07-15 | 中科寒武纪科技股份有限公司 | 硬件资源配置方法、装置、云侧设备和存储介质 |
CN110750359A (zh) * | 2019-10-17 | 2020-02-04 | 中科寒武纪科技股份有限公司 | 硬件资源配置方法、装置、云侧设备和存储介质 |
CN110991619A (zh) * | 2019-12-09 | 2020-04-10 | Oppo广东移动通信有限公司 | 神经网络处理器、芯片和电子设备 |
CN111091181A (zh) * | 2019-12-09 | 2020-05-01 | Oppo广东移动通信有限公司 | 卷积处理单元、神经网络处理器、电子设备及卷积运算方法 |
EP3836031A3 (en) * | 2019-12-09 | 2021-10-06 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Neural network processor, chip and electronic device |
CN111091181B (zh) * | 2019-12-09 | 2023-09-05 | Oppo广东移动通信有限公司 | 卷积处理单元、神经网络处理器、电子设备及卷积运算方法 |
WO2021115163A1 (en) * | 2019-12-09 | 2021-06-17 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Neural network processor, chip and electronic device |
US11403104B2 (en) | 2019-12-09 | 2022-08-02 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Neural network processor, chip and electronic device |
CN111124352A (zh) * | 2019-12-24 | 2020-05-08 | 苏州思必驰信息科技有限公司 | 一种gsc计算方法、引擎、装置、设备及介质 |
CN111124352B (zh) * | 2019-12-24 | 2022-07-15 | 思必驰科技股份有限公司 | 一种gsc计算方法、引擎、装置、设备及介质 |
WO2021169369A1 (zh) * | 2020-02-24 | 2021-09-02 | 荣耀终端有限公司 | 一种数据传输方法、装置及系统 |
CN113592059A (zh) * | 2020-04-30 | 2021-11-02 | 伊姆西Ip控股有限责任公司 | 用于处理数据的方法、设备和计算机程序产品 |
CN111680716B (zh) * | 2020-05-09 | 2023-05-12 | 浙江大华技术股份有限公司 | 一种识别对比方法、装置、计算机设备和存储介质 |
CN111680716A (zh) * | 2020-05-09 | 2020-09-18 | 浙江大华技术股份有限公司 | 一种识别对比方法、装置、计算机设备和存储介质 |
WO2021259104A1 (zh) * | 2020-06-22 | 2021-12-30 | 深圳鲲云信息科技有限公司 | 人工智能芯片和基于人工智能芯片的数据处理方法 |
CN111651207B (zh) * | 2020-08-06 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 一种神经网络模型运算芯片、方法、装置、设备及介质 |
CN111651207A (zh) * | 2020-08-06 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种神经网络模型运算芯片、方法、装置、设备及介质 |
CN112163468A (zh) * | 2020-09-11 | 2021-01-01 | 浙江大华技术股份有限公司 | 基于多线程的图像处理方法及装置 |
CN112163677A (zh) * | 2020-10-14 | 2021-01-01 | 杭州海康威视数字技术股份有限公司 | 应用机器学习模型的方法、装置及设备 |
CN112163677B (zh) * | 2020-10-14 | 2023-09-19 | 杭州海康威视数字技术股份有限公司 | 应用机器学习模型的方法、装置及设备 |
CN114385534A (zh) * | 2020-10-19 | 2022-04-22 | 华为技术有限公司 | 一种数据处理的方法及装置 |
WO2023236479A1 (zh) * | 2022-06-07 | 2023-12-14 | 寒武纪(西安)集成电路有限公司 | 用于执行任务调度的方法及其相关产品 |
CN117215774A (zh) * | 2023-08-21 | 2023-12-12 | 上海瞰融信息技术发展有限公司 | 一种自动识别与适配实景三维作业任务的引擎系统和方法 |
CN117215774B (zh) * | 2023-08-21 | 2024-05-28 | 上海瞰融信息技术发展有限公司 | 一种自动识别与适配实景三维作业任务的引擎系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110147251B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110147251A (zh) | 用于计算神经网络模型的架构、芯片及计算方法 | |
CN107679621B (zh) | 人工神经网络处理装置 | |
CN110537194B (zh) | 被配置用于层和操作防护和依赖性管理的功率高效的深度神经网络处理器及方法 | |
CN107704922B (zh) | 人工神经网络处理装置 | |
CN107679620B (zh) | 人工神经网络处理装置 | |
US11307865B2 (en) | Data processing apparatus and method | |
CN109997154A (zh) | 信息处理方法及终端设备 | |
CN111459877A (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
CN109478144A (zh) | 一种数据处理装置和方法 | |
CN111797982A (zh) | 基于卷积神经网络的图像处理系统 | |
US11275561B2 (en) | Mixed precision floating-point multiply-add operation | |
CN109598250A (zh) | 特征提取方法、装置、电子设备和计算机可读介质 | |
CN114145006A (zh) | 人工智能资源的调度方法、装置、存储介质和芯片 | |
WO2020000383A1 (en) | Systems and methods for low-power, real-time object detection | |
CN113238987B (zh) | 量化数据的统计量化器、存储装置、处理装置及板卡 | |
CN112348182B (zh) | 一种神经网络maxout层计算装置 | |
CN109740730B (zh) | 运算方法、装置及相关产品 | |
CN111078286B (zh) | 数据通信方法、计算系统和存储介质 | |
US20220237438A1 (en) | Task context switch for neural processor circuit | |
CN114021733A (zh) | 模型训练优化方法、装置、计算机设备及存储介质 | |
CN112766475A (zh) | 处理部件及人工智能处理器 | |
WO2023211586A1 (en) | Instruction set architecture for neural network quantization and packing | |
WO2023211585A1 (en) | Instruction set architecture for implementing linear activation functions in neural networks | |
CN111930672A (zh) | 异构智能处理器及电子设备 | |
CN117501278A (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 |