Scheduling method, scheduling device, processing core, electronic device, readable medium

By dynamically adjusting the computing tasks between computing nodes, the problem of unbalanced load of computing nodes is solved, and efficient computing of neural networks is realized.

CN114816755BActive Publication Date: 2025-07-08LYNXI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202210467443.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-29
Publication Date
2025-07-08
Estimated Expiration
2042-04-29

AI Technical Summary

Technical Problem

In the prior art, when performing neural network operations through a computing system composed of multiple computing nodes, the load of the computing nodes is unbalanced, resulting in low computing efficiency.

Method used

By monitoring the calculation amount of the computing node and identifying that the calculation amount is unbalanced, the calculation task of the calculation node with overloaded calculation amount is transferred to the target calculation node with not overloaded calculation amount to achieve load balancing.

Benefits of technology

The overall computing efficiency of the neural network is improved, and the computing efficiency of the computing system is improved through load balancing computing task allocation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114816755B_ABST
    Figure CN114816755B_ABST
Patent Text Reader

Abstract

The present disclosure provides a scheduling method for computing resources. The scheduling method includes: determining the computing amounts of each of a plurality of computing nodes within a predetermined time period; when the computing amounts among the computing nodes are unbalanced, transferring the computing tasks of at least one neuron in the computing node with an overloaded computing amount to a target computing node, where the target computing node is a computing node that meets a preset condition and whose computing amount is not overloaded. The present disclosure also provides a scheduling device, a data processing method, a data processing device, an electronic device, and a computer-readable medium.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of artificial intelligence technology, and in particular, to a method and device for scheduling computing resources, a processing core, an electronic device, and a computer-readable medium. Background Art

[0002] Artificial intelligence is a discipline that studies how to make a computer simulate certain human thinking processes and intelligent behaviors (such as learning, reasoning, thinking, or planning, etc.), mainly including the principles of computer-implemented intelligence, manufacturing a computer similar to human brain intelligence, and enabling the computer to achieve higher-level applications.

[0003] With the continuous development of artificial intelligence technology, various neural networks for simulating neurons in the human brain have emerged. Correspondingly, it is necessary to execute the operations in the neural network through a computing system composed of multiple computing nodes.

[0004] When executing the operations in the neural network through a computing system composed of multiple computing nodes, computing tasks are usually allocated to each computing node according to the static topological connection characteristics of each neuron in the neural network. How to improve the computing efficiency of the computing system has always been pursued in this field. Summary of the Invention

[0005] The present disclosure provides a method and device for scheduling computing resources, a processing core, an electronic device, and a computer-readable medium.

[0006] In a first aspect, the present disclosure provides a method for scheduling computing resources, the scheduling method including:

[0007] Determine the computing amount of each of the multiple computing nodes within a predetermined time period;

[0008] When the computing amounts among the computing nodes are unbalanced, transfer the computing tasks of at least one neuron in the computing node with an overloaded computing amount to a target computing node, where the target computing node is a computing node that meets a preset condition and whose computing amount is not overloaded.

[0009] Optionally, the computing task includes at least one of the following tasks:

[0010] Image processing task, speech processing task, text processing task, weights, delays, and number information of successor synapses connected to the neurons corresponding to the current computing node.

[0011] In a second aspect, the present disclosure provides a data processing method, including:

[0012] Determine the synaptic information of the synapses connected to the current computing node, where the synaptic information includes the position information of the successor neurons of the neuron corresponding to the current computing node and the synaptic weight of the neuron corresponding to the current computing node;

[0013] Send the synaptic weight of the neuron corresponding to the current computing node to the computing node corresponding to the successor neuron for the computing node corresponding to the successor neuron to perform synaptic integration calculation,

[0014] wherein, when there is a task transfer notification, the position information of at least some of the successor neurons is carried by the task transfer notification, and the task transfer notification is generated after executing the scheduling method provided in the first aspect of the present disclosure.

[0015] In a third aspect, the present disclosure provides a scheduling device for computing resources, including:

[0016] A computation amount determination module for determining the computation amount of each of the computing nodes among a plurality of computing nodes within a predetermined time period;

