CN111381946B - 任务处理方法、装置及相关产品 - Google Patents

任务处理方法、装置及相关产品 Download PDF

Info

Publication number
CN111381946B
CN111381946B CN201811647273.XA CN201811647273A CN111381946B CN 111381946 B CN111381946 B CN 111381946B CN 201811647273 A CN201811647273 A CN 201811647273A CN 111381946 B CN111381946 B CN 111381946B
Authority
CN
China
Prior art keywords
task
information
processing
chip
descriptor
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
Application number
CN201811647273.XA
Other languages
English (en)
Other versions
CN111381946A (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201811647273.XA priority Critical patent/CN111381946B/zh
Priority to PCT/CN2019/127752 priority patent/WO2020135385A1/zh
Publication of CN111381946A publication Critical patent/CN111381946A/zh
Application granted granted Critical
Publication of CN111381946B publication Critical patent/CN111381946B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种任务处理方法、装置及相关产品。所述方法包括:当接收任务对应的任务描述符数量不足以达到状态描述符队列的队列深度时,则等待该接收任务对应的多个通信描述符对应的接收过程全部结束后,生成状态描述符队列。

Description

任务处理方法、装置及相关产品
技术领域
本申请涉及人工智能技术领域,特别是涉及一种任务处理方法、装置及相关产品。
背景技术
随着人工智能技术的发展,主操作端已不能满足现有算法的计算需求,神经网络专用芯片营运而生。实践证明,人工智能计算任务相对于通用处理任务或图像处理任务而言,具有独特的数据结构、存储方式、计算模式等,因而可以设计专用集成电路为人工智能计算任务重新分配芯片计算资源,实现低功耗、低延迟、高吞吐率的计算。NPU(Neuralnetwork Processing Unit)是一种专用集成电路,可以实现人工智能计算任务,例如神经网络计算,其具有低功耗、高效能、小面积的特点。
根据摩尔定律和Dennard Scaling定律,单核高效能处理器的计算能力会因为物理因素的限制达到瓶颈。为了提高计算并行性,业界的芯片设计逐渐转向多核高效率处理器设计上。不仅如此,随着高性能计算机和数据中心的发展,越来越多的计算资源被集中起来,多芯片协同处理已是常态。为了实现基于NPU 的高处理性能和高可扩展的AI处理系统,NPU芯片间需要支持高效的数据传输。
但是目前还没有一种装置和方法能够支持NPU芯片间的数据传输。
发明内容
基于此,有必要针对上述技术问题,提供一种计算任务方法、装置及相关产品。
一种任务处理方法,所述方法包括:
获取运算控制信息和任务调度信息;
根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果;
根据所述运算控制信息,生成任务结束描述符;
根据所述任务结束描述符,将所述计算结果输出。
在其中一个实施例中,所述获取运算控制信息和任务调度信息包括:
获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求;
根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识;
获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得任务调度信息。
在其中一个实施例中,所述根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果包括:
根据所述任务调度信息获取所述任务调度信息、所述目标任务所属的任务的分解信息及全部任务信息,将所述目标任务所属的任务拆分为多个子任务,并根据所述任务调度信息执行对所述通信数据所述目标任务,得到计算结果。
在其中一个实施例中,所述方法还包括:
根据所述运算控制信息,生成计算控制指令以及通信控制指令;
根据所述计算控制指令及任务调度信息对所述通信数据执行调度处理,得到计算结果;
根据所述计算控制指令,生成任务结束描述符;
根据所述通信控制指令,将所述计算结果输出。
在其中一个实施例中,所述根据所述计算控制指令,生成任务结束描述符包括:
判断所述计算控制指令是否执行完成;
若所述计算控制指令执行完成,则生成任务结束描述符。
在其中一个实施例中,所述方法还包括:
根据多个所述任务结束描述符,生成任务描述符队列;
根据预设规则在所述任务描述符队列中选择对应的所述任务描述符;
根据所述任务描述符,将所述计算结果输出。
在其中一个实施例中,所述根据所述任务结束描述符,将所述计算结果输出包括:
读取所述任务结束描述符,得到后处理任务指令;
将所述计算结果,发送至所述后处理任务执行端。
在其中一个实施例中,所述将所述计算结果,发送至所述后处理任务执行端包括:
若所述后处理任务的执行端在下一芯片中,则获取下一芯片的通信配置信息队列;
将所述下一芯片的通信配置信息队列和所述计算结果输出至当前芯片的发送装置。
在其中一个实施例中,所述将所述计算结果,发送至所述后处理任务执行端包括:
若所述后处理任务的执行端在主操作端;
则将所述计算结果和所述任务结束描述符发送至主操作端。
在其中一个实施例中,所述获取运算控制信息包括从主操作端获取运算控制信息,所述主操作端为芯片外部的控制装置。
在其中一个实施例中,所述获取运算控制信息包括从计算装置中生成运算控制信息,所述计算装置为芯片内部的执行计算任务的装置。
一种任务处理装置,所述装置包括:
信息获取模块,用于获取运算控制信息和任务调度信息;
计算结果生成模块,用于根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果;
任务描述符生成模块,用于根据所述运算控制信息,生成任务结束描述符;
计算结果输出模块,用于根据所述任务结束描述符,将所述计算结果输出。
一种板卡,应用于数据发送方法中,所述板卡包括:多个人工智能芯片,所述多个人工智能芯片对应的内存为多通道内存;其中,目标人工智能芯片用于在通过目标并行线程接收通用芯片CPU发出的人工智能芯片计算指令后,通过与所述目标并行线程对应的内存通道,根据所述人工智能芯片计算指令对所述内存通道对应的物理内存进行访问;所述目标人工智能芯片为所述多个人工智能芯片中的任一人工智能芯片,所述目标并行线程为所述CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道。
一种主板,应用于神经网络数据处理中,所述主板包括:通用芯片CPU和上述的板卡。
一种电子设备,应用于神经网络数据处理中,所述电子设备包括上述的主板。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被芯片执行时实现上述任一实施例中所述方法的步骤。
上述任务处理方法、装置及相关产品,通过接收装置、计算装置、发送装置以及存储器之间的相互配合,能够支持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,所述将所述处理结果,发送至所述后处理任务执行端包括:若所述后处理任务的执行端在主操作端;则将所述处理结果和所述任务结束描述符发送至主操作端。
应该理解的是,虽然图8-9 流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图8-9 中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,请一并参阅图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 (12)

1.一种任务处理方法,其特征在于,应用于神经网络处理芯片,并且多个所述神经网络处理芯片之间允许任意两个芯片之间相连,所述方法包括:
获取运算控制信息和任务调度信息;
根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果;
根据所述运算控制信息,生成任务结束描述符;
读取所述任务结束描述符,得到后处理任务指令;
根据所述后处理任务指令,将所述计算结果发送至所述后处理任务的执行端;
若所述后处理任务的执行端为下一芯片,则获取下一芯片的通信配置信息队列,将所述下一芯片的通信配置信息队列和所述计算结果输出至当前芯片的发送装置;
若所述后处理任务的执行端在主操作端,则将所述计算结果和所述任务结束描述符发送至所述主操作端,所述主操作端为芯片外部的控制装置;
所述获取运算控制信息包括从主操作端获取运算控制信息。
2.根据权利要求1所述的方法,其特征在于,所述获取运算控制信息和任务调度信息包括:
获取一个以上的任务的基本任务信息,分别根据所述任务的基本任务信息获得各个所述任务的任务注册请求;
根据接收到的所述任务的任务注册请求,为每个所述任务分配一个任务标识;
获得所述任务的分解信息,并根据所述任务的分解信息及第二处理器的处理器状态信息确定目标作业,获得任务调度信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果包括:
根据所述任务调度信息获取所述任务调度信息、所述目标作业所属的任务的分解信息及全部任务信息,将所述目标任务所属的任务拆分为多个子任务,并根据所述任务调度信息执行对所述通信数据所述目标任务,得到计算结果。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述运算控制信息,生成计算控制指令以及通信控制指令;
根据所述计算控制指令及任务调度信息对所述通信数据执行调度处理,得到计算结果;
根据所述计算控制指令,生成任务结束描述符;
根据所述通信控制指令,将所述计算结果输出。
5.根据权利要求4所述的方法,其特征在于,所述根据所述计算控制指令,生成任务结束描述符包括:
判断所述计算控制指令是否执行完成;
若所述计算控制指令执行完成,则生成任务结束描述符。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据多个所述任务结束描述符,生成任务描述符队列;
根据预设规则在所述任务描述符队列中选择对应的所述任务描述符;
根据所述任务描述符,将所述计算结果输出。
7.根据权利要求1所述的方法,其特征在于,所述获取运算控制信息包括从计算装置中生成运算控制信息,所述计算装置为芯片内部的执行计算任务的装置。
8.一种任务处理装置,其特征在于,应用于神经网络处理芯片,并且多个所述神经网络处理芯片之间允许任意两个芯片之间相连,所述装置包括:
信息获取模块,用于获取运算控制信息和任务调度信息;
计算结果生成模块,用于根据所述运算控制信息以及任务调度信息对接收的通信数据执行调度处理,得到计算结果;
任务描述符生成模块,用于根据所述运算控制信息,生成任务结束描述符;
计算结果输出模块,用于读取所述任务结束描述符,得到后处理任务指令;根据所述后处理任务指令,将所述计算结果发送至所述后处理任务的执行端;若所述后处理任务的执行端为下一芯片,则获取下一芯片的通信配置信息队列,将所述下一芯片的通信配置信息队列和所述计算结果输出至当前芯片的发送装置;若所述后处理任务的执行端在主操作端,则将所述计算结果和所述任务结束描述符发送至所述主操作端,所述主操作端为芯片外部的控制装置;所述获取运算控制信息包括从主操作端获取运算控制信息。
9.一种板卡,其特征在于,应用于数据发送方法中,所述板卡包括:多个神经网络处理芯片,多个所述神经网络处理芯片之间允许任意两个芯片之间相连,所述多个神经网络处理芯片对应的内存为多通道内存;其中,目标神经网络处理芯片用于在通过目标并行线程接收通用芯片CPU发出的神经网络处理芯片计算指令后,通过与所述目标并行线程对应的内存通道,根据所述神经网络处理芯片计算指令对所述内存通道对应的物理内存进行访问;所述目标神经网络处理芯片为所述多个神经网络处理芯片中的任一神经网络处理芯片,所述目标并行线程为所述通用芯片CPU启动的多个并行线程中的任一个;所述多个并行线程中至少有两个线程对应不同的内存通道;所述神经网络处理芯片执行计算机程序时用于实现权利要求1至7中任一项所述的方法的步骤。
10.一种主板,其特征在于,应用于神经网络数据处理中,所述主板包括:通用芯片CPU和如权利要求9所述的板卡。
11.一种电子设备,其特征在于,应用于神经网络数据处理中,所述电子设备包括如权利要求10所述的主板。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被芯片执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201811647273.XA 2018-12-29 2018-12-29 任务处理方法、装置及相关产品 Active CN111381946B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811647273.XA CN111381946B (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
CN201811647273.XA CN111381946B (zh) 2018-12-29 2018-12-29 任务处理方法、装置及相关产品

Publications (2)

Publication Number Publication Date
CN111381946A CN111381946A (zh) 2020-07-07
CN111381946B true CN111381946B (zh) 2022-12-09

Family

ID=71219451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811647273.XA Active CN111381946B (zh) 2018-12-29 2018-12-29 任务处理方法、装置及相关产品

Country Status (1)

Country Link
CN (1) CN111381946B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489963A (zh) * 2020-11-12 2022-05-13 华为云计算技术有限公司 人工智能应用任务的管理方法、系统、设备及存储介质
CN112650558B (zh) * 2020-12-29 2022-07-05 优刻得科技股份有限公司 数据处理方法、装置、可读介质和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101160571A (zh) * 2005-04-13 2008-04-09 索尼株式会社 信息处理装置以及信息处理方法
CN102508704A (zh) * 2011-11-10 2012-06-20 上海市共进通信技术有限公司 计算机软件系统中实现任务分解和并行处理控制的方法
CN109086986A (zh) * 2018-07-20 2018-12-25 中国邮政储蓄银行股份有限公司 作业调度方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566841B2 (en) * 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101160571A (zh) * 2005-04-13 2008-04-09 索尼株式会社 信息处理装置以及信息处理方法
CN102508704A (zh) * 2011-11-10 2012-06-20 上海市共进通信技术有限公司 计算机软件系统中实现任务分解和并行处理控制的方法
CN109086986A (zh) * 2018-07-20 2018-12-25 中国邮政储蓄银行股份有限公司 作业调度方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
以太网数传系统在FPGA上的实现;贲广利等;《液晶与显示》;20170815(第08期);全文 *

Also Published As

Publication number Publication date
CN111381946A (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
CN112465129B (zh) 片内异构人工智能处理器
CN107515786B (zh) 资源分配方法、主装置、从装置和分布式计算系统
CN109886859B (zh) 数据处理方法、系统、电子设备和计算机可读存储介质
CN111191777B (zh) 一种神经网络处理器及其控制方法
CN110300959B (zh) 用于动态运行时任务管理的方法、系统、设备、装置和介质
CN111381946B (zh) 任务处理方法、装置及相关产品
CN111338779B (zh) 资源分配方法、装置、计算机设备和存储介质
CN112685148A (zh) 海量终端的异步通信方法、装置、计算机设备和存储介质
CN111381958B (zh) 通信装置、神经网络处理芯片、组合装置和电子设备
Yang et al. PK-OMLP: An OMLP based k-exclusion real-time locking protocol for multi-GPU sharing under partitioned scheduling
JPWO2019186585A5 (zh)
CN114816777A (zh) 命令处理装置、方法、电子设备以及计算机可读存储介质
CN111382857B (zh) 任务处理装置、神经网络处理器芯片、组合装置以及电子设备
CN111079909B (zh) 运算方法、系统及相关产品
CN110955461A (zh) 计算任务的处理方法、装置、系统、服务器和存储介质
CN111382109B (zh) 数据通信方法、装置及相关产品
CN113485810A (zh) 一种任务的调度执行方法、装置、设备及存储介质
CN115775199A (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
CN111382116B (zh) 数据接收方法、装置及相关产品
Liu et al. A concurrent approach for improving the efficiency of Android CTS testing
CN108009074B (zh) 一种基于模型和动态分析的多核系统实时性评估方法
EP3343370A1 (en) Method of processing opencl kernel and computing device therefor
CN111382858A (zh) 数据发送方法、装置及相关产品
CN111382110A (zh) 接收装置、神经网络处理器芯片、组合装置以及电子设备
CN111026515B (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