Patent Description:
The present disclosure relates to the field of artificial intelligence technologies, and in particular to an on-chip code breakpoint debugging method, an on-chip processor, and a chip breakpoint debugging system.

During a traditional process of chip algorithm debugging, an algorithm result cannot be output in real time. A result of the whole chip algorithm needs to be copied to another platform in order to output the result. In this case, it is impossible to debug during the debugging of the chip algorithm, resulting in low debugging efficiency of the chip algorithm.

An embodiment of the present disclosure provides a technical solution that can reduce the cost and relax bandwidth requirements. The technical solution provides an operation device, a data processing chip, an electronic equipment, and an operation method, as defined respectively by claim <NUM>, claim <NUM>, claim <NUM> and claim <NUM>.

In the embodiments of the present disclosure, instead of storing data required by each operation module in a memory, the data required for the operation of each operation module is stored by the storage unit of each operation module. This configuration may reduce the data access bandwidth of each operation module when the operation module accesses the storage unit and increase the data transfer speed. At the same time, since the embodiments of the present disclosure do not need a large storage device and do not need to read and write data of all operation modules, there is no need to set a storage device with large capacity and high data read and write speed, thereby reducing the cost of the storage devices.

In addition, the embodiments of the present disclosure can also improve the scalability of the operation device. A computing function of the operation device can be easily expanded by adding an operation module with a corresponding computing function.

Exemplary embodiments will be described in detail below with the accompanying drawings to make other features and aspects of the present disclosure clear.

The drawings are included in the specification and constitute a part of the specification. Together with the specification, the drawings illustrate exemplary embodiments, features, and aspects of the present disclosure, and are used to explain the principles of the present disclosure.

In the prior art, there are usually a large number of operations in network models involving deep learning. For example, some of neural network operations require parallel processing. Forward operations, backward operations, weight updating, etc., require a large number of parallel operations. In a traditional parallel computing system, a processing unit needs to read and write data from a storage unit that has large memory access overhead. A large number of parallel operations may lead to high bandwidth requirements and huge energy consumption.

The article by <NPL>, describes the implementation, in reconfigurable hardware, of an artificial neural network (ANN) system architecture which features online supervised learning capabilities and resource virtualization. Neural networks are artificial systems inspired by the brain"s cognitive behavior, which can learn tasks with some degree of complexity, such as, optimization problems, data mining and text and speech recognition. The architecture proposed takes advantage of distinct datapaths for the forward and backward propagation stages to significantly improve the performance of the learning phase. The architecture is easily scalable and able to cope with several network sizes with the same hardware. Networks larger than the available resources are handled by hardware virtualization. The results show that the proposed architecture leads to speed ups of one order of magnitude comparing to high-end software solutions.

In view of this, an embodiments of the present disclosure provides a technical solution that can reduce the cost and relax bandwidth requirements. The technical solution provides an operation device, a data processing chip, an electronic equipment, and an operation method. The present disclosure relates to the field of data processing technologies, and in particular to an operation device, a data processing chip, an electronic equipment, and an operation method.

Exemplary embodiments and the features and aspects thereof will be described in detail below with the accompanying drawings. The same reference symbols in the drawings indicate elements with the same or similar functions. Although various aspects of the embodiments are shown in the drawings, unless otherwise noted, the drawings are not necessarily drawn to scale.

The dedicated word "exemplary" here means "serving as an example, an embodiment, or being illustrative. " Any embodiment described herein as "exemplary" should not be construed as being superior or better than other embodiments.

In addition, in order to better illustrate the present disclosure, many specific details are given in the following embodiments. Those skilled in the art should understand that the present disclosure can also be implemented without some specific details. In some embodiments, the methods, means, elements, and circuits well-known to those skilled in the art are not described in detail in order to highlight the gist of the present disclosure.

An embodiment of the present disclosure provide an operation device that can be used to perform related operations of a deep learning network model, which can reduce the cost of the operation device and at the same time, relax the bandwidth requirement for data access.

