CN111382857A - 任务处理装置、神经网络处理器芯片、组合装置以及电子设备 - Google Patents
任务处理装置、神经网络处理器芯片、组合装置以及电子设备 Download PDFInfo
- Publication number
- CN111382857A CN111382857A CN201811641509.9A CN201811641509A CN111382857A CN 111382857 A CN111382857 A CN 111382857A CN 201811641509 A CN201811641509 A CN 201811641509A CN 111382857 A CN111382857 A CN 111382857A
- Authority
- CN
- China
- Prior art keywords
- task
- processor
- information
- processing
- circuit
- 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
Images
Classifications
-
- 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)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种任务处理装置、神经网络处理器芯片、组合装置以及电子设备。所述装置包括:多个人工智能处理器(专用处理器可以包括多个人工智能处理器)和多通道内存之外,还可以包含其它配套部件。该配套部件包括但不限于:内存控制器、总线、接口。专用处理器通过接口与外部设备之间进行指令传输以及数据传输。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种任务处理装置、神经网络处理器芯片、组合装置以及电子设备。
随着人工智能技术的发展,主操作端已不能满足现有算法的计算需求,神经网络专用芯片营运而生。实践证明,人工智能计算任务相对于通用处理任务或图像处理任务而言,具有独特的数据结构、存储方式、计算模式等,因而可以设计专用集成电路为人工智能计算任务重新分配芯片计算资源,实现低功耗、低延迟、高吞吐率的计算。NPU(Neuralnetwork Processing Unit)是一种专用集成电路,可以实现人工智能计算任务,例如神经网络计算,其具有低功耗、高效能、小面积的特点。
根据摩尔定律和Dennard Scaling定律,单核高效能处理器的计算能力会因为物理因素的限制达到瓶颈。为了提高计算并行性,业界的芯片设计逐渐转向多核高效率处理器设计上。不仅如此,随着高性能计算机和数据中心的发展,越来越多的计算资源被集中起来,多芯片协同处理已是常态。为了实现基于NPU 的高处理性能和高可扩展的AI处理***,NPU芯片间需要支持高效的数据传输。
但是目前还没有一种装置和方法能够支持NPU芯片间的数据传输。
发明内容
基于此,有必要针对上述技术问题,提供一种任务处理装置、神经网络处理器芯片、组合装置以及电子设备。
一种任务处理装置,
所述装置位于芯片上,所述装置包括:结束信息分析电路、任务处理电路和传送接口电路;所述结束信息分析电路与所述任务处理电路相连;所述任务处理电路还与所述传送接口电路相连;
所述结束信息分析电路用于判断计算任务完成状态,得到任务结束描述符;
所述传送接口电路用于获取通信数据和通信配置信息;
所述任务处理电路用于根据所述通信数据执行计算执行处理,得到输出数据;
所述传送接口电路还用于获取通信配置信息并根据所述通信配置信息将所述输出数据和所述任务结束描述符输出。任务处理电路任务处理电路任务处理电路任务处理电路
在其中一个实施例中,所述任务处理电路还包括:
任务调度器、第一处理器、第二处理器以及运算控制电路;任务调度器连接在第一处理器和第二处理器之间;所述运算控制电路与所述任务调度器相连;
所述任务调度器用于将计算任务在所述第一处理器和所述第二处理器中进行调度执行;
所述第一处理器用于执行所述任务调度器分配的第一处理器任务;
所述第二处理器用于执行所述任务调度器分配的第二处理器任务;
所述运算控制电路用于向所述任务调度器发送控制指令,以及用于生成传输配置信息。
在其中一个实施例中,所述任务调度器包括:
任务缓存装置,用于存储多个任务对应的基本任务信息和全部任务信息;
任务分派装置,所述任务分派装置与所述任务缓存装置连接,所述任务分派装置用于从所述任务缓存装置中获取一个以上的所述任务的基本任务信息,并分别根据各个所述任务的基本任务信息获得所述任务的任务注册请求;以及状态监控装置,所述状态监控装置连接所述任务分派装置及所述第二处理器,所述状态监控装置用于根据接收到的各个所述任务的任务注册请求,为各个所述任务分配一个任务标识,并将各个所述任务的任务标识回传给所述任务分派装置;
其中,所述任务分派装置还用于在接收到所述任务的任务标识之后,获得所述任务的分解信息,并根据所述任务的分解信息及所述第二处理器的处理器状态信息确定目标作业,获得调度信息,并将所述调度信息发送至所述第二处理器。
在其中一个实施例中,所述装置与存储器相连,其中
所述存储器与所述传送接口电路相连,所述存储器用于存储所述输出数据和所述通信配置信息。
在其中一个实施例中,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
在其中一个实施例中,所述结束信息分析电路、任务处理电路和传送接口电路的相连方式包括无线连接和/或电气连接。
在其中一个实施例中,所述通信配置信息包括输出数据待存储的源地址、所述输出数据待发送的目的地址、所述输出数据在存储空间中的偏移量以及所述输出数据的数据块大小中的一种或几种。
在其中一个实施例中,所述芯片包括如上所述的任务处理装置。
在其中一个实施例中,所述芯片还包括发送装置和接收装置,所述任务处理装置分别与所述发送装置和所述接收装置相连。
一种组合装置,所述组合装置包括至少一个如上所述的芯片。
在其中一个实施例中,所述组合装置中的芯片两两相连。
在其中一个实施例中,所述组合装置还包括主操作端,所述芯片与所述主操作端连接。
一种电子设备,所述电子设备包括如所述权上所述的神经网络处理器芯片。
上述任务处理装置,所述装置位于芯片上,通过接收装置、任务处理装置、发送装置以及存储器之间的相互配合,能够支持NPU芯片间的数据传输。
附图说明
图1为一个实施例中提供的一种通信***示意图;
图2为一个实施例中提供任务处理装置的内部示意图;
图3为一个实施例中提供的组合装置示意图;
图4为一个实施例提供的一种任务处理方法流程示意图;
图5为一个实施例提供的任务处理方法流程示意图;
图6为一个实施例提供的任务处理软装置示意图;
图7为一个实施例中提供的板卡示意图;
图8为一个实施例中提供的主板示意图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,请一并参阅图1,提供了一种通信***。如图1所述的通信***包括:接收装置110,发送装置120,任务处理装置130,存储器140,所述任务处理装置130一端与接收装置110相连,另一端与发送装置120相连。具体地,所述接收装置110、所述发送装置120分别与所述存储器140相连。
在一个实施例中,请一并参阅图2,提供了任务处理装置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用于存储所述输出数据。在其中一个实施例中,所述通信配置信息存储于任务处理装置内部的配置信息缓存中。
在其中一个实施例中,请一并参阅图3,提供了一种组合装置。所述组合装置包括多个神经网络处理芯片200,且所述神经网络处理芯片200之间依次相连。其中,神经网络处理芯片之间可以任意两个芯片之间都相连,还可以相邻的两个芯片之间相连。
在其中一个实施例中,每个所述神经网络处理芯片都与主操作端150相连。在其中一个实施例中,每个神经网络处理芯片中包括如图1所示的通信***100,所述通信***100包括接收装置110、发送装置120、任务处理装置130以及存储器140。
在其中一个实施例中,提供了一种电子设备,所述电子设备包括神经网络处理芯片200。其中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
其中,上述任一实施例中的元件之间的连接关系,可以是电连接或无线连接。
上述接收装置、发送装置、任务处理装置以及存储器共同组成了通信***,通过所述通信***能够支持NPU芯片之间的数据传输。
在一个实施例中,请一并参阅图4,提供了一种任务处理方法,本申请提供的任务处理方法,可以应用于如图1-图3所示的装置中。所述任务处理方法包括:
步骤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,所述将所述处理结果,发送至所述后处理任务执行端包括:若所述后处理任务的执行端在主操作端;则将所述处理结果和所述任务结束描述符发送至主操作端。
应该理解的是,虽然图4-5流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图6,提供了一种任务处理软装置,所述装置包括:
信息获取模块901,用于获取运算控制信息和任务调度信息;
处理结果生成模块902,用于根据所述运算控制信息以及任务调度信息对所述通信数据执行调度处理,得到处理结果;
任务描述符生成模块903,用于根据所述运算控制信息,生成任务结束描述符;
处理结果输出模块904,用于根据所述任务结束描述符,将所述处理结果输出。
关于任务处理软装置的具体限定可以参见上文中对于任务处理方法的限定,在此不再赘述。上述任务处理软装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,本申请还提供一种板卡,该板卡应用于数据通信方法中,该板卡可以包括:多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
参见图7所示,上述板卡除了包括上述多个人工智能处理器411(专用处理器41可以包括多个人工智能处理器411)和多通道内存42之外,还可以包含其它配套部件。该配套部件包括但不限于:内存控制器43、总线、接口44。专用处理器41通过接口44与外部设备之间进行指令传输以及数据传输。可选的,外部设备可以为主操作端(CPU)。
本实施例提供的板卡,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,本申请还提供一种主板,应用于神经网络数据处理方法中,如图8所示,该主板包括:主操作端和上述实施例提供的板卡。
本实施例提供的主板,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,提供一种电子设备,该电子设备应用于数据通信方法中,该电子设备包括如图8所示的主板。该主板包括CPU和板卡,板卡包括多个人工智能处理器,多个人工智能处理器对应的内存为多通道内存;其中,目标人工智能处理器用于在通过目标并行线程接收主操作端CPU发出的人工智能处理器计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能处理器计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能处理器为所述多个人工智能处理器中的任一人工智能处理器,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
可选的,电子设备可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/ 或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储通信配置信息或通信描述符。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据通信方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行处理机程序时实现以上任一实施例所述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一实施例所述方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (13)
1.一种任务处理装置,其特征在于,所述装置位于芯片上,所述装置包括:结束信息分析电路、任务处理电路和传送接口电路;所述结束信息分析电路与所述任务处理电路相连;所述任务处理电路还与所述传送接口电路相连;
所述结束信息分析电路用于判断计算任务完成状态,得到任务结束描述符;
所述传送接口电路用于获取通信数据;
所述任务处理电路用于根据所述通信数据执行处理,得到输出数据;
所述传送接口电路还用于获取通信配置信息并根据所述通信配置信息将所述输出数据和所述任务结束描述符输出。
2.根据权利要求1所述的装置,其特征在于,所述任务处理电路还包括:
任务调度器、第一处理器、第二处理器以及运算控制电路;任务调度器连接在第一处理器和第二处理器之间;所述运算控制电路与所述任务调度器相连;
所述任务调度器用于将计算任务在所述第一处理器和所述第二处理器中进行调度执行;
所述第一处理器用于执行所述任务调度器分配的第一处理器任务;
所述第二处理器用于执行所述任务调度器分配的第二处理器任务;
所述运算控制电路用于向所述任务调度器发送控制指令,以及用于生成传输配置信息。
3.根据权利要求2所述的装置,其特征在于,所述任务调度器包括:
任务缓存装置,用于存储多个任务对应的基本任务信息和全部任务信息;
任务分派装置,所述任务分派装置与所述任务缓存装置连接,所述任务分派装置用于从所述任务缓存装置中获取一个以上的所述任务的基本任务信息,并分别根据各个所述任务的基本任务信息获得所述任务的任务注册请求;以及
状态监控装置,所述状态监控装置连接所述任务分派装置及所述第二处理器,所述状态监控装置用于根据接收到的各个所述任务的任务注册请求,为各个所述任务分配一个任务标识,并将各个所述任务的任务标识回传给所述任务分派装置;
其中,所述任务分派装置还用于在接收到所述任务的任务标识之后,获得所述任务的分解信息,并根据所述任务的分解信息及所述第二处理器的处理器状态信息确定目标作业,获得调度信息,并将所述调度信息发送至所述第二处理器。
4.根据权利要求1-3任意一项所述的装置,其特征在于,所述装置与存储器相连,其中
所述存储器与所述传送接口电路相连,所述存储器用于存储所述输出数据和所述通信配置信息。
5.根据权利要求4所述的装置,其特征在于,所述存储器包括:同步动态随机存取存储器或双倍速率同步动态随机存取存储器。
6.根据权利要求1所述的装置,其特征在于,所述结束信息分析电路、任务处理电路和传送接口电路的相连方式包括无线连接和/或电气连接。
7.根据权利要求1任意一项所述的装置,其特征在于,所述通信配置信息包括输出数据待存储的源地址、所述输出数据待发送的目的地址、所述输出数据在存储空间中的偏移量以及所述输出数据的数据块大小中的一种或几种。
8.一种神经网络处理器芯片,其特征在于,所述芯片包括如权利要求1中所述的任务处理装置。
9.根据权利要求8所述的芯片,其特征在于,所述芯片还包括发送装置和接收装置,所述任务处理装置分别与所述发送装置和所述接收装置相连。
10.一种组合装置,其特征在于,所述组合装置包括至少一个如权利要求9所述的芯片。
11.根据权利要求10所述的组合装置,其特征在于,所述组合装置中的芯片两两相连。
12.根据权利要求10所述的组合装置,其特征在于,所述组合装置还包括主操作端,所述芯片与所述主操作端连接。
13.一种电子设备,其特征在于,所述电子设备包括如所述权利要求8所述的神经网络处理器芯片。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811641509.9A CN111382857B (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 |
---|---|---|---|
CN201811641509.9A CN111382857B (zh) | 2018-12-29 | 2018-12-29 | 任务处理装置、神经网络处理器芯片、组合装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382857A true CN111382857A (zh) | 2020-07-07 |
CN111382857B CN111382857B (zh) | 2023-07-18 |
Family
ID=71216663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811641509.9A Active CN111382857B (zh) | 2018-12-29 | 2018-12-29 | 任务处理装置、神经网络处理器芯片、组合装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382857B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140344824A1 (en) * | 2013-05-14 | 2014-11-20 | International Business Machines Corporation | Interruption of chip component managing tasks |
CN105589829A (zh) * | 2014-09-15 | 2016-05-18 | 华为技术有限公司 | 基于多核处理器芯片的数据处理方法、装置以及*** |
CN105760324A (zh) * | 2016-05-11 | 2016-07-13 | 北京比特大陆科技有限公司 | 数据处理装置和服务器 |
WO2018024232A1 (zh) * | 2016-08-05 | 2018-02-08 | 上海寒武纪信息科技有限公司 | 用于执行神经网络运算的装置及方法 |
CN107679620A (zh) * | 2017-04-19 | 2018-02-09 | 北京深鉴科技有限公司 | 人工神经网络处理装置 |
CN108171321A (zh) * | 2017-12-07 | 2018-06-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SoC芯片的深度神经网络嵌入式实现方法 |
CN108470009A (zh) * | 2018-03-19 | 2018-08-31 | 上海兆芯集成电路有限公司 | 处理电路及其神经网络运算方法 |
WO2018157836A1 (zh) * | 2017-03-02 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 一种可编程硬件的资源管理方法、可编程硬件设备及存储介质 |
CN108549934A (zh) * | 2018-04-25 | 2018-09-18 | 福州瑞芯微电子股份有限公司 | 一种基于自动集群神经网络芯片组的运算方法和装置 |
CN108985451A (zh) * | 2018-06-29 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | 基于ai芯片的数据处理方法及设备 |
-
2018
- 2018-12-29 CN CN201811641509.9A patent/CN111382857B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140344824A1 (en) * | 2013-05-14 | 2014-11-20 | International Business Machines Corporation | Interruption of chip component managing tasks |
CN105589829A (zh) * | 2014-09-15 | 2016-05-18 | 华为技术有限公司 | 基于多核处理器芯片的数据处理方法、装置以及*** |
CN105760324A (zh) * | 2016-05-11 | 2016-07-13 | 北京比特大陆科技有限公司 | 数据处理装置和服务器 |
WO2018024232A1 (zh) * | 2016-08-05 | 2018-02-08 | 上海寒武纪信息科技有限公司 | 用于执行神经网络运算的装置及方法 |
WO2018157836A1 (zh) * | 2017-03-02 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 一种可编程硬件的资源管理方法、可编程硬件设备及存储介质 |
CN107679620A (zh) * | 2017-04-19 | 2018-02-09 | 北京深鉴科技有限公司 | 人工神经网络处理装置 |
CN108171321A (zh) * | 2017-12-07 | 2018-06-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SoC芯片的深度神经网络嵌入式实现方法 |
CN108470009A (zh) * | 2018-03-19 | 2018-08-31 | 上海兆芯集成电路有限公司 | 处理电路及其神经网络运算方法 |
CN108549934A (zh) * | 2018-04-25 | 2018-09-18 | 福州瑞芯微电子股份有限公司 | 一种基于自动集群神经网络芯片组的运算方法和装置 |
CN108985451A (zh) * | 2018-06-29 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | 基于ai芯片的数据处理方法及设备 |
Non-Patent Citations (3)
Title |
---|
DANIEL CHILLET 等: "Real-time scheduling on heterogeneous system-on-chip architectures using an optimised artificial neural network", 《JOURNAL OF SYSTEMS ARCHITECTURE》 * |
GARGOURI A 等: "Hardware implementation of new bell-shaped pulse mode neural network with on-chip learning and application to image processing", 《INTERNATIONAL JOURNAL OF HIGH PERFORMANCE SYSTEMS ARCHITECTURE》 * |
吴琼: "多核平台软件算法优化的研究", 《中国博士学位论文全文数据库信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111382857B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112465129B (zh) | 片内异构人工智能处理器 | |
CN112671830B (zh) | 资源调度方法、***、装置、计算机设备和存储介质 | |
CN107515786B (zh) | 资源分配方法、主装置、从装置和分布式计算*** | |
CN109886859B (zh) | 数据处理方法、***、电子设备和计算机可读存储介质 | |
CN109564528B (zh) | 分布式计算中计算资源分配的***和方法 | |
WO2017070900A1 (zh) | 多核数字信号处理***中处理任务的方法和装置 | |
Yang et al. | Making openvx really" real time" | |
CN104915253B (zh) | 一种作业调度的方法及作业处理器 | |
CN111338779B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN110300959B (zh) | 用于动态运行时任务管理的方法、***、设备、装置和介质 | |
CN111191777A (zh) | 一种神经网络处理器及其控制方法 | |
CN111381946B (zh) | 任务处理方法、装置及相关产品 | |
CN111381958B (zh) | 通信装置、神经网络处理芯片、组合装置和电子设备 | |
Yang et al. | PK-OMLP: An OMLP based k-exclusion real-time locking protocol for multi-GPU sharing under partitioned scheduling | |
CN115562846A (zh) | 一种资源调度的方法、装置及计算节点 | |
CN114816777A (zh) | 命令处理装置、方法、电子设备以及计算机可读存储介质 | |
CN111382857B (zh) | 任务处理装置、神经网络处理器芯片、组合装置以及电子设备 | |
CN111382109B (zh) | 数据通信方法、装置及相关产品 | |
CN113485810A (zh) | 一种任务的调度执行方法、装置、设备及存储介质 | |
US10503557B2 (en) | Method of processing OpenCL kernel and computing device therefor | |
CN113742059A (zh) | 任务分配方法、装置、计算机设备和存储介质 | |
CN111382116B (zh) | 数据接收方法、装置及相关产品 | |
Liu et al. | A concurrent approach for improving the efficiency of Android CTS testing | |
CN108009074B (zh) | 一种基于模型和动态分析的多核***实时性评估方法 | |
CN111382858A (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 |