[0017] A task transfer module for transferring the computing tasks of at least one neuron in the computing node with overloaded computation amount to a target computing node when the computation amounts among the computing nodes are unbalanced, where the target computing node is a computing node that meets a preset condition and has an overloaded computation amount.

[0018] In a fourth aspect, the present disclosure provides a data processing device, including:

[0019] An associated synaptic information determination module for determining the synaptic information of the synapses connected to the current data processing device, where the synaptic information includes the position information of the successor neurons of the neuron corresponding to the current data processing device and the synaptic weight of the neuron corresponding to the current data processing device;

[0020] A sending module for sending the synaptic weight of the neuron corresponding to the current data processing device to the computing node corresponding to the successor neuron for the computing node corresponding to the successor neuron to perform synaptic integration calculation, wherein when there is a task transfer notification, the position information of at least some of the successor neurons is carried by the task transfer notification, and the task transfer notification is generated after executing the scheduling method provided in the first aspect of the present disclosure.

[0021] In a fifth aspect, the present disclosure provides a processing core including the above scheduling device and / or the above data processing device.

[0022] In a sixth aspect, the present disclosure provides an electronic device, including:

[0023] A plurality of processing cores; and

[0024] A Network-on-Chip configured to interact data between the multiple processing cores and external data;

[0025] One or more instructions are stored in one or more of the processing cores and executed by one or more of the processing cores, enabling one or more of the processing cores to execute the above scheduling method and / or the above data processing method.

[0026] In a seventh aspect, a computer-readable medium is provided, on which a computer program is stored. When the computer program is executed by a processing core, the above scheduling method and / or the above data processing method are implemented.

[0027] The scheduling method, scheduling device, processing core, electronic device, and computer-readable medium provided by the present disclosure, when performing neural network operations using a computing system including multiple computing nodes, count the computing amounts of the computing nodes within a predetermined time period. When it is found that the computing amounts between different computing nodes are unbalanced (i.e., the difference in computing amounts between different computing nodes is large), part of the computing tasks in the computing nodes with overloaded computing amounts are transferred to other computing nodes with non-overloaded computing amounts, thereby achieving load balancing between different computing nodes and improving the overall operation efficiency of the neural network.

[0028] After adjusting the computing tasks of neurons through the scheduling method, the computing tasks responsible for each computing node may no longer correspond to neurons in the same layer. In other words, after reallocating the computing tasks through the scheduling method of the computing resources provided by the present disclosure, the computing tasks of neurons with a larger firing rate are scattered among multiple different computing nodes, making the load of different computing nodes balanced.

[0029] It should be understood that the content described in this part is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it used to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. Description of the Drawings

[0030] The drawings are used to provide a further understanding of the present disclosure, and constitute a part of the specification. They are used to explain the present disclosure together with the embodiments of the present disclosure, and do not constitute a limitation to the present disclosure. By describing the detailed exemplary embodiments with reference to the drawings, the above and other features and advantages will become more obvious to those skilled in the art. In the drawings:

[0031] Figure 1 It is a flowchart of an implementation manner of the scheduling method of the computing resources provided by the present disclosure;

[0032] Figure 2 It is a flowchart of an implementation manner of step S110;

[0033] Figure 3 Flow chart of another implementation of the scheduling method provided by the present disclosure;

[0034] Figure 4 Flow chart of an implementation of the data processing method provided by the second aspect of the present disclosure;

[0035] Figure 5 Schematic diagram of a neural network;

[0036] Figure 6 Block diagram of a scheduling device provided by the present disclosure;

[0037] Figure 7 Block diagram of a data processing device provided by the present disclosure;

[0038] Figure 8 Block diagram of an electronic device provided by the present disclosure. Detailed implementation manners

[0039] To enable those skilled in the art to better understand the technical solutions of the present disclosure, the following describes exemplary embodiments of the present disclosure with reference to the accompanying drawings. Various details of the embodiments of the present disclosure are included to assist in understanding, and they should be considered merely exemplary. Therefore, those of ordinary skill in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present disclosure. Similarly, for clarity and conciseness, descriptions of well-known functions and structures are omitted below.

[0040] Without conflict, the embodiments of the present disclosure and the features in the embodiments can be combined with each other.

[0041] As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items.