<FIG> shows a block diagram of an operation device according to an embodiment of the present disclosure. The operation device may include: a plurality of operation modules <NUM>. The plurality of operation modules <NUM> can complete the computational operations of a network model by executing corresponding computational sub-commands in parallel. In other words, the operation modules <NUM> in the embodiment of the present disclosure can execute different computational sub-commands in parallel, and the computational sub-commands executed by the respective operation modules <NUM> are used to complete the operations of the network model. <FIG> shows an embodiment including <NUM> operation modules. Each of the operation modules may be connected to each other, or some of the operation modules may be connected to each other, which is not limited in the present disclosure.

The network model in the embodiment of the present disclosure may include a neural network model or may also include another network models used for machine learning. The network model may be used for machine learning or the above-mentioned neural network learning. The operation device may be used for executing the computational operations of the network model. The operation device can receive a computational command about the network model, and can generate a plurality of corresponding computational sub-commands according to the computational command. The plurality of computational sub-commands can be allocated to the plurality of operation modules <NUM> respectively. In other words, each of the operation modules <NUM> can correspondingly execute one or more computational sub-commands, so that the relevant operations of the network model can be completed correspondingly. The computational command includes a computational operation that needs to be performed by the operation device.

When the network model includes an artificial neural network model, the computational command may include: operation information, input neuron data, weight data, and output neuron data. The operation information includes but is not limited to: a forward computational instruction or a backward training instruction, or another neural network computational instruction such as a convolution computational instruction. The embodiment of the present disclosure does not limit a specific form of the computational instruction.

As described above, the operation device in the embodiment of the present disclosure can generate a plurality of computational sub-commands based on the received computational command, and allocate a corresponding computational sub-command to each operation module <NUM> to perform a corresponding computational operation. Each operation module <NUM> includes: at least one operation unit <NUM> and a storage unit <NUM> connected to each operation unit <NUM>. A count and type of operation units <NUM> in each operation module can be the same or different, which can be set according to different operation requirements. An operation unit <NUM> includes one or more types of: one or more multipliers, one or more adders, an addition tree formed by the adders, an activation function unit, and a vector processing unit. In other embodiments, other operation devices may also be included. The multiplier may multiply input data <NUM> (in1) by input data <NUM> (in2) to obtain output (out) after the multiplication, where the process is expressed as: out=in1*in2. The adder may add the input data in1 through the adder to obtain output data (out). The addition tree may add the input data in1 stage by stage to obtain output data (out), where in1 is a vector of length N, N is greater than <NUM>, and the operation process is expressed as: out=in1[<NUM>]+in1[<NUM>]+. +in1[N]; and/or the addition tree accumulates the input data (in1) and then adds the sum with the input data (in2) to obtain output data (out), where the process is expressed as: out=in1[<NUM>]+in1[<NUM>]+. +in1[N]+in2; or the addition tree adds the input data (in1) and the input data (in2) to obtain output data (out), where the process is expressed as: out= in1+in2. The activation function unit may perform an activation function (active) operation on input data (in) to obtain activation output data (out), where the process is expressed as: out=active(in); the activation function (active) may include a sigmoid, tanh, relu, or softmax function, and may be another activation function. In addition to the activation operation, the activation function unit can also implement another non-linear function. An operation (f) may be performed on the input data (in) to obtain the output data (out), where the process is expressed as: out=f(in). The vector processing unit may process vector operations and/or pooling operations. Regarding the pooling operations, the vector processing unit may perform a pooling operation on the input data (in) to obtain output data (out) after the pooling operation, where the process is expressed as: out=pool(in), and pool refers to the pooling operation function. The pooling operation includes but is not limited to: mean value pooling, maximum value pooling, median value pooling. The input data (in) is data in a pooling kernel related to the output (out).

Alternatively, in an example of the present disclosure, the operation unit <NUM> may also include an electronic equipment or device with an operation function, such as a network processor (NPU) or a computer equipment, for executing a corresponding computational sub command The operation unit and the storage unit in each operation module may be electronic devices arranged in an equipment or device to facilitate data transfer between the operation unit and the storage unit.

