CN111381958B - 通信装置、神经网络处理芯片、组合装置和电子设备 - Google Patents
通信装置、神经网络处理芯片、组合装置和电子设备 Download PDFInfo
- Publication number
- CN111381958B CN111381958B CN201811641903.2A CN201811641903A CN111381958B CN 111381958 B CN111381958 B CN 111381958B CN 201811641903 A CN201811641903 A CN 201811641903A CN 111381958 B CN111381958 B CN 111381958B
- Authority
- CN
- China
- Prior art keywords
- task
- communication
- circuit
- data
- configuration information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种通信装置、神经网络处理芯片、组合装置和电子设备,包括:多个人工智能处理器(专用处理器可以包括多个人工智能处理器)和多通道内存之外,还可以包含其它配套部件。该配套部件包括但不限于:内存控制器、总线、接口,专用处理器通过接口与外部设备之间进行指令传输以及数据传输。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种通信装置、神经网络处理芯片、组合装置和电子设备。
背景技术
随着人工智能技术的发展,主操作端已不能满足现有算法的计算需求,神经网络专用芯片营运而生。实践证明,人工智能任务处理相对于通用处理任务或图像处理任务而言,具有独特的数据结构、存储方式、计算模式等,因而可以设计专用集成电路为人工智能任务处理重新分配芯片计算资源,实现低功耗、低延迟、高吞吐率的计算。NPU(Neuralnetwork Processing Unit)是一种专用集成电路,可以实现人工智能任务处理,例如神经网络计算,其具有低功耗、高效能、小面积的特点。
根据摩尔定律和Dennard Scaling定律,单核高效能处理器的计算能力会因为物理因素的限制达到瓶颈。为了提高计算并行性,业界的芯片设计逐渐转向多核高效率处理器设计上。不仅如此,随着高性能计算机和数据中心的发展,越来越多的计算资源被集中起来,多芯片协同处理已是常态。为了实现基于NPU的高处理性能和高可扩展的AI处理装置,NPU芯片间需要支持高效的数据传输。
但是目前还没有一种装置和方法能够支持NPU芯片间的数据传输。
发明内容
基于此,有必要针对上述技术问题,提供一种通信装置、神经网络处理芯片、组合装置和电子设备。
一种通信装置,所述通信装置位于芯片上,所述装置包括:
接收装置、任务处理装置、发送装置以及存储器;所述任务处理装置一端连接接收装置,另一端连接发送装置;所述接收装置、所述发送装置分别与所述存储器相连;
所述接收装置用于接收通信配置信息和通信数据;
所述任务处理装置用于对所述通信数据进行计算,得到待发送数据;
所述存储器用于存储所述通信配置信息;
所述发送装置用于将所述待发送数据输出。
在其中一个实施例中,所述发送装置包括:
发送配置电路,控制电路以及发送端口电路;所述控制电路分别与所述发送配置电路、所述发送端口电路相连;所述控制电路分别与所述发送配置电路、所述发送端口电路相连。
在其中一个实施例中,所述接收装置包括:接收端口电路,配置信息解析电路和控制电路;所述接收端口电路与所述配置信息解析电路相连,所述配置信息解析电路还与所述控制电路相连。
在其中一个实施例中,所述任务处理装置包括:结束信息分析电路、计算处理电路和传送接口电路;所述结束信息分析电路与所述计算处理电路相连;所述计算处理电路还与所述传送接口电路相连;
所述结束信息分析电路用于判断任务处理完成状态;
所述传送接口电路用于获取输入数据和传送配置信息;
所述计算处理电路用于根据所述输入数据执行计算,得到输出数据;
所述传送接口电路还用于根据所述传送配置信息将所述输出数据输出。
在其中一个实施例中,所述通信配置信息包括所述输入数据、所述输出数据的源地址,所述输入数据、所述输出数据待发送的目的地址,所述输入数据、所述输出数据在存储空间中的偏移量以及所述输入数据、所述输出数据的数据块大小中的一种或几种。
在其中一个实施例中,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
在其中一个实施例中,所述接收装置、任务处理装置、发送装置以及存储器的相连方式包括无线连接和/或电气连接。
一种神经网络处理器芯片,所述芯片包括如上所述的通信装置。
一种组合装置,所述组合装置包括至少一个如上所述的芯片。
在其中一个实施例中,所述组合装置中的芯片两两相连。
在其中一个实施例中,所述组合装置还包括主操作端,所述芯片与所述主操作端连接。
一种电子设备,所述电子设备包括如上所述的神经网络处理器芯片。
上述通信装置,,所述通信装置位于芯片上,通过接收装置、任务处理装置、发送装置以及存储器之间的相互配合,能够支持NPU芯片间的数据传输。
附图说明
图1为一个实施例中提供的一种通信装置示意图;
图2为一个实施例中提供的一种接收装置的内部结构图;
图3为一个实施例中提供的发送装置的内部结构图;
图4为一个实施例中提供任务处理装置的内部示意图;
图5为一个实施例中提供的组合装置示意图;
图6为一个实施例中提供的数据接收方法流程示意图;
图7为另一个实施例中提供的数据接收方法流程示意图;
图8为一个实施例中提供的一种数据接收装置示意图;
图9为一个实施例提供的一种任务处理方法流程示意图;
图10为一个实施例提供的任务处理方法流程示意图;
图11为一个实施例提供的任务处理处理装置示意图;
图12为一个实施例提供的数据发送方法流程示意图;
图13为一个实施例提供的数据发送装置示意图;
图14为一个实施例中提供的数据通信方法流程示意图;
图15为一个实施例中提供的数据通信装置示意图;
图16为一个实施例中提供的板卡示意图;
图17为一个实施例中提供的主板示意图;
图18为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,请一并参阅图1,提供了一种通信装置。如图1所述的通信装置包括:接收装置110,发送装置120,任务处理装置130,存储器140,所述任务处理装置130一端与接收装置110相连,另一端与发送装置120相连。具体地,所述接收装置110、所述发送装置120分别与所述存储器140相连。
在其中一个实施例中,请一并参阅图2,提供了一种接收装置110的内部结构图。接收装置110包括:接收端口电路111、接收控制电路112和配置信息解析电路113。所述接收端口电路111与所述配置信息解析电路113相连,所述配置信息解析电路113还与所述控制电路112相连。在其中一个实施例中,所述配置信息解析电路113用于对接收的通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符。
在其中一个实施例中,请一并参阅图2,提供了一种接收装置110的内部结构图,所述装置位于芯片上,接收装置110包括:接收端口电路111、接收控制电路112和配置信息解析电路113。所述接收端口电路111与所述配置信息解析电路113相连,所述配置信息解析电路113还与所述控制电路112相连。在其中一个实施例中,所述配置信息解析电路113用于对接收的通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符。
在其中一个实施例中,所述接收装置110还包括状态描述符缓存电路114,所述状态描述符缓存114与所述接收控制电路112连接;所述状态描述符缓存电路114用于存储状态描述符,所述状态描述符用于标记接收过程的完成状态。
在其中一个实施例中,所述接收装置110与存储器140相连。具体地,所述存储器140 与所述接收端口电路111相连,所述存储器140用于存储所述接收端口电路111接收的数据。
在一个实施例中,请一并参阅图3,提供了发送装置120的内部结构图。发送装置120 包括:发送配置电路121,发送控制电路123以及发送端口电路122;所述发送控制电路123 分别与所述发送配置电路121、所述发送端口电路相连。
在其中一个实施例中,发送配置电路121包括配置信息获取电路1211和配置信息解析电路1212;所述配置信息获取电路1211分别与所述配置信息解析电路1212、所述发送控制电路123相连。所述发送装置120与存储器140相连,其中,所述存储器140分别与发送端口电路122、发送配置电路121相连,所述存储器140用于存储待发送数据和配置信息。可选地,配置信息解析电路生成的通信描述符存储于描述符缓存中。该描述符缓存位于发送装置内部。在其中一个实施例中,所述待发送数据和所述通信描述符对应存储。
在其中一个实施例中,所述发送配置电路121、所述发送控制电路123分别与主操作端 150连接。具体地,发送配置电路从主操作端150获取发送配置信息,发送控制电路123从主操作端获取控制指令。
在一个实施例中,请一并参阅图4,提供了任务处理装置130的内部示意图。所述任务处理装置130位于芯片上,所述任务处理装置130包括:结束信息分析电路132、任务处理电路131和传送接口电路133;所述结束信息分析电路132与所述任务处理电路131相连;所述任务处理电路131还与所述传送接口电路133相连;
所述结束信息分析电路132用于判断任务处理完成状态,得到任务结束描述符;
所述传送接口电路133用于获取通信数据;
所述任务处理电路131用于根据所述通信数据执行处理,得到输出数据;
所述传送接口电路133还用于获取通信配置信息根据所述通信配置信息将所述输出数据和所述任务结束描述符输出。
在其中一个实施例中,所述任务处理电路还包括:任务调度器1312、第一处理器1311、第二处理器1313以及运算控制电路1314;任务调度器1312连接在第一处理器1311和第二处理器1313之间;所述运算控制电路1314与所述任务调度器1312相连;
所述任务调度器1312用于将任务处理在所述第一处理器1311和所述第二处理器1313中进行调度执行;
所述第一处理器1311用于执行所述任务调度器1312分配的第一处理器任务;
所述第二处理器1313用于执行所述任务调度器1312分配的第二处理器任务;所述运算控制电路1314用于向所述任务调度器1312发送控制指令,以及用于生成传输配置信息。
在其中一个实施例中,所述任务调度器1312包括:
任务缓存装置13121,用于存储多个任务对应的基本任务信息和全部任务信息;
任务分派装置13122,所述任务分派装置与所述任务缓存装置连接,所述任务分派装置用于从所述任务缓存装置中获取一个以上的所述任务的基本任务信息,并分别根据各个所述任务的基本任务信息获得所述任务的任务注册请求;
状态监控装置13123,所述状态监控装置连接所述任务分派装置及所述第二处理器,所述状态监控装置用于根据接收到的各个所述任务的任务注册请求,为各个所述任务分配一个任务标识,并将各个所述任务的任务标识回传给所述任务分派装置;
其中,所述任务分派装置13122还用于在接收到所述任务的任务标识之后,获得所述任务的分解信息,并根据所述任务的分解信息及所述第二处理器的处理器状态信息确定目标作业,获得调度信息,并将所述调度信息发送至所述第二处理器。
任务缓存装置13121用于存储多个任务对应的基本任务信息和全部任务信息;其中,该任务的基本任务信息可以包括该任务的配置信息,如配置信息包括任务类别、任务的权重及任务的输入数据等等。其中,多个任务根据其功能的不同可以分为事件任务、通信任务及数据处理任务等,即该任务类别可以包括事件任务、通信任务及数据处理任务,进一步地,该数据处理任务的任务类别还可以包括block(阻塞任务)、cluster(聚类任务)和union(联合任务)。该任务的全部任务信息可以包括该任务的配置信息等基本任务信息,以及该任务对应的指令及数据等信息。可选地,该多个任务以任务队列的形式存储于任务缓存装置13121 中,多个任务可以形成多个任务队列,如多个任务按照其任务类别形成多个任务队列。每个任务队列中队列头指针指向的任务的基本任务信息可以传送至任务分派装置13122中。
任务分派装置13122用于从任务缓存装置13121中获取任务的基本任务信息,并根据任务的基本任务信息获得任务的任务注册请求;状态监控装置13123用于根据接收到的任务注册请求,为任务分配一个任务标识,并将任务的任务标识回传给任务分派装置13122,以完成任务的注册过程。本申请实施例中,注册完成的任务(即获得任务标识的任务)能够被任务分派装置13122进行分解及调度,并进一步发送至第二处理器1313进行处理。
任务分派装置13122还用于在接收到任务的任务标识之后,根据该任务的基本任务信息对该任务进行预拆分,将该任务分为多个作业,获得任务的分解信息。进一步地,任务分派装置13122还用于根据任务的分解信息及第二处理器1313的处理器状态信息确定目标作业,获得调度信息,并将调度信息发送至第二处理器1313。可选地,任务分派装置13122可以在确定目标作业之后,即将调度信息发送至第二处理器1313。第二处理器1313能够获取该调度信息执行该目标作业,以完成该目标作业的处理。当完成该目标作业所属的任务中所有作业的调度之后,任务调度器完成一次调度,进入下一次调度。本申请实施例中,通过上述的任务调度器,能够实现神经网络等数据量较大数据的调度及处理,减少第一处理器1311的运算量,提高任务的调度及处理效率,进而提升计算机***的处理效率。
在其他实施例中,任务分派装置13122也可以将该目标作业所属的任务全部完成调度之后,即获得该目标作业所属的任务中所有作业的调度信息之后,再将该调度信息发送至第二处理器1313。第二处理器1313可以根据该任务的所有作业形成的调度信息,同时对多个作业进行处理。
在其中一个实施例中,所述任务处理装置130与存储器140相连,其中,所述存储器140 与所述传送接口电路133相连,所述存储器140用于存储所述输出数据。在其中一个实施例中,所述通信配置信息存储于任务处理装置内部的配置信息缓存中。
在其中一个实施例中,请一并参阅图5,提供了一种组合装置。所述组合装置包括多个神经网络处理芯片200,且所述神经网络处理芯片200之间依次相连。其中,神经网络处理芯片之间可以任意两个芯片之间都相连,还可以相邻的两个芯片之间相连。
在其中一个实施例中,每个所述神经网络处理芯片都与主操作端150相连。在其中一个实施例中,每个神经网络处理芯片中包括如图1所示的通信装置100,所述通信装置100包括接收装置110、发送装置120、任务处理装置130以及存储器140。
在其中一个实施例中,提供了一种电子设备,所述电子设备包括神经网络处理芯片200。其中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
其中,上述任一实施例中的元件之间的连接关系,可以是电连接或无线连接。
上述接收装置、发送装置、任务处理装置以及存储器共同组成了通信装置,通过所述通信装置能够支持NPU芯片之间的数据传输。
在一个实施例中,请一并参阅图6,提供了一种数据接收方法,本申请提供的数据接收方法,可以应用于如图1、图2和图5所示的装置中,所述接收方法包括:
步骤S601,获取通信数据和通信配置信息。其中,通信数据是指在通信过程中接收或发送的数据,该数据可以是计算过程的输入数据或输出数据;还可以是由外部传输进芯片的原始数据。其中,通信配置信息是指在数据通信过程中,接收过程的过程描述信息或接受过程中的接收描述信息。在其中一个实施例中,所述通信配置信息包括但不限于:通信数据的源地址、通信数据在源地址中的偏移量,通信数据的目的地址、通信数据在目的地址中的偏移量以及通信数据的数据块大小。
步骤S602,对所述通信配置信息进行解析,得到通信描述符;其中所述通信描述符为描述发送方法所经过过程的信息。具体地,通信配置信息通过主操作端传入NPU芯片,不能直接被NPU芯片识别,需要经过解析操作,生成通信描述符。在其中一个实施例中所述通信配置信息至少有一条,对每条通信配置信息进行解析分别得到对应的通信描述符。可以理解地,在接收过程中通信描述符包括但不限于:通信数据的源地址、通信数据在源地址中的偏移量,通信数据的目的地址、通信数据在目的地址中的偏移量以及通信数据的数据块大小。
步骤S603,根据所述通信描述符,接收所述通信数据。在其中一个实施例中,根据通信描述符,将所述通信数据存储至目标地址。
在一个实施例中,步骤S601还包括:
步骤S6011,获取传输数据包。具体地,所述传输数据包可以是数据压缩包。可选地,传输数据包可以来自其他NPU芯片的发送装置。
步骤S6012,根据所述传输数据包,得到通信数据和所述通信配置信息。在其中一个实施例中,获取传输数据包后,对所述传输数据包解压缩,得到传输数据。
在一个实施例中,所述接收方法还包括:
步骤S604,根据所述通信描述符,得到接收模式符。可以理解地,所述通信描述符中还包括接收模式符。进一步地,通信配置信息通过解析得到的通信描述符中包括接收模式符。
步骤S605,根据所述接收模式符,得到所述发送方法为普通发送模式还是硬件加速发送模式。其中,接收模式符是指能够使接收方法选择预定接收模式的标识符。例如,接收模式符为Type,当Type=0表示普通数据传输,当Type=1表示硬件加速描述符。
在其中一个实施例中,所述普通发送模式包括从主操作端获取控制指令,所述主操作端为芯片外部的控制装置。在另一个实施例中,所述硬件加速传输模式包括从计算装置中获取控制指令,所述计算装置为芯片内部的执行计算的装置。其中,所述发送控制指令是指,为实现发送方法在硬件上实施,而生成的对于硬件的控制指令。作为一种可选的实施方式,所述发送控制指令需要经过解析,得到对应于发送控制指令的二进制指令。
在一个实施例中,请一并参阅图7,所述发送方法还包括:
步骤S606,根据通信描述符,当接收任务执行完成,生成对应的状态描述符。在其中一个实施例中,每一个通信描述符都对应一个接收任务,当对应的接收任务执行完毕,生成对应通信描述符的状态描述符。
步骤S607,将所述状态描述符,存储至状态描述符队列。具体地,所述状态描述符队列中包含多个状态描述符。在其中一个实施例中,所述多个状态描述符按照生成顺序依次存储。
步骤S608,根据所述状态描述符队列,判断接收任务执行状态。具体地,一个接收任务可以对应多个通信描述符。可以理解地,一个通信描述符对应一个接收过程;当一个接收过程结束时,对应生成一个状态描述符。当一个接收任务对应的多个通信描述符对应的接收过程全部结束或部分结束后,生成状态描述符队列。具体地,当状态描述符队列的队列深度达到上限后,不必等待通信描述符对应的接收过程全部结束即可生成状态描述符队列。例如,一个接收任务A对应20条状态描述符,而状态描述符队列的队列深度为16,那么当状态描述符队列达到16后,虽然该接收任务A的全部描述符未全部执行完成,也可以生成状态描述符队列。具体地,状态描述符队列的深度是指状态描述符队列所能容纳的状态描述符的数量。
在另一个实施例中,当接收任务对应的任务描述符数量不足以达到状态描述符队列的队列深度时,则等待该接收任务对应的多个通信描述符对应的接收过程全部结束后,生成状态描述符队列。
在其中一个实施例中,步骤S608根据所述状态描述符队列,判断所述接收方法执行状态包括:
步骤S6081,根据预设规则在所述状态描述符队列中选取所述状态描述符。具体地,预设规则是指在执行发送任务之前输入的对状态描述符队列进行读取的规则。
步骤S6082,根据所述状态描述符队列中所述状态描述符的数量,确定执行完毕的接收过程的数量。具体地,一个状态描述符代表一个接收过程执行完毕。在其中一个实施例中,执行完毕的接收过程的数量等于所述状态描述符的数量。
步骤S6083,当所述执行完毕的接收过程的数量达到阈值,判断所述接收任务结束。其中,所述阈值是指预设的接收过程数量。在其中一个实施例中,所述阈值为状态描述符队列中的状态描述符数量。在其中一个实施例中,按照生成状态描述符的顺序,对所述状态描述符队列进行读取。在另一个实施例中,按照预定的顺序,等待状态描述符队列完整后再读取状态描述符。
应该理解的是,虽然图6-图 7流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图6-图 7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图8,提供了一种数据接收装置,所述装置包括:
配置信息获取模块801,用于获取通信数据和通信配置信息;
描述符解析模块802,用于对所述通信配置信息进行解析,得到通信描述符;
数据接收模块803,用于根据所述通信描述符,接收所述通信数据。
关于数据接收装置的具体限定可以参见上文中对于数据接收方法的限定,在此不再赘述。上述数据接收装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,请一并参阅图9,提供了一种任务处理方法,本申请提供的任务处理方法,可以应用于如图1、图4和图5所示的装置中。所述任务处理方法包括:
步骤S901,获取运算控制信息和任务调度信息;
具体地,所述运算控制信息包括通信控制指令和运算控制指令。可选地,获取运算控制信息包括从主操作端获取运算控制信息,所述主操作端为芯片外部的控制装置。可选地,所述获取运算控制信息包括从任务处理装置中生成运算控制信息,所述任务处理装置为芯片内部的执行处理任务的装置。
具体地,计算任务包含计算过程和通信过程。其中,所述通信控制指令是指,为了使得通信过程在硬件上执行,而生成的对于硬件的控制指令。其中,所述计算控制指令是指,为了使得计算过程在硬件上执行,而生成的对于硬件的控制指令。其中,通信数据是指在通信过程中接收或发送的数据,该数据可以是计算过程的输入数据或输出数据;还可以是由外部传输进芯片的原始数据。其中,任务调度信息是指在执行处理过程时进行如何进行调度执行的指令信息。
步骤S902,根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果。在其中一个实施例中,任务调度器1312在获得调度信息之后,可以将其获得的调度信息传送至第二处理器1313,第二处理器1313可以根据其接收到的调度信息,从任务缓存装置13121中获取目标作业所属的任务的全部任务信息,从任务分派装置13122中获取计算过程所属的任务的分解信息,并根据其接收到计算过程所属的任务的分解信息及全部任务信息将该计算过程所属的任务拆分为多个作业,拆分获得各个作业均包含权重及数据等信息。进一步地,第二处理器1313可以对拆分根据任务调度信息对通信数据进行处理,得到处理结果。
步骤S903,根据所述运算控制信息,生成任务结束描述符。当一个计算任务执行完成,根据运算控制信息对于该任务的描述,生成对应该任务的任务结束描述符。可以理解地,通过读取任务结束描述符,能够判断各个计算任务的执行进度
步骤S904,根据所述任务结束描述符,将所述处理结果输出。具体地,根据所述任务结束描述符判断计算任务是否执行完成,若执行完成,则将处理结果输出。
在一个实施例中,步骤S901所述获取运算控制信息和任务调度信息包括:
步骤S9011,获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求。其中,该任务的基本任务信息可以包括该任务的配置信息,如配置信息包括任务类别、任务的权重及任务的输入数据等等。其中,多个任务根据其功能的不同可以分为事件任务、通信任务及数据处理任务等,即该任务类别可以包括事件任务、通信任务及数据处理任务,进一步地,该数据处理任务的任务类别还可以包括block(阻塞任务)、cluster(聚类任务)和union(联合任务)。该任务的全部任务信息可以包括该任务的配置信息等基本任务信息,以及该任务对应的指令及数据等信息。可选地,该多个任务以任务队列的形式存储于任务缓存装置13121中,多个任务可以形成多个任务队列,如多个任务按照其任务类别形成多个任务队列。每个任务队列中队列头指针指向的任务的基本任务信息可以传送至任务分派装置13122中。
步骤S9012,根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识。具体地,任务分派装置13122用于从任务缓存装置13121中获取任务的基本任务信息,并根据任务的基本任务信息获得任务的任务注册请求;状态监控装置13123用于根据接收到的任务注册请求,为任务分配一个任务标识,并将任务的任务标识回传给任务分派装置13122,以完成任务的注册过程。本申请实施例中,注册完成的任务(即获得任务标识的任务)能够被任务分派装置13122进行分解及调度,并进一步发送至第二处理器1313进行处理。
步骤S9013,获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标任务,获得任务调度信息。具体地,任务分派装置13122还用于根据任务的分解信息及第二处理器1313的处理器状态信息确定目标作业,获得调度信息,并将调度信息发送至第二处理器1313。
在一个实施例中,步骤S902,所述根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果包括:根据所述任务调度信息获取所述任务调度信息、所述目标任务所属的任务的分解信息及全部任务信息,将所述目标任务所属的任务拆分为多个子任务,并根据所述任务调度信息执行对所述通信数据所述目标任务,得到处理结果。
本申请实施例中,通过上述的任务调度器,能够实现神经网络等数据量较大数据的调度及处理,减少第一处理器的运算量,提高任务的调度及处理效率,进而提升计算机***的处理效率。
在一个实施例中,请一并参阅图5,所述任务处理方法还包括:
步骤S905根据所述运算控制信息,生成计算控制指令以及通信控制指令。具体地,运算控制信息包含计算控制指令和通信控制指令。通信控制指令用于控制任务处理装置130本身进行通信。在另一个实施例中,通信控制指令还生成接收装置110的接收控制指令以及发送装置120的发送控制指令。
步骤S906根据所述计算控制指令及任务调度信息对所述通信数据执行调度处理,得到处理结果。具体地,任务调度器中的计算任务执行过程可以将通信数据作为各计算任务的输入数据,还可以将上一任务的输出数据作为下一任务的输入数据。
步骤S907,根据所述计算控制指令,生成任务结束描述符。在其中一个实施例中,步骤 S1030根据所述计算控制指令,生成任务结束描述符包括:步骤S1031,判断所述计算控制指令是否执行完成;步骤S1032,若所述计算控制指令执行完成,则生成任务结束描述符。
步骤S908,根据所述通信控制指令,将所述处理结果输出。具体地,通信控制指令控制将所述处理结果根据通信配置信息输出。可选地,通信配置信息可以来自任务处理装置130 生成的通信控制指令,还可以来自主操作端。
具体地,计算控制指令可以分解为多个子任务执行,当每个子任务执行完成,生成对应的任务结束描述符。在另一个实施例中,计算控制指令对应的任务,在任务处理装置中不经过分解直接执行,生成对应所述计算控制指令的任务结束描述符。可以理解地,通过任务结束描述符,判断计算任务的执行进程。当所述计算控制指令被执行完成,则通过读取对应的任务结束描述符,判断计算任务执行完成。
在一个实施例中,所述任务处理方法还包括:
步骤S909,根据多个所述任务结束描述符,生成任务结束描述符队列,。在其中一个实施例中,多个任务依次按照生成顺序执行,进一步多个任务结束描述符按照生成顺序排列在任务结束描述符队列中。在另一个实施例中,多个任务乱序进行执行,进一步多个任务结束描述符按照执行完成时间排列在任务结束描述符队列中。
步骤S910,根据预设规则在所述任务结束描述符队列中选择对应的所述任务结束描述符。具体地,预设规则是指在执行处理处理任务之前预先设定的在任务结束描述符队列中选择的规则。在其中一个实施例中,根据任务结束描述符的生成顺序依次在任务结束描述符队列中选取任务结束描述符。可以理解地,在本实施例中,选择任务结束描述符不一定等待任务结束描述符队列完整。
在另一个实施例中,根据预定输出顺序,从任务结束描述符队列中选取任务结束描述符。可以理解地,在本实施例中,需要等待任务结束描述符队列完整,再从任务结束描述符中按照预定输出顺序进行选择。具体地,先开始执行的任务生成任务结束描述符的时刻可能会晚于后开始执行的任务生成任务结束描述符的时刻。
步骤S911,根据所述任务结束描述符,将所述处理结果输出。当所述任务结束描述符被全部读取,则判断计算处理任务执行结束,进一步,将所述处理结果输出。在其中一个实施例中,步骤S911包括:步骤S9111,读取所述任务结束描述符,得到后处理任务指令。其中,后处理任务指令,是指当得到处理结果后,是否对处理结果进行下一步操作,下一步操作可以是发送至指定的端口,还可以是执行新的操作。
步骤S9112将所述处理结果,发送至所述后处理任务执行端。其中后处理任务执行端可以是执行后处理指令的硬件装置还可以是执行后处理操作的软件模块。
作为一种可选的实施方式,若所述后处理任务的执行端在下一芯片中,则获取下一芯片的通信配置信息队列;将所述下一芯片的通信配置信息队列和所述处理结果输出至当前芯片的发送装置。其中,下一芯片的通信信息配置队列可以来自于任务处理装置130,还可以来自主操作端。下一芯片的通信配置队列中包括多个下一芯片的通信配置信息,所述通信配置信息包含处理结果的源地址、处理结果在源地址中的偏移量,处理结果的目的地址、处理结果在目的地址中的偏移量以及处理结果的数据块大小。
作为一种可选的实施方式,由当前芯片的发送装置将所述处理结果和通信配置信息队列中的各通信配置信息发送至下一芯片。
在一个实施例中,步骤S9112,所述将所述处理结果,发送至所述后处理任务执行端包括:若所述后处理任务的执行端在主操作端;则将所述处理结果和所述任务结束描述符发送至主操作端。
应该理解的是,虽然图8-图 10流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图8-图 10中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图11,提供了一种任务处理软装置,所述装置包括:
信息获取模块901,用于获取运算控制信息和任务调度信息;
处理结果生成模块902,用于根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果;
任务描述符生成模块903,用于根据所述运算控制信息,生成任务结束描述符;
处理结果输出模块904,用于根据所述任务结束描述符,将所述处理结果输出。
关于任务处理软装置的具体限定可以参见上文中对于任务处理方法的限定,在此不再赘述。上述任务处理软装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,请一并参阅图12,提供了一种数据发送方法,本申请提供的数据发送方法,可以应用于如图1、图3和图5所示的装置中,所述接收方法包括:
步骤S710,获取通信配置信息队列和待发送数据。其中待发送数据可以是上述实施例中的通信数据、处理结果还可以是其他需要进行发送的数据。
步骤S720,对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符。其中,通信配置信息队列包含至少一条通信配置信息。具体地,当通信配置队列中存在多个通信配置信息时,分别对通信配置信息进行解析,得到对应于通信配置信息的通信描述符。
步骤S730,根据所述通信描述符,发送所述待发送数据。
在一个实施例中,步骤S710,所述获取通信配置信息队列和待发送数据包括:
步骤S711,检测存储空间中所述待发送数据是否完整。具体地,待发送数据是否完整是指待发送数据在数据量,数据大小是否与预设描述相符。
在其中一个实施例中,步骤S711,所述检测存储空间中的通信配置信息和所述待发送数据是否完整包括:
步骤S7111,获取地址选择信号。具体的,地址选择信号是指能够反映待发送数据是否完整和准确的信号。
步骤S7112,判断所述地址选择信号是否有效。步骤S7113,若所述地址选择信号有效,则确定所述存储空间中的所述通信配置信息和所述待发送数据完整。在其中一个实施例中,若地址选择信号无效,则确定待发送数据不完整。
步骤S712,若所述存储空间中的所述待发送数据完整,则获取所述通信配置信息队列和所述待发送数据。通过本实施中的方法,能够保证待传输数据的准确性。
在一个实施例中,步骤S720,所述对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符包括:
步骤S721,获取发送控制指令。具体地,当发送模式为普通发送模式时,从主操作端获取发送控制指令;当发送模式为硬件加速模式时,从任务处理装置获取发送控制指令。可以理解地,主操作端在芯片内部,任务处理装置在芯片内部。当从任务处理装置中获取发送指令时,进行的是芯片内部传输提高了传输速度。
步骤S722,根据所述发送控制指令,按预设规则在所述配置信息队列中读取至少一条所述通信配置信息。具体地,预设规则是预先设置好的读取规则,可以是按照配置信息在配置信息队列中的存放顺序进行读取,也可以按照其他预定规则进行读取。
步骤S723,对至少一条所述通信配置信息进行解析,分别得到对应的所述通信描述符。在其中一个实施例中,给每条通信描述符分配通信描述符标识;
根据所述通信描述符标识,读取对应的通信描述符。具体地,不同的通信描述符通过各自的通信描述符区分。在其中一个实施例中,多个通信描述符中的最后一个被读取的通信描述符有通信描述符标识E。当读取到该通信描述符标识E时,表示该多个通信描述符已全部读取完成。
在一个实施例中,所述发送方法还包括:根据所述通信描述符,得到发送模式符;根据所述发送模式符,得到所述发送方法为普通发送模式还是硬件加速发送模式。例如,根据通信描述符,生成发送模式符Type1,当Type1=0表示普通数据传输,当Type1=2表示硬件加速传输。在另一个实施例中,当Type1=1时,表示芯片与主操作端的通信。其中,普通数据传输是指芯片与芯片之间的数据传输,且发送控制指令来自于主操作端。其中,硬件加速传输是指芯片与芯片之间的数据传输,且发送控制指令来自芯片内部的任务处理装置。
在一个实施例中,所述方法还包括:
步骤S740,对每条所述通信描述符和每条所述通信描述符对应的所述待发送数据进行打包,得到传输数据包。具体地,传输数据包包括将每条通信描述符和每条通信描述符对应的待发送数据进行压缩,得到的压缩包。
步骤S750,获取待发送数据的目标发送芯片的标识信息。具体地,在开始传输任务时,分别为每个芯片分配各自的标识信息。根据目标发送芯片的标识信息,能够准确定位目标发送芯片。
步骤S760,根据所述标识信息,发送所述传输数据包。
应该理解的是,虽然图9-图 10流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图9-图 10中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图13,提供了一种数据发送装置,所述装置包括:
获取模块701,用于获取通信配置信息队列和待发送数据;
解析模块702,用于对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符;
数据发送模块703,用于根据所述通信描述符,发送所述待发送数据。
关于数据发送装置的具体限定可以参见上文中对于数据发送方法的限定,在此不再赘述。上述数据接收装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,请一并参阅图14,提供了一种数据通信方法,所述数据通信方法包括:
步骤S810,当前芯片获取通信数据和通信配置信息;
步骤S820,当前芯片对所述通信配置信息进行解析,得到通信描述符;
步骤S830,当前芯片根据所述通信描述符,将所述通信数据发送至目标地址空间;
步骤S840,当前芯片获取目标芯片的通信配置信息队列;
步骤S850,当前芯片对所述目标芯片的通信配置信息队列中的至少一条通信配置信息进行解析,得到目标芯片的通信描述符;
步骤S860,当前芯片根据所述目标芯片的通信描述符读取所述目标地址空间的待发送数据;
步骤S870,当前芯片的发送装置将所述待发送数据、所述下一芯片的通信配置信息队列发送至下一芯片的接收装置。
应该理解的是,虽然图14流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图14中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,步骤S810,所述当前芯片获取通信数据和通信配置信息包括:步骤 S811,当前芯片的接收装置获取传输数据包;步骤S811,当前芯片的接收装置根据所述传输数据包,得到通信数据和所述通信配置信息。
在一个实施例中,步骤S820,所述当前芯片对所述通信配置信息进行解析,得到通信描述符包括:步骤S821,当前芯片的接收装置获取解析控制指令;步骤S822,当前芯片的接收装置根据所述控制指令,对所述通信配置信息进行解析,得到通信描述符。
在一个实施例中,所述数据通信方法还包括:
步骤S880,当前芯片的接收装置根据通信描述符,当所述当前芯片的接收装置接收任务执行完成,生成对应的状态描述符;步骤S890,当前芯片的接收装置将所述状态描述符,存储至状态描述符队列;步骤S8010当前芯片的接收装置根据所述状态描述符队列,判断所述接收过程执行状态。
在一个实施例中,步骤S8010,所述当前芯片的接收装置根据所述状态描述符队列,判断所述接收方法执行状态包括:步骤S8011,当前芯片的接收装置将所述状态描述符队列发送至主操作端;步骤S8012,主操作端根据预设规则在所述状态描述符中选取所述状态描述符;步骤S8013,主操作端根据所述状态描述符,确定执行完毕的接收任务的数量;步骤S8014,主操作端当所述执行完毕的接收任务的数量达到阈值,判断所述接收过程结束。
在一个实施例中,所述数据通信方法还包括:
步骤S8020,当前芯片的接收装置根据所述通信描述符,得到接收模式符;
步骤S8030,当前芯片的接收装置根据所述接收模式符,判断所述通信过程是否是硬件加速模式还是普通传输模式。
在一个实施例中,所述普通发送模式包括从主操作端获取控制指令,所述主操作端为芯片外部的控制装置。在另一个实施例中,所述硬件加速传输模式包括从任务处理装置中获取控制指令,所述任务处理装置为芯片内部的进行处理的装置。
在一个实施例中,若确定所述通信过程为普通传输模式,则将所述通信数据发送至存储器。在其中一个实施例中,所述当前芯片根据所述目标芯片的通信描述符读取所述目标地址空间的待发送数据包括:
当前芯片的发送装置根据所述下一芯片的通信配置信息读取所述存储器中的待发送数据。
在一个实施例中,所述方法还包括:若确定所述通信过程为硬件加速模式,则将所述通信数据发送至任务处理装置;当前芯片的任务处理装置获取运算控制信息、通信数据和任务调度信息;当前芯片的任务处理装置,根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果;当前芯片的任务处理装置,根据所述运算控制信息,生成任务结束描述符;当前芯片的任务处理装置,根据所述任务结束描述符,将所述处理结果输出至所述当前芯片的接收装置。
在一个实施例中,当前芯片的任务处理装置获取运算控制信息、通信数据和任务调度信息包括:当前芯片的任务处理装置获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求;当前芯片的任务处理装置根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识;当前芯片的任务处理装置获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得任务调度信息。
在一个实施例中,所述当前芯片的任务处理装置根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果包括:当前芯片的任务处理装置根据所述任务调度信息获取所述任务调度信息、所述目标作业所属的任务的分解信息及全部任务信息;当前芯片的任务处理装置将所述目标作业所属的任务拆分为多个作业,并根据所述任务调度信息执行对所述通信数据所述目标作业,得到处理结果。
在一个实施例中,所述方法还包括:当前芯片的任务处理装置根据所述运算控制信息,生成任务控制指令以及通信控制指令;当前芯片的任务处理装置根据所述任务控制指令及任务调度信息对所述通信数据执行调度处理,得到处理结果;当前芯片的任务处理装置根据所述任务控制指令,生成任务结束描述符;当前芯片的任务处理装置根据所述通信控制指令,将所述处理结果输出。
在一个实施例中,所述根据当前芯片的任务处理装置所述任务控制指令,生成任务结束描述符包括:当前芯片的任务处理装置判断所述任务控制指令是否执行完成;当前芯片的任务处理装置若所述任务控制指令执行完成,则生成任务结束描述符。
在一个实施例中,所述方法还包括:当前芯片的任务处理装置根据多个所述任务结束描述符,生成任务结束描述符队列;当前芯片的任务处理装置根据预设规则在所述任务结束描述符队列中选择对应的所述任务结束描述符;当前芯片的任务处理装置根据所述任务结束描述符,将所述处理结果输出。
在一个实施例中,所述当前芯片的任务处理装置根据所述任务结束描述符,将所述处理结果输出包括:当前芯片的任务处理装置读取所述任务结束描述符,得到后处理任务;当前芯片的任务处理装置将所述处理结果,发送至所述后处理任务执行端。
在一个实施例中,所述当前芯片的任务处理装置将所述处理结果,发送至所述后处理任务执行端包括:若所述后处理任务在下一芯片中,则获取下一芯片的通信配置信息队列;将所述下一芯片的通信配置信息队列和所述处理结果输出至当前芯片的发送部件。
在一个实施例中,所述当前芯片的任务处理装置将所述处理结果,发送至所述后处理任务执行端包括:若所述后处理芯片在主操作端;则当前芯片的任务处理装置将所述处理结果和所述任务结束描述符发送至主操作端。
在一个实施例中,所述当前芯片获取目标芯片的通信配置信息队列和待发送数据包括:当前芯片的发送装置检测存储空间中所述待发送数据是否完整;若所述存储空间中的所述待发送数据完整,则当前芯片的发送装置获取所述通信配置信息队列和所述待发送数据。
在一个实施例中,所述当前芯片的发送装置检测存储空间中所述待发送数据是否完整包括:当前芯片的发送装置获取地址选择信号;当前芯片的发送装置判断所述地址选择信号是否有效;若所述地址选择信号有效,则当前芯片的发送装置确定所述存储空间中的所述通信配置信息和所述待发送数据完整。
在一个实施例中,所述当前芯片对所述目标芯片的通信配置信息队列中的至少一条通信配置信息进行解析,得到目标芯片的通信描述符包括:当前芯片的发送装置给每条通信描述符分配通信描述符标识;当前芯片的发送装置根据所述通信描述符标识,读取对应的通信描述符。
在一个实施例中,所述方法还包括:当前芯片的发送装置对每条所述通信描述符和每条所述通信描述符对应的所述待发送数据进行打包,得到传输数据包;当前芯片的发送装置获取待发送数据的目标发送芯片的标识信息;当前芯片的发送装置根据所述标识信息,发送所述传输数据包。
关于本申请实施例中数据通信方法参照上述数据接收方法、数据发送方法以及计算任务处理的解释,在此不再赘述。
在一个实施例中,提供了一种通信***,所述***包括:
接收装置、任务处理装置、发送装置以及存储器;所述任务处理装置一端连接接收装置,另一端连接发射装置;所述接收装置、所述发送装置分别与所述存储器相连;所述接收装置用于接收通信配置信息和通信数据;所述任务处理装置用于在硬件加速模式下对所述输入数据进行处理;所述存储器用于存储所述通信配置信息;所述发送装置用于将所述待发送数据输出。
在一个实施例中,提供了一种数据通信装置,请一并参阅图15。所述数据通信装置包括:
数据获取模块510,用于当前芯片获取通信数据和通信配置信息;
配置信息解析模块520,用于当前芯片对所述通信配置信息进行解析,得到通信描述符;
目标地址空间填充模块530,用于当前芯片根据所述通信描述符,将所述通信数据发送至目标地址空间;
通信配置信息队列获取模块540,用于当前芯片获取目标芯片的通信配置信息队列;
通信配置信息队列解析模块550,用于当前芯片对所述目标芯片的通信配置信息队列中的至少一条通信配置信息进行解析,得到目标芯片的通信描述符;
待发送数据读取模块560,用于当前芯片根据所述目标芯片的通信描述符读取所述目标地址空间的待发送数据;
发送模块570,用于当前芯片的发送装置将所述待发送数据、所述下一芯片的通信配置信息队列发送至下一芯片的接收装置。
关于本申请实施例中数据通信装置的解释说明参照上述数据通信方法、数据发送方法以及计算任务处理的解释,在此不再赘述。
上述数据通信数据装置以及上述实施例中的通信装置支持了数据通信方法的实施,上述实施例中的数据通信方法实现了芯片间的数据传输。
在一个实施例中,本申请还提供一种板卡,该板卡应用于数据通信方法中,该板卡可以包括:多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
参见图16所示,上述板卡除了包括上述多个人工智能处理器411(专用处理器41可以包括多个人工智能处理器411)和多通道内存42之外,还可以包含其它配套部件。该配套部件包括但不限于:内存控制器43、总线、接口44。专用处理器41通过接口44与外部设备之间进行指令传输以及数据传输。可选的,外部设备可以为主操作端(CPU)。
本实施例提供的板卡,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,本申请还提供一种主板,应用于神经网络数据处理方法中,如图17所示,该主板包括:主操作端和上述实施例提供的板卡。
本实施例提供的主板,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,提供一种电子设备,该电子设备应用于数据通信方法中,该电子设备包括如图17所示的主板。该主板包括CPU和板卡,板卡包括多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收主操作端CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
可选的,电子设备可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/ 或心电图仪。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图18所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储通信配置信息或通信描述符。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据通信方法。
本领域技术人员可以理解,图18中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以上任一实施例所述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一实施例所述方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (28)
1.一种通信装置,其特征在于,应用于主操作端和包含多个芯片的装置之间数据传输,所述多个芯片中任意两个芯片之间相连,每个芯片都与主操作端相连,所述通信装置位于芯片上,所述装置包括:
接收装置、任务处理装置、发送装置以及存储器;所述任务处理装置一端连接接收装置,另一端连接发送装置;所述接收装置、所述发送装置分别与所述存储器相连;
所述接收装置用于接收通信配置信息和通信数据;
所述任务处理装置用于对所述通信数据进行计算,得到待发送数据;
所述存储器用于存储所述通信配置信息;
所述发送装置用于将所述待发送数据输出;
所述发送装置包括:
发送配置电路,发送控制电路以及发送端口电路;所述发送控制电路分别与所述发送配置电路、所述发送端口电路相连;
所述发送装置还用于获取通信配置信息队列;
对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符;
根据所述通信描述符,得到发送模式符;
根据所述发送模式符,得到发送方法为普通发送模式或硬件加速发送模式;其中,所述普通发送模式是指芯片与芯片之间的数据传输,且发送控制指令来自于主操作端;所述硬件加速发送模式是指芯片与芯片之间的数据传输,且发送控制指令来自芯片内部的任务处理装置。
2.根据权利要求1所述的装置,其特征在于,所述接收装置包括:接收端口电路,配置信息解析电路和接收控制电路;所述接收端口电路与所述配置信息解析电路相连,所述配置信息解析电路还与所述接收控制电路相连。
3.根据权利要求1所述的装置,其特征在于,所述任务处理装置包括:结束信息分析电路、计算处理电路和传送接口电路;所述结束信息分析电路与所述计算处理电路相连;所述计算处理电路还与所述传送接口电路相连;
所述结束信息分析电路用于判断任务处理完成状态;
所述传送接口电路用于获取输入数据和传送配置信息;
所述计算处理电路用于根据所述输入数据执行计算,得到输出数据;
所述传送接口电路还用于根据所述传送配置信息将所述输出数据输出。
4.根据权利要求1所述的装置,其特征在于,所述通信配置信息包括输入数据、输出数据的源地址,输入数据、输出数据待发送的目的地址,输入数据、输出数据在存储空间中的偏移量以及输入数据、输出数据的数据块大小中的一种或几种。
5.根据权利要求1所述的装置,其特征在于,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
6.根据权利要求1所述的装置,其特征在于,所述接收装置、任务处理装置、发送装置以及存储器的相连方式包括无线连接和/或电气连接。
7.一种发送装置,其特征在于,应用于主操作端和包含多个芯片的装置之间数据传输,所述多个芯片中任意两个芯片之间相连,每个芯片都与主操作端相连,所述发送装置设置于芯片中,所述装置包括:发送配置电路,发送控制电路以及发送端口电路;所述发送控制电路分别与所述发送配置电路、所述发送端口电路相连;
所述发送装置用于获取通信配置信息队列;对所述通信配置信息队列中的至少一条通信配置信息进行解析,分别得到对应的通信描述符;根据所述通信描述符,得到发送模式符;根据所述发送模式符,得到发送方法为普通发送模式或硬件加速发送模式;其中,所述普通发送模式是指芯片与芯片之间的数据传输,且发送控制指令来自于主操作端;所述硬件加速发送模式是指芯片与芯片之间的数据传输,且发送控制指令来自芯片内部的任务处理装置。
8.根据权利要求7所述的装置,其特征在于,所述发送配置电路包括配置信息获取电路和配置信息解析电路;所述配置信息获取电路分别与所述配置信息解析电路、所述发送控制电路相连。
9.根据权利要求8所述的装置,其特征在于,所述装置与存储器、相连,其中,所述存储器与发送端口电路相连,所述存储器用于存储待发送数据。
10.根据权利要求9所述的装置,其特征在于,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
11.根据权利要求7所述的装置,其特征在于,所述发送配置电路、所述发送控制电路分别与主操作端连接。
12.根据权利要求7所述的装置,其特征在于,所述发送配置电路,发送控制电路以及发送端口电路之间的相连方式包括无线连接、电气连接。
13.根据权利要求7所述的装置,其特征在于,所述发送配置电路中生成至少一条通信描述符。
14.根据权利要求13所述的装置,其特征在于,所述通信描述符包括待发送数据的源地址、所述待发送数据的目的地址、所述待发送数据的偏移量以及所述待发送数据的数据块大小中的一种或几种。
15.一种接收装置,其特征在于,应用于主操作端和包含多个芯片的装置之间数据传输,所述多个芯片中任意两个芯片之间相连,每个芯片都与主操作端相连,所述装置位于芯片上,所述装置包括:接收端口电路,配置信息解析电路和接收控制电路;所述接收端口电路与所述配置信息解析电路相连,所述配置信息解析电路与所述接收控制电路相连;
所述装置还包括状态描述符缓存电路,所述状态描述符缓存电路与所述控制电路连接;所述状态描述符缓存电路用于存储状态描述符,所述状态描述符用于标记接收过程的完成状态;
所述装置用于当状态描述符队列的队列深度达到上限后,不等待通信描述符对应的接收过程全部结束,生成状态描述符队列;一个通信描述符对应一个接收过程,状态描述符队列的深度是指状态描述符队列所能容纳的状态描述符的数量。
16.根据权利要求15所述的装置,其特征在于,所述装置与存储器相连,其中,所述存储器与所述接收端口电路相连,所述存储器用于存储所述接收端口电路接收的数据。
17.根据权利要求16所述的装置,其特征在于,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
18.根据权利要求15所述的装置,其特征在于,通信端口电路,所述配置信息解析电路和所述控制电路的相连方式包括无线连接和/或电气连接。
19.根据权利要求15所述的装置,其特征在于,所述配置信息解析电路用于对接收的通信配置信息队列进行解析,得到至少一条接收描述符。
20.根据权利要求19所述的装置,其特征在于,所述接收描述符包括待发送数据的源地址、所述待发送数据的目的地址、所述待发送数据的偏移量以及所述待发送数据的数据块大小中的一种或几种。
21.一种神经网络处理器芯片,其特征在于,所述芯片包括如权利要求1中所述的通信装置,或包括如权利要求7中所述的发送装置,或包括如权利要求15中所述的接收装置。
22.根据权利要求21所述的芯片,其特征在于,当所述芯片包括如权利要求7中所述的发送装置,或包括如权利要求15中所述的接收装置时,所述芯片还包括计算装置,所述计算装置与所述发送装置或所述接收装置相连。
23.一种组合装置,其特征在于,所述组合装置包括至少一个如权利要求21所述的芯片。
24.根据权利要求23所述的组合装置,其特征在于,所述组合装置中的芯片两两相连。
25.根据权利要求23所述的组合装置,其特征在于,所述组合装置还包括主操作端,所述芯片与所述主操作端连接。
26.根据权利要求24所述的组合装置,其特征在于,所述组合装置中的上一芯片的发送端口电路或通信端口电路与下一芯片中的接收装置相连。
27.根据权利要求24所述的组合装置,其特征在于,所述组合装置中的上一芯片的发送端口电路或通信端口电路与下一芯片中的接收装置通过高速串行扩展线路相连。
28.一种电子设备,其特征在于,所述电子设备包括如所述权利要求21所述的神经网络处理器芯片。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811641903.2A CN111381958B (zh) | 2018-12-29 | 2018-12-29 | 通信装置、神经网络处理芯片、组合装置和电子设备 |
PCT/CN2019/127752 WO2020135385A1 (zh) | 2018-12-29 | 2019-12-24 | 通用机器学习模型、模型文件的生成和解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811641903.2A CN111381958B (zh) | 2018-12-29 | 2018-12-29 | 通信装置、神经网络处理芯片、组合装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111381958A CN111381958A (zh) | 2020-07-07 |
CN111381958B true CN111381958B (zh) | 2022-12-09 |
Family
ID=71214856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811641903.2A Active CN111381958B (zh) | 2018-12-29 | 2018-12-29 | 通信装置、神经网络处理芯片、组合装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111381958B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691591B (zh) * | 2020-12-31 | 2024-06-28 | 中科寒武纪科技股份有限公司 | 片间通信的电路、方法和*** |
US20240054012A1 (en) * | 2020-12-31 | 2024-02-15 | Shanghai Cambricon Information Technology Co., Ltd. | Inter-chip communication circuit, method and system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103109274A (zh) * | 2010-09-20 | 2013-05-15 | 高通股份有限公司 | 多处理器计算平台中的处理器间通信技术 |
CN103530187A (zh) * | 2006-03-27 | 2014-01-22 | 相干逻辑公司 | 为多处理器***设计程序 |
CN108549934A (zh) * | 2018-04-25 | 2018-09-18 | 福州瑞芯微电子股份有限公司 | 一种基于自动集群神经网络芯片组的运算方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910092B2 (en) * | 2001-12-10 | 2005-06-21 | International Business Machines Corporation | Chip to chip interface for interconnecting chips |
CN104750510B (zh) * | 2013-12-30 | 2019-04-02 | 深圳市中兴微电子技术有限公司 | 一种芯片启动方法及多核处理器芯片 |
-
2018
- 2018-12-29 CN CN201811641903.2A patent/CN111381958B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530187A (zh) * | 2006-03-27 | 2014-01-22 | 相干逻辑公司 | 为多处理器***设计程序 |
CN103109274A (zh) * | 2010-09-20 | 2013-05-15 | 高通股份有限公司 | 多处理器计算平台中的处理器间通信技术 |
CN108549934A (zh) * | 2018-04-25 | 2018-09-18 | 福州瑞芯微电子股份有限公司 | 一种基于自动集群神经网络芯片组的运算方法和装置 |
Non-Patent Citations (1)
Title |
---|
IIC总线主发主收模式运用;毛建华等;《西安邮电大学学报》;20130510(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111381958A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886859B (zh) | 数据处理方法、***、电子设备和计算机可读存储介质 | |
WO2018113364A1 (zh) | 闪存接口控制器及操作命令处理方法 | |
CN111381958B (zh) | 通信装置、神经网络处理芯片、组合装置和电子设备 | |
CN108566393B (zh) | 数据加密的方法、装置和*** | |
CN112685148A (zh) | 海量终端的异步通信方法、装置、计算机设备和存储介质 | |
CN111381946B (zh) | 任务处理方法、装置及相关产品 | |
US20220100566A1 (en) | Metrics-based scheduling for hardware accelerator resources in a service mesh environment | |
CN111382109B (zh) | 数据通信方法、装置及相关产品 | |
US9772882B2 (en) | Detecting and selecting two processing modules to execute code having a set of parallel executable parts | |
CN111079909B (zh) | 运算方法、***及相关产品 | |
CN113778319A (zh) | 网卡的数据处理方法以及网卡 | |
CN111382857B (zh) | 任务处理装置、神经网络处理器芯片、组合装置以及电子设备 | |
CN111382116B (zh) | 数据接收方法、装置及相关产品 | |
CN111078291B (zh) | 运算方法、***及相关产品 | |
CN111382110A (zh) | 接收装置、神经网络处理器芯片、组合装置以及电子设备 | |
CN111382117A (zh) | 发送装置、神经网络处理器芯片、组合装置以及电子设备 | |
CN111382858A (zh) | 数据发送方法、装置及相关产品 | |
WO2020135385A1 (zh) | 通用机器学习模型、模型文件的生成和解析方法 | |
CN112231250B (zh) | 存储设备的性能隔离 | |
CN111079912B (zh) | 运算方法、***及相关产品 | |
CN111079910B (zh) | 运算方法、装置及相关产品 | |
CN111079914B (zh) | 运算方法、***及相关产品 | |
CN111078285B (zh) | 运算方法、***及相关产品 | |
CN111079907B (zh) | 运算方法、装置及相关产品 | |
CN111079915B (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 |