[0042] The terms used herein are only for describing specific embodiments and are not intended to limit the present disclosure. As used herein, the singular forms "a" and "the" are also intended to include the plural forms unless the context clearly indicates otherwise. It will also be understood that when the terms "include" and / or "consist of" are used in this specification, the specified features, wholes, steps, operations, elements, and / or components are present, but one or more other features, wholes, steps, operations, elements, components, and / or their groups are not excluded. "Connection" or "coupling" and other similar terms are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect.

[0043] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art. It will also be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and this disclosure, and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.

[0044] In addition to the number of neurons, the computational load of a neural network also depends on the firing rate of the neurons. The firing rate of a neuron is significantly correlated with the layer in which the neuron is located. That is to say, the firing rates of neurons in different layers may vary greatly. If the allocation of computing resources is only based on the static connection characteristics of the neurons, it will cause an uneven load on the computing nodes and reduce the overall computing efficiency. It should be noted that the "computing nodes" here can be regarded as "computing resources".

[0045] Figure 1 It is a flowchart of an implementation manner of a method for scheduling computing resources provided by an embodiment of the present disclosure.

[0046] An embodiment of the present disclosure provides a method for scheduling computing resources. Referring to Figure 1 , the scheduling method includes:

[0047] In step S110, determine the computational load of each of the multiple computing nodes within a predetermined time period;

[0048] In step S120, when the computational loads among the computing nodes are unbalanced, transfer the computing tasks of at least one neuron in the computing node with an overloaded computational load to a target computing node.

[0049] Wherein, the target computing node is a computing node that meets the preset conditions and whose computational load is not overloaded.

[0050] When performing neural network operations using a computing system including multiple computing nodes, the computational loads of the computing nodes within a predetermined time period are counted. When it is found that the computational loads among different computing nodes are unbalanced (that is, the computational load gaps among different computing nodes are relatively large), part of the computing tasks in the computing node with an overloaded computational load are transferred to other computing nodes whose computational loads are not overloaded, so as to achieve the purpose of load balancing among different computing nodes and improving the overall operation efficiency of the neural network.

[0051] After adjusting the computing tasks of neurons through the scheduling method, the computing tasks responsible for each computing node may no longer correspond to neurons in the same layer. In other words, after reallocating the computing tasks through the computing resource scheduling method provided by the present disclosure, the computing tasks of neurons with a larger firing rate are scattered in multiple different computing nodes, making the loads of different computing nodes balanced.

[0052] In the present disclosure, no special limitation is imposed on the "preset condition" either. For example, the predetermined condition may be that the amount of computation is lower than a certain specific amount of computation. For another example, the predetermined condition may be: the distance from the computing node with overloaded computation is no more than a predetermined number of computing nodes. That is to say, the target computing node should be a computing node that is relatively close to the computing node with overloaded computation (for example, the distance between the target computing node and the computing node with overloaded computation is no more than two computing nodes).

[0053] As a preferred embodiment, the scheduling method is executed periodically, and the predetermined time periods in different cycles are the time periods within their respective cycles. In this embodiment, the amount of computation of computing nodes is statistically calculated every once in a while. When it is found that there is an imbalance in the amount of computation between computing nodes (that is, load imbalance), the computing tasks of the computing node with overloaded computation are transferred out, and load balance is achieved again. That is to say, through the scheduling method provided by this embodiment, the computing resources can be reallocated in a timely manner when load imbalance occurs, and approximate load balance can be achieved throughout the computing process, ultimately improving the operation efficiency of the neural network.

[0054] In the present disclosure, no special limitation is imposed on how to determine the amount of computation of each computing node among multiple computing nodes within a predetermined time period. As an alternative embodiment, as Figure 2 shown, the step S110 of determining the amount of computation of each computing node among multiple computing nodes within a predetermined time period may include:

[0055] In step S110a, the number of emitted pulses of each computing node among the multiple computing nodes within the predetermined time period is statistically calculated respectively;

[0056] In step S110b, the amount of computation of each computing node within the predetermined time period is calculated according to the following formula (2):

[0057] P i =R i ·C i (2)

[0058] wherein, the multiple computing nodes are numbered in sequence, and i is the number of the computing node;

[0059] Pi is the computing amount of the i-th computing node within the predetermined time period;