Each operation module <NUM> may include at least one operation unit <NUM> for performing a different operation to complete a corresponding computational sub-command. In other words, each operation module <NUM> can control a different operation unit <NUM> according to a received computational sub-command to perform a corresponding computational operation. For example, when the computational sub-command includes an addition instruction, the operation module may use an adder to perform an addition operation, and the like, which will not explained in detail in the present disclosure and can be regarded as an aspect of the present disclosure as long as an operation program to be executed can be identified through a computational sub-command and a corresponding operation unit <NUM> can be used to execute the corresponding operation program.

In addition, the operation unit <NUM> calls computational data when executing a corresponding computational sub-command. For example, the operation unit <NUM> in the embodiment of the present disclosure can use first computational sub-data to execute a first computational sub-command, where the first computational sub-command is an instruction assigned to the operation unit <NUM> to execute a corresponding operation, and the first computational sub-data is the data required for executing the first computational sub-command.

When a corresponding operation command is executed through the network model, computational data related to the operation command can be received. Each operation module in the embodiment of the present disclosure the computational data to the storage unit <NUM> of each operation module. Alternatively, the computational sub-data may be allocated to an operation module according to a computational sub-command to be executed by each operation module <NUM>, and the computational sub-data is at least a part of the computational data. In other words, the storage unit <NUM> in the embodiment of the present disclosure is at least configured to store the first computational sub-data required by an operation unit in a group of the storage unit <NUM>. The first computational sub-data includes data for executing the first computational sub-command. The computational sub-commands executed by the respective operation modules <NUM> may be the same or different, and may be specifically allocated according to different operation requirements. The storage unit <NUM> in the embodiment of the present disclosure may include at least one of followings: a buffer, a register, a register file, and a memory array for storing data.

Based on the above configuration of the embodiment of the present disclosure, the data required for operation can be stored by the storage unit in each operation module instead of storing the data required by each operation module in a memory, which may reduce the data access bandwidth of each operation module to the storage unit, and improve the data transfer speed. At the same time, since there is no need for a large storage device to store, read, and write the data of all operation modules, it is not needed to set a storage device with large capacity and high data reading and writing speed, thereby reducing the cost of the storage device.

The respective operation units <NUM> in each operation module <NUM> can be structured into one of an H shape, a systolic array machine shape, and a tree shape. The structure of the operation units in each operation module <NUM> may be the same or different. Those skilled in the art can set the structure according to requirements, which is not limited by the present disclosure. Regarding the above-mentioned types of structure, the structure of the respective operation units in the operation module will be described below.

<FIG> is a block diagram of an operation module structured into an H shape according to an embodiment of the present disclosure. As shown in <FIG>, when the operation units <NUM> in the operation module <NUM> are structured into the H shape, each operation unit may include a primary operation unit <NUM>, at least one branch operation unit <NUM>, and a plurality of secondary operation units <NUM>. The primary operation unit <NUM> can be connected to each branch operation unit <NUM>. The branch operation unit <NUM> is respectively connected to at least one of the secondary operation units <NUM>. As shown in <FIG>, the operation module includes four branch operation units <NUM>. Each branch operation unit <NUM> is connected to four secondary operation units <NUM>, and the branch operation unit <NUM> is configured to transfer data, instructions, and intermediate results between the primary operation unit <NUM> and the secondary operation units <NUM>. When each branch operation unit <NUM> executes a computational sub-command, the branch operation unit <NUM> can perform an operation through data stored in the storage unit <NUM> in the module.

The primary operation unit <NUM> is configured to divide a received computational operator into a plurality of computational instructions and divide computational data into a plurality of data blocks, transfer the computational instructions and the data blocks to a corresponding secondary operation unit <NUM> through a branch operation unit <NUM> to obtain intermediate results, and obtain a final operation result based on the intermediate results. Each of the branch operation units is configured to forward information such as data blocks, computational instructions, and weights between the primary operation unit and the secondary operation unit.

