WO2021179222A1 - 一种调度装置、调度方法、加速系统及无人机 - Google Patents

一种调度装置、调度方法、加速系统及无人机 Download PDF

Info

Publication number
WO2021179222A1
WO2021179222A1 PCT/CN2020/078862 CN2020078862W WO2021179222A1 WO 2021179222 A1 WO2021179222 A1 WO 2021179222A1 CN 2020078862 W CN2020078862 W CN 2020078862W WO 2021179222 A1 WO2021179222 A1 WO 2021179222A1
Authority
WO
WIPO (PCT)
Prior art keywords
configuration information
instruction memory
sent
information
currently
Prior art date
Application number
PCT/CN2020/078862
Other languages
English (en)
French (fr)
Inventor
韩峰
王耀杰
颜钊
Original Assignee
深圳市大疆创新科技有限公司
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 深圳市大疆创新科技有限公司 filed Critical 深圳市大疆创新科技有限公司
Priority to PCT/CN2020/078862 priority Critical patent/WO2021179222A1/zh
Publication of WO2021179222A1 publication Critical patent/WO2021179222A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/10Simultaneous control of position or course in three dimensions

Definitions

  • the embodiments of the present application relate to the field of information processing technology, and in particular, to a scheduling device, a scheduling method, an acceleration system, and an unmanned aerial vehicle.
  • embodiments of the present application provide a scheduling device, a scheduling method, an acceleration system, and a drone.
  • a scheduling device including:
  • the input module is configured to obtain a plurality of configuration information from the system bus, and according to the priority information in the plurality of configuration information, respectively send the plurality of configuration information to the corresponding instruction memory in the plurality of instruction memories;
  • the multiple instruction memories are respectively used to receive corresponding configuration information from the input module, and to store the corresponding configuration information;
  • the output module is used to determine the target instruction memory according to the priority order of the multiple instruction memories, and read the configuration information in the target instruction memory as the current configuration information to be sent.
  • a scheduling method including:
  • an acceleration system including:
  • Operation accelerator used to receive multiple configuration information from the scheduling device for processing
  • the scheduling device includes:
  • the input module is used to obtain the multiple configuration information from the system bus, and according to the priority information in the multiple configuration information, respectively send the multiple configuration information to the corresponding instruction memory in the multiple instruction memories;
  • the multiple instruction memories are respectively used to receive corresponding configuration information from the input module, and to store the corresponding configuration information;
  • the output module is used to determine the target instruction memory according to the priority order of the multiple instruction memories, read the configuration information in the target instruction memory as the configuration information currently to be sent, and send it to the operation accelerator.
  • a drone including:
  • Airframe, power plant and control system Airframe, power plant and control system
  • the control system includes any one of the acceleration systems provided in the above third aspect.
  • the embodiments of the present application provide a scheduling device, a scheduling method, an acceleration system, and an unmanned aerial vehicle, which solve the coordination problem between various computing tasks.
  • Fig. 1 is a schematic diagram showing an application scenario of a drone according to an exemplary embodiment of the present application.
  • Fig. 2 is a schematic structural diagram of a scheduling device according to an exemplary embodiment of the present application.
  • Fig. 3 is a schematic structural diagram of another scheduling device according to an exemplary embodiment of the present application.
  • Fig. 4 is a logical implementation structure diagram of a core module in an arbitration sub-module according to an exemplary embodiment of the present application.
  • Fig. 5 is a flowchart showing a scheduling method according to an exemplary embodiment of the present application.
  • Fig. 6 is a schematic structural diagram of an acceleration system according to an exemplary embodiment of the present application.
  • first, second, third, etc. may be used in the embodiments of the present application to describe various information, the information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other.
  • first information may also be referred to as second information, and similarly, the second information may also be referred to as first information.
  • word “if” as used herein can be interpreted as "when” or “when” or "in response to determination”.
  • AI accelerators For systems or devices with artificial intelligence (AI) application services, in order to meet the computing needs of artificial intelligence, they are usually equipped with accelerators for artificial intelligence operations (hereinafter referred to as AI accelerators). For example, neural network accelerator.
  • AI accelerators For example, neural network accelerator.
  • the number of these AI accelerators may only be one, and AI accelerators can usually only process one computing task at a time. Therefore, when different application services initiate requests for the use of AI accelerators, which operation the AI accelerator should preferentially process Tasks need to be coordinated.
  • Fig. 1 is a schematic diagram of an application scenario of a drone according to an exemplary embodiment of the present application.
  • drones may include application services such as portrait recognition, bird recognition, and object motion trajectory prediction. If the implementation of each application service is based on AI algorithms, each application service has an AI accelerator. need. It is easy to understand that in different scenarios, different application services have different degrees of importance. For example, for an unmanned aerial vehicle flying at high altitude, a possible priority relationship is: object motion trajectory prediction>bird recognition>person recognition.
  • the drone should first predict the motion trajectory of the object in the captured image to prevent the drone from colliding with it, and the second priority is whether the object is a bird. And what kind of bird recognition, the third priority is to recognize people on the ground.
  • FIG. 2 is a schematic structural diagram of a scheduling device according to an exemplary embodiment of the present application.
  • the device includes:
  • the input module 201 is configured to obtain a plurality of configuration information from the system bus, and according to the priority information in the configuration information, send the plurality of configuration information to corresponding instruction memories in the plurality of instruction memories 202 respectively.
  • a plurality of instruction memories 202 are respectively used for receiving corresponding configuration information from the input module 201 and storing the corresponding configuration information;
  • the output module 203 is configured to determine a target instruction memory according to the priority order of the multiple instruction memories 202, and read the configuration information in the target instruction memory as the configuration information to be sent currently.
  • the configuration information is the configuration information of the computing task, which contains information that the computing accelerator needs to use when processing the computing task.
  • the output module can be set with an output port for connection with an external computing accelerator.
  • the configuration information can be sent to the computing accelerator by the output module.
  • the computing accelerator After receiving the configuration information, the computing accelerator can load the configuration information to process computing tasks corresponding to the configuration information.
  • the configuration information may be the configuration information of the calculation task of the neural network algorithm.
  • the external computing accelerator may be a neural network accelerator (NNA).
  • NNA neural network accelerator
  • the input module can obtain multiple configuration information from the system bus.
  • the input module may be connected to the system bus, and the system bus is connected to an external processor, and the configuration information obtained by the input module may originate from the external processor. Since different application services may correspond to different processors, or different application services may correspond to different cores in the processors, when there are computing tasks that require the use of computing accelerators in the application services, the corresponding processor or core will initiate a request .
  • the configuration information of the computing task is sent to the scheduling device through the system bus, and is obtained by the input module of the scheduling device.
  • Priority information is carried in the configuration information.
  • the priority information may be preset. For example, in the example of the drone above, for the calculation task of object motion trajectory prediction, it is hoped that it can be processed with the highest priority, so the priority information in its configuration information can be set to the information corresponding to the highest priority. Correspondingly, for the operation task of face recognition, the priority information in the configuration information can be set as the information corresponding to the lowest priority. According to the priority information, the input module can send the configuration information to the corresponding instruction memory.
  • Each instruction memory corresponds to a priority and is used to store configuration information with the same priority. For example, there are three computing tasks A, B, and C. Among the configuration information of the three computing tasks, the priority information corresponds to the highest priority, and the input module can send the configuration information of the three computing tasks A, B, and C. For the instruction memory corresponding to the highest priority, the instruction memory stores the configuration information of the three arithmetic tasks A, B, and C.
  • the input module itself has a certain resolution capability, and it can determine which configuration information should be sent to which instruction memory by analyzing the priority information in the configuration information.
  • the processor corresponding to the application service can determine the instruction memory into which the configuration information should be stored, and the processor writes the configuration information into the corresponding instruction memory. The input module is used to contact the processor and the instruction memory. .
  • processors or cores corresponding to different application services may write configuration information for the same instruction memory, before the current processor or core writes the configuration information into the corresponding instruction memory, the corresponding instruction memory It may already be in a busy state, that is, the corresponding instruction memory is in a state in which configuration information is written by other processors or cores.
  • the input module may first determine whether the corresponding instruction memory is in an idle state before sending the configuration information to the corresponding instruction memory. After determining that the corresponding instruction memory is in an idle state, the configuration information is sent; and if it is determined that the corresponding instruction memory is in a non-idle state, the processor or core fails to obtain the write permission, and you can choose to end the process at this time. However, you can also choose to wait until the corresponding instruction memory is in an idle state.
  • the storage space of the instruction memory is limited. To prevent data overflow, before sending the configuration information to the corresponding instruction memory, it can be determined whether the corresponding instruction memory has enough storage space to store the configuration information.
  • the input module may first determine whether the corresponding instruction memory is in an idle state. After it is determined that the corresponding instruction memory is in an idle state, it is further determined whether the corresponding instruction memory has enough storage space for storing the configuration information. When it is determined that the corresponding instruction memory has sufficient storage space, the configuration information can be sent to the instruction memory.
  • the output module can determine the target instruction memory according to the priority order of the instruction memory. Specifically, when determining the target instruction memory, according to the scheduling strategy that the operation task with high priority should be processed first, for each instruction memory, according to the order from high priority to low priority, it is determined whether the instruction memory is stored in sequence. There is configuration information (that is, to determine whether it is not empty). The first instruction memory that is determined to store configuration information is used as the target instruction memory.
  • the one-time scheduling process ends.
  • the output module can enter the waiting state, that is, not immediately start the next scheduling, but after receiving the completion notification sent by the computing accelerator, Start the next schedule again.
  • the so-called completion notification is a notification sent by the computing accelerator after processing a computing task.
  • a buffer memory may be provided between the output module and the operation accelerator.
  • the buffer memory is a first-in first-out FIFO memory for storing configuration information sent by the output module to the operation accelerator.
  • the output module can start the next scheduling, read the configuration information from the newly determined target instruction memory, and send the configuration information to the buffer memory.
  • the configuration information will be stored in a queue storage structure. After the computing accelerator completes a computing task, it can directly read the next configuration information from the buffer memory, which also saves the time waiting for the scheduling of the scheduling device.
  • Examples are as follows.
  • the three computing tasks of D, E, and F need to be processed continuously by the computing accelerator, but the three computing tasks of D, E, and F are not urgent, and the priority information in the configuration information of the three corresponds to the second level (the first level has the highest priority) ).
  • the instruction memory corresponding to the first level does not temporarily store configuration information, it can be determined that the target instruction memory is the instruction memory corresponding to the second level. If the configuration information of the D operation task is read from the target instruction memory, according to the requirement of continuous processing of the three operation tasks D, E, and F, the configuration information of the E operation task should be read next.
  • MTCNN multi-task convolutional neural network
  • the three-layer network structure is the P-Net that quickly generates candidate windows and the R-Net that performs high-precision candidate window filtering and selection. And generate the final bounding box and the O-Net of the key points of the face.
  • O-Net is small in scale, has a short running time in the computing accelerator, and may be run multiple times. Based on this, multiple computing tasks for O-Net will be expected to be processed continuously.
  • the calculation accelerator can continue to reuse the weight data that has been loaded into the calculation accelerator after processing a calculation task for O-Net.
  • the configuration information needs to be stored in the same instruction memory.
  • the configuration information may be a command or instruction related to a neural network operation (abbreviated as a network command).
  • a network command a command or instruction related to a neural network operation
  • An optional implementation manner is that when the input module obtains multiple pieces of configuration information, it can determine which configuration information is associated with each other in a certain way (for example, some information that characterizes the association situation carried by the configuration information).
  • the configuration information determined to be related to each other can be sent to the same instruction memory for storage.
  • the same priority information can be configured for them, and the configuration information of these computing tasks will be stored in the same instruction memory.
  • the output module determines the configuration information currently to be sent, it can also be determined in a certain way whether the configuration information currently to be sent is associated with the configuration information in the current target instruction memory. If the configuration information currently to be sent is associated with the configuration information in the current target instruction memory, it can be determined that there is configuration information in the current target instruction memory that needs to be processed continuously with the configuration information currently to be sent. Therefore, after sending the configuration information currently to be sent, the new target instruction memory is not re-determined, and the associated configuration information is still read from the current target instruction memory as the new configuration information currently to be sent.
  • a new target instruction memory can be re-determined, that is, the first non-empty new target instruction memory can be determined again according to the priority order of multiple instruction memories. That is to say, according to the priority order of multiple instruction memories, the first instruction memory storing configuration information is determined and used as the new target instruction memory.
  • a feasible implementation manner is to make the configuration information carry tag information in advance, and the tag information is used to characterize whether the configuration information is associated with one or some configuration information.
  • the judgment can be made based on the flag information. Specifically, during the judgment, the tag information in the configuration information to be sent currently can be obtained, and according to the tag information, it is determined whether the configuration information to be sent currently is associated with the configuration information in the current target instruction memory.
  • the flag information may be last_cmd_flag. If the flag information last_cmd_flag in the current configuration information to be sent is 0 (0 is a preset value, which can be the first preset value), determine the current configuration information to be sent and other configuration information in the target command memory Associated. If the flag information last_cmd_flag in the current configuration information to be sent is 1 (1 is a preset value, which can be the second preset value), determine the current configuration information to be sent and other configuration information in the target command memory Not relevant.
  • the current configuration information to be sent is associated with other configuration information in the current target command memory, after the current configuration information to be sent is sent, the associated configuration information needs to be read from the current target command memory. As the new configuration information currently to be sent. However, there are multiple configuration information stored in the current target instruction memory, and it is necessary to further determine which one is the configuration information to be read and associated with the configuration information currently to be sent. A feasible way is that the configuration information that needs to be associated can carry the same identifier, and then based on the identifier, the configuration information in the target instruction memory to be read next can be determined.
  • the configuration information to be sent currently corresponds to the G operation task
  • FIFO memory can be used for the instruction memory.
  • data is stored in a queue storage structure and follows the first-in-first-out principle, so there is no external read-write address line.
  • the instruction memory is a FIFO memory
  • the configuration information in the instruction memory is read, the read configuration information is certain, and the configuration information at the top of the queue is read.
  • the configuration information of the operation task A is sent to the operation accelerator, the configuration information is read from the current target instruction memory again as the new configuration information to be sent, and based on the characteristics of the FIFO memory, the read configuration information It will be the configuration information at the top of the queue in the current target instruction memory, that is, the configuration information of the B operation task.
  • FIG. 3 is a schematic structural diagram of another scheduling device according to an exemplary embodiment based on the scheduling device shown in FIG. 2 according to the present application.
  • the output module may include an arbitration sub-module 2032 and an output sub-module 2031.
  • the arbitration sub-module can be used to perform the action of determining the target instruction memory, that is, according to the order from high priority to low priority, sequentially determine whether the instruction memory stores configuration information (that is, determine whether it is not empty), first An instruction memory that is determined to store configuration information is used as the target instruction memory.
  • the arbitration sub-module can generate a corresponding scheduling signal according to the determined target instruction memory and send it to the output sub-module. After receiving the scheduling signal, the output sub-module can read the configuration information in the target instruction memory as the current configuration information to be sent according to the instruction of the scheduling signal.
  • the new target command memory will not be re-determined, but will still be downloaded from Read the configuration information from the current target instruction memory.
  • the arbitration sub-module after determining that the current configuration information to be sent is associated with the configuration information in the current target instruction memory, in the next scheduling process, it can generate a scheduling signal corresponding to the current target instruction memory and send it to the output Sub-module, so that the output sub-module can read configuration information from the same target instruction memory again.
  • the arbitration sub-module When the arbitration sub-module is specifically implemented, it may include a control state machine and a core module. Among them, the control state machine can make the arbitration sub-module switch between the waiting state, the initial state and the working state. Specifically, when the arbitration sub-module receives the completion notification sent by the computing accelerator, the arbitration sub-module can switch from the waiting state to the initial state under the control of the control state machine. In the initial state, the arbitration sub-module starts to detect the storage conditions of each instruction memory. When it is determined that there is an instruction memory currently storing configuration information in the instruction memory, the arbitration sub-module switches from the initial state to the working state.
  • the control state machine can make the arbitration sub-module switch between the waiting state, the initial state and the working state. Specifically, when the arbitration sub-module receives the completion notification sent by the computing accelerator, the arbitration sub-module can switch from the waiting state to the initial state under the control of the control state machine. In the initial state, the arbitration sub-module starts to detect the
  • the arbitration sub-module determines the target instruction memory according to the priority order of multiple instruction memories, and generates a corresponding scheduling signal according to the determined target instruction memory and sends it to the output sub-module.
  • the output sub-module reads the configuration information from the target instruction memory and sends it to the arithmetic accelerator
  • the arbitration sub-module switches from the working state to the waiting state.
  • the arbitration sub-module waits to receive the completion notification sent by the computing accelerator.
  • the core module is used to determine the target instruction memory.
  • the target instruction memory needs to be re-determined, specifically, starting from the highest priority instruction memory, that is, starting from the first level instruction memory (in Figure 4, the priority order is: Level 1>Level 2>Level 3), in the order of high priority to low priority, determine whether the instruction memory is not empty.
  • the first one to determine the non-empty instruction memory is used as the target instruction memory. That is to say, the first instruction memory storing configuration information is determined in the order of priority, and the instruction memory is used as the new target instruction memory.
  • the scheduling device provided by the embodiment of the present application can determine the next computing task sent to the computing accelerator for processing from the multiple computing tasks when there are multiple computing tasks to be processed, which solves the problem between the acceleration requirements of each computing task. Coordination issues. In addition, continuous processing of several computing tasks without interruption can be realized to meet the needs of certain scenarios. In addition, in terms of implementation, based on the characteristics of the FIFO memory, the logic level steps are simplified, so that pure hardware can be used to realize the scheduling work, without involving software computer programs, thereby avoiding software-level communication delays and making scheduling more efficient.
  • Fig. 5 is a flowchart of a scheduling method according to an exemplary embodiment of the present application.
  • the method includes:
  • S501 Acquire multiple configuration information from the system bus.
  • S502 According to the priority information in the configuration information, send the multiple configuration information to corresponding instruction memories in multiple instruction memories, so that the instruction memory stores the corresponding configuration information.
  • S503 Determine a target instruction memory according to the priority order of the multiple instruction memories.
  • the method further includes:
  • the configuration information to be sent currently is associated with the configuration information in the target instruction memory, after the configuration information to be sent is sent, the associated configuration information is read from the target instruction memory as the new The current configuration information to be sent;
  • a new target is determined according to the priority order of the multiple instruction memories Instruction memory.
  • tag information is carried in the configuration information
  • Determining whether the configuration information currently to be sent is associated with the configuration information in the target instruction memory includes:
  • the determining whether the currently to-be-sent configuration information is associated with the configuration information in the target instruction memory according to the tag information includes:
  • the instruction memory is a FIFO memory
  • the configuration information is stored in the instruction memory in a storage structure of a queue.
  • the tag information in the configuration information currently to be sent is used to determine whether the configuration information currently to be sent is associated with the configuration information at the top of the queue in the target instruction memory.
  • the method further includes:
  • the associated configuration information is sent to the same instruction memory.
  • the method before the sending the multiple configuration information to corresponding instruction memories in the multiple instruction memories, the method further includes:
  • the method before the sending the multiple configuration information to corresponding instruction memories in the multiple instruction memories, the method further includes:
  • the determining the target instruction memory according to the priority order of the multiple instruction memories includes:
  • the instruction memory is not empty (that is, whether the instruction memory stores configuration information); the first determined non-empty instruction memory is used as the target instruction memory. That is to say, the first instruction memory storing configuration information is determined in the order of priority, and the instruction memory is used as the new target instruction memory.
  • the configuration information currently to be sent is sent to an external computing accelerator.
  • the method before the determining the target instruction memory, the method further includes:
  • the completion notification is a notification sent by the computing accelerator after processing the received configuration information.
  • the configuration information is configuration information of a calculation task of a neural network algorithm.
  • FIG. 6 is a schematic structural diagram of an acceleration system according to an exemplary embodiment of the present application.
  • the system includes:
  • Operation accelerator used to receive configuration information from the scheduling device for processing
  • the scheduling device includes:
  • the input module is used to obtain a plurality of configuration information from the system bus, and according to the priority information in the configuration information, respectively send the plurality of configuration information to the corresponding instruction memories in the plurality of instruction memories;
  • the multiple instruction memories are respectively used to receive corresponding configuration information from the input module, and to store the corresponding configuration information;
  • the output module is used to determine the target instruction memory according to the priority order of the multiple instruction memories, read the configuration information in the target instruction memory as the configuration information currently to be sent, and send it to the operation accelerator.
  • the output module is further configured to: if the configuration information currently to be sent is associated with the configuration information in the target instruction memory, after sending the configuration information to be sent, the target instruction Read the associated configuration information from the memory as the new configuration information currently to be sent;
  • a new target is determined according to the priority order of the multiple instruction memories Instruction memory.
  • tag information is carried in the configuration information
  • the output module is further configured to obtain the marking information in the configuration information currently to be sent, and according to the marking information, determine whether the configuration information currently to be sent is related to the configuration information in the target instruction memory United.
  • the manner in which the output module determines whether the currently to-be-sent configuration information is associated with the configuration information in the target instruction memory according to the tag information specifically includes:
  • the instruction memory is a FIFO memory
  • the configuration information is stored in the instruction memory in a storage structure of a queue.
  • the tag information in the configuration information currently to be sent is used to determine whether the configuration information currently to be sent is associated with the configuration information at the top of the queue in the target instruction memory.
  • the input module is further configured to send the associated configuration information to the same instruction memory if there is associated configuration information in the multiple acquired configuration information.
  • the input module is further configured to determine whether the corresponding instruction memory is in an idle state before sending the configuration information to the corresponding instruction memory.
  • the input module is further configured to determine whether the storage space of the corresponding instruction memory is sufficient to store the configuration information before sending the configuration information to the corresponding instruction memory.
  • the output module includes:
  • the arbitration sub-module is used to sequentially determine whether the instruction memory is not empty according to the order from high priority to low priority. That is, it is sequentially determined whether there is an instruction memory storing configuration information.
  • the determined first non-empty instruction memory is used as the target instruction memory; and the dispatch signal corresponding to the target instruction memory is generated and sent to the output sub-module; that is, the first one that is stored is determined in the order of priority Configure the instruction memory of the information, and use the instruction memory as the new target instruction memory.
  • the output submodule is configured to receive the scheduling signal from the arbitration submodule, and according to the scheduling signal, read the configuration information in the target instruction memory as the configuration information to be sent currently.
  • the output module is further configured to determine the target instruction memory after receiving the completion notification; the completion notification is a notification sent by the computing accelerator after processing the received configuration information.
  • the output module further includes a control state machine
  • the control state machine is used to switch the output module from the waiting state to the initial state when the completion notification is received;
  • the output module When it is determined that there is a non-empty instruction memory in the plurality of instruction memories, the output module is switched from the initial state to the working state. That is, when it is determined that any one of the plurality of instruction memories stores configuration information, the output module is switched from the initial state to the working state.
  • the output module is switched from the working state to the waiting state.
  • the processor is connected to the scheduling device through the system bus.
  • the configuration information is configuration information of a calculation task of a neural network algorithm
  • the calculation accelerator is a neural network accelerator NNA.
  • each module in the scheduling device may refer to the corresponding description of the scheduling device in the previous article of this application, and details are not repeated here.
  • An embodiment of the application also provides an unmanned aerial vehicle, which includes a body, a power device, and a control system.
  • the control system includes the acceleration system in the aforementioned various implementation modes.
  • the scheduling device, the scheduling method, the acceleration system and the unmanned aerial vehicle provided by the embodiments of the present application.
  • the input module can obtain configuration information of multiple computing tasks from the system bus. Since the configuration information carries the priority information of the computing task, the input module can send the configuration information to the instruction memory corresponding to the priority for storage.
  • the output module can determine the target instruction memory according to the priority order of the multiple instruction memories, and read the configuration information from the target instruction memory as the configuration information currently to be sent, and the configuration information currently to be sent will be sent to the operation accelerator.
  • the scheduling device provided by the embodiment of the present application can determine the next task to be processed by the computing accelerator from the multiple computing tasks when there are multiple computing tasks to be processed, which solves the problem of coordination among various computing tasks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Advance Control (AREA)