[0060] R i is the number of pulses issued by the i-th computing node within the predetermined time period;

[0061] C i is the number of synaptic connections of the i-th computing node within the predetermined time period.

[0062] In the present disclosure, no special limitation is imposed on the execution device of the scheduling method for the computing resources. As an alternative implementation, the scheduling method can be executed by an electronic device independent of the computing nodes, or can be executed by one of the multiple computing nodes.

[0063] When the scheduling method is executed by an electronic device independent of the computing nodes, the electronic device can send a request for obtaining the number of pulses issued to each computing node to obtain the number of pulses issued by each computing node within the predetermined time period.

[0064] When the scheduling method is executed by a computing node, the computing node executing the scheduling method can send a request for obtaining the number of pulses issued to other computing nodes to obtain the number of pulses issued by other each computing node within the predetermined time period. Of course, the present disclosure is not limited thereto. In this implementation, each computing node can periodically send the number of pulses it issues within the predetermined time period to other computing nodes.

[0065] In the present disclosure, no special limitation is imposed on how to determine whether the computing amounts among the computing nodes are unbalanced. As an alternative implementation, as Figure 3 shown, the scheduling method may further include the following steps performed after step S110:

[0066] In step S112, determine the average computing amount of multiple computing nodes within the predetermined time period;

[0067] In step S114, calculate the balance coefficient of each computing node according to the computing amount of each computing node within the predetermined time period and the average computing amount according to formula (1);

[0068] In step S116, when there is a computing node with a balance coefficient greater than the preset threshold, it is determined that the computing amounts among the computing nodes are unbalanced.

[0069]

[0070] wherein, i is the number of the computing node;

[0071] Pi is the computing amount of the i-th computing node within the predetermined time period;

[0072] is the average computing amount of all computing nodes within the predetermined time period;

[0073] ε i is the balance coefficient of the i-th computing node.

[0074] ε i The larger it is, the greater the difference between the computing amount of the i-th computing node and the average computing amount of multiple computing nodes.

[0075] In the present disclosure, no special limitation is imposed on the specific value of the preset threshold, and the preset threshold can be determined according to the required operation speed of the neural network. The faster the required operation speed of the neural network, the smaller the value of the preset threshold. As an optional implementation manner, the preset threshold can be taken from between 5 and 10. That is to say, when there is a computing node whose computing amount differs from the average computing amount by 5 to 10 times, it is considered that load imbalance occurs.

[0076] In the present disclosure, no special limitation is imposed on how to determine the "computing node with overloaded computing amount" in the case of load imbalance. For example, a computing node whose computing amount exceeds a predetermined amount can be determined as a computing node with overloaded computing amount. A computing node whose computing amount exceeds the average computing amount by too much can also be determined as a computing node with overloaded computing amount (for example, a computing node whose computing amount exceeds the average computing amount by 5 - 10 times can be determined as a computing node with overloaded computing amount). Correspondingly, in the scheduling method, a computing node whose computing amount does not reach the average computing amount of all computing nodes within the predetermined time period can be determined as a computing node with non-overloaded computing amount.

[0077] In the present disclosure, no special limitation is imposed on how to determine the computing task that needs to be transferred to the target computing node. To improve the transfer rate, as an optional implementation manner, in step S120, neurons can be randomly selected from the computing nodes with overloaded computing amount, and the computing tasks of the selected neurons can be transferred to the target computing node.

[0078] For a neural network, neurons are usually grouped. For example, neurons with the same biological characteristics are grouped into the same group. Corresponding to the computing node, the computing tasks executed in the computing node are also grouped. To improve the efficiency of task transfer, as another optional implementation manner of the present disclosure, the computing tasks can be transferred in whole groups. That is to say, in step S120, at least one task group in the computing node with overloaded computing amount can be moved to the target computing node, where the task group includes the computing tasks corresponding to multiple neurons.

[0079] To enable the smooth processing of data by the neural network, optionally, as Figure 3 shown, after step S120, the scheduling method may further include:

[0080] In step S130, send a task transfer notice to the computing node associated with the neuron to which the computing task is transferred to the target computing node, where the task transfer notice carries the address information of the target computing node.