The secondary operation units <NUM> can generate corresponding intermediate results after completing the corresponding computational instructions, and then can transfer the intermediate results back to the primary operation unit <NUM> through the branch operation unit <NUM>. In other words, the respective secondary operation units can execute the multiplication and accumulation of <NUM> sub-matrices and a weight matrix w in parallel to obtain <NUM> intermediate results, and transfer the <NUM> intermediate results to the primary operation unit <NUM>.

The primary operation unit <NUM> can sort the <NUM> intermediate results to obtain a corresponding operation result, perform a bias b operation and then perform an activation operation to obtain a final result y, and transfer the final result y to the storage module <NUM> for storage or to another electronic device for subsequent processing. In other words, the final result y can be output or be stored in the storage unit <NUM>.

In addition, <FIG> is a block diagram of an operation module structured into the systolic array machine shape according to an embodiment of the present disclosure. When the respective operation units <NUM> in the operation module <NUM> are structured into the systolic array machine shape, each operation unit may include a primary operation unit <NUM> and a plurality of secondary operation units <NUM>. The plurality of secondary operation units <NUM> are arranged as an array, and the plurality of secondary operation units are constructed as m rows and n columns of secondary operating units, where m and n are positive integers greater than <NUM>. Each secondary operation unit <NUM> is connected to other adjacent secondary operation units <NUM>, and the primary operation unit <NUM> is connected to k secondary operation units <NUM> of the plurality of secondary operation units <NUM>. The k secondary operation units <NUM> are: n secondary operation units <NUM> in a first row, n secondary operation units <NUM> in an mth row, and m secondary operation units <NUM> in a first column. It should be noted that the k secondary operation units <NUM> shown in <FIG> only include the n secondary operation units <NUM> in the first row, the n secondary operation units <NUM> in the mth row, and the m secondary operation units <NUM> in the first column. In other words, the k secondary operation units <NUM> are secondary operation units <NUM> that are directly connected to the primary operation unit <NUM> among the plurality of secondary operation unit <NUM>. The k secondary operation units <NUM> can be configured to forward data and instructions between the primary operation unit <NUM> and the plurality of secondary operation units <NUM>. The remaining secondary operation units except the k secondary operation units are configured to perform operations on received data blocks according to the computational instructions to obtain intermediate results, and transfer the operation results to the k secondary operation units.

The primary operation unit <NUM> can transfer assigned computational operators to the k secondary operation units <NUM> to perform operations, and can be connected to the remaining secondary operation units <NUM> so as to obtain intermediate results through the remaining secondary operation units <NUM>. The primary operation unit <NUM> can process the intermediate results transferred by the plurality of remaining secondary operation units <NUM> to obtain a final operation result, and send the operation result to the storage module <NUM> for storage.

In addition, <FIG> is a block diagram of an operation module structured into the tree shape according to an embodiment of the present disclosure. When the operation units in the operation module are structured into the tree shape, the operation units may include a primary operation unit <NUM> and a plurality of secondary operation units <NUM>, and a tree module <NUM> connected between the primary operation unit <NUM> and the secondary operation units. The tree module <NUM> includes a root port <NUM> and a plurality of branch ports <NUM>. The root port of the tree module is connected to the primary operation unit <NUM>, and each of the plurality of branch ports of the tree module is connected to a secondary operation unit of the plurality of secondary operation units. The tree module has receiving and transferring functions. <FIG> shows the transferring function of the tree module. In other embodiments, the tree module may also have the receiving function, which is not limited herein. The tree module <NUM> can be configured to forward data blocks, weights, and computational instructions between the primary operation unit and the plurality of secondary operation units. The primary operation unit <NUM> can divide a received computational operator into a plurality of computational instructions and divide computational data into a plurality of data blocks, and transfer the computational instructions and the data blocks to the tree module <NUM>. The tree module <NUM> then transfers the data, computational instructions, and weights to corresponding secondary operation units <NUM>, receives intermediate results from the secondary operation units <NUM>, and transfers the intermediate results to the primary operation unit <NUM>. Then, the primary operation unit <NUM> processes the intermediate results to obtain a final operation result, and sends the operation result to the storage unit <NUM> for storage.