Abstract

一种调度装置、调度方法、加速系统及无人机,调度装置包括:输入模块(201),用于自系统总线获取多个配置信息,并且依据配置信息中的优先级信息,将多个配置信息分别发送至多个指令存储器(202)中对应的指令存储器;多个指令存储器(202),分别用于自输入模块(201)接收对应的配置信息,并将对应的配置信息进行存储;输出模块(203),用于依据多个指令存储器的优先级顺序,确定目标指令存储器,读取目标指令存储器中的配置信息作为当前待发送的配置信息。该调度装置,解决了各个应用业务都发起对运算加速器的使用请求时,需要对运算任务进行协调的技术问题。

Description

一种调度装置、调度方法、加速系统及无人机 技术领域
本申请实施例涉及信息处理技术领域,尤其涉及一种调度装置、调度方法、加速系统及无人机。
背景技术
由于传统的处理器在设计时需要兼顾通用性,从而使得这些处理器在进行特定的运算时,处理器内包含的一些逻辑运算单元并不能充分发挥作用。因此,通用处理器的功耗较大并且利用率很低。为此,开发者会针对特定的运算设计专用的计算模块和加速器。例如,对于人工智能技术来说,由于人工智能运算通常涉及大量的矩阵乘法和加法,需要开发与人工智能运算相关的专用计算模块和相关的加速器。当多个专用计算模块同时使用加速器时,如何协调各个应用业务的运算任务,是目前亟待解决的技术问题。
发明内容
为解决各个应用业务都发起对运算加速器的使用请求时,需要对运算任务进行协调的技术问题,本申请实施例提供了一种调度装置、调度方法、加速系统及无人机。
根据本申请实施例的第一方面,提供一种调度装置,包括:
输入模块,用于自系统总线获取多个配置信息,并且依据所述多个配置信息中的优先级信息,将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器;
所述多个指令存储器,分别用于自所述输入模块接收对应的配置信息,并将所述对应的配置信息进行存储;
输出模块,用于依据所述多个指令存储器的优先级顺序,确定目标指 令存储器,读取所述目标指令存储器中的配置信息作为当前待发送的配置信息。
根据本申请实施例的第二方面,提供一种调度方法,包括:
自系统总线获取多个配置信息;
依据所述多个配置信息中的优先级信息,将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器,以便所述指令存储器将所述对应的配置信息进行存储;
依据所述多个指令存储器的优先级顺序,确定目标指令存储器;
读取所述目标指令存储器中的配置信息作为当前待发送的配置信息。
根据本申请实施例的第三方面,提供一种加速系统,包括:
运算加速器,用于自调度装置接收多个配置信息以进行处理;
所述调度装置包括:
输入模块,用于自系统总线获取所述多个配置信息,并且依据所述多个配置信息中的优先级信息,将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器;
所述多个指令存储器,分别用于自所述输入模块接收对应的配置信息,并将所述对应的配置信息进行存储;
输出模块,用于依据所述多个指令存储器的优先级顺序,确定目标指令存储器,读取所述目标指令存储器中的配置信息作为当前待发送的配置信息,以发送给所述运算加速器。
根据本申请实施例的第四方面,提供一种无人机,包括:
机体、动力装置以及控制系统;
所述控制系统包括上述第三方面提供的任一种所述的加速系统。
本申请实施例提供的技术方案可以包括以下有益效果:
本申请实施例提供了一种调度装置、调度方法、加速系统及无人机,解决了各个运算任务之间的协调问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释 性的,并不能限制本申请实施例。
附图说明
此处的附图被并入说明书中并构成本申请实施例的一部分,示出了符合本申请实施例的实施例,并与说明书一起用于解释本申请实施例的原理。
图1是本申请根据一示例性实施例示出的一种无人机的应用场景示意图。
图2是本申请根据一示例性实施例示出的一种调度装置的结构示意图。
图3是本申请根据一示例性实施例示出的另一种调度装置的结构示意图。
图4是本申请根据一示例性实施例示出的仲裁子模块中核心模块的逻辑实现结构图。
图5是本申请根据一示例性实施例示出的一种调度方法的流程图。
图6是本申请根据一示例性实施例示出的一种加速系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请实施例的一些方面相一致的装置和方法的例子。
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含 一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
对于具有人工智能(Artificial Intelligence,AI)应用业务的系统或者设备,为满足关于人工智能的运算需求,通常会为其配备关于人工智能运算的加速器(以下简称为AI加速器)。例如,神经网络加速器。但是,这些AI加速器的数量可能只有一个,并且,AI加速器一次通常只能针对一个运算任务进行处理,因此在不同的应用业务均发起对AI加速器的使用请求时,AI加速器应当优先处理哪一个运算任务,是需要进行协调的。
为方便理解,可以举一个较为实际的应用场景。可以参见图1,图1是本申请根据一示例性实施例示出的一种无人机的应用场景示意图。比如,在无人机中,可能有多种AI方面的应用业务。在一种可能的情况下,无人机可能包含人像识别、飞禽识别、物体运动轨迹预测等应用业务,若每个应用业务的实现都基于AI算法,则每个应用业务都有使用AI加速器的需求。而容易理解的是,在不同的场景,不同应用业务是重要程度是不同的。比如,对于在高空飞行的无人机而言,一种可能的优先关系是,物体运动轨迹预测>飞禽识别>人像识别。在这种优先关系下,即认为,无人机应当第一优先对拍摄到的图像中的物体的运动轨迹进行预测,以防止无人机与其发生碰撞,第二优先是对该物体是否为飞禽以及为何种飞禽的识别,第三优先是对地面上的人进行人像识别。
可见,在各个应用业务都发起对AI加速器的使用请求时,不能随意的确定一个运算任务给AI加速器处理,需要遵循一定的优先顺序。为此,本申请实施例提供了一种调度装置,可以参见图2,图2是本申请根据一 示例性实施例示出的一种调度装置的结构示意图。该装置包括:
输入模块201,用于自系统总线获取多个配置信息,并且依据所述配置信息中的优先级信息,将所述多个配置信息分别发送至多个指令存储器202中对应的指令存储器。
多个指令存储器202,分别用于自所述输入模块201接收对应的配置信息,并将所述对应的配置信息进行存储;
输出模块203,用于依据所述多个指令存储器202的优先级顺序,确定目标指令存储器,读取所述目标指令存储器中的配置信息作为当前待发送的配置信息。
需要说明的是,配置信息是运算任务的配置信息,其中包含有运算加速器在对该运算任务进行处理时需要用到的信息。输出模块可以设置一个输出端口,用于与外部的运算加速器连接。当一个配置信息被确定为当前待发送的配置信息后,该配置信息可以被输出模块发送至运算加速器。运算加速器在接收到配置信息后,可以加载该配置信息,以对该配置信息对应的运算任务进行处理。
可以理解的,在一种场景下,配置信息可以是神经网络算法的运算任务的配置信息。相应的,外部的运算加速器可以是神经网络加速器(Neural Network Accelerator,NNA)。
输入模块可以从系统总线获取到多个配置信息。在一种实施中,输入模块可以连接系统总线,系统总线连接外部的处理器,输入模块获取到的配置信息可以来源于该外部的处理器。由于不同的应用业务可能对应不同处理器,或者,不同的应用业务对应处理器中不同的内核,因此当应用业务上有需要使用运算加速器的运算任务时,其对应的处理器或者内核将发起请求。具体的,即将该运算任务的配置信息通过系统总线发送给调度装置,由调度装置的输入模块获取到。
配置信息中携带有优先级信息。该优先级信息可以是预先设定的。比如上述无人机的例子中,对于物体运动轨迹预测的运算任务,由于希望其 能被最优先处理,因此其配置信息中的优先级信息可以设置为最高优先级对应的信息。相应的,对于人像识别的运算任务,其配置信息中的优先级信息可以设置为最低优先级对应的信息。根据该优先级信息,输入模块可以将配置信息发送给对应的指令存储器。
调度装置中设置有多个指令存储器。每个指令存储器对应一个优先级,用于存储优先级相同的配置信息。比如,有A、B、C三个运算任务,三个运算任务的配置信息中,优先级信息均对应最高优先级,则输入模块可以将A、B、C三个运算任务的配置信息均发送给对应最高优先级的指令存储器,由该指令存储器存储A、B、C三个运算任务的配置信息。
在一种实施中,输入模块自身具有一定的解析能力,可以通过解析配置信息中的优先级信息,确定哪个配置信息应该发送给哪个指令存储器。在另一种实施中,可以由应用业务对应的处理器确定配置信息应当存入的指令存储器,并由处理器将配置信息写入对应的指令存储器中,输入模块用于联系处理器与指令存储器。
考虑到不同应用业务对应的处理器或者内核可能针对同一个指令存储器进行配置信息的写入工作,因此,在当前的处理器或内核将配置信息写入对应的指令存储器之前,该对应的指令存储器可能已经处于忙碌状态,即该对应的指令存储器正处于被其他处理器或内核写入配置信息的状态。为避免可能发生的写入冲突,输入模块可以在将配置信息发送给对应的指令存储器之前,先确定该对应的指令存储器是否处于空闲状态。在确定该对应的指令存储器处于空闲状态后,再进行配置信息的发送;而若确定该对应的指令存储器处于非空闲状态时,则处理器或内核获取写权限失败,此时可以选择结束流程,但也可以选择等待,直至该对应的指令存储器处于空闲状态。
进一步的,指令存储器的存储空间是有限的,为防止数据溢出,在将配置信息发送给对应的指令存储器之前,还可以确定该对应的指令存储器是否具有足以存储该配置信息的存储空间。
在一种实施中,输入模块在将配置信息发送给对应的指令存储器之前,可以先确定该对应的指令存储器是否处于空闲状态。当确定该对应的指令存储器处于空闲状态后,再进一步确定该对应的指令存储器是否具有足够存储该配置信息的存储空间。当确定该对应的指令存储器具有足够的存储空间,便可以将配置信息发送给该指令存储器。
在配置信息被正确存储在对应的指令存储器中之后,输出模块可以根据指令存储器的优先级顺序,确定目标指令存储器。具体的,在确定目标指令存储器时,按照优先级高的运算任务应当优先处理的调度策略,可以针对每个指令存储器,依据从高优先级到低优先级的顺序,依次确定该指令存储器是否存储有配置信息(即确定其是否非空)。第一个被确定存储有配置信息的指令存储器,将其作为目标指令存储器。
在将从目标指令存储器读取的配置信息发送给运算加速器后,一次调度流程结束。此时,由于运算加速器一次只能处理一个运算任务,因此,在一种实施中,输出模块可以进入等待状态,即不立刻开始下一次调度,而是在接收到运算加速器发送的完成通知后,再开始下一次调度。所谓完成通知,是运算加速器在处理完一个运算任务后发送的通知。
但即便运算加速器一次只能接受一个配置信息,输出模块的调度工作也不一定需要停下等待。在另一种实施中,可以在输出模块与运算加速器之间设置一个缓冲存储器,该缓冲存储器为先进先出FIFO存储器,用于存储输出模块发送给运算加速器的配置信息。如此,即便运算加速器仍未完成上一个运算任务,输出模块也可以开始下一次调度,从新确定的目标指令存储器中读取配置信息,并将配置信息发送给缓冲存储器。在缓冲存储器中,配置信息将以队列的存储结构存储。运算加速器在完成一个运算任务后,可以直接从该缓冲存储器中读取下一个配置信息,也省去了等待调度装置的调度的时间。
另一方面,上述的调度策略中,在进入下一个调度流程后,需要根据多个指令存储器的优先级顺序,重新确定目标指令存储器。如此,在某一 些场景中,若需要若干个运算任务被连续处理,上述的调度策略便可能出现一些问题。
现举例说明如下。D、E、F三个运算任务需要运算加速器连续处理,但D、E、F三个运算任务并不紧急,并且三者配置信息中的优先级信息均对应第二级别(第一级别最优先)。那么,在一次调度流程中,若第一级别对应的指令存储器暂时未存储有配置信息,则可以确定目标指令存储器为第二级别对应的指令存储器。若从该目标指令存储器中读取到的是D运算任务的配置信息,则按照D、E、F三个运算任务需要连续处理的需求,下一个应该读取的是E运算任务的配置信息。但一种可能出现的情况是,在下一个调度流程中,第一级别对应的指令存储器已经被写入了X运算任务的配置信息,则第一级别对应的指令存储器将被确定为目标指令存储器,下一个读取的配置信息将是X运算任务的配置信息,D、E、F三个运算任务的连续处理被打断,连续处理的需求无法满足。
但在实际情况中,需要若干个运算任务连续处理的场景却不少。比如在多任务卷积神经网络(MTCNN)中,其总体可分为三层网络结构,该三层网络结构分别为快速生成候选窗口的P-Net、进行高精度候选窗口过滤选择的R-Net和生成最终边界框与人脸关键点的O-Net。其中O-Net规模较小,在运算加速器中运行时间较短,且可能被运行多次。基于此,针对O-Net的多个运算任务将被期望能够连续处理。因为,若能使针对O-Net的运算任务被连续处理,则运算加速器在处理完一次针对O-Net的运算任务之后,可以继续重复使用已经加载到运算加速器中的权重数据,后面的数次针对O-Net的运算任务都无需重复加载,可以达到减少带宽的效果。
为了满足让若干个运算任务可以不被打断的连续处理的需求,本申请实施例提供了一种优选的实施方式。首先,对于需要连续处理的若干个运算任务,需要使其配置信息存储在同一个指令存储器中。而实现若干个运算任务的配置信息存储在同一个指令存储器的方式有多种。在一个实施方式中,配置信息可以为关于神经网络运算的命令或指令(简称,网络命令)。 一种可选的实施方式是,在输入模块获取到多个配置信息时,可以通过某种方式(比如配置信息携带的某些表征关联情况的信息),确定哪些配置信息彼此之间相关联。对于确定是彼此之间相关联的配置信息,可以发送给同一指令存储器进行存储。可选的,也有另一种实施方式,对于需要连续处理的若干个运算任务,可以为其配置相同的优先级信息,则这些运算任务的配置信息将被存储到同一个指令存储器。
除将需要连续处理的运算任务的配置信息存储在同一个指令存储器之外,还需要通过某种方式将这些配置信息关联起来。具体实现关联的方式有多种,此处先不展开说明。如此,在输出模块确定当前待发送的配置信息之后,也可以通过某种方式判断当前待发送的配置信息是否与当前的目标指令存储器中的配置信息相关联。若当前待发送的配置信息与当前的目标指令存储器中的配置信息相关联,则可以确定当前的目标指令存储器中,有需要与当前待发送的配置信息连续处理的配置信息。因此,在将当前待发送的配置信息发送之后,不重新确定新的目标指令存储器,仍然从当前的目标指令存储器中读取相关联的配置信息作为新的当前待发送的配置信息。
当然,若当前待发送的配置信息与当前的目标指令存储器中的配置信息不相关联,则可以确定不存在需要与当前待发送的配置信息连续处理的配置信息,因此,在将当前待发送的配置信息发送之后,可以重新确定新的目标指令存储器,即重新依据多个指令存储器的优先级顺序,确定第一个非空的新的目标指令存储器。也就是说,重新依据多个指令存储器的优先级顺序,确定第一个存储有配置信息的指令存储器,并将其作为新的目标指令存储器。
前文中提及需要采用某种方式将需要连续处理的配置信息关联起来,而将配置信息进行关联的方式有很多。一种可行的实施方式是,预先使配置信息携带标记信息,该标记信息用于表征该配置信息是否有与某个或某些配置信息相关联。如此,在判断当前待发送的配置信息是否与当前的目 标指令存储器中的配置信息相关联时,可以根据该标记信息进行判断。具体的,在判断时,可以获取当前待发送的配置信息中的标记信息,并根据该标记信息,确定当前待发送的配置信息是否与当前的目标指令存储器中的配置信息相关联。
比如,在一个具体的例子中,标记信息可以为last_cmd_flag。若当前待发送的配置信息中的标记信息last_cmd_flag=0(0为一个预先设定的值,可以成为第一预设值),则确定当前待发送的配置信息与目标指令存储器中的其他配置信息相关联。若当前待发送的配置信息中的标记信息last_cmd_flag=1(1为一个预先设定的值,可以成为第二预设值),则确定当前待发送的配置信息与目标指令存储器中的其他配置信息不相关联。
由前文可知,若当前待发送的配置信息与当前的目标指令存储器中的其他配置信息相关联,在当前待发送的配置信息发送之后,需要从当前的目标指令存储器中读取相关联的配置信息作为新的当前待发送的配置信息。但当前的目标指令存储器中存储的配置信息有多个,需要进一步确定哪一个是要读取的与当前待发送的配置信息相关联的配置信息。一种可行的方式是,可以使需要相关联的配置信息携带相同的标识,则根据该标识,可以确定下一个要读取的目标指令存储器中的配置信息。例如,假设当前待发送的配置信息对应于G运算任务,并且解析出配置信息携带的标识co-flag=0110,若H运算任务对应的标识co-flag也等于0110,则可以确定G运算任务与H运算任务为关联的运算任务。也就是说,通过对标识进行匹配,从而确定存储在目标指令存储器中相关联的配置信息。
除上述可行的方式以外,本申请实施例提供另一种更为优选的方法。首先,对于指令存储器,可以选用FIFO存储器。FIFO存储器中,数据以队列的存储结构存储,并且遵循先进先出的原则,因此其没有外部的读写地址线。当指令存储器采取FIFO存储器时,读取指令存储器中的配置信息时,读取的配置信息是确定的,读取的是位于队列首位的配置信息。
因此,在需要将若干个运算任务连续处理时,只需要将该若干个运算 任务的配置信息连续写入同一个指令存储器,使该若干个运算任务的配置信息在队列中相邻连续,并且,使这些配置信息携带一个标记信息,该标记信息用于表征其是否与队列中的后一个配置信息相关联,如此便可以实现该若干个运算任务被连续处理。也就是说,通过标志信息,可以指示一组相关联的配置信息。
为方便理解,下面提供一个例子。
比如A、B、C三个运算任务需要连续处理,则可以将A、B、C三个运算任务的配置信息连续写入同一个指令存储器中,则A、B、C三个运算任务的配置信息将在队列中连续的存储着。并且,可以预先设定A运算任务的配置信息携带的标记信息last_cmd_flag=0,B运算任务的配置信息携带的标记信息last_cmd_flag=0,C运算任务的配置信息携带的标记信息last_cmd_flag=1。
在A运算任务的配置信息从目标指令存储器中被读取、成为当前待发送的配置信息后(此时,B运算任务的配置信息将成为目标指令存储器中新的位于队列首位的配置信息),根据其携带的标记信息last_cmd_flag=0,可以确定A运算任务的配置信息与其之前所在队列中的后一个配置信息相关联,换言之,即A运算任务的配置信息与当前的目标指令存储器中的配置信息相关联。那么,在A运算任务的配置信息被发送给运算加速器后,再次从当前的目标指令存储器中读取配置信息作为新的当前待发送的配置信息,而基于FIFO存储器的特性,读取的配置信息将会是当前的目标指令存储器中位于队列首位的配置信息,即B运算任务的配置信息。如此,直至C运算任务的配置信息从目标指令存储器中被读取,由于其标记信息last_cmd_flag=1,则不再从当前的目标指令存储器中读取配置信息,重新确定新的目标指令存储器,即重新依据多个指令存储器的优先级顺序,确定第一个非空的新的目标指令存储器。也就是说,按优先级顺序确定第一个存储有配置信息的指令存储器,并将该指令存储器作为新的目标指令存储器。
下面可以参见图3,图3是本申请在图2所示调度装置的基础上,根据一示例性实施例示出的另一种调度装置的结构示意图。
如图3所示,在一种可选的实施方式中,输出模块可以包括仲裁子模块2032与输出子模块2031。其中,仲裁子模块可以用于执行确定目标指令存储器的动作,即依据从高优先级到低优先级的顺序,依次确定该指令存储器是否存储有配置信息(即确定其是否非空),第一个被确定存储有配置信息的指令存储器,将其作为目标指令存储器。并且,仲裁子模块可以根据确定的目标指令存储器生成相应的调度信号发送给输出子模块。而输出子模块可以在接收到该调度信号后,根据调度信号的指示,读取目标指令存储器中的配置信息作为当前待发送的配置信息。
需要注意的是,若确定当前待发送的配置信息与当前的目标指令存储器中的配置信息相关联,在当前待发送的配置信息发送之后,不重新确定的新的目标指令存储器,而是仍然从当前的目标指令存储器中读取配置信息。对于仲裁子模块,其在确定当前待发送的配置信息与当前的目标指令存储器中的配置信息相关联后,在下一次调度流程中,可以生成与当前的目标指令存储器相对应的调度信号发送给输出子模块,使得输出子模块可以再次从相同的目标指令存储器中读取配置信息。
仲裁子模块在具体实现时,可以包括控制状态机与核心模块。其中,控制状态机可以使仲裁子模块在等待状态、初始状态以及工作状态之间切换。具体的,当仲裁子模块接收到运算加速器发送的完成通知时,仲裁子模块可以在控制状态机的控制下,从等待状态切换至初始状态。在初始状态,仲裁子模块开始对各个指令存储器的存储情况进行检测,当确定指令存储器中存在当前存储有配置信息的指令存储器时,仲裁子模块从初始状态切换至工作状态。在工作状态,仲裁子模块根据多个指令存储器的优先级顺序,确定目标指令存储器,并根据确定的目标指令存储器生成相应的调度信号发送给输出子模块。当输出子模块从目标指令存储器中读取配置信息并发送给运算加速器时,仲裁子模块从工作状态切换至等待状态。在 等待状态,仲裁子模块等待接收运算加速器发送的完成通知。
核心模块用于确定目标指令存储器,可以参见图4,图4示出核心模块的逻辑实现结构图。可见,若确定当前待发送的配置信息与当前的目标指令存储器中的配置信息相关联,具体的,即确定当前待发送的配置信息的标记信息last_cmd_flag=0,last_cmd_flag=1不成立,则目标指令存储器不变,仍然保持当前的目标指令存储器。若标记信息last_cmd_flag=1成立,则需要重新确定目标指令存储器,具体的,即从最高优先级的指令存储器开始,即从第一级别的指令存储器开始(在图4中,优先级顺序为:第一级别>第二级别>第三级别),按高优先级到低优先级的顺序,依次确定指令存储器是否非空,第一个确定非空的指令存储器,将其作为目标指令存储器。也就是说,按优先级顺序确定第一个存储有配置信息的指令存储器,并将该指令存储器作为新的目标指令存储器。
以上为对本申请实施例提供的调度装置的详细说明。本申请实施例提供的调度装置,可以在有多个运算任务需要处理时,从多个运算任务中确定下一个发送给运算加速器进行处理的运算任务,解决了各个运算任务的加速需求之间的协调问题。并且,可以实现若干个运算任务不被打断的连续处理,满足某些场景的需求。此外,在实现上,基于FIFO存储器的特性,简化了逻辑层面的步骤,从而可以采用纯硬件实现调度工作,不涉及软件上的计算机程序,从而避免了软件层面通信的延迟,调度效率更高。
请参见图5,图5是本申请根据一示例性实施例示出的一种调度方法的流程图。该方法包括:
S501、自系统总线获取多个配置信息。
S502、依据所述配置信息中的优先级信息,将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器,以便所述指令存储器将所述对应的配置信息进行存储。
S503、依据所述多个指令存储器的优先级顺序,确定目标指令存储器。
S504、读取所述目标指令存储器中的配置信息作为当前待发送的配置 信息。
可选的,所述读取所述目标指令存储器中的配置信息作为当前待发送的配置信息之后,还包括:
若当前待发送的配置信息与所述目标指令存储器中的配置信息相关联,在将所述待发送的配置信息发送之后,再从所述目标指令存储器中读取相关联的配置信息作为新的当前待发送的配置信息;
以及,若当前待发送的配置信息与所述目标指令存储器中的配置信息不相关联,在将所述待发送的配置信息发送之后,依据所述多个指令存储器的优先级顺序确定新的目标指令存储器。
可选的,配置信息中携带有标记信息;
确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联,包括:
获取所述当前待发送的配置信息中的标记信息,并根据所述标记信息,确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联。
可选的,所述根据所述标记信息,确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联,包括:
若所述待发送的配置信息中的标记信息与第一预设值相同,确定所述待发送的配置信息与所述目标指令存储器中的配置信息相关联;
以及若所述待发送的配置信息中的标记信息与第二预设值相同,确定所述待发送的配置信息与所述目标指令存储器中的配置信息不相关联。
可选的,所述指令存储器为FIFO存储器,所述配置信息以队列的存储结构存储在所述指令存储器中。
可选的,当前待发送的配置信息中的标记信息,用于确定所述当前待发送的配置信息与所述目标指令存储器中位于队列首位的配置信息是否相关联。
可选的,所述方法还包括:
若获取的多个配置信息中存在相关联的配置信息,将所述相关联的配置信息发送给同一指令存储器。
可选的,在所述将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器之前,所述方法还包括:
确定所述对应的指令存储器是否处于空闲状态。
可选的,在所述将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器之前,所述方法还包括:
确定所述对应的指令存储器的存储空间是否足够存储所述配置信息。
可选的,所述依据所述多个指令存储器的优先级顺序,确定目标指令存储器,包括:
依据从高优先级到低优先级的顺序,依次确定指令存储器是否非空(即,指令存储器是否存储有配置信息);将确定的第一个非空的指令存储器作为目标指令存储器。也就是说,按优先级顺序确定第一个存储有配置信息的指令存储器,并将该指令存储器作为新的目标指令存储器。
可选的,所述当前待发送的配置信息是发送给外部的运算加速器的。
可选的,在所述确定目标指令存储器之前,所述方法还包括;
确定是否接收到完成通知;所述完成通知为所述运算加速器在处理完接收到的配置信息后发送的通知。
可选的,所述配置信息为神经网络算法的运算任务的配置信息。
上述调度方法中各步骤的具体实现,可以参考本申请前文中调度装置对应的说明,在此不再赘述。
请参见图6,图6是本申请根据一示例性实施例示出的一种加速系统的结构示意图。该系统包括:
运算加速器,用于自调度装置接收配置信息以进行处理;
所述调度装置包括:
输入模块,用于自系统总线获取多个配置信息,并且依据所述配置信息中的优先级信息,将所述多个配置信息分别发送至多个指令存储器中对 应的指令存储器;
所述多个指令存储器,分别用于自所述输入模块接收对应的配置信息,并将所述对应的配置信息进行存储;
输出模块,用于依据所述多个指令存储器的优先级顺序,确定目标指令存储器,读取所述目标指令存储器中的配置信息作为当前待发送的配置信息,以发送给所述运算加速器。
可选的,所述输出模块还用于,若当前待发送的配置信息与所述目标指令存储器中的配置信息相关联,在将所述待发送的配置信息发送之后,再从所述目标指令存储器中读取相关联的配置信息作为新的当前待发送的配置信息;
以及,若当前待发送的配置信息与所述目标指令存储器中的配置信息不相关联,在将所述待发送的配置信息发送之后,依据所述多个指令存储器的优先级顺序确定新的目标指令存储器。
可选的,配置信息中携带有标记信息;
所述输出模块还用于,获取所述当前待发送的配置信息中的标记信息,并根据所述标记信息,确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联。
可选的,所述输出模块根据所述标记信息,确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联的方式具体包括:
若所述待发送的配置信息中的标记信息与第一预设值相同,确定所述待发送的配置信息与所述目标指令存储器中的配置信息相关联;
以及若所述待发送的配置信息中的标记信息与第二预设值相同,确定所述待发送的配置信息与所述目标指令存储器中的配置信息不相关联。
可选的,所述指令存储器为FIFO存储器,所述配置信息以队列的存储结构存储在所述指令存储器中。
可选的,当前待发送的配置信息中的标记信息,用于确定所述当前待发送的配置信息与所述目标指令存储器中位于队列首位的配置信息是否相 关联。
可选的,所述输入模块还用于,若获取的多个配置信息中存在相关联的配置信息,将所述相关联的配置信息发送给同一指令存储器。
可选的,所述输入模块还用于,在将配置信息发送给对应的指令存储器之前,确定所述对应的指令存储器是否处于空闲状态。
可选的,所述输入模块还用于,在将配置信息发送给对应的指令存储器之前,确定所述对应的指令存储器的存储空间是否足够存储所述配置信息。
可选的,所述输出模块包括:
仲裁子模块,用于依据从高优先级到低优先级的顺序,依次确定指令存储器是否非空。也就是说,依次确定是否存在指令存储器存储有配置信息。将确定的第一个非空的指令存储器作为目标指令存储器;以及,生成所述目标指令存储器对应的调度信号发送给所述输出子模块;也就是说,按优先级顺序确定第一个存储有配置信息的指令存储器,并将该指令存储器作为新的目标指令存储器。
所述输出子模块,用于自所述仲裁子模块接收所述调度信号,根据所述调度信号,读取所述目标指令存储器中的配置信息作为当前待发送的配置信息。
可选的,所述输出模块还用于,在接收到完成通知后,确定所述目标指令存储器;所述完成通知为,所述运算加速器在处理完接收到的配置信息后发送的通知。
可选的,所述输出模块还包括控制状态机;
所述控制状态机用于当接收到所述完成通知时,将所述输出模块从等待状态切换至初始状态;
当确定所述多个指令存储器中存在非空的指令存储器时,将所述输出模块从所述初始状态切换至工作状态。即,当确定所述多个指令存储器中的任意一指令存储器存储有配置信息时,将所述输出模块从所述初始状态 切换至工作状态。
当待发送的配置信息发送给所述运算加速器时,将所述输出模块从所述工作状态切换至所述等待状态。
可选的,还包括:处理器
所述处理器通过所述系统总线与所述调度装置连接。
可选的,所述配置信息为神经网络算法的运算任务的配置信息,所述运算加速器为神经网络加速器NNA。
上述加速系统中,调度装置中各模块的具体实现可以参考本申请前文中调度装置对应的说明,在此不再赘述。
本申请实施例还提供一种无人机,该无人机包括机体、动力装置以及控制系统。其中,控制系统包括前述各种实现方式下的加速系统。
而有关加速系统的说明可以参见前文,在此不再赘述。
本申请实施例提供的调度装置、调度方法、加速系统及无人机。其中,输入模块可以自系统总线获取多个运算任务的配置信息。由于配置信息中携带有该运算任务的优先级信息,因此输入模块可以将配置信息发送至优先级对应的指令存储器中进行存储。输出模块可以根据多个指令存储器的优先级顺序,确定目标指令存储器,从目标指令存储器中读取配置信息作为当前待发送的配置信息,该当前待发送的配置信息将发送给运算加速器。本申请实施例提供的调度装置,在有多个运算任务需要处理时,可以从多个运算任务中确定运算加速器下一个处理的任务,解决了各个运算任务之间的协调问题。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,本领域普通技术人员可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书 的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请实施例的其它实施方案。本申请实施例旨在涵盖本申请实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请实施例的一般性原理并包括本申请实施例未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请实施例的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请实施例的范围仅由所附的权利要求来限制。
以上所述仅为本申请实施例的较佳实施例而已,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请实施例保护的范围之内。