[0081] In the present disclosure, the so-called "computing node associated with the neuron to which the computing task is transferred to the target computing node" is the computing node where the presynaptic of "the neuron to which the computing task is transferred to the target computing node" is located, and / or the computing node where the postsynaptic of "the neuron to which the computing task is transferred to the target computing node" is located.

[0082] Further, as Figure 3 shown, after step S120, the scheduling method may further include:

[0083] In step S140, send the soma processing information of the neuron corresponding to the computing task transferred to the target computing node, and the postsynaptic information to the target node.

[0084] As the second aspect of the present disclosure, a data processing method is provided. As Figure 4 shown, the data processing method includes:

[0085] In step S210, determine the synaptic information connected to the current computing node, where the synaptic information includes the position information of the postsynaptic neurons of the neurons corresponding to the current computing node, and the synaptic weights of the neurons corresponding to the current computing node;

[0086] In step S220, send the synaptic weights of the neurons corresponding to the current computing node to the computing node corresponding to the postsynaptic neurons for the computing node to perform synaptic integration calculation.

[0087] Among them, when there is a task transfer notice, the position information of the postsynaptic neurons is carried by the task transfer notice, and the task transfer notice is generated after executing the scheduling method provided in the first aspect of the present disclosure.

[0088] Of course, when there is no task transfer notice, the position information of the postsynaptic neurons is the initially set position information of the postsynaptic neurons.

[0089] Next, a detailed introduction to the data processing method provided by the present disclosure will be made with reference to Figure 5

[0090] Figure 5 ​Two predecessor neurons (predecessor neuron A1 and predecessor neuron A2 respectively) and four successor neurons (successor neuron B, successor neuron C, successor neuron D, and successor neuron E respectively) are shown.

[0091] For the computing node where the predecessor neuron A1 is located, the data processing method performed is as follows:

[0092] Obtain the synaptic information of the synapses connected to the predecessor neuron A1. The synaptic information includes the address information (e.g., number) of the successor neurons, and the synaptic weights w1, w2, w3, w4 of the predecessor neuron for each successor neuron respectively;

[0093] Distribute the weight information to the computing nodes responsible for each successor neuron for each computing node to perform synaptic integration calculation.

[0094] As the third aspect of the present disclosure, a scheduling device for computing resources is provided, as Figure 6 shown. The scheduling device includes a computation amount determination module 310 and a task transfer module 320.

[0095] The computation amount determination module 310 is used to execute step S110, that is, the computation amount determination module 310 is used to determine the computation amount of each of the multiple computing nodes within a predetermined time period;

[0096] The task transfer module 320 is used to execute step S120, that is, when the computation amounts among the computing nodes are unbalanced, the task transfer module 320 transfers the computing tasks of at least one neuron in the computing node with overloaded computation amount to a target computing node, where the target computing node is a computing node that meets the preset conditions and has overloaded computation amount.

[0097] It should be noted that in the present disclosure, no special limitation is imposed on the specific type of the computing task. For example, the computing task may be one or several of an image processing task, a speech processing task, a text processing task, etc. In addition, the computing task may further include collecting the weights, delays, and the number information of the successor synapses connected to the neuron corresponding to the current computing node. That is, the current computing node can obtain the above information according to the neuron number. This part of the computing task is the main operation load of the presynaptic neuron. The above collection process may be a reading and sorting process from a memory (on-chip or off-chip).

[0098] The scheduling device provided by the present disclosure is used to execute the scheduling method provided by the first aspect of the present disclosure. The principle and beneficial effects of the scheduling method have been described in detail above and will not be repeated here.

[0099] Optionally, the scheduling device may further include an average computation amount determination module 330, an equilibrium coefficient calculation module 340, and a determination module 350.

[0100] The average computation amount determination module 330 is configured to determine the average computation amount of multiple computing nodes within the predetermined time period.

[0101] The equilibrium coefficient calculation module 340 is configured to calculate the equilibrium coefficient of each computing node according to the computation amount of each computing node within the predetermined time period and the average computation amount according to formula (1).

[0102] The determination module 350 is configured to determine that the computation amounts among the computing nodes are unbalanced when there is a computing node with an equilibrium coefficient greater than a preset threshold.