The tree module may include at least one layer of nodes. The nodes are structured into a line with a forwarding function. The nodes may not have a computing function. If the tree module has zero layer of nodes, the tree module is not required.

The tree module may be structured into an n-ary tree shape. For example, <FIG> is a block diagram showing that the operation units in the embodiment of the present disclosure are structured into a binary tree shape. In other embodiments, the respective operation units may also be constructed as a ternary tree or another n-ary tree, where n can be an integer greater than or equal to <NUM>. The embodiment of the present disclosure does not limit a specific value of n, the count of layers may be <NUM> or another number. The secondary operation units may be connected to nodes of layers except a second-to-last layer. For example, the secondary operation units may be connected to nodes of a last layer.

Besides, each of the operation units of the embodiment of the present disclosure may have an independent cache. For example, each of the operation units may include: a neuron caching unit. The neuron caching unit is configured to cache input neuron vector data and output neuron value data of the secondary operation unit.

In the embodiment of the present disclosure, the operation modules may be connected, or optionally at least two operation modules may be connected. For example, data connection exists between at least two operation modules, and one of the two operation modules can execute the first computational sub-command by using the first computational sub-data and second computational sub-data of the other operation module. The second computational sub-data includes data stored in the storage unit of the other operation module and/or data generated by the operation unit of the other operation module. In other words, data connection exists between the operation modules <NUM> in the embodiment of the present disclosure, where the connection may be wired or wireless. A data transfer channel can be built between two operation modules based on the data connection. When an operation module <NUM> executes the first computational sub-command, the operation module <NUM> may need data generated by another operation module <NUM>. In this case, the data transfer can be realized based on the data connection between the two operation modules.

<FIG> is a block diagram of an operation device according to an embodiment of the present disclosure. Besides a plurality of operation modules <NUM>, the operation device may further includes a control module <NUM>. The control module <NUM> is configured to control the operation modules to execute corresponding computational sub-commands and control a memory to store corresponding computational sub-data. At the same time, the control module <NUM> can also control the connection status between the operation modules.

The control module <NUM> in the embodiment of the present disclosure can receive a computational command related to a network model. The control module <NUM> may receive and transfer the computational command or other information through a communication module, or the control module <NUM> may receive the computational command or other information directly. The communication module may include a wired communication unit and/or a wireless communication unit. The wired communication unit may perform information transfer through a wired cable, where the wired cable may include an optical fiber, a twisted pair, or a coaxial cable. The wireless communication unit may perform information transfer through wireless communication. The wireless communication unit may include a wifi module, an NFC module, and the like. Similarly, the data connection between the operation modules <NUM> may also be performed in a wired or wireless manner. For example, the connection may be realized by an optical fiber.

The control module <NUM> can allocate corresponding computational sub-commands and computational sub-data to the operation modules <NUM> according to the received computational command and computational data. The computational command includes a plurality of computational sub-commands for performing network model operations, and the computational data includes the computational sub-data required for executing each of the computational sub-commands. The control module <NUM> in the embodiment of the present disclosure can determine each computational sub-command and computational sub-data according to the computational logic relationship in the received computational command. For example, the control module <NUM> can establish a directed graph according to the logical relationship of the computational commands. The nodes of the directed graph can be used to distinguish the computational sub-commands. In other words, the computational command corresponding to the computational operation between every two nodes can be regarded as a computational sub-command. At this time, the required computational sub-data can also be determined according to the input data of the computational sub-command, so that an operation module can be allocated to execute the computational sub-command, and the computational sub-data can be allocated to the storage unit of the operation module.