Claims (43)

  1. 一种调度装置,其特征在于,包括:
    输入模块,用于自系统总线获取多个配置信息,并且依据所述多个配置信息中的优先级信息,将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器;
    所述多个指令存储器,分别用于自所述输入模块接收对应的配置信息,并将所述对应的配置信息进行存储;
    输出模块,用于依据所述多个指令存储器的优先级顺序,确定目标指令存储器,读取所述目标指令存储器中的配置信息作为当前待发送的配置信息。
  2. 根据权利要求1所述的调度装置,其特征在于,
    所述输出模块还用于,若当前待发送的配置信息与所述目标指令存储器中的其他配置信息相关联,在将所述当前待发送的配置信息发送之后,再从所述目标指令存储器中读取相关联的配置信息作为新的当前待发送的配置信息;
    以及,若当前待发送的配置信息与所述目标指令存储器中的其他配置信息不相关联,在将所述待发送的配置信息发送之后,依据所述多个指令存储器的优先级顺序确定新的目标指令存储器。
  3. 根据权利要求2所述的调度装置,其特征在于,
    配置信息中携带有标记信息;
    所述输出模块还用于,获取所述当前待发送的配置信息中的标记信息,并根据所述标记信息,确定所述当前待发送的配置信息是否与所述目标指令存储器中的其他配置信息相关联。
  4. 根据权利要求3所述的调度装置,其特征在于,
    所述输出模块根据所述标记信息,确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联的方式具体包括:
    若所述待发送的配置信息中的标记信息与第一预设值相同,确定所述 当前待发送的配置信息与所述目标指令存储器中的其他配置信息相关联;
    以及若所述待发送的配置信息中的标记信息与第二预设值相同,确定所述当前待发送的配置信息与所述目标指令存储器中的其他配置信息不相关联。
  5. 根据权利要求3所述的调度装置,其特征在于,所述指令存储器为FIFO存储器,所述配置信息以队列的存储结构存储在所述指令存储器中。
  6. 根据权利要求5所述的调度装置,其特征在于,
    当前待发送的配置信息中的标记信息,用于确定所述当前待发送的配置信息与所述目标指令存储器中位于队列首位的配置信息是否相关联。
  7. 根据权利要求1所述的调度装置,其特征在于,
    所述输入模块还用于,若获取的多个配置信息中存在相关联的配置信息,将所述相关联的配置信息发送给同一指令存储器。
  8. 根据权利要求1所述的调度装置,其特征在于,
    所述输入模块还用于,在将所述多个配置信息发送给对应的指令存储器之前,确定所述对应的指令存储器是否处于空闲状态。
  9. 根据权利要求1所述的调度装置,其特征在于,
    所述输入模块还用于,在将配置信息发送给对应的指令存储器之前,确定所述对应的指令存储器的存储空间是否足够存储所述配置信息。
  10. 根据权利要求1所述的调度装置,其特征在于,
    所述输出模块包括:
    仲裁子模块,用于依据从高优先级到低优先级的顺序,依次确定指令存储器是否存储有第一配置信息;将确定的第一个存储有所述第一配置信息的指令存储器作为目标指令存储器;以及生成所述目标指令存储器对应的调度信号发送给所述输出子模块;
    所述输出子模块,用于自所述仲裁子模块接收所述调度信号,根据所述调度信号,读取所述目标指令存储器中的配置信息作为当前待发送的配置信息。
  11. 根据权利要求1所述的调度装置,其特征在于,
    所述输出模块一端用于连接外部的运算加速器;
    所述输出模块用于将当前待发送的配置信息发送给所述运算加速器。
  12. 根据权利要求11所述的调度装置,其特征在于,
    所述输出模块还用于,在接收到完成通知后,确定所述目标指令存储器;所述完成通知为所述运算加速器在处理完接收到的配置信息后发送的通知。
  13. 根据权利要求12所述的调度装置,其特征在于,所述输出模块还包括控制状态机;
    所述控制状态机用于当接收到所述完成通知时,将所述输出模块从等待状态切换至初始状态;
    当确定所述多个指令存储器中存在存储有第一配置信息的指令存储器时,将所述输出模块从所述初始状态切换至工作状态;
    当待发送的配置信息发送给所述运算加速器时,将所述输出模块从所述工作状态切换至所述等待状态。
  14. 根据权利要求1所述的调度装置,其特征在于,
    所述输入模块的一端用于通过所述系统总线连接外部的处理器。
  15. 根据权利要求1至14任一项所述的调度装置,其特征在于,
    所述配置信息为神经网络算法的运算任务的配置信息。
  16. 一种调度方法,其特征在于,包括:
    自系统总线获取多个配置信息;
    依据所述多个配置信息中的优先级信息,将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器,以便所述指令存储器将所述对应的配置信息进行存储;
    依据所述多个指令存储器的优先级顺序,确定目标指令存储器;
    读取所述目标指令存储器中的配置信息作为当前待发送的配置信息。
  17. 根据权利要求16所述的调度方法,其特征在于,所述读取所述目 标指令存储器中的配置信息作为当前待发送的配置信息之后,还包括:
    若当前待发送的配置信息与所述目标指令存储器中的配置信息相关联,在将所述待发送的配置信息发送之后,再从所述目标指令存储器中读取相关联的配置信息作为新的当前待发送的配置信息;
    以及,若当前待发送的配置信息与所述目标指令存储器中的配置信息不相关联,在将所述待发送的配置信息发送之后,依据所述多个指令存储器的优先级顺序确定新的目标指令存储器。
  18. 根据权利要求17所述的调度方法,其特征在于,
    配置信息中携带有标记信息;
    确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联,包括:
    获取所述当前待发送的配置信息中的标记信息,并根据所述标记信息,确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联。
  19. 根据权利要求18所述的调度方法,其特征在于,所述根据所述标记信息,确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联,包括:
    若所述待发送的配置信息中的标记信息与第一预设值相同,确定所述待发送的配置信息与所述目标指令存储器中的配置信息相关联;
    以及若所述待发送的配置信息中的标记信息与第二预设值相同,确定所述待发送的配置信息与所述目标指令存储器中的配置信息不相关联。
  20. 根据权利要求18所述的调度方法,其特征在于,所述指令存储器为FIFO存储器,所述配置信息以队列的存储结构存储在所述指令存储器中。
  21. 根据权利要求20所述的调度方法,其特征在于,当前待发送的配置信息中的标记信息,用于确定所述当前待发送的配置信息与所述目标指令存储器中位于队列首位的配置信息是否相关联。
  22. 根据权利要求16所述的调度方法,其特征在于,所述方法还包括:
    若获取的多个配置信息中存在相关联的配置信息,将所述相关联的配置信息发送给同一指令存储器。
  23. 根据权利要求16所述的调度方法,其特征在于,在所述将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器之前,所述方法还包括:
    确定所述对应的指令存储器是否处于空闲状态。
  24. 根据权利要求16所述的调度方法,其特征在于,在所述将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器之前,所述方法还包括:
    确定所述对应的指令存储器的存储空间是否足够存储所述配置信息。
  25. 根据权利要求16所述的调度方法,其特征在于,所述依据所述多个指令存储器的优先级顺序,确定目标指令存储器,包括:
    依据从高优先级到低优先级的顺序,依次确定所述多个指令存储器是否存储有第一配置信息;将确定的第一个存储有所述第一配置信息的指令存储器作为目标指令存储器。
  26. 根据权利要求16所述的调度方法,其特征在于,所述当前待发送的配置信息是发送给外部的运算加速器的。
  27. 根据权利要求26所述的调度方法,其特征在于,在所述确定目标指令存储器之前,所述方法还包括;
    确定是否接收到完成通知;所述完成通知为所述运算加速器在处理完接收到的配置信息后发送的通知。
  28. 根据权利要求16所述的调度方法,其特征在于,所述配置信息为神经网络算法的运算任务的配置信息。
  29. 一种加速系统,其特征在于,包括:
    运算加速器,用于自调度装置接收多个配置信息以进行处理;
    所述调度装置包括:
    输入模块,用于自系统总线获取所述多个配置信息,并且依据所述多个配置信息中的优先级信息,将所述多个配置信息分别发送至多个指令存储器中对应的指令存储器;
    所述多个指令存储器,分别用于自所述输入模块接收对应的配置信息,并将所述对应的配置信息进行存储;
    输出模块,用于依据所述多个指令存储器的优先级顺序,确定目标指令存储器,读取所述目标指令存储器中的配置信息作为当前待发送的配置信息,以发送给所述运算加速器。
  30. 根据权利要求29所述的加速系统,其特征在于,
    所述输出模块还用于,若当前待发送的配置信息与所述目标指令存储器中的配置信息相关联,在将所述待发送的配置信息发送之后,再从所述目标指令存储器中读取相关联的配置信息作为新的当前待发送的配置信息;
    以及,若当前待发送的配置信息与所述目标指令存储器中的配置信息不相关联,在将所述待发送的配置信息发送之后,依据所述多个指令存储器的优先级顺序确定新的目标指令存储器。
  31. 根据权利要求30所述的加速系统,其特征在于,
    配置信息中携带有标记信息;
    所述输出模块还用于,获取所述当前待发送的配置信息中的标记信息,并根据所述标记信息,确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联。
  32. 根据权利要求31所述的加速系统,其特征在于,
    所述输出模块根据所述标记信息,确定所述当前待发送的配置信息是否与所述目标指令存储器中的配置信息相关联的方式具体包括:
    若所述待发送的配置信息中的标记信息与第一预设值相同,确定所述待发送的配置信息与所述目标指令存储器中的配置信息相关联;
    以及若所述待发送的配置信息中的标记信息与第二预设值相同,确定所述待发送的配置信息与所述目标指令存储器中的配置信息不相关联。
  33. 根据权利要求31所述的加速系统,其特征在于,所述指令存储器为FIFO存储器,所述配置信息以队列的存储结构存储在所述指令存储器中。
  34. 根据权利要求33所述的加速系统,其特征在于,
    当前待发送的配置信息中的标记信息,用于确定所述当前待发送的配置信息与所述目标指令存储器中位于队列首位的配置信息是否相关联。
  35. 根据权利要求29所述的加速系统,其特征在于,
    所述输入模块还用于,若获取的多个配置信息中存在相关联的配置信息,将所述相关联的配置信息发送给同一指令存储器。
  36. 根据权利要求29所述的加速系统,其特征在于,
    所述输入模块还用于,在将所述多个配置信息发送给对应的指令存储器之前,确定所述对应的指令存储器是否处于空闲状态。
  37. 根据权利要求29所述的加速系统,其特征在于,
    所述输入模块还用于,在将配置信息发送给对应的指令存储器之前,确定所述对应的指令存储器的存储空间是否足够存储所述配置信息。
  38. 根据权利要求29所述的加速系统,其特征在于,
    所述输出模块包括:
    仲裁子模块,用于依据从高优先级到低优先级的顺序,依次确定指令存储器是否存储有第一配置信息;将确定的第一个存储有所述第一配置信息的指令存储器作为目标指令存储器;以及生成所述目标指令存储器对应的调度信号发送给所述输出子模块;
    所述输出子模块,用于自所述仲裁子模块接收所述调度信号,根据所述调度信号,读取所述目标指令存储器中的配置信息作为当前待发送的配置信息。
  39. 根据权利要求29所述的加速系统,其特征在于,
    所述输出模块还用于,在接收到完成通知后,确定所述目标指令存储器;所述完成通知为所述运算加速器在处理完接收到的配置信息后发送的 通知。
  40. 根据权利要求39所述的加速系统,其特征在于,所述输出模块还包括控制状态机;
    所述控制状态机用于当接收到所述完成通知时,将所述输出模块从等待状态切换至初始状态;
    当确定所述多个指令存储器中存在存储有第一配置信息的指令存储器时,将所述输出模块从所述初始状态切换至工作状态;
    当待发送的配置信息发送给所述运算加速器时,将所述输出模块从所述工作状态切换至所述等待状态。
  41. 根据权利要求29所述的加速系统,其特征在于,还包括:处理器
    所述处理器通过所述系统总线与所述调度装置连接。
  42. 根据权利要求29至41任一项所述的加速系统,其特征在于,
    所述配置信息为神经网络算法的运算任务的配置信息,所述运算加速器为神经网络加速器。
  43. 一种无人机,其特征在于,包括:
    机体、动力装置以及控制系统;
    所述控制系统包括如权利要求29~42任一项所述的加速系统。