[0103]

[0104] Where, i is the number of the computing node;

[0105] P i is the computation amount of the i-th computing node within the predetermined time period;

[0106] is the average computation amount of all computing nodes within the predetermined time period;

[0107] ε i is the equilibrium coefficient of the i-th computing node.

[0108] Optionally, the preset threshold is taken from between 5 and 10.

[0109] Optionally, the determination module 350 is further configured to:

[0110] Determine the computing nodes with a computation amount exceeding a predetermined multiple of the average computation amount of all computing nodes within the predetermined time period as the computing nodes with overloaded computation amount;

[0111] Determine the computing nodes with a computation amount not reaching the average computation amount of all computing nodes within the predetermined time period as the computing nodes with non-overloaded computation amount.

[0112] Optionally, the predetermined multiple is from 5 to 10 times.

[0113] Optionally, the task transfer module 320 is configured to randomly select neurons from the computing nodes with overloaded computation amount and transfer the computing tasks of the selected neurons to the target computing node.

[0114] Optionally, the task transfer module 320 is configured to move at least one task group from the computing nodes with overloaded computation amount to the target computing node, where the task group includes the computing tasks corresponding to multiple neurons.

[0115] Optionally, the scheduling device further includes a task transfer notification generation module 360, configured to:

[0116] Generate a task transfer notification, where the task transfer notification carries address information of a target computing node;

[0117] Send the task transfer notification to a computing node associated with a neuron whose computing task is transferred to the target computing node.

[0118] Optionally, the computing node associated with the neuron transferred to the target computing node includes the computing node where the presynaptic of the neuron transferred to the target computing node is located, and / or the computing node associated with the neuron transferred to the target computing node includes the computing node where the postsynaptic of the neuron transferred to the target computing node is located.

[0119] Optionally, the scheduling device may further include a forwarding module 370, and the forwarding module 370 is configured to send the soma processing information of the neuron corresponding to the computing task transferred to the target computing node, and the postsynaptic information to the target node.

[0120] As a fourth aspect of the present disclosure, there is provided a data processing device, as Figure 7 shown, the data processing device includes an associated synaptic information determination module 410 and a sending module 420.

[0121] The associated synaptic information determination module 410 is configured to execute step S210, that is, to determine synaptic information of a synapse connected to the current data processing device, where the synaptic information includes position information of a postsynaptic neuron corresponding to the current data processing device, and a synaptic weight of the neuron corresponding to the current data processing device.

[0122] The sending module 420 is configured to execute step S220, that is, to send the synaptic weight of the neuron corresponding to the current data processing device to a computing node corresponding to the postsynaptic neuron for synaptic integration calculation by the computing node corresponding to the postsynaptic neuron, where when there is a task transfer notification, the position information of the postsynaptic neuron is carried by the task transfer notification, and the task transfer notification is a task transfer notification generated after executing the scheduling method provided in the first aspect of the present disclosure.

[0123] As a fifth aspect of the present disclosure, there is provided a processing core, and the processing core includes the above-mentioned scheduling device and / or data processing device.

[0124] As a sixth aspect of basic work, there is provided an electronic device. Refer to Figure 8, embodiments of the present disclosure provide an electronic device, which includes a plurality of processing cores 601 and a network-on-chip 602. Among them, the plurality of processing cores 601 are all connected to the network-on-chip 602, and the network-on-chip 602 is used to interact data between the plurality of processing cores and external data.

[0125] Among them, one or more instructions are stored in one or more of the processing cores 601, and the one or more instructions are executed by the one or more processing cores 601 so that the one or more processing cores 601 can execute the above scheduling method and / or data processing method.

[0126] In addition, embodiments of the present disclosure also provide a computer-readable medium, on which a computer program is stored. Among them, the computer program implements the above scheduling method and / or data processing method when executed by a processing core.