In addition, the control module <NUM> can also determine whether each operation module needs data from another operation module when executing the corresponding computational sub-command. If the operation module needs the data from another operation module, the control module <NUM> establishes a connection between the two operation modules. If the operation module does not need the data from another operation module, the control module <NUM> does not establish a connection between the two operation modules. For example, in the embodiment of the present disclosure, a switching component can be used to connect or disconnect operation modules. In this case, the operation modules can be connected to the switching component separately. By controlling the connection of a corresponding line of the switching component, the connection between the corresponding operation modules can be realized. With this configuration, the internal structure of the operation device can be simplified.

<FIG> is a block diagram of a control module according to an embodiment of the present disclosure. The control module <NUM> in the embodiment of the present disclosure may include: a first allocation unit <NUM> and a second allocation unit <NUM>.

The first allocation unit <NUM> is configured to divide the computational command into a plurality of computational sub-commands according to the computational logic relationship in the received computational command, and correspondingly allocate the plurality of computational sub-commands to different operation modules <NUM> for computation. The second allocation unit <NUM> is configured to determine the computational sub-data required for executing each of the computational sub-commands, and allocate the computational sub-data to corresponding operation modules for storage.

In other words, in the embodiment of the present disclosure, the allocation of the computational command may performed by the first allocation unit <NUM>, and the allocation of the computational data may performed by the second allocation unit <NUM>. In this way, each operation module can use the data stored in the storage unit of the operation module to complete a computational operation when executing its own computational sub-command.

In order to clearly present the structural configuration of the embodiment of the present disclosure, the following examples will be used to illustrate the operation device of the embodiment of the present disclosure. The operation device of the embodiment of the present disclosure may include four operation modules <NUM>. Each operation module <NUM> includes one storage unit <NUM> and four operation units <NUM>. For example, a first operation module <NUM> includes a storage unit A0 and operation units B0, B1, B11, B10; a second operation module <NUM> may include a storage unit A1 and operation units B2, B9, B12, B15; a third operation module <NUM> may include a storage unit A2 and operation units B4, B5, B6, and B7; and a fourth operation module <NUM> may include a storage unit A3 and operation units B3, B8, B13, B14. The operation units in each operation module <NUM> can be connected to each other. Operation modules <NUM> can be connected selectively according to the control of the control module <NUM>.

In addition, the control module <NUM> may also allocate the corresponding computational sub-command to each operation module according to the received computational command and computational data, and at the same time, allocate the corresponding computational sub-data to the storage unit. Based on the configuration above, the scalability of the operation device can be ensured, and a Numa architecture of the operation device can also be realized through the setting of the various operation modules.

In summary, in the embodiment of the present disclosure, instead of storing data required by each operation module in a memory, the data required for the operation of each operation module is stored in the storage unit of each operation module. This configuration may reduce the data access bandwidth of each operation module when each operation module accesses the storage unit, and increase the data transfer speed. At the same time, since there is no need for a large storage device to store, read, and write the data of all operation modules, it is not needed to set a storage device with large capacity and high data reading and writing speed, thereby reducing the cost of the storage device. In addition, the embodiment of the present disclosure can also improve the scalability of the operation device. A computation function of the operation device can be easily expanded by adding an operation module with a corresponding computing function.

In addition, the present disclosure also provides a data processing chip and an electronic equipment that include the operation device provided in any of the embodiments above, and an operation method applied to the operation device. Corresponding technical solutions and descriptions can be found in the description of the method, and are thus omitted.

An embodiment of the present disclosure also provides a data processing chip which includes the operation device as described in any of the foregoing embodiments.

An embodiment of the present disclosure also provides an electronic equipment.

The electronic equipment may include a data processing device, a robot, a computer, a printer, a scanner, a tablet, a smart terminal, a mobile phone, a traffic recorder, a navigator, a sensor, a webcam, a server, a cloud-based server, a camera, a video camera, a projector, a watch, a headphone, a mobile storage, a wearable device, a vehicle, a household appliance, and/or a medical device.