PCT/CN2020/078862 2020-03-11 2020-03-11 一种调度装置、调度方法、加速系统及无人机 WO2021179222A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/078862 WO2021179222A1 (zh) 2020-03-11 2020-03-11 一种调度装置、调度方法、加速系统及无人机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/078862 WO2021179222A1 (zh) 2020-03-11 2020-03-11 一种调度装置、调度方法、加速系统及无人机

Publications (1)

Publication Number Publication Date
WO2021179222A1 true WO2021179222A1 (zh) 2021-09-16

Family

ID=77671149

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/078862 WO2021179222A1 (zh) 2020-03-11 2020-03-11 一种调度装置、调度方法、加速系统及无人机

Country Status (1)

Country Link
WO (1) WO2021179222A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489132A (zh) * 2022-01-26 2022-05-13 北京星际荣耀科技有限责任公司 一种飞行器控制方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020008A (zh) * 2015-03-31 2016-10-12 欧姆龙株式会社 控制装置
CN106330777A (zh) * 2015-06-17 2017-01-11 中兴通讯股份有限公司 网关侧网络资源的分配方法及装置
CN108011949A (zh) * 2017-11-30 2018-05-08 百度在线网络技术(北京)有限公司 用于获取数据的方法和装置
US10209768B1 (en) * 2012-01-06 2019-02-19 Seagate Technology Llc File-aware priority driver

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10209768B1 (en) * 2012-01-06 2019-02-19 Seagate Technology Llc File-aware priority driver
CN106020008A (zh) * 2015-03-31 2016-10-12 欧姆龙株式会社 控制装置
CN106330777A (zh) * 2015-06-17 2017-01-11 中兴通讯股份有限公司 网关侧网络资源的分配方法及装置
CN108011949A (zh) * 2017-11-30 2018-05-08 百度在线网络技术(北京)有限公司 用于获取数据的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489132A (zh) * 2022-01-26 2022-05-13 北京星际荣耀科技有限责任公司 一种飞行器控制方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US11550627B2 (en) Hardware accelerated dynamic work creation on a graphics processing unit
US10733019B2 (en) Apparatus and method for data processing
EP2131278A1 (en) Scheduling of multiple tasks in a system including multiple computing elements
WO2017166777A1 (zh) 一种任务调度方法及装置
US8108571B1 (en) Multithreaded DMA controller
JPH03126158A (ja) スケジユーリング方法及び装置
US7802025B2 (en) DMA engine for repeating communication patterns
US8743131B2 (en) Course grain command buffer
JPH09128252A (ja) 優先度付きタスク実行制御方法及びデータ処理装置
US9378047B1 (en) Efficient communication of interrupts from kernel space to user space using event queues
JP5309703B2 (ja) 共有メモリの制御回路、制御方法及び制御プログラム
CN103218329A (zh) 数字信号处理数据传输
US20110265093A1 (en) Computer System and Program Product
CN104094235A (zh) 多线程计算
US20060112394A1 (en) Computer system
EP1493081B1 (en) Data transfer mechanism
US10942771B2 (en) Method, apparatus and system for multi-module scheduling
US11941528B2 (en) Neural network training in a distributed system
WO2021179222A1 (zh) 一种调度装置、调度方法、加速系统及无人机
US9286129B2 (en) Termination of requests in a distributed coprocessor system
US20210311782A1 (en) Thread scheduling for multithreaded data processing environments
CN116243983A (zh) 处理器、集成电路芯片、指令处理方法、电子设备和介质
CN116724294A (zh) 一种任务分配方法及装置
JPH064314A (ja) タスク間同期通信装置
CN114900472B (zh) 一种面向多任务的控制面实现协同流量调度的方法与系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20924738

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20924738

Country of ref document: EP

Kind code of ref document: A1