[0127] Those of ordinary skill in the art can understand that all or some of the steps in the methods disclosed above, and the functional modules / units in the systems and devices, can be implemented as software, firmware, hardware, and their appropriate combinations. In the hardware implementation, the division of the functional modules / units mentioned above does not necessarily correspond to the division of physical components; for example, a physical component can have multiple functions, or a function or step can be executed by several physical components in cooperation. Some physical components or all physical components can be implemented as software executed by a processor, such as a central processing unit, a digital signal processor, or a microprocessor, or implemented as hardware, or implemented as an integrated circuit, such as an application-specific integrated circuit. Such software can be distributed on a computer-readable medium, which can include a computer storage medium (or non-transitory medium) and a communication medium (or transitory medium). As is well known to those of ordinary skill in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory, or other memory technologies, CD-ROM, digital versatile disc (DVD), or other optical disc storage, magnetic cassette, tape, magnetic disk storage, or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by a computer. In addition, as is well known to those of ordinary skill in the art, a communication medium generally includes computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transmission mechanism, and can include any information delivery medium.

[0128] Example embodiments have been disclosed herein, and although specific terms are employed, they are used and should be interpreted only in a general illustrative sense and not for limiting purposes. In some instances, it will be apparent to those skilled in the art that, unless otherwise expressly noted, features, characteristics, and / or elements described in conjunction with a particular embodiment may be used alone or in combination with features, characteristics, and / or elements described in conjunction with other embodiments. Therefore, those skilled in the art will appreciate that various changes in form and detail may be made without departing from the scope of the present disclosure as set forth in the appended claims.

Claims

1. A scheduling method for computing resources, the scheduling method comprising: Determining the computing amount of each of a plurality of computing nodes within a predetermined time period; Determining the average computing amount of the plurality of computing nodes within the predetermined time period; Calculating the balance coefficient of each computing node respectively according to the computing amount of each computing node within the predetermined time period and the average computing amount; when there is a computing node with a balance coefficient greater than a preset threshold, it is determined that the computing amounts among the computing nodes are unbalanced; When the computing amounts among the computing nodes are unbalanced, transferring the computing tasks of at least one neuron in the computing node with an overloaded computing amount to a target computing node, wherein the target computing node is a computing node that meets the preset conditions and has an unoverloaded computing amount, the overloaded computing amount means that the computing amount exceeds the average computing amount, and the unoverloaded computing amount means that the computing amount does not reach the average computing amount.

2. The scheduling method according to claim 1, wherein, The calculating the balance coefficient of each computing node respectively according to the computing amount of each computing node within the predetermined time period and the average computing amount includes: Calculating the balance coefficient of each computing node respectively according to the computing amount of each computing node within the predetermined time period and the average computing amount according to formula (1); wherein, i is the number of the computing node; P i is the computing amount of the i-th computing node within the predetermined time period; is the average computing volume of all computing nodes within the said predetermined time period; ε i is the balance coefficient of the i-th computing node.

3. The scheduling method according to claim 2, wherein, The preset threshold is taken from between 5 and 10.

4. The scheduling method according to claim 2, wherein After determining that the computing amounts among the computing nodes are unbalanced, the scheduling method further includes: Determining the computing node with a computing amount exceeding a predetermined multiple of the average computing amount of all computing nodes within the predetermined time period as the computing node with an overloaded computing amount; Determining the computing node with a computing amount not reaching the average computing amount of all computing nodes within the predetermined time period as the computing node with an unoverloaded computing amount.

5. The scheduling method according to claim 4, wherein, The predetermined multiple is 5 to 10 times.

6. The scheduling method according to any one of claims 1 to 5, wherein, In the step of transferring the computing tasks of at least one neuron in the computing node with an overloaded computing amount to a target computing node, randomly select neurons from the computing node with an overloaded computing amount, and transfer the computing tasks of the selected neurons to the target computing node.

7. The scheduling method according to any one of claims 1 to 5, wherein, In the step of transferring the computing tasks of at least one neuron in the computing node with an overloaded computing amount to a target computing node, moving at least one task group in the computing node with an overloaded computing amount to the target computing node, wherein the task group includes the computing tasks corresponding to multiple neurons.

8. The scheduling method according to any one of claims 1 to 5, wherein, After the step of transferring the computing tasks of at least one neuron in the computing node with an overloaded computing amount to a target computing node, the scheduling method further includes: Generating a task transfer notice, the task transfer notice carrying the address information of the target computing node; Sending the task transfer notice to the computing node associated with the neuron whose computing task is transferred to the target computing node.