The vehicle may include an airplane, a ship, and/or a car. The household electrical appliance may include a television, an air conditioner, a microwave oven, a refrigerator, an electric rice cooker, a humidifier, a washing machine, an electric lamp, a gas cooker, and a range hood. The medical equipment may include a nuclear magnetic resonance spectrometer, a B-ultrasonic scanner, and/or an electrocardiograph.

In addition, an example the present disclosure provides an operation method. The method is applied to the operation device of any of the above-mentioned embodiments. The operation device includes a plurality of operation modules. The plurality of operation modules are configured to execute corresponding computational sub-commands in parallel to complete a computational operation of a network model. <FIG> is a flowchart of an operation method according to an embodiment of the present disclosure. The method includes:.

In the embodiment of the present disclosure, the step of using, by the operation unit of each operation module, the first computational sub-data to execute the first computational sub-command further includes:.

In an embodiment of the present disclosure, the method further includes:.

In an embodiment of the present disclosure, the step of allocating the corresponding computational sub-command and the computational sub-data to each operation module according to the received computational command and the computational data includes:.

In an embodiment of the present disclosure, the method further includes:
selectively connecting operation modules according to a computational logic relationship between the computational sub-commands.

In the embodiments above, the description of each embodiment has its own emphasis. For a part that is not described in detail in one embodiment, reference may be made to related descriptions in other embodiments.

In the several embodiments provided in this disclosure, it should be understood that the disclosed device may be implemented in other ways. For instance, the embodiments above are merely illustrative. For instance, the division of the units is only a logical function division. In a real implementation, there may be another manner for division. For instance, a plurality of units or components may be combined or may be integrated in another system, or some features can be ignored or not performed. In addition, the displayed or discussed mutual coupling or direct coupling or communication connection may be implemented through indirect coupling or communication connection of some interfaces, devices or units, and may be electrical or other forms.

The units described as separate components may or may not be physically separated. The components shown as units may or may not be physical units. In other words, the components may be located in one place, or may be distributed to a plurality of network units. According to certain needs, some or all of the units can be selected for realizing the purposes of the embodiments of the present disclosure.

In addition, the functional units in each embodiment of the present application may be integrated into one processing unit, or each of the units may exist separately and physically, or two or more units may be integrated into one unit. The integrated units above may be implemented in the form of hardware or in the form of software program modules.

When the integrated units are implemented in the form of a software program module and sold or used as an independent product, they may be stored in a computer-readable memory. Based on such understanding, the essence of the technical solutions of the present disclosure, or a part of the present disclosure that contributes to the prior art, or all or part of technical solutions, can all or partly embodied in the form of a software product that is stored in a memory. The software product includes several instructions to enable a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in the embodiments of the present disclosure. The foregoing memory includes: a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk, or an optical disc, and other media that can store program codes.

Claim 1:
An operation device, comprising a plurality of operation modules (<NUM>) configured to execute corresponding computational sub-commands in parallel to complete a computational operation of a network model,
wherein, each of the operation modules (<NUM>) includes:
at least one operation unit (<NUM>) configured to execute a first computational sub-command by using first computational sub-data;
a storage unit (<NUM>), which is at least configured to store the first computational sub-data, wherein the first computational sub-data includes data for executing the first computational sub-command;
characterized in that
the operation device further comprises a control module (<NUM>) configured to allocate a corresponding computational sub-command and corresponding computational sub-data to the operation modules (<NUM>) according to a received computational command and computational data, wherein,
the computational command includes a plurality of computational sub-commands, and the computational data includes computational sub-data required for executing the computational sub-commands,
the control module (<NUM>) is configured to determine whether each operation module (<NUM>) needs data from another operation module when executing the corresponding computational sub-command,
when the operation module (<NUM>) needs the data from another operation module, the control module (<NUM>) is configured to establish a connection between the two operation modules;
when the operation module (<NUM>) does not need the data from another operation module, the control module (<NUM>) is so configured as not to establish a connection between the two operation modules.