9. The scheduling method according to claim 8, wherein, The computing node associated with the neuron transferred to the target computing node includes the computing node where the presynaptic of the neuron transferred to the target computing node is located, and / or the computing node associated with the neuron transferred to the target computing node includes the computing node where the postsynaptic of the neuron transferred to the target computing node is located.

10. The scheduling method according to any one of claims 1 to 5, wherein, After the step of transferring the computing tasks of at least one neuron in the computing node with overloaded computing workload to the target computing node, the scheduling method further includes: Sending the soma processing information of the neuron corresponding to the computing task transferred to the target computing node and the subsequent synaptic information to the target computing node.

11. The scheduling method according to any one of claims 1 to 5, wherein, The preset conditions include: The distance from the computing node with overloaded computing workload does not exceed a predetermined number of computing nodes.

12. The scheduling method according to any one of claims 1 to 5, wherein, The scheduling method is performed periodically, and the predetermined time periods in different periods are the time periods within their respective periods.

13. The scheduling method according to any one of claims 1 to 5, wherein, The computing tasks include at least one of the following tasks: Image processing task, speech processing task, text processing task, collecting the weights, delays, and numbers of subsequent neurons of the subsequent synapses connected to the neurons corresponding to the current computing node.

14. A data processing method, including: Determining the synaptic information of the synapses connected to the current computing node, where the synaptic information includes the position information of the subsequent neurons of the neuron corresponding to the current computing node and the synaptic weight of the neuron corresponding to the current computing node; Sending the synaptic weight of the neuron corresponding to the current computing node to the computing node corresponding to the subsequent neuron for the computing node corresponding to the subsequent neuron to perform synaptic integration calculation, wherein when there is a task transfer notification, the position information of at least some of the subsequent neurons is carried by the task transfer notification, and the task transfer notification is a task transfer notification generated after executing the scheduling method described in any one of claims 1 to 13.

15. A computing resource scheduling device, including: A computing workload determination module for determining the computing workload of each of the multiple computing nodes within a predetermined time period; An average computing workload determination module for determining the average computing workload of the multiple computing nodes within the predetermined time period; An equilibrium coefficient calculation module for calculating the equilibrium coefficient of each computing node according to the computing workload of each computing node within the predetermined time period and the average computing workload; a judgment module for determining that the computing workloads among the computing nodes are unbalanced when there is a computing node with an equilibrium coefficient greater than a preset threshold; A task transfer module for, when the computing workloads among the computing nodes are unbalanced, transferring the computing tasks of at least one neuron in the computing node with overloaded computing workload to the target computing node, where the target computing node is a computing node that meets the preset conditions and has an overloaded computing workload, the overloaded computing workload means that the computing workload exceeds the average computing workload, and the non-overloaded computing workload means that the computing workload does not reach the average computing workload.

16. A data processing device, including: An associated synaptic information determination module for determining the synaptic information of the synapses connected to the current data processing device, where the synaptic information includes the position information of the subsequent neurons of the neuron corresponding to the current data processing device and the synaptic weight of the neuron corresponding to the current data processing device; A sending module, configured to send the synaptic weights of neurons corresponding to the current data processing device to the computing nodes corresponding to the subsequent neurons for synaptic integration calculation by the computing nodes corresponding to the subsequent neurons, where when there is a task transfer notification, the location information of at least some of the subsequent neurons is carried by the task transfer notification, and the task transfer notification is a task transfer notification generated after executing the scheduling method according to any one of claims 1 to 13.

17. A processing core, comprising the scheduling device according to claim 15, and / or the data processing device according to claim 16.

18. An electronic device, comprising: a plurality of processing cores; and a network on chip, configured to interact data between the plurality of processing cores and external data; one or more instructions are stored in one or more of the processing cores and are executed by one or more of the processing cores, so that one or more of the processing cores can execute the scheduling method according to any one of claims 1-13, and / or the data processing method according to claim 14.

19. A computer-readable medium having a computer program stored thereon, wherein, When being executed by the processing core, the computer program implements the scheduling method according to any one of claims 1-13; and / or the data processing method according to claim 14.

Citation Information

Patent Citations

  • Gateway for distributing artificial neural network among multiple processing nodes

    CN114065924A