WO2019159783A1 - 分散深層学習システム - Google Patents
分散深層学習システム Download PDFInfo
- Publication number
- WO2019159783A1 WO2019159783A1 PCT/JP2019/004213 JP2019004213W WO2019159783A1 WO 2019159783 A1 WO2019159783 A1 WO 2019159783A1 JP 2019004213 W JP2019004213 W JP 2019004213W WO 2019159783 A1 WO2019159783 A1 WO 2019159783A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- computing interconnect
- learning
- value
- gradient
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Definitions
- the present invention relates to a distributed deep learning system that executes deep learning, which is machine learning using a neural network, in a distributed manner by a plurality of learning nodes.
- Non-Patent Document 1 For example, in Non-Patent Document 1, as shown in FIG. 36, four learning nodes 100-1 to 100-4, an Infiniband switch 101, and a head node 102 are connected via an InfiniBand network. A connected distributed deep learning system is disclosed. Each learning node 100-1 to 100-4 is equipped with four GPUs (GraphicsGraphProcessing) Unit). In the distributed deep learning system disclosed in Non-Patent Document 1, the learning operation is performed in parallel by the four learning nodes 100-1 to 100-4 to increase the speed.
- GPUs GraphicsGraphProcessing
- Non-Patent Document 2 discloses a configuration in which a learning node (GPU server) equipped with eight GPUs and an Ethernet (registered trademark) switch are connected via an Ethernet network.
- Non-Patent Document 2 discloses examples in which one, two, four, eight, sixteen, thirty-two, and forty-four learning nodes are used.
- machine learning is performed using a distributed synchronous stochastic gradient descent method (Distributed synchronous SGD (Stochastic Gradient Descent)). Specifically, the following procedure is used.
- a collection of extracted learning data is called a mini batch.
- III Divide the mini-batch into the number of GPUs and assign to each GPU.
- III In each GPU, a loss function L is used as an index of how far the output value from the neural network when learning data assigned in (II) is input differs from the correct answer (referred to as teacher data).
- W is obtained. In the process of obtaining the loss function, output values are calculated in order from the input layer to the output layer of the neural network, and this process is called forward propagation.
- each GPU In each GPU, a partial differential value (gradient) is obtained by each configuration parameter (weight of the neural network, etc.) of the neural network with respect to the loss function value obtained in (III). In this step, the gradient with respect to the constituent parameters of each layer is calculated in order from the output layer to the input layer of the neural network, and this step is called back propagation. (V) The average of the gradient calculated for each GPU is calculated.
- the loss function L (w) becomes smaller. Update each configuration parameter of the neural network.
- the stochastic gradient descent method is a calculation process in which the loss function L (w) is reduced by slightly changing the value of each constituent parameter in the direction of the gradient. By repeating this process, the neural network is updated to one having a small loss function L (w), that is, a highly accurate one that produces an output close to the correct answer.
- Non-Patent Document 3 discloses a distributed deep learning system having a configuration in which 128 learning nodes equipped with 8 GPUs are connected via an InfiniBand network.
- any of the distributed deep learning systems of Non-Patent Documents 1 to 3 it is shown that as the number of learning nodes increases, the learning speed increases and the learning time can be shortened.
- these configuration parameters are transmitted and received between the learning nodes, or between the learning node and the head node of Non-Patent Document 1. It is necessary to perform calculations such as calculating the average value by transmitting and receiving between them.
- Non-Patent Document 3 discloses the relationship between the time required to perform 100 cycles of learning processing, the time required for communication, and the number of GPUs. According to this relationship, as the number of GPUs increases, the time required for communication increases. In particular, when the number of GPUs is 512 or more, the time rapidly increases.
- An object of the present invention is to perform distributed processing capable of performing high-speed collaborative processing between learning nodes connected in a communication network while speeding up learning by parallel processing by a large number of learning nodes connected to the communication network.
- the purpose is to provide a deep learning system.
- the distributed deep learning system (first embodiment) of the present invention includes a plurality of learning nodes and a computing interconnect device connected to the plurality of learning nodes via a communication network.
- a gradient calculation unit for calculating a gradient of a loss function from an output result obtained by inputting learning data to a learning target neural network, and a first transmission for packetizing the calculation result of the gradient calculation unit and transmitting the packet to the computing interconnect device Unit, a first reception unit that receives a packet transmitted from the computing interconnect device and acquires a value stored in the packet, and the value received by the first reception unit based on the value acquired by the first reception unit
- a configuration parameter updating unit for updating a configuration parameter of the neural network,
- the interconnect device receives a packet transmitted from each learning node, acquires a value of the gradient stored in the packet, and the gradient received by the second reception unit.
- An arithmetic unit that performs a calculation process with a value as an input and a second transmission unit that packetizes the calculation result of the
- the distributed deep learning system of the present invention includes a plurality of learning nodes and a computing interconnect device connected to the plurality of learning nodes via a communication network. Includes a gradient calculation unit that calculates a gradient of a loss function from an output result obtained by inputting learning data to a learning target neural network, and a first packet that transmits the calculation result of the gradient calculation unit to the computing interconnect device. Based on the value acquired by the first receiving unit, the first receiving unit that receives the packet transmitted from the computing interconnect device, and acquires the value stored in the packet. And a configuration parameter update unit that updates the configuration parameters of the neural network.
- the interconnect interconnect device receives a configuration parameter memory for storing the configuration parameters of the neural network of each learning node and a packet transmitted from each learning node, and acquires the value of the gradient stored in the packet.
- a second receiving unit a computing unit that performs calculation processing using the gradient value acquired by the second receiving unit as an input, a calculation result of the computing unit, and a configuration parameter stored in the configuration parameter memory.
- a configuration parameter update calculation unit that calculates the updated value of the configuration parameter based on the value and updates the value of the configuration parameter stored in the configuration parameter memory; and A second transmission unit that packetizes the value and transmits the packet to each learning node, and the configuration parameter update unit of each learning node includes:
- the configuration parameters of the serial neural network is characterized in that the overwriting by the first updated value of the configuration parameter receiving unit is acquired.
- the distributed deep learning system of the present invention includes a plurality of learning nodes and a plurality of computing interconnect devices connected to the plurality of learning nodes or other devices via a communication network.
- Each learning node has a gradient calculation unit that calculates the gradient of the loss function from the output result obtained by inputting the learning data to the learning target neural network, and the calculation result of this gradient calculation unit is packetized and connected to its own node.
- Receiving a packet transmitted from the computing interconnect device connected to the first node, and a first transmission unit that transmits to the calculated computing interconnect device, and obtaining a value stored in the packet Based on the value acquired by the first receiver and the first receiver, the configuration parameters of the neural network are set.
- a configuration parameter updating unit for updating a meter, and the computing interconnect device located at the top of the plurality of computing interconnect devices is a packet transmitted from the computing interconnect device immediately below, And a second receiving unit that receives a packet transmitted from the learning node connected to the own device and acquires the value of the gradient stored in the received packet, and the second receiving unit acquires A first arithmetic unit that performs calculation processing using the gradient value as an input, and packetizes the calculation result of the first arithmetic unit, and the computing interconnect device immediately below and the device connected to the device A second transmitter for transmitting to the learning node, and among the plurality of computing interconnect devices,
- the computing interconnect device located between the lower level computing interconnect device or the lower learning node and the upper computing interconnect device transmits a packet transmitted from the immediately lower computing interconnect device.
- a third reception unit that receives a packet transmitted from the learning node connected to the own device and acquires the gradient value stored in the received packet; and the third reception unit acquires A second computing unit that performs calculation processing using the gradient value as an input, and a third transmission unit that packetizes the computation result of the second computing unit and transmits the packetized result to the computing interconnect device directly above.
- the packet transmitted from the computing interconnect device immediately above Transfer to the computing interconnect device or the learning node connected to its own device, or receive a packet transmitted from the immediately higher computing interconnect device to obtain the value stored in the packet,
- the acquired value is packetized again, and includes a transfer unit that transmits the packet to the computing interconnect device directly below or the learning node connected to the own device.
- the distributed deep learning system of the present invention includes a plurality of learning nodes and a plurality of computing interconnect devices connected to the plurality of learning nodes or other devices via a communication network.
- Each learning node has a gradient calculation unit that calculates the gradient of the loss function from the output result obtained by inputting the learning data to the learning target neural network, and the calculation result of this gradient calculation unit is packetized and connected to its own node.
- Receiving a packet transmitted from the computing interconnect device connected to the first node, and a first transmission unit that transmits to the calculated computing interconnect device, and obtaining a value stored in the packet A configuration parameter of the neural network based on a first receiving unit and a value acquired by the first receiving unit.
- a configuration parameter updating unit that updates data, and the computing interconnect device located at the top of the plurality of computing interconnect devices stores the configuration parameters of the neural network of each learning node The value of the gradient stored in the received packet received from the parameter memory, the packet transmitted from the computing interconnect device immediately below and the packet transmitted from the learning node connected to the device itself
- a first receiving unit that acquires the first computing unit that performs calculation processing using the gradient value obtained by the second receiving unit as an input, a calculation result of the first computing unit, and the configuration parameter Based on the configuration parameter value stored in memory, the updated value of this configuration parameter is calculated.
- a configuration parameter update calculation unit that updates the value of the configuration parameter stored in the configuration parameter memory; and the computing interconnect device that is directly subordinated by packetizing the updated value of the configuration parameter; and A second transmission unit for transmitting to the learning node connected to the own device, and among the plurality of computing interconnect devices, the lower computing interconnect device or the lower learning node and the upper learning node
- the computing interconnect device located between the computing interconnect device and Receiving the packet transmitted from the computing interconnect device immediately below or the packet transmitted from the learning node connected to the own device, and obtaining the value of the gradient stored in the received packet; 3 receiving units, a second arithmetic unit that performs calculation processing using the gradient value acquired by the third receiving unit as an input, and packetizes the calculation result of the second arithmetic unit,
- the third transmission unit that transmits to the computing interconnect device, and the learning that is connected to the computing interconnect device that is directly below or the packet that is transmitted from the computing interconnect device immediately above is connected to the computing interconnect device or the
- the configuration parameter update unit of each learning node overwrites the configuration parameter of the neural network with the updated value of the configuration parameter acquired by the first reception unit.
- the distributed deep learning system of the present invention includes a plurality of learning nodes and a plurality of computing interconnect devices connected to the plurality of learning nodes or other devices via a communication network.
- the plurality of computing interconnect devices are connected by a ring-type communication network that performs communication limited to one direction, and each learning node is obtained from an output result obtained by inputting learning data to a learning target neural network.
- a gradient calculation unit for calculating the gradient of the loss function, a first transmission unit for packetizing the calculation result of the gradient calculation unit and transmitting the packet to the computing interconnect device connected to the own node; and connection to the own node Receiving a packet transmitted from the calculated computing interconnect device;
- a first reception unit that acquires a value stored in the packet, and a configuration parameter update unit that updates a configuration parameter of the neural network based on the value acquired by the first reception unit,
- the first computing interconnect device among the interconnecting devices receives the packet transmitted from the learning node connected to the own device, and acquires the gradient value stored in the packet.
- Two receiving units a third receiving unit that receives a packet transmitted from the adjacent upstream computing interconnect device, and obtains the value of the gradient stored in the packet; and the third receiving unit
- the gradient value acquired by the receiving unit is output, and when the acquired value is acquired again, the first allocating unit and the second receiving unit are discarded.
- a second transmission unit that packetizes the gradient value acquired by the unit or the gradient value output from the first allocating unit and transmits the packetized value to the adjacent downstream computing interconnect device;
- a third transmission unit configured to packetize the gradient value output from the first distribution unit and transmit the packet to the learning node connected to the own device, and the plurality of computing interconnect devices.
- the second computing interconnect device other than the first computing interconnect device receives the packet transmitted from the adjacent upstream computing interconnect device, and stores the value stored in this packet.
- a computing unit that performs a calculation process by using the dividing unit, the incomplete value output from the second allocating unit, and the gradient value obtained by the fifth receiving unit;
- a fourth transmission unit that packetizes the calculation result or the completion value output from the second distribution unit and transmits the packet to the adjacent downstream computing interconnect device; and the second distribution And a fifth transmission unit configured to packetize the completion value output from the unit and transmit the packet to the learning node connected to the own device.
- the distributed deep learning system (sixth embodiment) of the present invention includes a plurality of learning nodes, and a plurality of computing interconnect devices connected to the plurality of learning nodes or other devices via a communication network.
- the plurality of computing interconnect devices are connected by a ring-type communication network that performs communication limited to one direction, and each learning node is obtained from an output result obtained by inputting learning data to a learning target neural network.
- a gradient calculation unit for calculating the gradient of the loss function, a first transmission unit for packetizing the calculation result of the gradient calculation unit and transmitting the packet to the computing interconnect device connected to the own node; and connection to the own node Receiving a packet transmitted from the calculated computing interconnect device;
- a first reception unit that acquires a value stored in the packet, and a configuration parameter update unit that updates a configuration parameter of the neural network based on the value acquired by the first reception unit,
- the first computing interconnect device among the storage interconnect devices includes a configuration parameter memory for storing the configuration parameters of the neural network of each learning node, and a packet transmitted from the learning node connected to the own device.
- the second reception unit that receives and receives the gradient value stored in the packet and the packet transmitted from the adjacent upstream computer interconnect device are received and stored in the packet.
- a third receiving unit for acquiring the value of the gradient, and the third receiving unit acquired by the third receiving unit A first distribution unit to be discarded if the already acquired value is acquired again, and the gradient value output from the first distribution unit and stored in the configuration parameter memory
- a configuration parameter update calculation unit that calculates the updated value of the configuration parameter based on the configuration parameter value being updated, and updates the value of the configuration parameter stored in the configuration parameter memory;
- a second transmission unit configured to packetize the gradient value acquired by the second reception unit or the updated value of the configuration parameter, and transmit the packet to the adjacent downstream computing interconnect device; and the configuration parameter
- a third transmission unit configured to packetize the updated value of the packet and transmit the packet to the learning node connected to the own device.
- the second computing interconnect device other than the first computing interconnect device receives the packet transmitted from the adjacent upstream computing interconnect device, and stores the value stored in this packet.
- a fourth receiving unit that acquires the packet transmitted from the learning node connected to the device, and a fifth receiving unit that acquires the value of the gradient stored in the packet;
- a second distribution unit that distributes the value acquired by the fourth reception unit to an incomplete value of the calculation process for the gradient and a value after the update of the configuration parameter, and is output from the second distribution unit
- An arithmetic unit that performs a calculation process using the incomplete value and the gradient value acquired by the fifth receiving unit as input, and a calculation result of the arithmetic unit or an output from the second allocating unit
- the updated value of the configuration parameter is packetized and transmitted to the adjacent downstream computing interconnect device; and the configuration parameter output from the second distribution unit
- a fifth transmission unit that packetizes the updated value and transmits the packet to the learning node connected to the own device, and the configuration parameter update unit of each learning no
- transmission / reception processing of communication packets between the computing interconnect device and each learning node can be performed simultaneously in parallel at high speed
- communication processing and gradient addition processing can be performed by a conventional head node.
- distributed deep learning can be processed at high speed.
- FIG. 1 is a block diagram showing the configuration of the distributed deep learning system according to the first embodiment of the present invention.
- FIG. 2 is a block diagram showing a configuration of a two-layer neural network.
- FIG. 3 is a diagram for explaining the procedure of the conventional distributed learning process.
- FIG. 4 is a diagram for explaining the procedure of distributed learning processing according to the first embodiment of the present invention.
- FIG. 5 is a diagram for explaining another procedure of distributed learning processing according to the first embodiment of the present invention.
- FIG. 6 is a block diagram showing the configuration of the computing interconnect device of the distributed deep learning system according to the first embodiment of the present invention.
- FIG. 7 is a block diagram illustrating a configuration example of learning nodes of the distributed deep learning system according to the first embodiment of the present invention.
- FIG. 8 is a block diagram showing the configuration of the distributed deep learning system according to the second embodiment of the present invention.
- FIG. 9 is a block diagram showing the configuration of the computing interconnect device of the distributed deep learning system according to the second embodiment of the present invention.
- FIG. 10 is a block diagram showing a configuration example of a learning node of the distributed deep learning system according to the second example of the present invention.
- FIG. 11 is a block diagram showing the configuration of the distributed deep learning system according to the third embodiment of the present invention.
- FIG. 12 is a block diagram showing another configuration of the distributed deep learning system according to the third embodiment of the present invention.
- FIG. 13 is a diagram for explaining the operation of the distributed deep learning system according to the third embodiment of the present invention.
- FIG. 14 is a block diagram showing the configuration of the parent computing interconnect device of the distributed deep learning system according to the third embodiment of the present invention.
- FIG. 15 is a block diagram showing the configuration of the child computing interconnect device of the distributed deep learning system according to the third embodiment of the present invention.
- FIG. 16 is a diagram for explaining the operation of the distributed deep learning system according to the fourth embodiment of the present invention.
- FIG. 17 is a block diagram showing the configuration of the parent computing interconnect device of the distributed deep learning system according to the fourth embodiment of the present invention.
- FIG. 18 is a block diagram showing the configuration of the distributed deep learning system according to the fifth embodiment of the present invention.
- FIG. 19 is a diagram for explaining the operation of the distributed deep learning system according to the fifth embodiment of the present invention.
- FIG. 19 is a diagram for explaining the operation of the distributed deep learning system according to the fifth embodiment of the present invention.
- FIG. 20 is a block diagram showing the configuration of the child computing interconnect device of the distributed deep learning system according to the fifth embodiment of the present invention.
- FIG. 21 is a block diagram showing the configuration of the parent computing interconnect device of the distributed deep learning system according to the fifth embodiment of the present invention.
- FIG. 22 is a diagram for explaining the operation of the parent computing interconnect device of the distributed deep learning system according to the fifth embodiment of the present invention.
- FIG. 23 is a diagram for explaining the operation of the child computing interconnect device of the distributed deep learning system according to the fifth embodiment of the present invention.
- FIG. 24 is a diagram for explaining the operation of the parent computing interconnect device of the distributed deep learning system according to the fifth embodiment of the present invention.
- FIG. 25 is a diagram for explaining the operation of the child computing interconnect device of the distributed deep learning system according to the fifth embodiment of the present invention.
- FIG. 26 is a diagram for explaining the operation of the parent computing interconnect device of the distributed deep learning system according to the fifth embodiment of the present invention.
- FIG. 27 is a block diagram showing the configuration of the distributed deep learning system according to the sixth embodiment of the present invention.
- FIG. 28 is a diagram for explaining the operation of the distributed deep learning system according to the sixth embodiment of the present invention.
- FIG. 29 is a block diagram showing the configuration of the child computing interconnect device of the distributed deep learning system according to the sixth embodiment of the present invention.
- FIG. 30 is a block diagram showing the configuration of the parent computing interconnect device of the distributed deep learning system according to the sixth embodiment of the present invention.
- FIG. 31 is a diagram for explaining the operation of the parent computing interconnect device of the distributed deep learning system according to the sixth embodiment of the present invention.
- FIG. 32 is a diagram for explaining the operation of the child computing interconnect device of the distributed deep learning system according to the sixth embodiment of the present invention.
- FIG. 33 is a diagram for explaining the operation of the parent computing interconnect device of the distributed deep learning system according to the sixth embodiment of the present invention.
- FIG. 34 is a diagram for explaining the operation of the child computing interconnect device of the distributed deep learning system according to the sixth embodiment of the present invention.
- FIG. 35 is a diagram for explaining the operation of the parent computing interconnect device of the distributed deep learning system according to the sixth embodiment of the present invention.
- FIG. 36 is a block diagram showing a configuration of a conventional distributed deep learning system.
- FIG. 1 is a block diagram showing the configuration of the distributed deep learning system according to the first embodiment of the present invention.
- the distributed deep learning system of this embodiment includes one computing interconnect (CI) device 1 and four learning nodes 2-0 to 2-3.
- CI computing interconnect
- the computing interconnect device or the learning node means a device distributed on the network.
- the computing interconnect device 1 has four communication ports, and each communication port is connected to the communication ports of the learning nodes 2-0 to 2-3 via the communication network 3.
- the communication network 3 a network that performs communication by exchanging communication packets, such as Ethernet or InfiniBand, is used.
- the learning nodes 2-0 to 2-3 calculate the output value of the neural network, which is a mathematical model built as a software, and further update the configuration parameters of the neural network according to the learning data to improve the accuracy of the output value. It is a device with a learning function that improves A neural network is constructed in each learning node 2-0 to 2-3.
- the learning nodes 2-0 to 2-3 may be realized by software on a CPU or GPU, or an LSI (Large) formed in an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Specific Integrated Circuit). (Scale ⁇ ⁇ Integration) circuit.
- FIG. 2 shows a very simple two-layer neural network including an input layer (first layer), an intermediate layer (second layer), and an output layer (third layer) as an example of the neural network.
- Nk (i) in FIG. 2 is the k-th layer, i-th neuron.
- x1 and x2 are inputs
- y1 and y2 are outputs
- w1 (11), w1 (12),..., w1 (23) are weight parameters in the first layer
- w2 (11), w2 (12),. .., W2 (32) is a weight parameter of the second layer.
- the configuration parameters of the neural network in the example of FIG. 2 are weights w1 (11), w1 (12),..., W1 (23), w2 (11), w2 (12),. 32). By optimizing these configuration parameters, the accuracy of the neural network will be improved.
- a loss function is defined as an index of how far the output value of the neural network is from the teacher data, and the configuration parameters are updated so that this loss function becomes smaller.
- the teacher data corresponding to the input learning data x1 and x2 is t1 and t2
- the loss function L is expressed by the following equation, for example.
- a partial differential value (referred to as a gradient) by each component parameter of the neural network with respect to the loss function L is obtained.
- the slope is:
- each configuration parameter of the neural network is updated using the gradient so that the loss function L becomes smaller.
- the gradient descent method is used to update each weight parameter as follows.
- each weight parameter is changed by an amount proportional to the learning rate ⁇ in the direction opposite to the gradient, that is, the direction in which the loss function L is decreased. Therefore, the loss function L of the updated neural network is smaller than that before the update.
- the loss function L calculation, the gradient calculation, and the configuration parameter update process are performed on a set of input learning data. Then, the next input learning data is input to the neural network with the updated configuration parameter, the same processing is performed, and the configuration parameter is updated. By repeating this cycle, the neural network is learned by updating to a neural network with a small loss function L.
- the output value is calculated in order from the input layer to the output layer of the neural network, so this step is called forward propagation.
- a technique called back propagation back propagation (back propagation) is often used in which the gradient with respect to the configuration parameters of each layer is calculated in order from the output layer of the neural network to the input layer.
- the learning data x is divided into the number of learning nodes 100-0 to 100-3 and assigned to the learning nodes 100-0 to 100-3.
- x0 to x3 are shown one by one as representative learning data to be assigned to each of the learning nodes 100-0 to 100-3, but each of the learning data x0 to x3 includes one or more learning data. Consists of a set.
- each of the learning nodes 100-0 to 100-3 inputs the learning data x0 to x3 to the neural network, and obtains the loss function L by the forward propagation method (step S100 in FIG. 3).
- the obtained loss function L is one for each learning node 100-0 to 100-3 (each neural network).
- each learning node 100-0 to 100-3 obtains the gradient of the loss function L obtained in step S100 by a back propagation method (step S101 in FIG. 3).
- the gradient of the loss function L is a vector including components for each configuration parameter as shown in Equation (2). In the present invention, such a gradient vector is simply referred to as a gradient.
- Step S102 in FIG. 3 This process is called an All-reduce process.
- the sum of the gradients may be calculated instead of the average of the gradients. At this time, for example, if (1 / number of learning nodes) is multiplied by the learning rate ⁇ at the time of updating the next weight parameter, the same result as that obtained for the average value of the gradient is obtained.
- each learning node 100-0 to 100-3 updates the weight parameter of the neural network using the average value of the gradient calculated in step S102 (step S103 in FIG. 3). This completes one cycle of distributed learning.
- the learning nodes 2-0 to 2-3 input the learning data x0 to x3 to the neural network, respectively, and calculate the loss function L (step S200 in FIG. 4). Subsequently, the slope of the loss function L is calculated (step S201 in FIG. 4). Then, each learning node 2-0 to 2-3 transmits the calculated value of the calculated gradient to the computing interconnect device 1 connected to each learning node 2-0 to 2-3 via the communication network (FIG. 4 step S202).
- FIG. 4 shows x0 to x3 one by one as representative learning data to be assigned to each of learning nodes 2-0 to 2-3, but learning data x0 to x3 is 1 each. Or a set of a plurality of learning data.
- the computing interconnect device 1 calculates the average value of the gradients transmitted from the learning nodes 2-0 to 2-3, and sends the calculated result to the learning nodes 2-0 to 2-3. Transmit (step S204 in FIG. 4) All-reduce processing is performed (step S203 in FIG. 4). *
- each learning node 2-0 to 2-3 updates the configuration parameter of the neural network using the average value of the gradient transmitted from the computing interconnect device 1 (step S205 in FIG. 4).
- the sum of the gradients may be calculated instead of the average of the gradients.
- a weighted average may be used by applying a weighting constant to each gradient, or the root mean square of the gradient may be taken.
- the gradient calculation calculates the gradient for the configuration parameters (weight parameters) of each layer in order from the output layer of the neural network to the input layer according to the back propagation method. Therefore, when transmitting the gradient calculation result of each learning node 2-0 to 2-3 to the computing interconnect device 1, it is not necessary to wait until the gradient calculation of all layers is completed.
- each learning node 2-0 to 2-3 calculates the loss function L in the same manner as described above (step S200 in FIG. 5), and calculates the gradient of the loss function L (step S201 in FIG. 5), but step S201.
- step S206 it is possible to transmit to the computing interconnect device 1 from the gradient values for the configuration parameters for which calculation has been completed without waiting for the calculation of gradients for all the configuration parameters to be completed (step S206 in FIG. 5).
- the computing interconnect device 1 calculates the average value of the gradients transmitted from the learning nodes 2-0 to 2-3 (step S207 in FIG. 5), and calculates the average gradient value for each learning node 2-0. To 2-3 (step S208 in FIG. 5).
- the learning nodes 2-0 to 2-3 When each of the learning nodes 2-0 to 2-3 receives the calculation result from the computing interconnect device 1, the learning nodes 2-0 to 2-3 use the received gradient average value without waiting until all the calculation results are received. Is updated (step S209 in FIG. 5). In this way, since the gradient calculation, the All-reduce process, and the configuration parameter update can be processed in a pipeline manner, further speedup is possible.
- the computing interconnect device 1 may calculate the sum of the gradients for each configuration parameter instead of the average of the gradients.
- the computing interconnect device 1 may calculate the sum of the gradients for each configuration parameter instead of the average of the gradients.
- an example of calculating the sum of gradients will be described.
- FIG. 6 shows the configuration of the computing interconnect device 1 of this embodiment.
- the computing interconnect device 1 is provided for each of the learning nodes 2-0 to 2-3 connected to the learning nodes 2-0 to 2-3 and the transmission / reception ports P0 to P3 connected to the learning network 2-0.
- each of the learning nodes 2-0 to 2-3 receiving units 10-0 to 10-3 that extract the gradient calculation result from the communication packets transmitted from the learning nodes 2-0 to 2-3, and for each learning node Buffer memories 11-0 to 11-3 that temporarily store calculation results of gradients 2-0 to 2-3, an adder 12 (calculator) that calculates the sum of gradients, and learning nodes 2-0 to 2-
- a transmission unit 13-0 to 13-3 that is provided every three, writes the sum of gradients calculated by the adder 12 to a communication packet, and transmits it to the corresponding learning nodes 2-0 to 2-3; Provided every -0 to 2-3.
- a control unit 14-0 to 14-3 for controlling Amemori 11-0 to 11-3 and the transmission section 13-0 to 13-3.
- a communication packet includes a header 200 and a data payload 201.
- the data payloads of the communication packets RP0 to RP3 transmitted from the learning nodes 2-0 to 2-3 and received at the ports P0 to P3 gradient values calculated by the learning nodes 2-0 to 2-3, respectively ( 6) and the sequential number of the communication packet assigned to each learning node (“003” in the example of FIG. 6) are stored.
- the receiving units 10-0 to 10-3 of the computing interconnect device 1 extract the gradient values G0 to G3 and the sequential numbers from the data payloads of the received communication packets RP0 to RP3, respectively, and buffer memories 11-0 to 11- 3 is stored.
- the reason for temporarily storing the data in the buffer memories 11-0 to 11-3 is that even if the communication packets are assigned the same sequential number (that is, communication packets corresponding to the same configuration parameter), each learning node 2-0 This is because they do not always arrive at completely the same timing from ⁇ 2-3.
- the control units 14-0 to 14-3 of the computing interconnect device 1 store the gradient values G0 to G3 assigned with the same sequential numbers from all the corresponding learning nodes 2-0 to 2-3 as buffer memories. When written to 11-0 to 11-3, these gradient values G0 to G3 are read from the buffer memories 11-0 to 11-3 and passed to the adder 12. As described above, the learning nodes 2-0 to 2 are controlled by calculating the sum of the gradients stored in the communication packets having the same sequential number from the learning nodes 2-0 to 2-3. Guarantees that -3 corresponding gradient values can be added together.
- the adder 12 of the computing interconnect device 1 calculates the sum of gradients ⁇ G as the following equation and outputs the calculation result.
- ⁇ G G0 + G1 + G2 + G3 (4)
- the addition operation for the gradient is an operation for adding components corresponding to the same configuration parameter.
- the control units 14-0 to 14-3 transmit the sequential numbers (“003” in the example of FIG. 6) corresponding to the gradient values G0 to G3 read from the buffer memories 11-0 to 11-3 to the transmission unit 13-0. To 13-3.
- the transmission units 13-0 to 13-3 send the calculation result ⁇ G of the sum of gradients calculated by the adder 12 and the sequential number received from the control units 14-0 to 14-3 to the data payload of the communication packets TP0 to TP3.
- the control units 14-0 to 14-3 simultaneously transmit the communication packets TP0 to TP3 from the transmission units 13-0 to 13-3 to the learning nodes 2-0 to 2-3.
- the computing interconnect device 1 as described above can be realized by an LSI circuit formed in an FPGA or ASIC. The same applies to the computing interconnect devices of the following embodiments.
- FIG. 7 is a block diagram showing a configuration example of the learning node 2-0.
- the learning node 2-0 includes an input unit 20 that receives learning data, a loss function calculation unit 21 that calculates a loss function L when the learning data is input, and a gradient calculation unit 22 that calculates the gradient of the loss function L.
- a transmission unit 23 that packetizes the gradient value calculated by the gradient calculation unit 22 and transmits the packet to the computing interconnect device 1
- a reception unit 24 that receives a communication packet transmitted from the computing interconnect device 1
- a configuration parameter updating unit 25 that updates a configuration parameter (weight parameter) of the neural network using the sum of gradients stored in the communication packet transmitted from the computing interconnect device 1, and an output of the neural network that is a mathematical model
- a neural network 26 having a function of calculating a value That.
- each learning node 2-0 to 2-3 writes the calculation result of the gradient calculated by the gradient calculation unit 22 and the sequential number in the data payload of the communication packets RP0 to RP3, thereby calculating the computing interconnect. Transmit to device 1.
- the receiving unit 24 of each learning node 2-0 to 2-3 takes out the calculation result of the gradient sum and the sequential number from the data payload of the communication packets TP0 to TP3 received from the computing interconnect device 1.
- the configuration parameter updating unit 25 of each learning node 2-0 to 2-3 updates the configuration parameter of the neural network 26 specified by the sequential number based on the calculation result of the sum of gradients.
- the learning nodes 2-0 to 2-3 have the same configuration of the neural network 26. The same applies to the following other embodiments.
- the computing interconnect device 1 calculates the sum of the gradients, and the learning nodes 2-0 to 2-3 update the neural network configuration parameters.
- the calculation of updating the configuration parameters of the neural network is also performed by the computing interconnect device.
- FIG. 8 is a block diagram showing the configuration of the distributed deep learning system according to the present embodiment.
- the distributed deep learning system of this embodiment includes one computing interconnect device 1a, four learning nodes 2a-0 to 2a-3, a computing interconnect device 1a, and learning nodes 2a-0 to 2a-.
- the communication network 3 is connected to the communication network 3.
- FIG. 9 is a block diagram showing the configuration of the computing interconnect device 1a of the present embodiment.
- the same components as those in FIG. 6 are denoted by the same reference numerals.
- the computing interconnect device 1a of the present embodiment includes transmission / reception ports P0 to P3 connected to the learning nodes 2a-0 to 2a-3 via the communication network 3, and receiving units 10-0 to 10-3. , Buffer memories 11-0 to 11-3, adder 12, transmission units 13a-0 to 13a-3, control units 14a-0 to 14a-3, and learning nodes 2a-0 to 2a-3.
- a configuration parameter memory 15 that stores configuration parameters of the neural network 26 to be learned, and an NN (neural network) configuration parameter update calculation unit 16 that calculates updated values of the configuration parameters (weight parameters) of the neural network are provided. Yes.
- the initial values of the same configuration parameters are set in all the learning nodes 2a-0 to 2a-3 in the neural network 26 of the learning nodes 2a-0 to 2a-3.
- the initial values of the configuration parameters are transmitted to the computing interconnect device 1 using communication packets from the learning nodes 2a-0 to 2a-3, for example.
- the initial value of the configuration parameter is stored in the configuration parameter memory 15.
- each of the learning nodes 2a-0 to 2a-3 inputs the learning data to each of the neural networks 26 in which the initial values of the configuration parameters are set, and calculates the loss function L. Next, the slope of the loss function L is calculated. Then, the transmission unit 23 of each learning node 2a-0 to 2a-3 writes the calculation result of the gradient calculated by the gradient calculation unit 22 and the sequential number in the data payload of the communication packets RP0 to RP3, and calculates Transmit to the interconnect device 1a.
- the gradient values calculated by the learning nodes 2a-0 to 2a-3 are respectively included in the data payloads of the communication packets TP0 to TP3 received by the receiving units 10-0 to 10-3 of the computing interconnect device 1a (see FIG. 9 (G0 to G3) and a sequential number (“003” in the example of FIG. 9) are stored.
- control units 14a-0 to 14a-3 of the computing interconnect device 1a are provided with the same sequential numbers from all the learning nodes 2a-0 to 2a-3.
- the values G0 to G3 are written in the buffer memories 11-0 to 11-3
- the gradient values G0 to G3 are read from the buffer memories 11-0 to 11-3 and passed to the adder 12.
- the adder 12 calculates the sum ⁇ G of gradients for each configuration parameter as shown in Equation (4), and outputs the calculation result.
- the NN configuration parameter update calculation unit 16 updates the configuration parameter of the neural network based on the sum ⁇ G of the gradients calculated by the adder 12 and the value w_old of the configuration parameter stored in the configuration parameter memory 15.
- the value w_new is calculated for each configuration parameter and output to the transmission units 13a-0 to 13a-3. For example, when the gradient descent method is used as the update method, the following calculation is performed. w_new ⁇ w_old ⁇ ⁇ ⁇ G (5)
- the NN configuration parameter update calculation unit 16 outputs the updated value w_new of the configuration parameter to the transmission units 13a-0 to 13a-3, and at the same time, sets the value of the configuration parameter stored in the configuration parameter memory 15 as follows. Overwrite with the updated value w_new.
- the control units 14a-0 to 14a-3 transmit the sequential numbers (“003” in the example of FIG. 6) corresponding to the gradient values G0 to G3 read from the buffer memories 11-0 to 11-3 to the transmission unit 13a-0. To 13a-3.
- the transmission units 13-0 to 13-3 transmit the updated value w_new of the configuration parameter calculated by the NN configuration parameter update calculation unit 16 and the sequential number received from the control units 14a-0 to 14a-3 to the communication packet TP0.
- the control units 14a-0 to 14a-3 simultaneously transmit the communication packets TP0 to TP3 from the transmission units 13a-0 to 13a-3 to the learning nodes 2a-0 to 2a-3.
- the computing interconnect device 1a as described above can be realized by an LSI circuit formed in an FPGA or ASIC.
- FIG. 10 is a block diagram showing a configuration example of the learning node 2a-0.
- the learning node 2a-0 is stored in a communication packet transmitted from the input unit 20, the loss function calculation unit 21, the gradient calculation unit 22, the transmission unit 23, the reception unit 24a, and the computing interconnect device 1a.
- the configuration parameter updating unit 25 a that updates the configuration parameter of the neural network 26 using the updated value w_new of the configuration parameter and the neural network 26 are provided.
- each learning node 2a-0 to 2a-3 extracts the updated value w_new and the sequential number of the configuration parameter from the data payload of the communication packets TP0 to TP3 received from the computing interconnect device 1a.
- the configuration parameter updating unit 25a of each of the learning nodes 2a-0 to 2a-3 overwrites the configuration parameter of the neural network 26, which is specified by the sequential number, with the updated value w_new of the configuration parameter, so that the neural network 26 Update.
- the arrival times of communication packets from the learning nodes 2a-0 to 2a-3 are varied.
- transmission / reception processing of communication packets between the learning nodes 2a-0 to 2a-3 can be simultaneously performed at high speed in hardware processing,
- the gradient addition process can be performed at a higher speed than when software is processed.
- both the gradient sum calculation and the configuration parameter update calculation may be performed independently for each configuration parameter regardless of the configuration of the neural network 26, so that the learning nodes 2a-0 to 2a-3 perform the same calculation.
- the arithmetic unit of the computing interconnect device 1a has an advantage that the same dedicated arithmetic circuit can be used.
- the distributed deep learning system of this embodiment includes one parent computing interconnect device 4, a plurality of child computing interconnect devices 5-0 to 5-3, and a plurality of learning nodes 2-0 to 2-15.
- a communication network 6 that connects the parent computing interconnect device 4 and the child computing interconnect devices 5-0 to 5-3, the child computing interconnect devices 5-0 to 5-3, and the learning node 2- And a communication network 7 for connecting 0 to 2-15.
- the parent computing interconnect device 4, the child computing interconnect devices 5-0 to 5-3, and the learning nodes 2-0 to 2-15 are connected in a tree shape as shown in FIG.
- the parent computing interconnect device 4 is connected to the top (root) of the tree, the learning nodes 2-0 to 2-15 are connected to the leaves of the tree, and the child computing interconnect is connected to the middle node
- the devices 5-0 to 5-3 are arranged.
- the child computing interconnect devices 5-0 to 5-11 are arranged in multiple stages, or a tree structure is formed in which the learning nodes 2-12 are connected directly below the parent computing interconnect device 4. Is also possible.
- the parent computing interconnect device 4 and the child computing interconnect devices 5-0 to 5-3 perform the All-reduce process in cooperation.
- 13A and 13B show the operation of the distributed deep learning system of this embodiment.
- the calculation result of the gradient is sent to the child computing interconnect devices 5-0 to 5-3 to which the learning nodes 2-0 to 2-15 are connected as shown in FIG. G0 to G15 are transmitted.
- the child computing interconnect devices 5-0 to 5-3 calculate the sum of the gradients transmitted from the respective learning nodes 2-0 to 2-15 connected to the child computing interconnect devices 5-0 to 5-3, and the calculation result of the sum of the gradients Is transmitted to the higher-level computing interconnect device (the parent computing interconnect device 4 in the example of FIGS. 13A and 13B).
- the parent computing interconnect device 4 sums the sums of gradients ⁇ G0 to ⁇ G3 transmitted from the child computing interconnect devices 5-0 to 5-3 connected immediately below.
- the sum ⁇ G ⁇ G0 + ⁇ G1 + ⁇ G2 + ⁇ G3 is calculated, and the calculated gradient sum ⁇ G is transmitted to the child computing interconnect devices 5-0 to 5-3 immediately below.
- the parent computing interconnect device 4 has the gradient transmitted from the child computing interconnect devices 5-0 to 5-2 connected immediately below.
- the sum of the sum and the gradient transmitted from the learning node 2-12 connected immediately below is calculated, and the sum of the calculated gradient is calculated as the child computing interconnect devices 5-0 to 5-2 immediately below. It is transmitted to the learning node 2-12.
- FIG. 14 shows the configuration of the parent computing interconnect device 4 of this embodiment.
- the parent computing interconnect device 4 includes transmission / reception ports P0 to P3 connected to each of the child computing interconnect devices 5-0 to 5-3 via the communication network 6, and the child computing interconnect device 5-0.
- the communication packet includes the header 200 and the data payload 201.
- the data payloads of the communication packets RPC0 to RPC3 transmitted from the child computing interconnect devices 5-0 to 5-3 and received by the ports P0 to P3 are respectively included in the child computing interconnect devices 5-0 to 5-3.
- the sum of the gradients calculated in ( ⁇ G0 to ⁇ G3 in FIG. 14) and the sequential number (“003” in the example of FIG. 14) are stored.
- the receiving units 40-0 to 40-3 of the parent computing interconnect device 4 extract the gradient sums ⁇ G0 to ⁇ G3 and sequential numbers from the data payloads of the received communication packets RPC0 to RPC3, respectively, and buffer memories 41-0 to 41-3.
- the reason for temporarily storing the data in the buffer memories 41-0 to 41-3 is that even if the communication packet is assigned the same sequential number (that is, the communication packet corresponding to the same configuration parameter), each child computing interconnect This is because they do not always arrive at the same timing from the devices 5-0 to 5-3.
- the control units 44-0 to 44-3 of the parent computing interconnect device 4 add the gradient sums assigned with the same sequential numbers from all the corresponding child computing interconnect devices 5-0 to 5-3.
- ⁇ G0 to ⁇ G3 are written in the buffer memories 41-0 to 41-3
- the sums ⁇ G0 to ⁇ G3 of these gradients are read from the buffer memories 41-0 to 41-3 and passed to the adder 42.
- each child computing interconnect device 5-0 to 5-3 is controlled so as to calculate the sum of the sums of gradients stored in the communication packets having the same sequential number. It is guaranteed that the sum of the corresponding gradients of the computing interconnect devices 5-0 to 5-3 can be added.
- the adder 42 of the parent computing interconnect device 4 calculates a sum ⁇ G obtained by further summing the sums of gradients as shown in the following equation, and outputs the calculation result.
- ⁇ G ⁇ G0 + ⁇ G1 + ⁇ G2 + ⁇ G3 (6)
- the control units 44-0 to 44-3 transmit the sequential numbers (“003” in the example of FIG. 14) corresponding to the gradient sums ⁇ G0 to ⁇ G3 read from the buffer memories 41-0 to 41-3 to the transmission unit 43- Pass to 0-43-3.
- the transmission units 43-0 to 43-3 send the calculation result ⁇ G of the sum of the gradients calculated by the adder 42 and the sequential number received from the control units 44-0 to 44-3 to the data payload of the communication packets TPC0 to TPC3.
- the control units 44-0 to 44-3 simultaneously transmit the communication packets TPC0 to TPC3 from the transmission units 43-0 to 43-3 to the child computing interconnect devices 5-0 to 5-3.
- the example is described in which the child computing interconnect devices 5-0 to 5-3 are connected immediately below the parent computing interconnect device 4, but as in the example of FIG. A learning node may be connected immediately below the parent computing interconnect device 4.
- FIG. 15 shows the configuration of the child computing interconnect device 5-0.
- the child computing interconnect device 5-0 includes transmission / reception ports P0 to P3 connected to the learning nodes 2-0 to 2-3 via the communication network 7, and each of the learning nodes 2-0 to 2-3.
- the receiving units 50-0 to 50-3 for extracting the calculation result of the gradient from the communication packets transmitted from the learning nodes 2-0 to 2-3 and the learning nodes 2-0 to 2-3, Buffer memories 51-0 to 51-3 that temporarily store the calculation results of the gradients of the learning nodes 2-0 to 2-3, an adder 52 (calculator) that calculates the sum of the gradients, and a learning node 2-0
- a transmission unit 53- is provided for each 2-3, and writes the calculation result of the sum of gradients transmitted from the parent computing interconnect device 4 into the communication packet and transmits it to the corresponding learning nodes 2-0 to 2-3.
- Control units 54-0 to 54-3 that are provided for each of the learning nodes 2-0 to 2-3 and control the buffer memories 51-0 to 51-3 and the transmission units 53-0 to 53-3, and an adder 52
- a transmission unit 55 that writes the sum of the gradients calculated by the above in a communication packet and transmits the communication packet to the parent computing interconnect device 4, and a reception unit 56 that receives the calculation result of the gradient sums from the parent computing interconnect device 4. I have.
- the reception unit 56 and the transmission units 53-0 to 53-3 constitute a transfer unit 57.
- the operations of the receiving units 50-0 to 50-3 and the buffer memories 51-0 to 51-3 of the child computing interconnect device 5-0 are the same as those of the receiving units 10-0 to 10-3 of the computing interconnect device 1. Since the operation is the same as that of the buffer memories 11-0 to 11-3, description thereof is omitted.
- the control units 54-0 to 54-3 of the child computing interconnect device 5-0 receive the gradient values G0 to G3 assigned the same sequential numbers from all the corresponding learning nodes 2-0 to 2-3. Are written in the buffer memories 51-0 to 51-3, the gradient values G0 to G3 are read from the buffer memories 51-0 to 51-3 and passed to the adder 52. In addition, the control units 54-0 to 54-3 transmit the sequential numbers (“003” in the example of FIG. 15) corresponding to the gradient values G0 to G3 read from the buffer memories 51-0 to 51-3 to the transmission unit 55. To pass.
- the adder 52 of the child computing interconnect device 5-0 calculates the sum of gradients ⁇ G according to the equation (4) and outputs the calculation result to the transmission unit 55.
- the transmission unit 55 stores the calculation result ⁇ G of the sum of gradients calculated by the adder 52 and the sequential number received from the control units 54-0 to 54-3 in the data payload of the communication packet TPC0, and stores Transmit to the computing interconnect device 4. Since the sequential numbers passed from the control units 54-0 to 54-3 are all the same value, one value may be stored in the communication packet TPC0.
- the reception unit 56 of the child computing interconnect device 5-0 extracts the gradient sum ⁇ G and the sequential number from the data payload of the communication packet TPC0 received from the parent computing interconnect device 4.
- the transmission units 53-0 to 53-3 of the child computing interconnect device 5-0 store the sum ⁇ G of the gradient received from the reception unit 56 and the sequential number in the data payload of the communication packets TP0 to TP3.
- the control units 54-0 to 54-3 simultaneously transmit the communication packets TP0 to TP3 from the transmission units 53-0 to 53-3 to the learning nodes 2-0 to 2-3.
- the receiving unit 56 and the transmitting units 53-0 to 53-3 forward the communication packet received from the parent computing interconnect device 4 to the learning nodes 2-0 to 2-3 immediately below. Also good.
- the configuration of the child computing interconnect device 5-0 is shown, but the configuration of other child computing interconnect devices is the same as that of the child computing interconnect device 5-0.
- the learning nodes 2-0 to 2-3 are connected immediately below the child computing interconnect device 5-0.
- Another child computing interconnect device may be connected immediately below the computing interconnect device 5-0.
- the configuration of the learning nodes 2-0 to 2-15 is as described in the first embodiment.
- the computing interconnect devices 4 and 5 for the All-reduce processing, a slight amount based on the variation in arrival times of communication packets from the learning nodes 2-0 to 2-15 is obtained. Although there is a significant delay, the transmission / reception processing of communication packets between the learning nodes 2-0 to 2-15 can be simultaneously performed at high speed by hardware processing. Processing can be performed at a higher speed than when processing is performed by software. Further, by connecting the learning nodes 2-0 to 2-15 and the computing interconnect devices 4 and 5 on the tree as in this embodiment, distributed processing is performed by more learning nodes 2-0 to 2-15. Will be able to.
- this embodiment is a system for connecting a parent computing interconnect device, a child computing interconnect device, and a learning node in a tree shape. That is, as in FIG. 11, the parent computing interconnect device, the child computing interconnect device, and the learning node that are positioned at the highest level are connected in a tree shape.
- This embodiment is different from the third embodiment in that the parent computing interconnect device also performs an update calculation of the configuration parameters of the neural network.
- FIG. 16 (A) and FIG. 16 (B) show the operation of the distributed deep learning system of the present embodiment.
- the learning nodes 2a-0 to 2a-15 calculates the gradient
- the calculation result of the gradient is sent to the child computing interconnect devices 5a-0 to 5a-3 to which the learning nodes 2a-0 to 2a-15 are connected. G0 to G15 are transmitted.
- the child computing interconnect devices 5a-0 to 5a-3 calculate the sum of gradients transmitted from the respective learning nodes 2a-0 to 2a-15 connected to the child computing interconnect devices 5a-0 to 5a-3, and the calculation result of the sum of gradients is calculated. Is transmitted to a higher-level computing interconnect device (the parent computing interconnect device 4a in the example of FIGS. 16A and 16B).
- the parent computing interconnect device 4a sums the sums of gradients ⁇ G0 to ⁇ G3 transmitted from the child computing interconnect devices 5a-0 to 5a-3 connected immediately below.
- the sum ⁇ G ⁇ G0 + ⁇ G1 + ⁇ G2 + ⁇ G3 is calculated.
- the parent computing interconnect device 4a calculates the updated value w_new of the configuration parameter of the neural network using the sum ⁇ G of the gradients, and the calculation result is used as the child computing interconnect devices 5a-0 to 5a- immediately below. 3 to send.
- Each learning node 2a-0 to 2a-15 updates the neural network by overwriting the configuration parameter of the neural network 26 with the updated value w_new of the configuration parameter.
- FIG. 17 is a block diagram showing the configuration of the parent computing interconnect device 4a of this embodiment.
- the same components as those in FIG. 14 are denoted by the same reference numerals.
- the parent computing interconnect device 4a includes transmission / reception ports P0 to P3 connected to each of the child computing interconnect devices 5a-0 to 5a-3 via a communication network, and receiving units 40-0 to 40-3.
- a configuration parameter memory 45 that stores configuration parameters of a neural network to be learned and an NN (neural network) configuration parameter update calculation unit 46 that calculates updated values of the configuration parameters (weight parameters) of the neural network are provided. .
- the initial values of the same configuration parameters are set in all the learning nodes 2a-0 to 2a-15 in the neural networks of the learning nodes 2a-0 to 2a-15.
- the initial values of the configuration parameters of the neural network are stored in the configuration parameter memory 45 of the parent computing interconnect device 4a.
- the initial value of this configuration parameter is transmitted to the parent computing interconnect device 4a via the child computing interconnect devices 5a-0 to 5a-3 using communication packets from the learning nodes 2a-0 to 2a-15, for example. Send.
- the parent computing interconnect device 4 a that has received the initial value of the configuration parameter stores the initial value of the configuration parameter in the configuration parameter memory 45.
- control units 44-0 to 44-3 of the parent computing interconnect device 4a are the same from all the corresponding child computing interconnect devices 5a-0 to 5a-3.
- the sums of gradients ⁇ G0 to ⁇ G3 to which sequential numbers are assigned are written in the buffer memories 41-0 to 41-3
- the sums of gradients ⁇ G0 to ⁇ G3 are read from the buffer memories 41-0 to 41-3 and added. Pass to 42.
- the adder 42 of the parent computing interconnect device 4a calculates a sum ⁇ G obtained by further summing the sums of gradients as shown in Expression (6).
- the NN configuration parameter update calculation unit 46 updates the configuration parameter of the neural network based on the sum ⁇ G of the gradients calculated by the adder 42 and the value w_old of the configuration parameter stored in the configuration parameter memory 45.
- the value w_new is calculated for each configuration parameter and output to the transmission units 43a-0 to 43a-3. For example, when the gradient descent method is used as the update method, the calculation shown in Equation (5) is performed.
- the NN configuration parameter update calculation unit 46 outputs the updated value w_new of the configuration parameter to the transmission units 43a-0 to 43a-3, and at the same time, sets the value of the configuration parameter stored in the configuration parameter memory 45 as follows. Overwrite with the updated value w_new.
- the control units 44a-0 to 44a-3 transmit the sequential numbers (“003” in the example of FIG. 17) corresponding to the gradient sums ⁇ G0 to ⁇ G3 read from the buffer memories 41-0 to 41-3 to the transmission units 43a ⁇ . Pass to 0-43a-3.
- the transmission units 43a-0 to 43a-3 transmit the updated value w_new of the configuration parameter calculated by the NN configuration parameter update calculation unit 46 and the sequential number received from the control units 44a-0 to 44a-3 to the communication packet TPC0.
- the control units 44a-0 to 44a-3 simultaneously transmit the communication packets TPC0 to TPC3 from the transmission units 43a-0 to 43a-3 to the child computing interconnect devices 5a-0 to 5a-3.
- the configuration of the child computing interconnect devices 5a-0 to 5a-3 is the same as that of the child computing interconnect devices 5-0 to 5-3 of the third embodiment. Differences from the third embodiment will be described.
- the receiving unit 56 of each of the child computing interconnect devices 5a-0 to 5a-3 receives the updated value w_new and the sequential number from the data payload of the communication packets TPC0 to TPC3 received from the parent computing interconnect device 4a. And take out.
- the transmitting units 53-0 to 53-3 of each of the child computing interconnect devices 5a-0 to 5a-3 use the updated values w_new and the sequential numbers of the configuration parameters received from the receiving unit 56 as communication packets TP0 to TP3. Stored in the data payload.
- the control units 54-0 to 54-3 simultaneously transmit the communication packets TP0 to TP3 from the transmission units 53-0 to 53-3 to the learning nodes 2a-0 to 2a-15 immediately below.
- the receiving unit 56 and the transmitting units 53-0 to 53-3 receive the communication packet received from the parent computing interconnect device 4a as it is and directly below the learning nodes 2a-0 to 2a. It may be transferred to -15.
- a learning node is connected immediately below the child computing interconnect device.
- another learning node is connected directly below the child computing interconnect devices 5a-0 to 5a-3.
- a child computing interconnect device may be connected.
- the configuration of the learning nodes 2a-0 to 2a-15 is as described in the second embodiment.
- the receiving unit 24a of each of the learning nodes 2a-0 to 2a-15 receives the updated value of the configuration parameter from the data payload of the communication packets TP0 to TP3 received from the immediate child computing interconnect devices 5a-0 to 5a-3. Take out w_new and sequential number.
- the configuration parameter update unit 25a of each of the learning nodes 2a-0 to 2a-15 overwrites the configuration parameter of the neural network 26, which is specified by the sequential number, with the updated value w_new of the configuration parameter, thereby the neural network 26. Update.
- the arrival time of the communication packet from each of the learning nodes 2a-0 to 2a-15 can be simultaneously performed at high speed by hardware processing. Compared to the case where the processing and the gradient addition processing are performed by software, processing can be performed at high speed.
- both the gradient sum calculation and the update operation of the configuration parameters may be performed independently for each configuration parameter regardless of the configuration of the neural network 26. Therefore, the learning nodes 2a-0 to 2a-15 may perform the same calculation. Even when the configuration of the neural network 26 is changed, the computing unit of the computing interconnect device 4a has an advantage that the same dedicated arithmetic circuit can be used.
- FIG. 18 is a block diagram showing the configuration of the distributed deep learning system according to the present embodiment.
- one parent computing interconnect device 4b and a plurality of child computing interconnect devices 5b-1 to 5b-3 are connected by a ring-type communication network 8, and the parent computer interconnect device 5b-1 to 5b-3 are connected.
- Learning nodes 2-0 to 2-3 are connected to the communication interconnect device 4b and the child computing interconnect devices 5b-1 to 5b-3 via the communication network 9, respectively.
- Communication cables are connected between the parent computing interconnect device 4b and the learning node 2-0, and between the child computing interconnect devices 5b-1 to 5b-2 and the learning nodes 2-1 to 2-3.
- the computing interconnect devices 4b and 5b-1 to 5b-2 may be directly inserted into I / O interfaces such as PCI Express in the learning nodes 2-0 to 2-3.
- FIGS. 19A to 19E show the operation of the distributed deep learning system of this embodiment.
- the gradient calculation result G0 is transmitted from the learning node 2-0 connected to the parent computing interconnect device 4b to the parent computing interconnect device 4b, and the parent computing interconnect device 4b transmits the gradient calculation result G0. Is transferred to the child computing interconnect device 5b-1 (FIG. 19A).
- the child computing interconnect device 5b-1 calculates the sum G0 + G1 of the gradient calculation result G0 transmitted from the parent computing interconnect device 4b and the gradient calculation result G1 transmitted from the immediately lower learning node 2-1.
- the calculation result G0 + G1 is transmitted to the child computing interconnect device 5b-2 (FIG. 19B).
- the child computing interconnect device 5b-2 includes the calculation result G0 + G1 of the gradient transmitted from the child computing interconnect device 5b-1, and the calculation result G2 of the gradient transmitted from the learning node 2-2 immediately below.
- the sum G0 + G1 + G2 is calculated, and the calculation result G0 + G1 + G2 is transmitted to the child computing interconnect device 5b-3.
- the child computing interconnect device 5b-3 includes the gradient calculation result G0 + G1 + G2 transmitted from the child computing interconnect device 5b-2, and the gradient calculation result G3 transmitted from the learning node 2-3 immediately below.
- the parent computing interconnect device 4b that has received the gradient sum calculation result ⁇ G transmits the received gradient sum ⁇ G to the learning node 2-0 and the child computing interconnect device 5b-1 immediately below (FIG. 19). (C)).
- the child computing interconnect device 5b-1 receives the gradient sum ⁇ G, the child computing interconnect device 5b-1 transmits the gradient sum ⁇ G to the learning node 2-1 and the child computing interconnect device 5b-2 immediately below (FIG. 19D). ).
- the same processing is performed in each of the child computing interconnect devices 5b-2 and 5b-3.
- the child computing interconnect device 5b-2 transmits the sum of gradients ⁇ G transmitted from the child computing interconnect device 5b-1 to the learning node 2-2 immediately below and the child computing interconnect device 5b-3.
- the child computing interconnect device 5b-3 transmits the gradient sum ⁇ G transmitted from the child computing interconnect device 5b-2 to the learning node 2-3 and the parent computing interconnect device 4b immediately below.
- the parent computing interconnect device 4b that has received the gradient sum ⁇ G discards it (FIG. 19E). With the above operation, the gradient sum ⁇ G is transmitted to each of the learning nodes 2-0 to 2-3.
- FIG. 20 shows the configuration of the child computing interconnect device 5b-1.
- the child computing interconnect device 5b-1 is connected to the adjacent upstream computing interconnect device (the left adjacent to the left side) in a ring network configuration in which communication is limited to one direction (counterclockwise direction in this embodiment).
- the receiving unit 60 that receives the communication packet from the parent computing interconnect device 4b or the child computing interconnect device) and the data from the receiving unit 60 are distributed according to the reception completion flag (completion / incomplete) of the communication packet.
- An allocating unit 61 a buffer memory 62 for temporarily storing data from the allocating unit 61, a receiving unit 63 for receiving a communication packet from the immediately lower learning node 2-1, and an immediately lower learning node 2-1
- a transmission unit 64 that transmits a communication packet to a buffer memo and a buffer memo that temporarily stores data from the reception unit 63 65, an adder 66 (arithmetic unit) for calculating the sum of gradients, and an adjacent downstream computing interconnect device (a parent computing interconnect device 4b or a child computing interconnect on the right side in a ring network configuration)
- a control unit 68 that controls the buffer memories 62 and 65.
- FIG. 20 shows the configuration of the child computing interconnect device 5b-1, but the configuration of the other child computing interconnect devices is the same as that of the child computing interconnect device 5b-1.
- FIG. 21 shows the configuration of the parent computing interconnect device 4b.
- the parent computing interconnect device 4b includes a receiving unit 70 that receives a communication packet from an adjacent upstream computing interconnect device (a left neighboring child computing interconnect device) in a ring network configuration, and learning immediately below.
- a reception unit 71 that receives a communication packet from the node 2-0, a transmission unit 72 that transmits a communication packet to the learning node 2-0 immediately below, and a reception according to a reception completion flag (completion / incomplete) of the communication packet
- a distribution unit 73 that distributes data from the unit 70, and a transmission unit 74 that transmits a communication packet to an adjacent downstream computing interconnect device (child computing interconnect device on the right side) in a ring network configuration. I have.
- FIG. 22 shows the operation of the parent computing interconnect device 4b in FIG.
- the communication packet includes a header 200 and a data payload 201.
- the data payload of the communication packet RP0 transmitted from the learning node 2-0 includes the gradient value (G0 in FIG. 22) calculated by the learning node 2-0 and the sequential number of the gradient value (“003 in the example of FIG. 22). ))
- a reception completion flag (incomplete in the example of FIG. 22) indicating completion / incomplete acquisition of the sum of gradients in the parent computing interconnect device 4b are stored.
- the reception completion flag means completion / incompletion of calculation of the sum of gradients.
- the reception unit 71 of the parent computing interconnect device 4b extracts the gradient value G0, the sequential number, and the reception completion flag from the data payload of the received communication packet RP0 and passes them to the transmission unit 74.
- the transmission unit 74 stores the gradient value G0, the sequential number, and the reception completion flag received from the reception unit 71 in the data payload of the communication packet TPC1, and transmits the communication packet TPC1 to the adjacent downstream computing interconnect device (see FIG. In 19 (A), the data is transmitted to the child computing interconnect device 5b-1).
- FIG. 23 shows the operation of the child computing interconnect device 5b-1 in FIG.
- the receiving unit 60 of the child computing interconnect device 5b-1 extracts the gradient value G0, the sequential number, and the reception completion flag from the data payload of the communication packet TPC1 received from the parent computing interconnect device 4b and distributes the distributing unit 61 To pass.
- the allocating unit 61 stores the gradient value G0, the sequential number, and the reception completion flag received from the reception unit 60 in the buffer memory 62 because the reception completion flag received from the reception unit 60 indicates “incomplete”. .
- the receiving unit 63 of the child computing interconnect device 5b-1 extracts the gradient value G1, the sequential number, and the reception completion flag from the data payload of the communication packet RP1 received from the immediately lower learning node 2-1, and extracts the buffer memory. Stored in 65.
- the control unit 68 of the child computing interconnect device 5b-1 sets the gradient value G0 and the sequential number from the buffer memory 62 when the gradient values G0 and G1 of the same sequential number are aligned in the buffer memory 62 and the buffer memory 65. In addition to reading the reception completion flag, the gradient value G1, the sequential number, and the reception completion flag are read from the buffer memory 65, and the gradient values G0 and G1 are passed to the adder 66.
- the adder 66 adds the gradient values G0 and G1.
- the control unit 68 passes the sequential number read from the buffer memory 62 and the reception completion flag to the transmission unit 67.
- the transmitter 67 of the child computing interconnect device 5b-1 stores the gradient sum G0 + G1 calculated by the adder 66, the sequential number received from the controller 68, and the reception completion flag in the data payload of the communication packet TPC2.
- the communication packet TPC2 is transmitted to the adjacent downstream computing interconnect device (the child computing interconnect device 5b-2 in FIG. 19B).
- FIG. 24 shows the operation of the parent computing interconnect device 4b in FIG.
- the receiving unit 70 of the parent computing interconnect device 4b determines the gradient from the payload of the communication packet TPC0 received from the adjacent upstream computing interconnect device (the child computing interconnect device 5b-3 in FIG. 19C).
- the sum ⁇ G, the sequential number, and the reception completion flag are extracted and passed to the distribution unit 73.
- the distribution unit 73 transmits the gradient sum ⁇ G, the sequential number, and the reception completion flag received from the reception unit 70 to the transmission unit 72. To part 74.
- the parent computing interconnect device 4b receives the communication packet TPC0 from the adjacent upstream child computing interconnect device 5b-3, the communication packet goes around the ring-type communication network 8 and the gradient sum is obtained. Means that the calculation of is complete. Therefore, the allocating unit 73 changes the reception completion flag received from the receiving unit 70 from “incomplete” to a value indicating “completed”, and passes it to the transmitting unit 72 and the transmitting unit 74.
- the transmission unit 72 stores the sum ⁇ G of gradients received from the distribution unit 73, the sequential number, and the reception completion flag in the data payload of the communication packet TP0, and transmits the communication packet TP0 to the learning node 2-0.
- the transmission unit 74 stores the sum ⁇ G of gradients received from the distribution unit 73, the sequential number, and the reception completion flag in the data payload of the communication packet TPC1, and transmits the communication packet TPC1 to the adjacent downstream computing interconnect device. (In FIG. 19C, the data is transmitted to the child computing interconnect device 5b-1).
- FIG. 25 shows the operation of the child computing interconnect device 5b-1 in FIG.
- the receiving unit 60 of the child computing interconnect device 5b-1 extracts the gradient sum ⁇ G, the sequential number, and the reception completion flag from the data payload of the communication packet TPC1 received from the parent computing interconnect device 4b, and assigns the distributing unit Pass to 61.
- the allocating unit 61 sends the gradient sum ⁇ G, the sequential number, and the reception completion flag received from the receiving unit 60 to the transmitting unit 64 and the transmitting unit. Pass to 67.
- the transmission unit 64 stores the sum ⁇ G of gradients received from the distribution unit 61, the sequential number, and the reception completion flag in the data payload of the communication packet TP1, and transmits the communication packet TP1 to the learning node 2-1.
- the transmitting unit 67 stores the sum of gradients ⁇ G, the sequential number, and the reception completion flag received from the allocating unit 61 in the data payload of the communication packet TPC2, and transmits the communication packet TPC2 to the adjacent downstream computing interconnect device. (In FIG. 19D, the data is transmitted to the child computing interconnect device 5b-2).
- FIG. 26 shows the operation of the parent computing interconnect device 4b in FIG.
- the receiving unit 70 of the parent computing interconnect device 4b determines the gradient from the payload of the communication packet TPC0 received from the adjacent upstream computing interconnect device (the child computing interconnect device 5b-3 in FIG. 19E).
- the sum ⁇ G, the sequential number, and the reception completion flag are extracted and passed to the distribution unit 73.
- the distribution unit 73 discards the sum ⁇ G of gradients, the sequential number, and the reception completion flag received from the reception unit 70 because the reception completion flag received from the reception unit 70 indicates “completed”.
- the gradient sum ⁇ G is transmitted to each learning node 2-0 to 2-3, and each learning node 2-0 to 2-3 uses the gradient sum ⁇ G to change the configuration parameter of the neural network 26. Update, and one cycle of distributed learning ends.
- the configuration of the learning nodes 2-0 to 2-3 is the same as that of the first embodiment shown in FIG.
- the difference from the first embodiment is that the transmission unit 23 of each of the learning nodes 2-0 to 2-3 receives “incomplete” in addition to the gradient calculation result and the sequential number calculated by the gradient calculation unit 22. Is written in the data payload of the communication packets RP0 to RP3, and the communication packets RP0 to RP3 are transmitted to the parent computing interconnect device 4b and the child computing interconnect devices 5b-1 to 5b-3 immediately above. Is a point.
- the computing interconnect devices 4b, 5b-1 to 5b-3 are used for the All-reduce processing, so that the arrival times of communication packets from the learning nodes 2-0 to 2-3 are varied. Although there is a slight delay, it is possible to perform hardware processing simultaneously such as transmission / reception processing of communication packets between the learning nodes 2-0 to 2-3 and addition of gradients at high speed. Compared with the case where the node performs communication processing and gradient addition processing by software, processing can be performed at high speed.
- the computing interconnect devices 4b, 5b-1 to 5b-3 in a ring shape as in the present embodiment, many learning nodes are connected to the computing interconnect devices 4b, 5b-1 to 5b-3. Even when 2-0 to 2-3 are connected, there is an advantage that the communication band of the ring communication network 8 may be constant regardless of the number of learning nodes 2-0 to 2-3.
- FIG. 27 is a block diagram showing the configuration of the distributed deep learning system according to the present embodiment.
- one parent computing interconnect device 4c and a plurality of child computing interconnect devices 5c-1 to 5c-3 are connected by a ring-type communication network 8, and the parent computer interconnect device 4c is connected.
- Learning nodes 2a-0 to 2a-3 are connected to the learning interconnect device 4c and the child computing interconnect devices 5c-1 to 5c-3, respectively.
- This embodiment is different from the fifth embodiment in that the parent computing interconnect device 4c also performs an update calculation of the configuration parameters of the neural network.
- the gradient calculation result G0 is transmitted from the learning node 2a-0 connected to the parent computing interconnect device 4c to the parent computing interconnect device 4c, and the parent computing interconnect device 4c transmits the gradient calculation result G0. Is transferred to the child computing interconnect device 5c-1 (FIG. 28A).
- the child computing interconnect device 5c-1 calculates the sum G0 + G1 of the gradient calculation result G0 transmitted from the parent computing interconnect device 4c and the gradient calculation result G1 transmitted from the immediately lower learning node 2a-1.
- the calculation result G0 + G1 is transmitted to the child computing interconnect device 5b-2 (FIG. 28B).
- the child computing interconnect device 5c-2 includes the gradient calculation result G0 + G1 transmitted from the child computing interconnect device 5c-1, and the gradient calculation result G2 transmitted from the immediately lower learning node 2a-2.
- the sum G0 + G1 + G2 is calculated, and the calculation result G0 + G1 + G2 is transmitted to the child computing interconnect device 5b-3.
- the child computing interconnect device 5c-3 includes the gradient sum calculation result G0 + G1 + G2 transmitted from the child computing interconnect device 5c-2 and the gradient calculation result G3 transmitted from the immediately lower learning node 2a-3.
- the parent computing interconnect device 4c that has received the calculation result ⁇ G of the gradient sum calculates the updated value w_new of the configuration parameter of the neural network using the gradient sum ⁇ G, and uses the calculated result as the learning node 2a immediately below. -0 and the child computing interconnect device 5c-1 (FIG. 28C).
- the child computing interconnect device 5c-1 that has received the updated value w_new of the configuration parameter sends the updated value w_new of the configuration parameter to the learning node 2a-1 and the child computing interconnect device 5c-2 immediately below. Transmit (FIG. 28D).
- the same processing is performed in each of the child computing interconnect devices 5c-2 and 5c-3.
- the child computing interconnect device 5c-2 uses the learning node 2a-2 directly below the updated value w_new of the configuration parameter transmitted from the child computing interconnect device 5c-1 and the child computing interconnect device 5c-3. And send to.
- the child computing interconnect device 5c-3 sends the updated value w_new of the configuration parameter transmitted from the child computing interconnect device 5c-2 to the learning node 2a-3 and the parent computing interconnect device 4c immediately below. Send.
- the parent computing interconnect device 4c that has received the updated value w_new of the configuration parameter discards it (FIG. 28E).
- the updated value w_new of the configuration parameter is transmitted to each of the learning nodes 2a-0 to 2a-3.
- FIG. 29 shows the configuration of the child computing interconnect device 5c-1.
- the child computing interconnect device 5c-1 includes a reception unit 60, a distribution unit 61, a buffer memory 62, a reception unit 63, a transmission unit 64, a buffer memory 65, an adder 66, and a transmission unit 67. And a control unit 68.
- the configuration of the child computing interconnect device 5c-1 is shown, but the configuration of other child computing interconnect devices is the same as that of the child computing interconnect device 5c-1.
- FIG. 30 shows the configuration of the parent computing interconnect device 4c.
- the parent computing interconnect device 4c includes a reception unit 70, a reception unit 71, a transmission unit 72, a distribution unit 73, a transmission unit 74, an NN (neural network) configuration parameter update calculation unit 75, and a configuration parameter. And a memory 76.
- the difference from the fifth embodiment is that an NN configuration parameter update calculation unit 75 and a configuration parameter memory 76 are added.
- FIG. 31 shows the operation of the parent computing interconnect device 4c in FIG.
- the data payload of the communication packet RP0 transmitted from the learning node 2a-0 includes the gradient value (G0 in FIG. 31) calculated by the learning node 2a-0 and the sequential number of the gradient value (“003 in the example of FIG. 31). ") And a reception completion flag (incomplete in the example of FIG. 31) are stored.
- the reception unit 71 of the parent computing interconnect device 4c extracts the gradient value G0, the sequential number, and the reception completion flag from the data payload of the received communication packet RP0 and passes them to the transmission unit 74.
- the transmission unit 74 stores the gradient value G0, the sequential number, and the reception completion flag received from the reception unit 71 in the data payload of the communication packet TPC1, and transmits the communication packet TPC1 to the adjacent downstream computing interconnect device (see FIG. In 28 (A), the data is transmitted to the child computing interconnect device 5c-1).
- FIG. 32 shows the operation of the child computing interconnect device 5c-1 in FIG.
- the receiving unit 60 of the child computing interconnect device 5c-1 extracts the gradient value G0, the sequential number, and the reception completion flag from the data payload of the communication packet TPC1 received from the parent computing interconnect device 4c, and assigns the distributing unit 61. To pass.
- the allocating unit 61 stores the gradient value G0, the sequential number, and the reception completion flag received from the reception unit 60 in the buffer memory 62 because the reception completion flag received from the reception unit 60 indicates “incomplete”. .
- the receiving unit 63 of the child computing interconnect device 5c-1 extracts the gradient value G1, the sequential number, and the reception completion flag from the data payload of the communication packet RP1 received from the immediately lower learning node 2a-1, and extracts the buffer memory. Stored in 65.
- the control unit 68 of the child computing interconnect device 5c-1 sets the gradient value G0 and the sequential number from the buffer memory 62.
- the gradient value G1 the sequential number, and the reception completion flag are read from the buffer memory 65, and the gradient values G0 and G1 are passed to the adder 66.
- the adder 66 adds the gradient values G0 and G1.
- the control unit 68 passes the sequential number read from the buffer memory 62 and the reception completion flag to the transmission unit 67.
- the transmission unit 67 of the child computing interconnect device 5c-1 stores the gradient sum G0 + G1 calculated by the adder 66, the sequential number received from the control unit 68, and the reception completion flag in the data payload of the communication packet TPC2. Then, the communication packet TPC2 is transmitted to the adjacent downstream computing interconnect device (the child computing interconnect device 5c-2 in FIG. 28B).
- FIG. 33 shows the operation of the parent computing interconnect device 4c in FIG.
- the receiving unit 70 of the parent computing interconnect device 4c determines the gradient from the payload of the communication packet TPC0 received from the adjacent upstream computing interconnect device (the child computing interconnect device 5c-3 in FIG. 28C).
- the sum ⁇ G, the sequential number, and the reception completion flag are extracted and passed to the distribution unit 73.
- the distribution unit 73 Since the reception completion flag received from the reception unit 70 indicates “incomplete”, the distribution unit 73 performs the NN configuration parameter update operation using the gradient sum ⁇ G, the sequential number, and the reception completion flag received from the reception unit 70. Pass to part 75. At this time, the allocating unit 73 changes the reception completion flag received from the receiving unit 70 from “incomplete” to a value indicating “completed”, and passes it to the NN configuration parameter update calculating unit 75.
- the initial values of the same configuration parameters are set in all the learning nodes 2a-0 to 2a-3 in the neural network 26 of the learning nodes 2a-0 to 2a-3 at the start of learning. Has been.
- the initial values of the configuration parameters are stored in the configuration parameter memory 76 of the parent computing interconnect device 4c.
- the NN configuration parameter update calculation unit 75 updates the configuration parameters of the neural network based on the sum ⁇ G of the gradients received from the distribution unit 73 and the configuration parameter value w_old stored in the configuration parameter memory 76.
- the value w_new is calculated for each configuration parameter, and the calculation result, the sequential number received from the distribution unit 73, and the reception completion flag are output to the transmission units 72 and 74. For example, when the gradient descent method is used as the update method, the calculation shown in Equation (5) is performed.
- the NN configuration parameter update calculation unit 75 outputs the updated value w_new of the configuration parameter to the transmission units 72 and 74, and at the same time, sets the value of the configuration parameter stored in the configuration parameter memory 76 to the updated value. Overwrite with w_new.
- the transmission unit 72 stores the updated value w_new of the configuration parameter received from the NN configuration parameter update calculation unit 75, the sequential number, and the reception completion flag in the data payload of the communication packet TP0, and stores the communication packet TP0 in the learning node 2a. Send to -0.
- the transmission unit 74 stores the updated value w_new of the configuration parameter received from the NN configuration parameter update calculation unit 75, the sequential number, and the reception completion flag in the data payload of the communication packet TPC1, and sets the communication packet TPC1 adjacent to the transmission packet TPC1.
- the data is transmitted to the downstream computing interconnect device (the child computing interconnect device 5c-1 in FIG. 28C).
- FIG. 34 shows the operation of the child computing interconnect device 5c-1 in FIG.
- the receiving unit 60 of the child computing interconnect device 5c-1 extracts the updated value w_new, the sequential number, and the reception completion flag from the data payload of the communication packet TPC1 received from the parent computing interconnect device 4c. To the distribution unit 61.
- the distribution unit 61 transmits the updated value w_new of the configuration parameter received from the reception unit 60, the sequential number, and the reception completion flag to the transmission unit. 64 and the transmission unit 67.
- the transmission unit 64 stores the updated value w_new of the configuration parameter received from the distribution unit 61, the sequential number, and the reception completion flag in the data payload of the communication packet TP1, and transmits the communication packet TP1 to the learning node 2a-1.
- the transmitting unit 67 stores the updated value w_new of the configuration parameter received from the allocating unit 61, the sequential number, and the reception completion flag in the data payload of the communication packet TPC2, and stores the communication packet TPC2 in the adjacent downstream computer.
- Transmission interconnect device (the child computing interconnect device 5c-2 in FIG. 28D).
- FIG. 35 shows the operation of the parent computing interconnect device 4c in FIG.
- the receiving unit 70 of the parent computing interconnect device 4c is configured from the payload of the communication packet TPC0 received from the adjacent upstream computing interconnect device (the child computing interconnect device 5c-3 in FIG. 28E).
- the updated value w_new, the sequential number, and the reception completion flag are extracted and passed to the distribution unit 73.
- the distribution unit 73 discards the updated value w_new, the sequential number, and the reception completion flag of the configuration parameter received from the reception unit 70 because the reception completion flag received from the reception unit 70 indicates “complete”. .
- each learning node 2a-0 to 2a-3 updates the neural network 26 by overwriting the configuration parameter of the neural network 26 specified by the sequential number with the updated value w_new of the configuration parameter.
- the configuration of the learning nodes 2a-0 to 2a-3 is the same as that of the second embodiment shown in FIG.
- the difference from the second embodiment is that the transmission unit 23 of each of the learning nodes 2a-0 to 2a-3 “incomplete” in addition to the calculation result of the gradient and the sequential number calculated by the gradient calculation unit 22. Is written in the data payloads of the communication packets RP0 to RP3, and the communication packets RP0 to RP3 are transmitted to the parent computing interconnect device 4c and the child computing interconnect devices 5c-1 to 5c-3 immediately above. Is a point.
- the computing interconnect devices 4c and 5c-1 to 5c-3 are used for the All-reduce processing and the update calculation of the configuration parameters of the neural network, so that each learning node 2a-0 to 2a-3 Although there is a slight delay based on variations in the arrival times of communication packets, communication processing between the learning nodes 2a-0 to 2a-3, arithmetic processing such as addition of gradients and update of configuration parameters, etc. Since the hardware processing can be performed simultaneously in parallel and at a high speed, communication processing and gradient addition processing can be performed at high speed in the head node of the prior art as compared with software processing.
- both the gradient sum calculation and the configuration parameter update calculation may be performed independently for each configuration parameter regardless of the configuration of the neural network 26, so that the learning nodes 2a-0 to 2a-3 perform the same calculation.
- the computing units of the computing interconnect devices 4c, 5c-1 to 5c-3 have an advantage that the same dedicated arithmetic circuit can be used.
- the computing interconnect devices 4c, 5c-1 to 5c-3 in a ring shape as in the present embodiment, many learning nodes are connected to the computing interconnect devices 4c, 5c-1 to 5c-3. Even when 2a-0 to 2a-3 are connected, there is an advantage that the communication band of the ring communication network 8 may be constant regardless of the number of learning nodes 2a-0 to 2a-3.
- Each of the learning nodes described in the first to sixth embodiments can be realized by a computer having a CPU (Central Processing Unit), a storage device and an interface, and a program for controlling these hardware resources.
- Each CPU of the learning node executes the processing described in the first to sixth embodiments in accordance with a program stored in each storage device.
- the present invention can be applied to a technique for performing machine learning of a neural network.
- Adder 13-0 to 13-3, 13a-0 to 13a-3, 23, 43-0 to 43-3, 43a -0 to 43a-3, 53-0 to 53-3, 55, 64, 67 72, 74 ... Transmitter, 14-0 to 14-3, 14a-0 to 14a-3, 44-0 to 44-3, 44a-0 to 44a-3, 54-0 to 54-3, 68 ... control 15, 45, 76... Configuration parameter memory, 16, 46, 75... NN configuration parameter update calculation unit, 20... Input unit, 21... Loss function calculation unit, 22. Part, 26 ... neural network, 57 ... transfer part, 61, 73 ... distribution part.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
分散深層学習を高速に行う。 各学習ノード(2-0)~(2-3)は、学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算し、計算結果をパケット化してコンピューティングインタコネクト装置(1)に送信する。コンピューティングインタコネクト装置(1)は、各学習ノード(2-0)~(2-3)から送信されたパケットを受信して、このパケットに格納された勾配の値を取得し、勾配の和を計算して、計算結果をパケット化して各学習ノード(2-0)~(2-3)に送信する。各学習ノード(2-0)~(2-3)は、コンピューティングインタコネクト装置(1)から送信されたパケットを受信して、このパケットに格納された値に基づいてニューラルネットワークの構成パラメータを更新する。
Description
本発明は、ニューラルネットワークを用いた機械学習である深層学習を複数の学習ノードで分散協調して実行する分散深層学習システムに関するものである。
様々な情報、データに対する機械学習の活用により、サービスの高度化・付加価値の提供が盛んに行われている。その際の機械学習には大きな計算リソースが必要である場合が多い。特に、深層学習と呼ばれるニューラルネットワークを用いた機械学習においては、ニューラルネットワークの構成パラメータを最適化する工程である学習において、大量の学習用データを処理する必要がある。この学習処理を高速化するために、複数の演算装置で並列処理することが1つの解決法になる。
例えば、非特許文献1には、図36のように、4台の学習ノード100-1~100-4と、インフィニバンドスイッチ101と、ヘッドノード102とがインフィニバンドネットワーク(InfiniBand network)を介して接続された分散深層学習システムが開示されている。各学習ノード100-1~100-4には、それぞれ4台のGPU(Graphics Processing Unit)が搭載されている。この非特許文献1に開示された分散深層学習システムでは、4台の学習ノード100-1~100-4によって、学習演算を並列処理することによって高速化を図っている。
非特許文献2には、8台のGPUを搭載した学習ノード(GPUサーバ)とイーサネット(登録商標)スイッチとがイーサネットネットワークを介して接続された構成が開示されている。この非特許文献2には、学習ノードを1台、2台、4台、8台、16台、32台、44台用いた場合の例がそれぞれ開示されている。非特許文献2に開示されたシステム上で、分散同期確率的勾配降下法(Distributed synchronous SGD(Stochastic Gradient Descent))を用いて機械学習を行う。具体的には、以下の手順で行う。
(I)学習データの一部を抜き出す。抜き出した学習データの集合をミニバッチと呼ぶ。
(II)ミニバッチをGPUの台数分に分けて、各GPUに割り当てる。
(III)各GPUにおいて、(II)で割り当てられた学習データを入力した場合のニューラルネットワークからの出力値が、正解(教師データと呼ぶ)からどれだけ乖離しているかの指標となる損失関数L(w)を求める。この損失関数を求める工程では、ニューラルネットワークの入力側の層から出力側の層に向かって順番に出力値を計算していくことから、この工程を順伝搬(forward propagation)と呼ぶ。
(II)ミニバッチをGPUの台数分に分けて、各GPUに割り当てる。
(III)各GPUにおいて、(II)で割り当てられた学習データを入力した場合のニューラルネットワークからの出力値が、正解(教師データと呼ぶ)からどれだけ乖離しているかの指標となる損失関数L(w)を求める。この損失関数を求める工程では、ニューラルネットワークの入力側の層から出力側の層に向かって順番に出力値を計算していくことから、この工程を順伝搬(forward propagation)と呼ぶ。
(IV)各GPUにおいて、(III)で求めた損失関数値に対するニューラルネットワークの各構成パラメータ(ニューラルネットワークの重み等)による偏微分値(勾配)を求める。この工程では、ニューラルネットワークの出力側の層から入力側の層に向かって順番に各層の構成パラメータに対する勾配を計算していくことから、この工程を逆伝搬(back propagation)と呼ぶ。
(V)各GPU毎に計算した勾配の平均を計算する。
(V)各GPU毎に計算した勾配の平均を計算する。
(VI)各GPUにおいて、(V)で計算した勾配の平均値を用いて、確率的勾配降下法(SGD:Stochastic Gradient Descent)を用いて、損失関数L(w)がより小さくなるように、ニューラルネットワークの各構成パラメータを更新する。確率的勾配降下法は、各構成パラメータの値を勾配の方向に微少量変更することにより、損失関数L(w)を小さくするという計算処理である。この処理を繰り返すことによって、ニューラルネットワークは、損失関数L(w)が小さい、すなわち、正解に近い出力をする精度の高いものに更新されていく。
また、非特許文献3には、8台のGPUを搭載した学習ノード128台がインフィニバンドネットワーク(InfiniBand network)を介して接続された構成の分散深層学習システムが開示されている。
非特許文献1~3のいずれの分散深層学習システムにおいても、学習ノード数が増えるに従い、学習速度が上がり、学習時間を短縮できることが示されている。この場合、各学習ノードで算出した勾配等のニューラルネットワーク構成パラメータの平均値を計算するため、これらの構成パラメータを学習ノード間で送受信するか、あるいは学習ノードと非特許文献1のヘッドノードとの間で送受信することにより、平均値算出等の計算を行う必要がある。
一方、並列処理数を増やすために、ノード数を増やすにつれ、必要な通信処理は急速に増大する。従来技術のように、学習ノードやヘッドノード上で平均値算出等の演算処理やデータの送受信処理をソフトウェアで行う場合、通信処理に伴うオーバーヘッドが大きくなり、学習効率を十分に上げることが難しくなるという課題があった。
非特許文献3には、学習処理を100サイクル行うのにかかる所要時間とこのうちの通信にかかる時間と、GPU数との関係が開示されている。この関係によると、GPU数が増えるにつれて通信にかかる時間が増えており、特にGPU数が512以上のところで急激に増加している。
Rengan Xu and Nishanth Dandapanthu.,"NVIDIA(登録商標) Tesla(登録商標) P100 GPUによるディープラーニングのパフォーマンス",デル株式会社,2016年,インターネット<http://ja.community.dell.com/techcenter/m/mediagallery/3765/download>
Priya Goyal,Piotr Dollar,Ross Girshick,Pieter Noordhuis,Lukasz Wesolowski,Aapo Kyrola,Andrew Tulloch,Yangqing Jia,Kaiming He,"Accurate,Large Minibatch SGD:Training ImageNet in 1 Hour",米国コーネル大学ライブラリー,arXiv:1706.02677,2017,インターネット<https://arxiv.org/abs/1706.02677>
Takuya Akiba,Shuji Suzuki,Keisuke Fukuda,"Extremely Large Minibatch SGD:Training ResNet-50 on ImageNet in 15 Minutes",米国コーネル大学ライブラリー,arXiv:1711.04325,2017,インターネット<https://arxiv.org/abs/1711.04325>
本発明の目的は、通信ネットワークに接続した多数の学習ノードによって学習を並列処理して高速化を図りつつ、通信ネットワークで接続された各学習ノード間での協調処理を高速に行うことができる分散深層学習システムを提供することにある。
本発明の分散深層学習システム(第1の実施例)は、複数の学習ノードと、これら複数の学習ノードと通信ネットワークを介して接続されたコンピューティングインタコネクト装置とを備え、各学習ノードは、学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、この勾配計算部の計算結果をパケット化して前記コンピューティングインタコネクト装置に送信する第1の送信部と、前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、前記コンピューティングインタコネクト装置は、各学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第2の受信部と、この第2の受信部が取得した前記勾配の値を入力として計算処理を行う演算器と、この演算器の計算結果をパケット化して各学習ノードに送信する第2の送信部とを備えることを特徴とするものである。
また、本発明の分散深層学習システム(第2の実施例)は、複数の学習ノードと、これら複数の学習ノードと通信ネットワークを介して接続されたコンピューティングインタコネクト装置とを備え、各学習ノードは、学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、この勾配計算部の計算結果をパケット化して前記コンピューティングインタコネクト装置に送信する第1の送信部と、前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、前記コンピューティングインタコネクト装置は、各学習ノードの前記ニューラルネットワークの構成パラメータを記憶する構成パラメータメモリと、各学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第2の受信部と、この第2の受信部が取得した前記勾配の値を入力として計算処理を行う演算器と、この演算器の計算結果と前記構成パラメータメモリに記憶されている構成パラメータの値とを基に、この構成パラメータの更新後の値を計算して、前記構成パラメータメモリに記憶されている当該構成パラメータの値を更新する構成パラメータ更新演算部と、前記構成パラメータの更新後の値をパケット化して各学習ノードに送信する第2の送信部とを備え、各学習ノードの前記構成パラメータ更新部は、前記ニューラルネットワークの構成パラメータを、前記第1の受信部が取得した当該構成パラメータの更新後の値によって上書きすることを特徴とするものである。
また、本発明の分散深層学習システム(第3の実施例)は、複数の学習ノードと、これら複数の学習ノードまたは他の装置と通信ネットワークを介して接続された複数のコンピューティングインタコネクト装置とを備え、各学習ノードは、学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、この勾配計算部の計算結果をパケット化して、自ノードと接続された前記コンピューティングインタコネクト装置に送信する第1の送信部と、自ノードと接続された前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、前記複数のコンピューティングインタコネクト装置のうち、最上位に位置するコンピューティングインタコネクト装置は、直下位の前記コンピューティングインタコネクト装置から送信されたパケット、および自装置と接続された前記学習ノードから送信されたパケットを受信して、受信したパケットに格納された前記勾配の値を取得する第2の受信部と、この第2の受信部が取得した前記勾配の値を入力として計算処理を行う第1の演算器と、この第1の演算器の計算結果をパケット化して、直下位の前記コンピューティングインタコネクト装置、および自装置と接続された前記学習ノードに送信する第2の送信部とを備え、前記複数のコンピューティングインタコネクト装置のうち、下位の前記コンピューティングインタコネクト装置または下位の前記学習ノードと上位の前記コンピューティングインタコネクト装置との間に位置するコンピューティングインタコネクト装置は、直下位の前記コンピューティングインタコネクト装置から送信されたパケット、または自装置と接続された前記学習ノードから送信されたパケットを受信して、受信したパケットに格納された前記勾配の値を取得する第3の受信部と、この第3の受信部が取得した前記勾配の値を入力として計算処理を行う第2の演算器と、この第2の演算器の計算結果をパケット化して直上位の前記コンピューティングインタコネクト装置に送信する第3の送信部と、直上位の前記コンピューティングインタコネクト装置から送信されたパケットを、直下位の前記コンピューティングインタコネクト装置、若しくは自装置と接続された前記学習ノードに転送するか、あるいは直上位の前記コンピューティングインタコネクト装置から送信されたパケットを受信してパケットに格納された値を取得し、この取得した値を再度パケット化して、直下位の前記コンピューティングインタコネクト装置、若しくは自装置と接続された前記学習ノードに送信する転送部とを備えることを特徴とするものである。
また、本発明の分散深層学習システム(第4の実施例)は、複数の学習ノードと、これら複数の学習ノードまたは他の装置と通信ネットワークを介して接続された複数のコンピューティングインタコネクト装置とを備え、各学習ノードは、学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、この勾配計算部の計算結果をパケット化して、自ノードと接続された前記コンピューティングインタコネクト装置に送信する第1の送信部と、自ノードと接続された前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、前記複数のコンピューティングインタコネクト装置のうち、最上位に位置するコンピューティングインタコネクト装置は、各学習ノードの前記ニューラルネットワークの構成パラメータを記憶する構成パラメータメモリと、直下位の前記コンピューティングインタコネクト装置から送信されたパケット、および自装置と接続された前記学習ノードから送信されたパケットを受信して、受信したパケットに格納された前記勾配の値を取得する第2の受信部と、この第2の受信部が取得した前記勾配の値を入力として計算処理を行う第1の演算器と、この第1の演算器の計算結果と前記構成パラメータメモリに記憶されている構成パラメータの値とを基に、この構成パラメータの更新後の値を計算して、前記構成パラメータメモリに記憶されている当該構成パラメータの値を更新する構成パラメータ更新演算部と、前記構成パラメータの更新後の値をパケット化して直下位の前記コンピューティングインタコネクト装置、および自装置と接続された前記学習ノードに送信する第2の送信部とを備え、前記複数のコンピューティングインタコネクト装置のうち、下位の前記コンピューティングインタコネクト装置または下位の前記学習ノードと上位の前記コンピューティングインタコネクト装置との間に位置するコンピューティングインタコネクト装置は、
直下位の前記コンピューティングインタコネクト装置から送信されたパケット、または自装置と接続された前記学習ノードから送信されたパケットを受信して、受信したパケットに格納された前記勾配の値を取得する第3の受信部と、この第3の受信部が取得した前記勾配の値を入力として計算処理を行う第2の演算器と、この第2の演算器の計算結果をパケット化して直上位の前記コンピューティングインタコネクト装置に送信する第3の送信部と、直上位の前記コンピューティングインタコネクト装置から送信されたパケットを、直下位の前記コンピューティングインタコネクト装置、若しくは自装置と接続された前記学習ノードに転送するか、あるいは直上位の前記コンピューティングインタコネクト装置から送信されたパケットを受信してパケットに格納された値を取得し、この取得した値を再度パケット化して、直下位の前記コンピューティングインタコネクト装置、若しくは自装置と接続された前記学習ノードに送信する転送部とを備え、各学習ノードの前記構成パラメータ更新部は、前記ニューラルネットワークの構成パラメータを、前記第1の受信部が取得した当該構成パラメータの更新後の値によって上書きすることを特徴とするものである。
直下位の前記コンピューティングインタコネクト装置から送信されたパケット、または自装置と接続された前記学習ノードから送信されたパケットを受信して、受信したパケットに格納された前記勾配の値を取得する第3の受信部と、この第3の受信部が取得した前記勾配の値を入力として計算処理を行う第2の演算器と、この第2の演算器の計算結果をパケット化して直上位の前記コンピューティングインタコネクト装置に送信する第3の送信部と、直上位の前記コンピューティングインタコネクト装置から送信されたパケットを、直下位の前記コンピューティングインタコネクト装置、若しくは自装置と接続された前記学習ノードに転送するか、あるいは直上位の前記コンピューティングインタコネクト装置から送信されたパケットを受信してパケットに格納された値を取得し、この取得した値を再度パケット化して、直下位の前記コンピューティングインタコネクト装置、若しくは自装置と接続された前記学習ノードに送信する転送部とを備え、各学習ノードの前記構成パラメータ更新部は、前記ニューラルネットワークの構成パラメータを、前記第1の受信部が取得した当該構成パラメータの更新後の値によって上書きすることを特徴とするものである。
また、本発明の分散深層学習システム(第5の実施例)は、複数の学習ノードと、これら複数の学習ノードまたは他の装置と通信ネットワークを介して接続された複数のコンピューティングインタコネクト装置とを備え、前記複数のコンピューティングインタコネクト装置は、1方向に限定して通信を行うリング型の通信ネットワークによって接続され、各学習ノードは、学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、この勾配計算部の計算結果をパケット化して、自ノードと接続された前記コンピューティングインタコネクト装置に送信する第1の送信部と、自ノードと接続された前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、前記複数のコンピューティングインタコネクト装置のうち、第1のコンピューティングインタコネクト装置は、自装置と接続された前記学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第2の受信部と、隣接する上流の前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第3の受信部と、この第3の受信部が取得した前記勾配の値を出力し、既に取得した値を再度取得した場合には廃棄する第1の振分部と、前記第2の受信部が取得した前記勾配の値、または前記第1の振分部から出力された前記勾配の値をパケット化して、隣接する下流の前記コンピューティングインタコネクト装置に送信する第2の送信部と、前記第1の振分部から出力された前記勾配の値をパケット化して、自装置と接続された前記学習ノードに送信する第3の送信部とを備え、前記複数のコンピューティングインタコネクト装置のうち、前記第1のコンピューティングインタコネクト装置以外の第2のコンピューティングインタコネクト装置は、隣接する上流の前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第4の受信部と、自装置と接続された前記学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第5の受信部と、前記第4の受信部が取得した値を、勾配に対する計算処理の未了の値と完了の値とに振り分ける第2の振分部と、前記第2の振分部から出力された前記未了の値と前記第5の受信部が取得した前記勾配の値とを入力として計算処理を行う演算器と、この演算器の計算結果、または前記第2の振分部から出力された前記完了の値をパケット化して、隣接する下流の前記コンピューティングインタコネクト装置に送信する第4の送信部と、前記第2の振分部から出力された前記完了の値をパケット化して、自装置と接続された前記学習ノードに送信する第5の送信部とを備えることを特徴とするものである。
また、本発明の分散深層学習システム(第6の実施例)は、複数の学習ノードと、これら複数の学習ノードまたは他の装置と通信ネットワークを介して接続された複数のコンピューティングインタコネクト装置とを備え、前記複数のコンピューティングインタコネクト装置は、1方向に限定して通信を行うリング型の通信ネットワークによって接続され、各学習ノードは、学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、この勾配計算部の計算結果をパケット化して、自ノードと接続された前記コンピューティングインタコネクト装置に送信する第1の送信部と、自ノードと接続された前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、前記複数のコンピューティングインタコネクト装置のうち、第1のコンピューティングインタコネクト装置は、各学習ノードの前記ニューラルネットワークの構成パラメータを記憶する構成パラメータメモリと、自装置と接続された前記学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第2の受信部と、隣接する上流の前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第3の受信部と、この第3の受信部が取得した前記勾配の値を出力し、既に取得した値を再度取得した場合には廃棄する第1の振分部と、前記第1の振分部から出力された前記勾配の値と前記構成パラメータメモリに記憶されている構成パラメータの値とを基に、この構成パラメータの更新後の値を計算して、前記構成パラメータメモリに記憶されている当該構成パラメータの値を更新する構成パラメータ更新演算部と、前記第2の受信部が取得した前記勾配の値、または前記構成パラメータの更新後の値をパケット化して、隣接する下流の前記コンピューティングインタコネクト装置に送信する第2の送信部と、前記構成パラメータの更新後の値をパケット化して、自装置と接続された前記学習ノードに送信する第3の送信部とを備え、前記複数のコンピューティングインタコネクト装置のうち、前記第1のコンピューティングインタコネクト装置以外の第2のコンピューティングインタコネクト装置は、隣接する上流の前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第4の受信部と、自装置と接続された前記学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第5の受信部と、前記第4の受信部が取得した値を、勾配に対する計算処理の未了の値と前記構成パラメータの更新後の値とに振り分ける第2の振分部と、前記第2の振分部から出力された前記未了の値と前記第5の受信部が取得した前記勾配の値とを入力として計算処理を行う演算器と、この演算器の計算結果、または前記第2の振分部から出力された前記構成パラメータの更新後の値をパケット化して、隣接する下流の前記コンピューティングインタコネクト装置に送信する第4の送信部と、前記第2の振分部から出力された前記構成パラメータの更新後の値をパケット化して、自装置と接続された前記学習ノードに送信する第5の送信部とを備え、各学習ノードの前記構成パラメータ更新部は、前記ニューラルネットワークの構成パラメータを、前記第1の受信部が取得した当該構成パラメータの更新後の値によって上書きすることを特徴とするものである。
本発明によれば、コンピューティングインタコネクト装置と各学習ノードとの間の通信パケットの送受信処理を同時並行して高速にハードウェア処理できるため、従来のヘッドノードで通信処理や勾配の加算処理をソフトウェア処理する場合に比べて、分散深層学習を高速に処理することが可能になる。
[第1の実施例]
以下、本発明の実施例について図面を参照して説明する。図1は本発明の第1の実施例に係る分散深層学習システムの構成を示すブロック図である。本実施例の分散深層学習システムは、1台のコンピューティングインタコネクト(CI:Computing Interconnect)装置1と、4台の学習ノード2-0~2-3とを備えている。本実施例では、スター型のネットワーク構成が採用されている。
なお、本発明において、コンピューティングインタコネクト装置あるいは学習ノードとは、ネットワーク上に分散配置されている機器を意味する。
以下、本発明の実施例について図面を参照して説明する。図1は本発明の第1の実施例に係る分散深層学習システムの構成を示すブロック図である。本実施例の分散深層学習システムは、1台のコンピューティングインタコネクト(CI:Computing Interconnect)装置1と、4台の学習ノード2-0~2-3とを備えている。本実施例では、スター型のネットワーク構成が採用されている。
なお、本発明において、コンピューティングインタコネクト装置あるいは学習ノードとは、ネットワーク上に分散配置されている機器を意味する。
コンピューティングインタコネクト装置1は、4つの通信ポートを持ち、その各通信ポートと、各学習ノード2-0~2-3の通信ポートとが通信ネットワーク3を介して接続されている。この通信ネットワーク3としては、イーサネットや、インフィニバンド(InfiniBand)などの、通信パケットをやりとりすることで通信を行うネットワークを用いる。
<学習ノードの説明>
学習ノード2-0~2-3は、ソフトウェア的に構築された数学モデルであるニューラルネットワークの出力値を計算し、さらに、学習データに応じてニューラルネットワークの構成パラメータを更新して出力値の精度を向上させていく学習機能をもつ装置である。ニューラルネットワークは、各学習ノード2-0~2-3内に構築される。
学習ノード2-0~2-3は、ソフトウェア的に構築された数学モデルであるニューラルネットワークの出力値を計算し、さらに、学習データに応じてニューラルネットワークの構成パラメータを更新して出力値の精度を向上させていく学習機能をもつ装置である。ニューラルネットワークは、各学習ノード2-0~2-3内に構築される。
学習ノード2-0~2-3の実現方法としては、CPUやGPU上のソフトウェアで実現してもよいし、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)に形成したLSI(Large Scale Integration)回路で実現してもよい。
<学習についての説明>
学習ノード2-0~2-3におけるニューラルネットワークの学習処理について、教師データ付き学習を例に説明する。図2にニューラルネットワークの例として入力層(第1層)、中間層(第2層)、出力層(第3層)からなるごく単純な2層ニューラルネットワークを示す。図2のNk(i)は第k層、i番目のニューロンである。x1,x2は入力、y1,y2は出力、w1(11), w1(12),・・・,w1(23)は第1層目の重みパラメータ、w2(11), w2(12),・・・,w2(32)は第2層目の重みパラメータである。
学習ノード2-0~2-3におけるニューラルネットワークの学習処理について、教師データ付き学習を例に説明する。図2にニューラルネットワークの例として入力層(第1層)、中間層(第2層)、出力層(第3層)からなるごく単純な2層ニューラルネットワークを示す。図2のNk(i)は第k層、i番目のニューロンである。x1,x2は入力、y1,y2は出力、w1(11), w1(12),・・・,w1(23)は第1層目の重みパラメータ、w2(11), w2(12),・・・,w2(32)は第2層目の重みパラメータである。
教師データ付き学習の場合、各学習データには対応する教師データ(正解データ)が予め用意されており、ニューラルネットワークの出力値が教師データに近くなるように、ニューラルネットワークの構成パラメータを更新していく。図2の例の場合のニューラルネットワークの構成パラメータは、重みw1(11), w1(12),・・・,w1(23),w2(11),w2(12),・・・,w2(32)である。これらの構成パラメータを最適化していくことにより、ニューラルネットワークの精度を上げていく。
具体的には、ニューラルネットワークの出力値が教師データとどれだけ乖離しているかの指標となる損失関数を定め、この損失関数が小さくなるように構成パラメータを更新していく。この例では、入力学習データx1,x2に対応する教師データをt1,t2とすると、損失関数Lは、例えば次式のようになる。
次に、この損失関数Lに対するニューラルネットワークの各構成パラメータによる偏微分値(これを勾配と呼ぶ)を求める。この例では、勾配は以下のようになる。
次に、勾配を用いて、損失関数Lがより小さくなるように、ニューラルネットワークの各構成パラメータを更新する。更新の方法はいろいろあるが、例えば勾配降下法を用いて、それぞれの重みパラメータを以下のように更新する。
ここで、ηは学習率と呼ばれる定数である。式(3)により、各重みパラメータを、勾配と逆の方向、すなわち、損失関数Lを減少させる方向に学習率ηに比例する量だけ変化させている。そのため、更新後のニューラルネットワークの損失関数Lは更新前より小さくなる。
このように、1組の入力学習データに対して、損失関数Lの計算、勾配の計算、構成パラメータの更新の処理を行なう。そして、この構成パラメータの更新されたニューラルネットワークに対して、次の入力学習データを入力して同じ処理を行い、構成パラメータを更新する。このサイクルを繰り返すことにより、損失関数Lが小さいニューラルネットワークに更新していくことで、ニューラルネットワークの学習を行う。
ここで、損失関数Lを求める工程では、ニューラルネットワークの入力層から出力層に向かって順番に出力値を計算していくことから、この工程を順伝搬(forward propagation)と呼ぶ。一方、勾配を求める工程では、ニューラルネットワークの出力層から入力層に向かって順番に各層の構成パラメータに対する勾配を計算していく逆伝搬(back propagation)と呼ぶ手法を用いることが多い。
<複数学習ノードによる分散学習処理>
以上のようなニューラルネットワークの学習で十分な精度を達成するには、大量の学習データをニューラルネットワークに入力して学習処理を繰り返す必要があり、長い時間を要する。この学習にかかる所要時間を短縮することは大きなメリットがある。
以上のようなニューラルネットワークの学習で十分な精度を達成するには、大量の学習データをニューラルネットワークに入力して学習処理を繰り返す必要があり、長い時間を要する。この学習にかかる所要時間を短縮することは大きなメリットがある。
学習にかかる所要時間を短縮するため、同じニューラルネットワークの学習ノードを複数用意して、学習データをそれぞれの学習ノードに分けて並列で学習させることにより、トータルの学習時間を短縮する分散協調学習の手法がとられる。従来の分散学習処理の手順を図3を用いて説明する。
最初に、学習データxを学習ノード100-0~100-3の台数分に分けて、各学習ノード100-0~100-3に割り当てる。なお、図3では、各学習ノード100-0~100-3に割り当てる学習データの代表としてx0~x3を1つずつ記載しているが、学習データx0~x3はそれぞれ1乃至複数の学習データの集合からなる。
次に、各学習ノード100-0~100-3は、それぞれ学習データx0~x3をニューラルネットワークに入力して順伝搬(forward propagation)の手法によりそれぞれ損失関数Lを求める(図3ステップS100)。なお、得られる損失関数Lは、各学習ノード100-0~100-3(各ニューラルネットワーク)につき1つである。
続いて、各学習ノード100-0~100-3は、ステップS100で求めた損失関数Lの勾配を逆伝搬(back propagation)の手法により求める(図3ステップS101)。損失関数Lの勾配とは、式(2)に示すように構成パラメータ毎の成分を含むベクトルであるが、本発明ではこのような勾配ベクトルを単に勾配と呼ぶ。
次に、各学習ノード100-0~100-3でそれぞれ計算した勾配の平均を例えばヘッドノード102において計算して、計算した結果をヘッドノード102から各学習ノード100-0~100-3に返送する(図3ステップS102)。この処理をAll-reduce処理と呼ぶ。なお、勾配の平均の代わりに勾配の和を計算するようにしてもよい。このとき、例えば、次の重みパラメータの更新処理時の学習率ηに(1/学習ノード数)を乗じれば、勾配の平均値を求めるのと同じ結果になる。
最後に、各学習ノード100-0~100-3は、ステップS102で計算された勾配の平均値を用いて、ニューラルネットワークの重みパラメータを更新する(図3ステップS103)。
以上で、分散学習の1サイクルが終了する。
以上で、分散学習の1サイクルが終了する。
<本実施例の分散処理>
次に、本実施例の分散学習処理の手順を図4を用いて説明する。本実施例では、各学習ノード2-0~2-3は、従来と同様に、それぞれ学習データx0~x3をニューラルネットワークに入力して損失関数Lをそれぞれ計算する(図4ステップS200)。続いて、この損失関数Lの勾配を計算する(図4ステップS201)。そして、各学習ノード2-0~2-3はそれぞれ計算した勾配の計算値を、各学習ノード2-0~2-3と通信ネットワークで接続されたコンピューティングインタコネクト装置1に送信する(図4ステップS202)。
次に、本実施例の分散学習処理の手順を図4を用いて説明する。本実施例では、各学習ノード2-0~2-3は、従来と同様に、それぞれ学習データx0~x3をニューラルネットワークに入力して損失関数Lをそれぞれ計算する(図4ステップS200)。続いて、この損失関数Lの勾配を計算する(図4ステップS201)。そして、各学習ノード2-0~2-3はそれぞれ計算した勾配の計算値を、各学習ノード2-0~2-3と通信ネットワークで接続されたコンピューティングインタコネクト装置1に送信する(図4ステップS202)。
なお、図3と同様に、図4では、各学習ノード2-0~2-3に割り当てる学習データの代表としてx0~x3を1つずつ記載しているが、学習データx0~x3はそれぞれ1乃至複数の学習データの集合からなる。
次に、コンピューティングインタコネクト装置1は、各学習ノード2-0~2-3から送信された各勾配の平均値を計算し、その計算した結果を各学習ノード2-0~2-3に送信する(図4ステップS204)All-reduce処理を行なう(図4ステップS203)。
最後に、各学習ノード2-0~2-3は、コンピューティングインタコネクト装置1から送信された勾配の平均値を用いて、ニューラルネットワークの構成パラメータを更新する(図4ステップS205)。
なお、勾配の平均の代わりに勾配の和を計算するようにしてもよい。このとき、例えば、次の重みパラメータの更新処理時の学習率ηに(1/学習ノード数)を乗じれば、勾配の平均値を求めるのと同じ結果になる。また、各勾配に重みづけ定数をかけて重み付き平均を用いるようにしてもよいし、勾配の二乗平均平方根をとるようにしてもよい。
以上で、本実施例の分散学習の1サイクルが終了する。
なお、勾配の平均の代わりに勾配の和を計算するようにしてもよい。このとき、例えば、次の重みパラメータの更新処理時の学習率ηに(1/学習ノード数)を乗じれば、勾配の平均値を求めるのと同じ結果になる。また、各勾配に重みづけ定数をかけて重み付き平均を用いるようにしてもよいし、勾配の二乗平均平方根をとるようにしてもよい。
以上で、本実施例の分散学習の1サイクルが終了する。
通常、勾配計算は逆伝搬の手法に従って、ニューラルネットワークの出力層から入力層に向かって順番に各層の構成パラメータ(重みパラメータ)に対する勾配を計算していく。したがって、各学習ノード2-0~2-3の勾配計算結果をコンピューティングインタコネクト装置1に送信するにあたっては、全ての層の勾配計算が終わるまで待つ必要はない。
そこで、各学習ノード2-0~2-3は、上記と同様に損失関数Lを計算し(図5ステップS200)、損失関数Lの勾配を学計算するが(図5ステップS201)、ステップS201においてすべての構成パラメータに対する勾配の計算が終了するのを待つことなく、計算が終わった構成パラメータに対する勾配値からコンピューティングインタコネクト装置1に送信することができる(図5ステップS206)。
コンピューティングインタコネクト装置1は、各学習ノード2-0~2-3から送信された勾配の平均値を計算し(図5ステップS207)、計算が終わった勾配平均値を各学習ノード2-0~2-3に送信する(図5ステップS208)。
各学習ノード2-0~2-3は、コンピューティングインタコネクト装置1から計算結果を受信すると、全ての計算結果を受信するまで待つことなく、受信した勾配平均値を用いて、対応する構成パラメータを更新する(図5ステップS209)。
こうして、勾配計算とAll-reduce処理と構成パラメータ更新とをパイプライン式に処理できるので、更なる高速化が可能である。
こうして、勾配計算とAll-reduce処理と構成パラメータ更新とをパイプライン式に処理できるので、更なる高速化が可能である。
なお、上記のとおり、コンピューティングインタコネクト装置1において、勾配の平均の代わりに勾配の和を構成パラメータ毎に計算するようにしてもよい。以下のコンピューティングインタコネクト装置1の構成では、勾配の和を計算する例について説明する。
<コンピューティングインタコネクト装置の構成>
図6に本実施例のコンピューティングインタコネクト装置1の構成を示す。コンピューティングインタコネクト装置1は、学習ノード2-0~2-3のそれぞれと通信ネットワーク3で接続された送受信用のポートP0~P3と、学習ノード2-0~2-3毎に設けられ、学習ノード2-0~2-3から送信された通信パケットから勾配の計算結果を取り出す受信部10-0~10-3と、学習ノード2-0~2-3毎に設けられ、各学習ノード2-0~2-3の勾配の計算結果を一旦格納するバッファメモリ11-0~11-3と、勾配の和を計算する加算器12(演算器)と、学習ノード2-0~2-3毎に設けられ、加算器12によって計算された勾配の和を通信パケットに書き込んで対応する学習ノード2-0~2-3に送信する送信部13-0~13-3と、学習ノード2-0~2-3毎に設けられ、バッファメモリ11-0~11-3および送信部13-0~13-3を制御する制御部14-0~14-3とを備えている。
図6に本実施例のコンピューティングインタコネクト装置1の構成を示す。コンピューティングインタコネクト装置1は、学習ノード2-0~2-3のそれぞれと通信ネットワーク3で接続された送受信用のポートP0~P3と、学習ノード2-0~2-3毎に設けられ、学習ノード2-0~2-3から送信された通信パケットから勾配の計算結果を取り出す受信部10-0~10-3と、学習ノード2-0~2-3毎に設けられ、各学習ノード2-0~2-3の勾配の計算結果を一旦格納するバッファメモリ11-0~11-3と、勾配の和を計算する加算器12(演算器)と、学習ノード2-0~2-3毎に設けられ、加算器12によって計算された勾配の和を通信パケットに書き込んで対応する学習ノード2-0~2-3に送信する送信部13-0~13-3と、学習ノード2-0~2-3毎に設けられ、バッファメモリ11-0~11-3および送信部13-0~13-3を制御する制御部14-0~14-3とを備えている。
周知のとおり、通信パケットは、ヘッダ200とデータペイロード201とからなる。各学習ノード2-0~2-3から送信され、ポートP0~P3で受信される通信パケットRP0~RP3のデータペイロードには、それぞれ学習ノード2-0~2-3で計算された勾配値(図6のG0~G3)と、各学習ノードごとにふられた通信パケットのシーケンシャル番号(図6の例では“003”)とが格納されている。
コンピューティングインタコネクト装置1の受信部10-0~10-3は、それぞれ受信した通信パケットRP0~RP3のデータペイロードから勾配値G0~G3とシーケンシャル番号とを取り出してバッファメモリ11-0~11-3に格納する。バッファメモリ11-0~11-3に一旦格納する理由は、同一のシーケンシャル番号が付与された通信パケット(すなわち、同一の構成パラメータに対応する通信パケット)であっても、各学習ノード2-0~2-3から完全に同一のタイミングで到着するとは限らないためである。
コンピューティングインタコネクト装置1の制御部14-0~14-3は、対応する全ての学習ノード2-0~2-3からの、同一のシーケンシャル番号が付与された勾配値G0~G3がバッファメモリ11-0~11-3に書き込まれた場合、これら勾配値G0~G3をバッファメモリ11-0~11-3から読み出して加算器12に渡す。このように、各学習ノード2-0~2-3からのシーケンシャル番号が同一である通信パケットに格納された勾配同士の和を計算するように制御することで、各学習ノード2-0~2-3の対応する勾配値同士を加算演算できるように保証する。
コンピューティングインタコネクト装置1の加算器12は、勾配の和ΣGを次式のように計算して、この計算結果を出力する。
ΣG=G0+G1+G2+G3 ・・・(4)
なお、上記のとおり、勾配は構成パラメータ毎の成分を含むベクトルであるので、勾配の加算演算は同一の構成パラメータに対応する成分を加算する演算となる。
ΣG=G0+G1+G2+G3 ・・・(4)
なお、上記のとおり、勾配は構成パラメータ毎の成分を含むベクトルであるので、勾配の加算演算は同一の構成パラメータに対応する成分を加算する演算となる。
制御部14-0~14-3は、バッファメモリ11-0~11-3から読み出した、勾配値G0~G3に対応するシーケンシャル番号(図6の例では“003”)を送信部13-0~13-3に渡す。送信部13-0~13-3は、加算器12によって計算された勾配の和の計算結果ΣGと制御部14-0~14-3から受け取ったシーケンシャル番号とを通信パケットTP0~TP3のデータペイロードに格納する。制御部14-0~14-3は、通信パケットTP0~TP3を送信部13-0~13-3から各学習ノード2-0~2-3へ同時に送信させる。
以上のようなコンピューティングインタコネクト装置1は、FPGAやASICに形成したLSI回路で実現することができる。以下の実施例のコンピューティングインタコネクト装置についても同様である。
図7は学習ノード2-0の構成例を示すブロック図である。学習ノード2-0は、学習データを受け取る入力部20と、学習データが入力されたときに、損失関数Lを計算する損失関数計算部21と、損失関数Lの勾配を計算する勾配計算部22と、勾配計算部22によって計算された勾配値をパケット化してコンピューティングインタコネクト装置1に送信する送信部23と、コンピューティングインタコネクト装置1から送信された通信パケットを受信する受信部24と、コンピューティングインタコネクト装置1から送信された通信パケットに格納されている勾配の和を用いてニューラルネットワークの構成パラメータ(重みパラメータ)を更新する構成パラメータ更新部25と、数学モデルであるニューラルネットワークの出力値を計算する機能をもつニューラルネットワーク26とを備えている。
図7の例では、学習ノード2-0の構成を示しているが、他の学習ノード2-1~2-3の構成も学習ノード2-0と同様である。
各学習ノード2-0~2-3の送信部23は、勾配計算部22によって計算された勾配の計算結果と、シーケンシャル番号とを通信パケットRP0~RP3のデータペイロードに書き込んで、コンピューティングインタコネクト装置1に送信する。
各学習ノード2-0~2-3の送信部23は、勾配計算部22によって計算された勾配の計算結果と、シーケンシャル番号とを通信パケットRP0~RP3のデータペイロードに書き込んで、コンピューティングインタコネクト装置1に送信する。
各学習ノード2-0~2-3の受信部24は、コンピューティングインタコネクト装置1から受信した通信パケットTP0~TP3のデータペイロードから勾配の和の計算結果とシーケンシャル番号とを取り出す。
各学習ノード2-0~2-3の構成パラメータ更新部25は、勾配の和の計算結果を基に、シーケンシャル番号で特定される、ニューラルネットワーク26の構成パラメータを更新する。
なお、本発明では、各学習ノード2-0~2-3のニューラルネットワーク26の構成が同一であるものを想定している。以下の他の実施例でも同様である。
なお、本発明では、各学習ノード2-0~2-3のニューラルネットワーク26の構成が同一であるものを想定している。以下の他の実施例でも同様である。
本実施例では、All-reduce処理にコンピューティングインタコネクト装置1を用いることで、各学習ノード2-0~2-3からの通信パケットの到着時刻のばらつきに基づく僅かな遅延はあるものの、各学習ノード2-0~2-3との間の通信パケットの送受信処理を同時並行して高速にハードウェア処理できるため、従来技術のヘッドノードで通信処理や勾配の加算処理をソフトウェア処理する場合に比べて、高速に処理することが可能になる。
[第2の実施例]
次に、本発明の第2の実施例について説明する。第1の実施例では、コンピューティングインタコネクト装置1で勾配の和の演算を行い、各学習ノード2-0~2-3でニューラルネットワークの構成パラメータの更新演算を行うが、本実施例では、勾配の和の演算に加えて、ニューラルネットワークの構成パラメータの更新演算もコンピューティングインタコネクト装置で行なう。
次に、本発明の第2の実施例について説明する。第1の実施例では、コンピューティングインタコネクト装置1で勾配の和の演算を行い、各学習ノード2-0~2-3でニューラルネットワークの構成パラメータの更新演算を行うが、本実施例では、勾配の和の演算に加えて、ニューラルネットワークの構成パラメータの更新演算もコンピューティングインタコネクト装置で行なう。
図8は本実施例に係る分散深層学習システムの構成を示すブロック図である。本実施例の分散深層学習システムは、1台のコンピューティングインタコネクト装置1aと、4台の学習ノード2a-0~2a-3と、コンピューティングインタコネクト装置1aと学習ノード2a-0~2a-3とを接続する通信ネットワーク3とから構成されている。
図9は本実施例のコンピューティングインタコネクト装置1aの構成を示すブロック図であり、図6と同一の構成には同一の符号を付してある。本実施例のコンピューティングインタコネクト装置1aは、学習ノード2a-0~2a-3のそれぞれと通信ネットワーク3で接続された送受信用のポートP0~P3と、受信部10-0~10-3と、バッファメモリ11-0~11-3と、加算器12と、送信部13a-0~13a-3と、制御部14a-0~14a-3と、各学習ノード2a-0~2a-3の学習対象のニューラルネットワーク26の構成パラメータを記憶する構成パラメータメモリ15と、ニューラルネットワークの構成パラメータ(重みパラメータ)の更新後の値を計算するNN(ニューラルネットワーク)構成パラメータ更新演算部16とを備えている。
学習開始時点において、各学習ノード2a-0~2a-3のニューラルネットワーク26は、全ての学習ノード2a-0~2a-3で同じ構成パラメータの初期値が設定されている。この構成パラメータの初期値を、例えば学習ノード2a-0~2a-3から通信パケットを用いてコンピューティングインタコネクト装置1に送信する。構成パラメータの初期値を受信したコンピューティングインタコネクト装置1aでは、この構成パラメータの初期値を構成パラメータメモリ15に格納する。
第1の実施例と同様に、各学習ノード2a-0~2a-3は、この構成パラメータの初期値が設定されたニューラルネットワーク26のそれぞれに学習データを入力し、損失関数Lを計算する。次に、その損失関数Lの勾配を計算する。そして、各学習ノード2a-0~2a-3の送信部23は、勾配計算部22によって計算された勾配の計算結果と、シーケンシャル番号とを通信パケットRP0~RP3のデータペイロードに書き込んで、コンピューティングインタコネクト装置1aに送信する。
したがって、コンピューティングインタコネクト装置1aの受信部10-0~10-3で受信する通信パケットTP0~TP3のデータペイロードには、それぞれ学習ノード2a-0~2a-3で計算された勾配値(図9のG0~G3)と、シーケンシャル番号(図9の例では“003”)とが格納されている。
第1の実施例と同様に、コンピューティングインタコネクト装置1aの制御部14a-0~14a-3は、全ての学習ノード2a-0~2a-3からの、同一のシーケンシャル番号が付与された勾配値G0~G3がバッファメモリ11-0~11-3に書き込まれた場合、これら勾配値G0~G3をバッファメモリ11-0~11-3から読み出して加算器12に渡す。
加算器12は、勾配の和ΣGを式(4)のように構成パラメータ毎に計算して、この計算結果を出力する。
加算器12は、勾配の和ΣGを式(4)のように構成パラメータ毎に計算して、この計算結果を出力する。
NN構成パラメータ更新演算部16は、加算器12によって計算された勾配の和ΣGと、構成パラメータメモリ15に記憶されている構成パラメータの値w_oldとを基に、ニューラルネットワークの構成パラメータの更新後の値w_newを構成パラメータ毎に計算して送信部13a-0~13a-3に出力する。更新方法として例えば、勾配降下法を用いる場合は以下のような計算を行う。
w_new←w_old-η×ΣG ・・・(5)
w_new←w_old-η×ΣG ・・・(5)
また、NN構成パラメータ更新演算部16は、構成パラメータの更新後の値w_newを送信部13a-0~13a-3に出力すると同時に、構成パラメータメモリ15に格納されている当該構成パラメータの値を、更新後の値w_newによって上書きする。
制御部14a-0~14a-3は、バッファメモリ11-0~11-3から読み出した、勾配値G0~G3に対応するシーケンシャル番号(図6の例では“003”)を送信部13a-0~13a-3に渡す。送信部13-0~13-3は、NN構成パラメータ更新演算部16によって計算された構成パラメータの更新後の値w_newと制御部14a-0~14a-3から受け取ったシーケンシャル番号とを通信パケットTP0~TP3に格納する。制御部14a-0~14a-3は、通信パケットTP0~TP3を送信部13a-0~13a-3から各学習ノード2a-0~2a-3へ同時に送信させる。
以上のようなコンピューティングインタコネクト装置1aは、FPGAやASICに形成したLSI回路で実現することができる。
図10は学習ノード2a-0の構成例を示すブロック図であり、図7と同一の構成には同一の符号を付してある。学習ノード2a-0は、入力部20と、損失関数計算部21と、勾配計算部22と、送信部23と、受信部24aと、コンピューティングインタコネクト装置1aから送信された通信パケットに格納されている構成パラメータの更新後の値w_newを用いてニューラルネットワーク26の構成パラメータを更新する構成パラメータ更新部25aと、ニューラルネットワーク26とを備えている。
図10の例では、学習ノード2a-0の構成を示しているが、他の学習ノード2a-1~2a-3の構成も学習ノード2a-0と同様である。
各学習ノード2a-0~2a-3の受信部24aは、コンピューティングインタコネクト装置1aから受信した通信パケットTP0~TP3のデータペイロードから構成パラメータの更新後の値w_newとシーケンシャル番号とを取り出す。
各学習ノード2a-0~2a-3の受信部24aは、コンピューティングインタコネクト装置1aから受信した通信パケットTP0~TP3のデータペイロードから構成パラメータの更新後の値w_newとシーケンシャル番号とを取り出す。
各学習ノード2a-0~2a-3の構成パラメータ更新部25aは、シーケンシャル番号で特定される、ニューラルネットワーク26の構成パラメータを、構成パラメータの更新後の値w_newによって上書きすることにより、ニューラルネットワーク26を更新する。
本実施例では、All-reduce処理とニューラルネットワークの構成パラメータの更新演算とにコンピューティングインタコネクト装置1aを用いることで、各学習ノード2a-0~2a-3からの通信パケットの到着時刻のばらつきに基づく僅かな遅延はあるものの、各学習ノード2a-0~2a-3との間の通信パケットの送受信処理を同時並行して高速にハードウェア処理できるため、従来技術のヘッドノードで通信処理や勾配の加算処理をソフトウェア処理する場合に比べて、高速に処理することが可能になる。
特に、本実施例では、構成パラメータの更新演算処理についても専用演算回路を用意することで、高速化を図ることができる。また、勾配の和演算も、構成パラメータの更新演算も、ニューラルネットワーク26の構成によらず、構成パラメータ毎に独立して同じ演算を行えばよいので、学習ノード2a-0~2a-3でのニューラルネットワーク26の構成を変えた場合でも、コンピューティングインタコネクト装置1aの演算器は同じ専用演算回路を用いることができるというメリットもある。
[第3の実施例]
次に、本発明の第3の実施例について説明する。本実施例の分散深層学習システムの構成を図11に示す。本実施例の分散深層学習システムは、1台の親コンピューティングインタコネクト装置4と、複数の子コンピューティングインタコネクト装置5-0~5-3と、複数の学習ノード2-0~2-15と、親コンピューティングインタコネクト装置4と子コンピューティングインタコネクト装置5-0~5-3とを接続する通信ネットワーク6と、子コンピューティングインタコネクト装置5-0~5-3と学習ノード2-0~2-15とを接続する通信ネットワーク7とから構成されている。
次に、本発明の第3の実施例について説明する。本実施例の分散深層学習システムの構成を図11に示す。本実施例の分散深層学習システムは、1台の親コンピューティングインタコネクト装置4と、複数の子コンピューティングインタコネクト装置5-0~5-3と、複数の学習ノード2-0~2-15と、親コンピューティングインタコネクト装置4と子コンピューティングインタコネクト装置5-0~5-3とを接続する通信ネットワーク6と、子コンピューティングインタコネクト装置5-0~5-3と学習ノード2-0~2-15とを接続する通信ネットワーク7とから構成されている。
本実施例では、図11のように親コンピューティングインタコネクト装置4と子コンピューティングインタコネクト装置5-0~5-3と学習ノード2-0~2-15とをツリー状に接続する。ツリーの最上位(ルート)に親コンピューティングインタコネクト装置4を接続し、ツリーの葉の部分に学習ノード2-0~2-15を接続し、その中間の節の部分に子コンピューティングインタコネクト装置5-0~5-3を配置する。
また、図12のように子コンピューティングインタコネクト装置5-0~5-11を多段に配置したり、親コンピューティングインタコネクト装置4の直下に学習ノード2-12を接続したツリー構造にすることも可能である。
本実施例では、親コンピューティングインタコネクト装置4と子コンピューティングインタコネクト装置5-0~5-3とが協調してAll-reduce処理を行う。
図13(A)、図13(B)に本実施例の分散深層学習システムの動作を示す。各学習ノード2-0~2-15は、それぞれ勾配を計算すると、図13(A)のように自身が接続している子コンピューティングインタコネクト装置5-0~5-3に勾配の計算結果G0~G15を送信する。
図13(A)、図13(B)に本実施例の分散深層学習システムの動作を示す。各学習ノード2-0~2-15は、それぞれ勾配を計算すると、図13(A)のように自身が接続している子コンピューティングインタコネクト装置5-0~5-3に勾配の計算結果G0~G15を送信する。
子コンピューティングインタコネクト装置5-0~5-3は、それぞれ自身に接続されている各学習ノード2-0~2-15から送信された勾配の和を計算して、勾配の和の計算結果を上位のコンピューティングインタコネクト装置(図13(A)、図13(B)の例では親コンピューティングインタコネクト装置4)に送信する。
図13(A)の例では、例えば子コンピューティングインタコネクト装置5-0は、学習ノード2-0~2-3から送信された勾配G0~G3の和ΣG0=G0+G1+G2+G3を計算して、上位の親コンピューティングインタコネクト装置4に送信する。また、子コンピューティングインタコネクト装置5-3は、学習ノード2-12~2-15から送信された勾配G12~G15の和ΣG3=G12+G13+G14+G15を計算して、上位の親コンピューティングインタコネクト装置4に送信する。
図13(B)の例では、親コンピューティングインタコネクト装置4は、直下に接続されている子コンピューティングインタコネクト装置5-0~5-3から送信された勾配の和ΣG0~ΣG3を合計した和ΣG=ΣG0+ΣG1+ΣG2+ΣG3を計算して、計算した勾配の和ΣGを直下の子コンピューティングインタコネクト装置5-0~5-3に送信する。
また、図12に示したようなツリー構造の場合には、親コンピューティングインタコネクト装置4は、直下に接続されている子コンピューティングインタコネクト装置5-0~5-2から送信された勾配の和と直下に接続されている学習ノード2-12から送信された勾配とを合計した和を計算して、計算した勾配の和を直下の子コンピューティングインタコネクト装置5-0~5-2と学習ノード2-12とに送信する。
直上の親コンピューティングインタコネクト装置4から勾配の和ΣGを受信した子コンピューティングインタコネクト装置5-0~5-3は、それぞれ受信した勾配の和ΣGをさらに直下の学習ノード2-0~2-15に送信する。この勾配の和ΣGを受信した各学習ノード2-0~2-15は、勾配の和ΣGを用いてニューラルネットワークの構成パラメータを更新する。
図14に本実施例の親コンピューティングインタコネクト装置4の構成を示す。親コンピューティングインタコネクト装置4は、子コンピューティングインタコネクト装置5-0~5-3のそれぞれと通信ネットワーク6で接続された送受信用のポートP0~P3と、子コンピューティングインタコネクト装置5-0~5-3毎に設けられ、子コンピューティングインタコネクト装置5-0~5-3から送信された通信パケットから勾配の和の計算結果を取り出す受信部40-0~40-3と、子コンピューティングインタコネクト装置5-0~5-3毎に設けられ、各子コンピューティングインタコネクト装置5-0~5-3の勾配の和の計算結果を一旦格納するバッファメモリ41-0~41-3と、勾配の和をさらに合計した和を計算する加算器42(演算器)と、子コンピューティングインタコネクト装置5-0~5-3毎に設けられ、加算器42によって計算された勾配の和を通信パケットに書き込んで対応する子コンピューティングインタコネクト装置5-0~5-3に送信する送信部43-0~43-3と、子コンピューティングインタコネクト装置5-0~5-3毎に設けられ、バッファメモリ41-0~41-3および送信部43-0~43-3を制御する制御部44-0~44-3とを備えている。
上記で説明したとおり、通信パケットは、ヘッダ200とデータペイロード201とからなる。子コンピューティングインタコネクト装置5-0~5-3から送信され、ポートP0~P3で受信される通信パケットRPC0~RPC3のデータペイロードには、それぞれ子コンピューティングインタコネクト装置5-0~5-3で計算された勾配の和(図14のΣG0~ΣG3)と、シーケンシャル番号(図14の例では“003”)とが格納されている。
親コンピューティングインタコネクト装置4の受信部40-0~40-3は、それぞれ受信した通信パケットRPC0~RPC3のデータペイロードから勾配の和ΣG0~ΣG3とシーケンシャル番号とを取り出してバッファメモリ41-0~41-3に格納する。バッファメモリ41-0~41-3に一旦格納する理由は、同一のシーケンシャル番号が付与された通信パケット(すなわち、同一の構成パラメータに対応する通信パケット)であっても、各子コンピューティングインタコネクト装置5-0~5-3から完全に同一のタイミングで到着するとは限らないためである。
親コンピューティングインタコネクト装置4の制御部44-0~44-3は、対応する全ての子コンピューティングインタコネクト装置5-0~5-3からの、同一のシーケンシャル番号が付与された勾配の和ΣG0~ΣG3がバッファメモリ41-0~41-3に書き込まれた場合、これら勾配の和ΣG0~ΣG3をバッファメモリ41-0~41-3から読み出して加算器42に渡す。このように、各子コンピューティングインタコネクト装置5-0~5-3からのシーケンシャル番号が同一である通信パケットに格納された勾配の和同士の合計を計算するように制御することで、各子コンピューティングインタコネクト装置5-0~5-3の対応する勾配の和同士を加算演算できるように保証する。
親コンピューティングインタコネクト装置4の加算器42は、勾配の和をさらに合計した和ΣGを次式のように計算して、この計算結果を出力する。
ΣG=ΣG0+ΣG1+ΣG2+ΣG3 ・・・(6)
ΣG=ΣG0+ΣG1+ΣG2+ΣG3 ・・・(6)
制御部44-0~44-3は、バッファメモリ41-0~41-3から読み出した、勾配の和ΣG0~ΣG3に対応するシーケンシャル番号(図14の例では“003”)を送信部43-0~43-3に渡す。送信部43-0~43-3は、加算器42によって計算された勾配の和の計算結果ΣGと制御部44-0~44-3から受け取ったシーケンシャル番号とを通信パケットTPC0~TPC3のデータペイロードに格納する。制御部44-0~44-3は、通信パケットTPC0~TPC3を送信部43-0~43-3から各子コンピューティングインタコネクト装置5-0~5-3へ同時に送信させる。
なお、図14の例では、親コンピューティングインタコネクト装置4の直下に子コンピューティングインタコネクト装置5-0~5-3が接続されている例で説明しているが、図12の例のように親コンピューティングインタコネクト装置4の直下に学習ノードが接続されていてもよい。
図15に子コンピューティングインタコネクト装置5-0の構成を示す。子コンピューティングインタコネクト装置5-0は、学習ノード2-0~2-3のそれぞれと通信ネットワーク7で接続された送受信用のポートP0~P3と、学習ノード2-0~2-3毎に設けられ、学習ノード2-0~2-3から送信された通信パケットから勾配の計算結果を取り出す受信部50-0~50-3と、学習ノード2-0~2-3毎に設けられ、各学習ノード2-0~2-3の勾配の計算結果を一旦格納するバッファメモリ51-0~51-3と、勾配の和を計算する加算器52(演算器)と、学習ノード2-0~2-3毎に設けられ、親コンピューティングインタコネクト装置4から送信された勾配の和の計算結果を通信パケットに書き込んで対応する学習ノード2-0~2-3に送信する送信部53-0~53-3と、学習ノード2-0~2-3毎に設けられ、バッファメモリ51-0~51-3および送信部53-0~53-3を制御する制御部54-0~54-3と、加算器52によって計算された勾配の和を通信パケットに書き込んで親コンピューティングインタコネクト装置4に送信する送信部55と、親コンピューティングインタコネクト装置4から勾配の和の計算結果を受信する受信部56とを備えている。受信部56と送信部53-0~53-3とは、転送部57を構成している。
子コンピューティングインタコネクト装置5-0の受信部50-0~50-3とバッファメモリ51-0~51-3の動作は、コンピューティングインタコネクト装置1の受信部10-0~10-3とバッファメモリ11-0~11-3の動作と同じなので、説明は省略する。
子コンピューティングインタコネクト装置5-0の制御部54-0~54-3は、対応する全ての学習ノード2-0~2-3からの、同一のシーケンシャル番号が付与された勾配値G0~G3がバッファメモリ51-0~51-3に書き込まれた場合、これら勾配値G0~G3をバッファメモリ51-0~51-3から読み出して加算器52に渡す。また、制御部54-0~54-3は、バッファメモリ51-0~51-3から読み出した、勾配値G0~G3に対応するシーケンシャル番号(図15の例では“003”)を送信部55に渡す。
子コンピューティングインタコネクト装置5-0の加算器52は、勾配の和ΣGを式(4)により計算して、この計算結果を送信部55に出力する。
送信部55は、加算器52によって計算された勾配の和の計算結果ΣGと制御部54-0~54-3から受け取ったシーケンシャル番号とを通信パケットTPC0のデータペイロードに格納して、直上の親コンピューティングインタコネクト装置4へ送信する。なお、制御部54-0~54-3から渡されるシーケンシャル番号は全て同一の値なので、1つの値を通信パケットTPC0に格納すればよい。
送信部55は、加算器52によって計算された勾配の和の計算結果ΣGと制御部54-0~54-3から受け取ったシーケンシャル番号とを通信パケットTPC0のデータペイロードに格納して、直上の親コンピューティングインタコネクト装置4へ送信する。なお、制御部54-0~54-3から渡されるシーケンシャル番号は全て同一の値なので、1つの値を通信パケットTPC0に格納すればよい。
子コンピューティングインタコネクト装置5-0の受信部56は、親コンピューティングインタコネクト装置4から受信した通信パケットTPC0のデータペイロードから勾配の和ΣGとシーケンシャル番号とを取り出す。
子コンピューティングインタコネクト装置5-0の送信部53-0~53-3は、受信部56から受け取った勾配の和ΣGとシーケンシャル番号とを通信パケットTP0~TP3のデータペイロードに格納する。制御部54-0~54-3は、通信パケットTP0~TP3を送信部53-0~53-3から各学習ノード2-0~2-3へ同時に送信させる。なお、受信部56と送信部53-0~53-3とは、親コンピューティングインタコネクト装置4から受信した通信パケットをそのまま直下の各学習ノード2-0~2-3へ転送するようにしてもよい。
図15の例では、子コンピューティングインタコネクト装置5-0の構成を示しているが、他の子コンピューティングインタコネクト装置の構成も子コンピューティングインタコネクト装置5-0と同様である。
また、図15の例では、子コンピューティングインタコネクト装置5-0の直下に学習ノード2-0~2-3が接続されている例で説明しているが、図12の例のように子コンピューティングインタコネクト装置5-0の直下に別の子コンピューティングインタコネクト装置が接続されていてもよい。
学習ノード2-0~2-15の構成は、第1の実施例で説明したとおりである。
また、図15の例では、子コンピューティングインタコネクト装置5-0の直下に学習ノード2-0~2-3が接続されている例で説明しているが、図12の例のように子コンピューティングインタコネクト装置5-0の直下に別の子コンピューティングインタコネクト装置が接続されていてもよい。
学習ノード2-0~2-15の構成は、第1の実施例で説明したとおりである。
以上のように、本実施例では、All-reduce処理にコンピューティングインタコネクト装置4,5を用いることで、各学習ノード2-0~2-15からの通信パケットの到着時刻のばらつきに基づく僅かな遅延はあるものの、各学習ノード2-0~2-15との間の通信パケットの送受信処理を同時並行して高速にハードウェア処理できるため、従来技術のヘッドノードで通信処理や勾配の加算処理をソフトウェア処理する場合に比べて、高速に処理することが可能になる。さらに本実施例のように学習ノード2-0~2-15とコンピューティングインタコネクト装置4,5とをツリー上に接続することにより、更に多くの学習ノード2-0~2-15によって分散処理することができるようになる。
[第4の実施例]
次に、本発明の第4の実施例について説明する。本実施例も第3の実施例と同じく、親コンピューティングインタコネクト装置と子コンピューティングインタコネクト装置と学習ノードとをツリー状に接続するシステムである。すなわち、図11と同様に最上位に位置する親コンピューティングインタコネクト装置と子コンピューティングインタコネクト装置と学習ノードとをツリー状に接続する。本実施例では、親コンピューティングインタコネクト装置において、ニューラルネットワークの構成パラメータの更新演算も行うところが第3の実施例と異なる。
次に、本発明の第4の実施例について説明する。本実施例も第3の実施例と同じく、親コンピューティングインタコネクト装置と子コンピューティングインタコネクト装置と学習ノードとをツリー状に接続するシステムである。すなわち、図11と同様に最上位に位置する親コンピューティングインタコネクト装置と子コンピューティングインタコネクト装置と学習ノードとをツリー状に接続する。本実施例では、親コンピューティングインタコネクト装置において、ニューラルネットワークの構成パラメータの更新演算も行うところが第3の実施例と異なる。
図16(A)、図16(B)に本実施例の分散深層学習システムの動作を示す。各学習ノード2a-0~2a-15は、それぞれ勾配を計算すると、図16(A)のように自身が接続している子コンピューティングインタコネクト装置5a-0~5a-3に勾配の計算結果G0~G15を送信する。
子コンピューティングインタコネクト装置5a-0~5a-3は、それぞれ自身に接続されている各学習ノード2a-0~2a-15から送信された勾配の和を計算して、勾配の和の計算結果を上位のコンピューティングインタコネクト装置(図16(A)、図16(B)の例では親コンピューティングインタコネクト装置4a)に送信する。
図16(A)の例では、例えば子コンピューティングインタコネクト装置5a-0は、学習ノード2a-0~2a-3から送信された勾配G0~G3の和ΣG0=G0+G1+G2+G3を計算して、上位の親コンピューティングインタコネクト装置4aに送信する。また、子コンピューティングインタコネクト装置5a-3は、学習ノード2a-12~2a-15から送信された勾配G12~G15の和ΣG3=G12+G13+G14+G15を計算して、上位の親コンピューティングインタコネクト装置4aに送信する。
図16(B)の例では、親コンピューティングインタコネクト装置4aは、直下に接続されている子コンピューティングインタコネクト装置5a-0~5a-3から送信された勾配の和ΣG0~ΣG3を合計した和ΣG=ΣG0+ΣG1+ΣG2+ΣG3を計算する。
さらに親コンピューティングインタコネクト装置4aは、勾配の和ΣGを用いてニューラルネットワークの構成パラメータの更新後の値w_newを計算し、その計算結果を直下の子コンピューティングインタコネクト装置5a-0~5a-3に送信する。
直上の親コンピューティングインタコネクト装置4aから構成パラメータの更新後の値w_newを受信した子コンピューティングインタコネクト装置5a-0~5a-3は、それぞれ構成パラメータの更新後の値w_newをさらに直下の学習ノード2a-0~2a-15に送信する。
各学習ノード2a-0~2a-15は、ニューラルネットワーク26の構成パラメータを、構成パラメータの更新後の値w_newによって上書きすることにより、ニューラルネットワークを更新する。
図17は本実施例の親コンピューティングインタコネクト装置4aの構成を示すブロック図であり、図14と同一の構成には同一の符号を付してある。親コンピューティングインタコネクト装置4aは、子コンピューティングインタコネクト装置5a-0~5a-3のそれぞれと通信ネットワークで接続された送受信用のポートP0~P3と、受信部40-0~40-3と、バッファメモリ41-0~41-3と、加算器42と、送信部43a-0~43a-3と、制御部44a-0~44a-3と、各学習ノード2a-0~2a-15の学習対象のニューラルネットワークの構成パラメータを記憶する構成パラメータメモリ45と、ニューラルネットワークの構成パラメータ(重みパラメータ)の更新後の値を計算するNN(ニューラルネットワーク)構成パラメータ更新演算部46とを備えている。
学習開始時点において、各学習ノード2a-0~2a-15のニューラルネットワークは、全ての学習ノード2a-0~2a-15で同じ構成パラメータの初期値が設定されている。このニューラルネットワークの構成パラメータの初期値を親コンピューティングインタコネクト装置4aの構成パラメータメモリ45に記憶する。この構成パラメータの初期値を、例えば学習ノード2a-0~2a-15から通信パケットを用いて、子コンピューティングインタコネクト装置5a-0~5a-3を経由して親コンピューティングインタコネクト装置4aに送信する。構成パラメータの初期値を受信した親コンピューティングインタコネクト装置4aでは、この構成パラメータの初期値を構成パラメータメモリ45に格納する。
第3の実施例と同様に、親コンピューティングインタコネクト装置4aの制御部44-0~44-3は、対応する全ての子コンピューティングインタコネクト装置5a-0~5a-3からの、同一のシーケンシャル番号が付与された勾配の和ΣG0~ΣG3がバッファメモリ41-0~41-3に書き込まれた場合、これら勾配の和ΣG0~ΣG3をバッファメモリ41-0~41-3から読み出して加算器42に渡す。
親コンピューティングインタコネクト装置4aの加算器42は、勾配の和をさらに合計した和ΣGを式(6)のように計算する。
親コンピューティングインタコネクト装置4aの加算器42は、勾配の和をさらに合計した和ΣGを式(6)のように計算する。
NN構成パラメータ更新演算部46は、加算器42によって計算された勾配の和ΣGと、構成パラメータメモリ45に記憶されている構成パラメータの値w_oldとを基に、ニューラルネットワークの構成パラメータの更新後の値w_newを構成パラメータ毎に計算して送信部43a-0~43a-3に出力する。更新方法として例えば、勾配降下法を用いる場合は式(5)のような計算を行う。
また、NN構成パラメータ更新演算部46は、構成パラメータの更新後の値w_newを送信部43a-0~43a-3に出力すると同時に、構成パラメータメモリ45に格納されている当該構成パラメータの値を、更新後の値w_newによって上書きする。
制御部44a-0~44a-3は、バッファメモリ41-0~41-3から読み出した、勾配の和ΣG0~ΣG3に対応するシーケンシャル番号(図17の例では“003”)を送信部43a-0~43a-3に渡す。送信部43a-0~43a-3は、NN構成パラメータ更新演算部46によって計算された構成パラメータの更新後の値w_newと制御部44a-0~44a-3から受け取ったシーケンシャル番号とを通信パケットTPC0~TPC3のペイロードに格納する。制御部44a-0~44a-3は、通信パケットTPC0~TPC3を送信部43a-0~43a-3から各子コンピューティングインタコネクト装置5a-0~5a-3へ同時に送信させる。
なお、図17の例では、親コンピューティングインタコネクト装置4aの直下に子コンピューティングインタコネクト装置5a-0~5a-3が接続されている例で説明しているが、図12の例のように親コンピューティングインタコネクト装置4aの直下に学習ノードが接続されていてもよい。
子コンピューティングインタコネクト装置5a-0~5a-3の構成は、第3の実施例の子コンピューティングインタコネクト装置5-0~5-3と同様であるので、図15の符号を用いて第3の実施例との違いを説明する。
各子コンピューティングインタコネクト装置5a-0~5a-3の受信部56は、親コンピューティングインタコネクト装置4aから受信した通信パケットTPC0~TPC3のデータペイロードから構成パラメータの更新後の値w_newとシーケンシャル番号とを取り出す。
各子コンピューティングインタコネクト装置5a-0~5a-3の送信部53-0~53-3は、受信部56から受け取った構成パラメータの更新後の値w_newとシーケンシャル番号とを通信パケットTP0~TP3のデータペイロードに格納する。制御部54-0~54-3は、通信パケットTP0~TP3を送信部53-0~53-3から直下の各学習ノード2a-0~2a-15へ同時に送信させる。第3の実施例で説明したとおり、受信部56と送信部53-0~53-3とは、親コンピューティングインタコネクト装置4aから受信した通信パケットをそのまま直下の各学習ノード2a-0~2a-15へ転送するようにしてもよい。
なお、図15の例では、子コンピューティングインタコネクト装置の直下に学習ノードが接続されているが、図12の例と同様に子コンピューティングインタコネクト装置5a-0~5a-3の直下に別の子コンピューティングインタコネクト装置が接続されていてもよい。
学習ノード2a-0~2a-15の構成は、第2の実施例で説明したとおりである。各学習ノード2a-0~2a-15の受信部24aは、直上の子コンピューティングインタコネクト装置5a-0~5a-3から受信した通信パケットTP0~TP3のデータペイロードから構成パラメータの更新後の値w_newとシーケンシャル番号とを取り出す。
各学習ノード2a-0~2a-15の構成パラメータ更新部25aは、シーケンシャル番号で特定される、ニューラルネットワーク26の構成パラメータを、構成パラメータの更新後の値w_newによって上書きすることにより、ニューラルネットワーク26を更新する。
本実施例では、All-reduce処理とニューラルネットワークの構成パラメータの更新演算とにコンピューティングインタコネクト装置4a,5aを用いることで、各学習ノード2a-0~2a-15からの通信パケットの到着時刻のばらつきに基づく僅かな遅延はあるものの、各学習ノード2a-0~2a-15との間の通信パケットの送受信処理を同時並行して高速にハードウェア処理できるため、従来技術のヘッドノードで通信処理や勾配の加算処理をソフトウェア処理する場合に比べて、高速に処理することが可能になる。
特に、本実施例では、構成パラメータの更新演算処理についても専用演算回路を用意することで、高速化を図ることができる。また、勾配の和演算も、構成パラメータの更新演算も、ニューラルネットワーク26の構成によらず、構成パラメータ毎に独立して同じ演算を行えばよいので、学習ノード2a-0~2a-15でのニューラルネットワーク26の構成を変えた場合でも、コンピューティングインタコネクト装置4aの演算器は同じ専用演算回路を用いることができるというメリットもある。
[第5の実施例]
次に、本発明の第5の実施例について説明する。図18は本実施例に係る分散深層学習システムの構成を示すブロック図である。本実施例では、図18のように1台の親コンピューティングインタコネクト装置4bと複数の子コンピューティングインタコネクト装置5b-1~5b-3とがリング型の通信ネットワーク8で接続され、親コンピューティングインタコネクト装置4bと子コンピューティングインタコネクト装置5b-1~5b-3のそれぞれに通信ネットワーク9を介して学習ノード2-0~2-3が接続されている。
次に、本発明の第5の実施例について説明する。図18は本実施例に係る分散深層学習システムの構成を示すブロック図である。本実施例では、図18のように1台の親コンピューティングインタコネクト装置4bと複数の子コンピューティングインタコネクト装置5b-1~5b-3とがリング型の通信ネットワーク8で接続され、親コンピューティングインタコネクト装置4bと子コンピューティングインタコネクト装置5b-1~5b-3のそれぞれに通信ネットワーク9を介して学習ノード2-0~2-3が接続されている。
親コンピューティングインタコネクト装置4bと学習ノード2-0との間、および子コンピューティングインタコネクト装置5b-1~5b-2と学習ノード2-1~2-3との間は、通信ケーブルで結んでもよいし、学習ノード2-0~2-3内のPCI ExpressなどのI/Oインタフェースにコンピューティングインタコネクト装置4b,5b-1~5b-2を直に挿入するようにしてもよい。
図19(A)~図19(E)に本実施例の分散深層学習システムの動作を示す。まず、親コンピューティングインタコネクト装置4bに接続された学習ノード2-0から勾配の計算結果G0を親コンピューティングインタコネクト装置4bに送信し、親コンピューティングインタコネクト装置4bは、勾配の計算結果G0を子コンピューティングインタコネクト装置5b-1に転送する(図19(A))。
子コンピューティングインタコネクト装置5b-1は、親コンピューティングインタコネクト装置4bから送信された勾配の計算結果G0と、直下の学習ノード2-1から送信された勾配の計算結果G1との和G0+G1を計算し、この計算結果G0+G1を子コンピューティングインタコネクト装置5b-2に送信する(図19(B))。
同様の処理を子コンピューティングインタコネクト装置5b-2,5b-3の各々で行う。子コンピューティングインタコネクト装置5b-2は、子コンピューティングインタコネクト装置5b-1から送信された勾配の和の計算結果G0+G1と、直下の学習ノード2-2から送信された勾配の計算結果G2との和G0+G1+G2を計算し、この計算結果G0+G1+G2を子コンピューティングインタコネクト装置5b-3に送信する。子コンピューティングインタコネクト装置5b-3は、子コンピューティングインタコネクト装置5b-2から送信された勾配の和の計算結果G0+G1+G2と、直下の学習ノード2-3から送信された勾配の計算結果G3との和ΣG=G0+G1+G2+G3を計算し、この計算結果ΣGを親コンピューティングインタコネクト装置4bに送信する。
勾配の和の計算結果ΣGを受信した親コンピューティングインタコネクト装置4bは、受信した勾配の和ΣGを直下の学習ノード2-0と子コンピューティングインタコネクト装置5b-1とに送信する(図19(C))。
勾配の和ΣGを受信した子コンピューティングインタコネクト装置5b-1は、勾配の和ΣGを直下の学習ノード2-1と子コンピューティングインタコネクト装置5b-2とに送信する(図19(D))。
同様の処理を子コンピューティングインタコネクト装置5b-2,5b-3の各々で行う。子コンピューティングインタコネクト装置5b-2は、子コンピューティングインタコネクト装置5b-1から送信された勾配の和ΣGを直下の学習ノード2-2と子コンピューティングインタコネクト装置5b-3とに送信する。子コンピューティングインタコネクト装置5b-3は、子コンピューティングインタコネクト装置5b-2から送信された勾配の和ΣGを直下の学習ノード2-3と親コンピューティングインタコネクト装置4bとに送信する。
最後に、勾配の和ΣGを受信した親コンピューティングインタコネクト装置4bは、これを廃棄する(図19(E))。
以上の動作により、各学習ノード2-0~2-3に勾配の和ΣGが送信される。
以上の動作により、各学習ノード2-0~2-3に勾配の和ΣGが送信される。
図20に子コンピューティングインタコネクト装置5b-1の構成を示す。子コンピューティングインタコネクト装置5b-1は、1方向(本実施例では反時計回りの方向)に限定して通信を行うリング型のネットワーク構成における隣接する上流のコンピューティングインタコネクト装置(左隣の親コンピューティングインタコネクト装置4bまたは子コンピューティングインタコネクト装置)からの通信パケットを受信する受信部60と、通信パケットの受信完了フラグ(完了/未了)に応じて受信部60からのデータを振り分ける振分部61と、振分部61からのデータを一時的に記憶するバッファメモリ62と、直下の学習ノード2-1からの通信パケットを受信する受信部63と、直下の学習ノード2-1に通信パケットを送信する送信部64と、受信部63からのデータを一時的に記憶するバッファメモリ65と、勾配の和を計算する加算器66(演算器)と、リング型のネットワーク構成における隣接する下流のコンピューティングインタコネクト装置(右隣の親コンピューティングインタコネクト装置4bまたは子コンピューティングインタコネクト装置)へ通信パケットを送信する送信部67と、バッファメモリ62,65を制御する制御部68とを備えている。
図20の例では、子コンピューティングインタコネクト装置5b-1の構成を示しているが、他の子コンピューティングインタコネクト装置の構成も子コンピューティングインタコネクト装置5b-1と同様である。
図21に親コンピューティングインタコネクト装置4bの構成を示す。親コンピューティングインタコネクト装置4bは、リング型のネットワーク構成における隣接する上流のコンピューティングインタコネクト装置(左隣の子コンピューティングインタコネクト装置)からの通信パケットを受信する受信部70と、直下の学習ノード2-0からの通信パケットを受信する受信部71と、直下の学習ノード2-0に通信パケットを送信する送信部72と、通信パケットの受信完了フラグ(完了/未了)に応じて受信部70からのデータを振り分ける振分部73と、リング型のネットワーク構成における隣接する下流のコンピューティングインタコネクト装置(右隣の子コンピューティングインタコネクト装置)へ通信パケットを送信する送信部74とを備えている。
図22は、図19(A)における親コンピューティングインタコネクト装置4bの動作を示している。第1の実施例で説明したとおり、通信パケットは、ヘッダ200とデータペイロード201とからなる。学習ノード2-0から送信される通信パケットRP0のデータペイロードには、学習ノード2-0で計算された勾配値(図22のG0)と、勾配値のシーケンシャル番号(図22の例では“003”)と、親コンピューティングインタコネクト装置4bで勾配の和の取得完了/未了を示す受信完了フラグ(図22の例では未了)とが格納されている。なお、子コンピューティングインタコネクト装置5b-1~5b-3においては、受信完了フラグは、勾配の和の計算の完了/未了を意味する。
親コンピューティングインタコネクト装置4bの受信部71は、受信した通信パケットRP0のデータペイロードから勾配値G0とシーケンシャル番号と受信完了フラグとを取り出して送信部74に渡す。
送信部74は、受信部71から受け取った勾配値G0とシーケンシャル番号と受信完了フラグとを通信パケットTPC1のデータペイロードに格納して、通信パケットTPC1を、隣接する下流のコンピューティングインタコネクト装置(図19(A)では子コンピューティングインタコネクト装置5b-1)へ送信する。
送信部74は、受信部71から受け取った勾配値G0とシーケンシャル番号と受信完了フラグとを通信パケットTPC1のデータペイロードに格納して、通信パケットTPC1を、隣接する下流のコンピューティングインタコネクト装置(図19(A)では子コンピューティングインタコネクト装置5b-1)へ送信する。
図23は、図19(B)における子コンピューティングインタコネクト装置5b-1の動作を示している。
子コンピューティングインタコネクト装置5b-1の受信部60は、親コンピューティングインタコネクト装置4bから受信した通信パケットTPC1のデータペイロードから勾配値G0とシーケンシャル番号と受信完了フラグとを取り出して振分部61に渡す。
子コンピューティングインタコネクト装置5b-1の受信部60は、親コンピューティングインタコネクト装置4bから受信した通信パケットTPC1のデータペイロードから勾配値G0とシーケンシャル番号と受信完了フラグとを取り出して振分部61に渡す。
振分部61は、受信部60から受け取った受信完了フラグが「未了」を示しているので、受信部60から受け取った勾配値G0とシーケンシャル番号と受信完了フラグとをバッファメモリ62に格納する。
一方、子コンピューティングインタコネクト装置5b-1の受信部63は、直下の学習ノード2-1から受信した通信パケットRP1のデータペイロードから勾配値G1とシーケンシャル番号と受信完了フラグとを取り出してバッファメモリ65に格納する。
子コンピューティングインタコネクト装置5b-1の制御部68は、バッファメモリ62とバッファメモリ65に同一のシーケンシャル番号の勾配値G0とG1が揃った時点で、バッファメモリ62から勾配値G0とシーケンシャル番号と受信完了フラグとを読み出すと共に、バッファメモリ65から勾配値G1とシーケンシャル番号と受信完了フラグとを読み出し、勾配値G0とG1を加算器66に渡す。
加算器66は、勾配値G0とG1を加算する。また、制御部68は、バッファメモリ62から読み出したシーケンシャル番号と受信完了フラグとを送信部67に渡す。
子コンピューティングインタコネクト装置5b-1の送信部67は、加算器66によって計算された勾配の和G0+G1と制御部68から受け取ったシーケンシャル番号と受信完了フラグとを通信パケットTPC2のデータペイロードに格納して、通信パケットTPC2を、隣接する下流のコンピューティングインタコネクト装置(図19(B)では子コンピューティングインタコネクト装置5b-2)へ送信する。
図24は、図19(C)における親コンピューティングインタコネクト装置4bの動作を示している。
親コンピューティングインタコネクト装置4bの受信部70は、隣接する上流のコンピューティングインタコネクト装置(図19(C)では子コンピューティングインタコネクト装置5b-3)から受信した通信パケットTPC0のペイロードから勾配の和ΣGとシーケンシャル番号と受信完了フラグとを取り出して振分部73に渡す。
親コンピューティングインタコネクト装置4bの受信部70は、隣接する上流のコンピューティングインタコネクト装置(図19(C)では子コンピューティングインタコネクト装置5b-3)から受信した通信パケットTPC0のペイロードから勾配の和ΣGとシーケンシャル番号と受信完了フラグとを取り出して振分部73に渡す。
振分部73は、受信部70から受け取った受信完了フラグが「未了」を示しているので、受信部70から受け取った勾配の和ΣGとシーケンシャル番号と受信完了フラグとを送信部72と送信部74とに渡す。このとき、親コンピューティングインタコネクト装置4bが隣接する上流の子コンピューティングインタコネクト装置5b-3から通信パケットTPC0を受信することは、通信パケットがリング型の通信ネットワーク8を一巡し、勾配の和の計算が完了したことを意味する。そこで、振分部73は、受信部70から受け取った受信完了フラグを、「未了」から「完了」を示す値に変更した上で送信部72と送信部74とに渡す。
送信部72は、振分部73から受け取った勾配の和ΣGとシーケンシャル番号と受信完了フラグとを通信パケットTP0のデータペイロードに格納して、通信パケットTP0を学習ノード2-0へ送信する。
送信部74は、振分部73から受け取った勾配の和ΣGとシーケンシャル番号と受信完了フラグとを通信パケットTPC1のデータペイロードに格納して、通信パケットTPC1を、隣接する下流のコンピューティングインタコネクト装置(図19(C)では子コンピューティングインタコネクト装置5b-1)へ送信する。
送信部74は、振分部73から受け取った勾配の和ΣGとシーケンシャル番号と受信完了フラグとを通信パケットTPC1のデータペイロードに格納して、通信パケットTPC1を、隣接する下流のコンピューティングインタコネクト装置(図19(C)では子コンピューティングインタコネクト装置5b-1)へ送信する。
図25は、図19(D)における子コンピューティングインタコネクト装置5b-1の動作を示している。
子コンピューティングインタコネクト装置5b-1の受信部60は、親コンピューティングインタコネクト装置4bから受信した通信パケットTPC1のデータペイロードから勾配の和ΣGとシーケンシャル番号と受信完了フラグとを取り出して振分部61に渡す。
子コンピューティングインタコネクト装置5b-1の受信部60は、親コンピューティングインタコネクト装置4bから受信した通信パケットTPC1のデータペイロードから勾配の和ΣGとシーケンシャル番号と受信完了フラグとを取り出して振分部61に渡す。
振分部61は、受信部60から受け取った受信完了フラグが「完了」を示しているので、受信部60から受け取った勾配の和ΣGとシーケンシャル番号と受信完了フラグとを送信部64と送信部67とに渡す。
送信部64は、振分部61から受け取った勾配の和ΣGとシーケンシャル番号と受信完了フラグとを通信パケットTP1のデータペイロードに格納して、通信パケットTP1を学習ノード2-1へ送信する。
送信部67は、振分部61から受け取った勾配の和ΣGとシーケンシャル番号と受信完了フラグとを通信パケットTPC2のデータペイロードに格納して、通信パケットTPC2を、隣接する下流のコンピューティングインタコネクト装置(図19(D)では子コンピューティングインタコネクト装置5b-2)へ送信する。
送信部67は、振分部61から受け取った勾配の和ΣGとシーケンシャル番号と受信完了フラグとを通信パケットTPC2のデータペイロードに格納して、通信パケットTPC2を、隣接する下流のコンピューティングインタコネクト装置(図19(D)では子コンピューティングインタコネクト装置5b-2)へ送信する。
図26は、図19(E)における親コンピューティングインタコネクト装置4bの動作を示している。
親コンピューティングインタコネクト装置4bの受信部70は、隣接する上流のコンピューティングインタコネクト装置(図19(E)では子コンピューティングインタコネクト装置5b-3)から受信した通信パケットTPC0のペイロードから勾配の和ΣGとシーケンシャル番号と受信完了フラグとを取り出して振分部73に渡す。
親コンピューティングインタコネクト装置4bの受信部70は、隣接する上流のコンピューティングインタコネクト装置(図19(E)では子コンピューティングインタコネクト装置5b-3)から受信した通信パケットTPC0のペイロードから勾配の和ΣGとシーケンシャル番号と受信完了フラグとを取り出して振分部73に渡す。
振分部73は、受信部70から受け取った受信完了フラグが「完了」を示しているので、受信部70から受け取った勾配の和ΣGとシーケンシャル番号と受信完了フラグとを廃棄する。
以上の動作により、各学習ノード2-0~2-3に勾配の和ΣGが送信され、各学習ノード2-0~2-3は、勾配の和ΣGを用いてニューラルネットワーク26の構成パラメータを更新し、分散学習の1サイクルが終了する。
学習ノード2-0~2-3の構成は、図7に示した第1の実施例の構成と同様である。第1の実施例との相違点は、各学習ノード2-0~2-3の送信部23が、勾配計算部22によって計算された勾配の計算結果とシーケンシャル番号の他に、「未了」を示す受信完了フラグを通信パケットRP0~RP3のデータペイロードに書き込んで、通信パケットRP0~RP3を直上の親コンピューティングインタコネクト装置4b、子コンピューティングインタコネクト装置5b-1~5b-3に送信する点である。
本実施例では、All-reduce処理にコンピューティングインタコネクト装置4b,5b-1~5b-3を用いることで、各学習ノード2-0~2-3からの通信パケットの到着時刻のばらつきに基づく僅かな遅延はあるものの、各学習ノード2-0~2-3の間の通信パケットの送受信処理と勾配の加算等の演算処理を同時並行して高速にハードウェア処理できるため、従来技術のヘッドノードで通信処理や勾配の加算処理をソフトウェア処理する場合に比べて、高速に処理することが可能になる。
さらに、本実施例のようにコンピューティングインタコネクト装置4b,5b-1~5b-3をリング状に接続することにより、コンピューティングインタコネクト装置4b,5b-1~5b-3に多くの学習ノード2-0~2-3を接続した場合でも、リング型の通信ネットワーク8の通信帯域は学習ノード2-0~2-3の数によらず一定でよいという利点もある。
[第6の実施例]
次に、本発明の第6の実施例について説明する。図27は本実施例に係る分散深層学習システムの構成を示すブロック図である。本実施例では、図27のように1台の親コンピューティングインタコネクト装置4cと複数の子コンピューティングインタコネクト装置5c-1~5c-3とがリング型の通信ネットワーク8で接続され、親コンピューティングインタコネクト装置4cと子コンピューティングインタコネクト装置5c-1~5c-3のそれぞれに学習ノード2a-0~2a-3が接続されている。本実施例では、親コンピューティングインタコネクト装置4cにおいて、ニューラルネットワークの構成パラメータの更新演算も行うところが第5の実施例と異なる。
次に、本発明の第6の実施例について説明する。図27は本実施例に係る分散深層学習システムの構成を示すブロック図である。本実施例では、図27のように1台の親コンピューティングインタコネクト装置4cと複数の子コンピューティングインタコネクト装置5c-1~5c-3とがリング型の通信ネットワーク8で接続され、親コンピューティングインタコネクト装置4cと子コンピューティングインタコネクト装置5c-1~5c-3のそれぞれに学習ノード2a-0~2a-3が接続されている。本実施例では、親コンピューティングインタコネクト装置4cにおいて、ニューラルネットワークの構成パラメータの更新演算も行うところが第5の実施例と異なる。
図28(A)~図28(E)に本実施例の分散深層学習システムの動作を示す。まず、親コンピューティングインタコネクト装置4cに接続された学習ノード2a-0から勾配の計算結果G0を親コンピューティングインタコネクト装置4cに送信し、親コンピューティングインタコネクト装置4cは、勾配の計算結果G0を子コンピューティングインタコネクト装置5c-1に転送する(図28(A))。
子コンピューティングインタコネクト装置5c-1は、親コンピューティングインタコネクト装置4cから送信された勾配の計算結果G0と、直下の学習ノード2a-1から送信された勾配の計算結果G1との和G0+G1を計算し、この計算結果G0+G1を子コンピューティングインタコネクト装置5b-2に送信する(図28(B))。
同様の処理を子コンピューティングインタコネクト装置5c-2,5c-3の各々で行う。子コンピューティングインタコネクト装置5c-2は、子コンピューティングインタコネクト装置5c-1から送信された勾配の和の計算結果G0+G1と、直下の学習ノード2a-2から送信された勾配の計算結果G2との和G0+G1+G2を計算し、この計算結果G0+G1+G2を子コンピューティングインタコネクト装置5b-3に送信する。子コンピューティングインタコネクト装置5c-3は、子コンピューティングインタコネクト装置5c-2から送信された勾配の和の計算結果G0+G1+G2と、直下の学習ノード2a-3から送信された勾配の計算結果G3との和ΣG=G0+G1+G2+G3を計算し、この計算結果ΣGを親コンピューティングインタコネクト装置4cに送信する。
勾配の和の計算結果ΣGを受信した親コンピューティングインタコネクト装置4cは、勾配の和ΣGを用いてニューラルネットワークの構成パラメータの更新後の値w_newを計算し、その計算結果を直下の学習ノード2a-0と子コンピューティングインタコネクト装置5c-1とに送信する(図28(C))。
構成パラメータの更新後の値w_newを受信した子コンピューティングインタコネクト装置5c-1は、構成パラメータの更新後の値w_newを直下の学習ノード2a-1と子コンピューティングインタコネクト装置5c-2とに送信する(図28(D))。
同様の処理を子コンピューティングインタコネクト装置5c-2,5c-3の各々で行う。子コンピューティングインタコネクト装置5c-2は、子コンピューティングインタコネクト装置5c-1から送信された構成パラメータの更新後の値w_newを直下の学習ノード2a-2と子コンピューティングインタコネクト装置5c-3とに送信する。子コンピューティングインタコネクト装置5c-3は、子コンピューティングインタコネクト装置5c-2から送信された構成パラメータの更新後の値w_newを直下の学習ノード2a-3と親コンピューティングインタコネクト装置4cとに送信する。
最後に、構成パラメータの更新後の値w_newを受信した親コンピューティングインタコネクト装置4cは、これを廃棄する(図28(E))。
以上の動作により、各学習ノード2a-0~2a-3に構成パラメータの更新後の値w_newが送信される。
以上の動作により、各学習ノード2a-0~2a-3に構成パラメータの更新後の値w_newが送信される。
図29に子コンピューティングインタコネクト装置5c-1の構成を示す。子コンピューティングインタコネクト装置5c-1は、受信部60と、振分部61と、バッファメモリ62と、受信部63と、送信部64と、バッファメモリ65と、加算器66と、送信部67と、制御部68とを備えている。
図29の例では、子コンピューティングインタコネクト装置5c-1の構成を示しているが、他の子コンピューティングインタコネクト装置の構成も子コンピューティングインタコネクト装置5c-1と同様である。
図30に親コンピューティングインタコネクト装置4cの構成を示す。親コンピューティングインタコネクト装置4cは、受信部70と、受信部71と、送信部72と、振分部73と、送信部74と、NN(ニューラルネットワーク)構成パラメータ更新演算部75と、構成パラメータメモリ76とを備えている。第5の実施例との違いは、NN構成パラメータ更新演算部75と構成パラメータメモリ76とを追加した点である。
図31は、図28(A)における親コンピューティングインタコネクト装置4cの動作を示している。学習ノード2a-0から送信される通信パケットRP0のデータペイロードには、学習ノード2a-0で計算された勾配値(図31のG0)と、勾配値のシーケンシャル番号(図31の例では“003”)と、受信完了フラグ(図31の例では未了)とが格納されている。
親コンピューティングインタコネクト装置4cの受信部71は、受信した通信パケットRP0のデータペイロードから勾配値G0とシーケンシャル番号と受信完了フラグとを取り出して送信部74に渡す。
送信部74は、受信部71から受け取った勾配値G0とシーケンシャル番号と受信完了フラグとを通信パケットTPC1のデータペイロードに格納して、通信パケットTPC1を、隣接する下流のコンピューティングインタコネクト装置(図28(A)では子コンピューティングインタコネクト装置5c-1)へ送信する。
送信部74は、受信部71から受け取った勾配値G0とシーケンシャル番号と受信完了フラグとを通信パケットTPC1のデータペイロードに格納して、通信パケットTPC1を、隣接する下流のコンピューティングインタコネクト装置(図28(A)では子コンピューティングインタコネクト装置5c-1)へ送信する。
図32は、図28(B)における子コンピューティングインタコネクト装置5c-1の動作を示している。
子コンピューティングインタコネクト装置5c-1の受信部60は、親コンピューティングインタコネクト装置4cから受信した通信パケットTPC1のデータペイロードから勾配値G0とシーケンシャル番号と受信完了フラグとを取り出して振分部61に渡す。
子コンピューティングインタコネクト装置5c-1の受信部60は、親コンピューティングインタコネクト装置4cから受信した通信パケットTPC1のデータペイロードから勾配値G0とシーケンシャル番号と受信完了フラグとを取り出して振分部61に渡す。
振分部61は、受信部60から受け取った受信完了フラグが「未了」を示しているので、受信部60から受け取った勾配値G0とシーケンシャル番号と受信完了フラグとをバッファメモリ62に格納する。
一方、子コンピューティングインタコネクト装置5c-1の受信部63は、直下の学習ノード2a-1から受信した通信パケットRP1のデータペイロードから勾配値G1とシーケンシャル番号と受信完了フラグとを取り出してバッファメモリ65に格納する。
子コンピューティングインタコネクト装置5c-1の制御部68は、バッファメモリ62とバッファメモリ65に同一のシーケンシャル番号の勾配値G0とG1が揃った時点で、バッファメモリ62から勾配値G0とシーケンシャル番号と受信完了フラグとを読み出すと共に、バッファメモリ65から勾配値G1とシーケンシャル番号と受信完了フラグとを読み出し、勾配値G0とG1を加算器66に渡す。
加算器66は、勾配値G0とG1を加算する。また、制御部68は、バッファメモリ62から読み出したシーケンシャル番号と受信完了フラグとを送信部67に渡す。
子コンピューティングインタコネクト装置5c-1の送信部67は、加算器66によって計算された勾配の和G0+G1と制御部68から受け取ったシーケンシャル番号と受信完了フラグとを通信パケットTPC2のデータペイロードに格納して、通信パケットTPC2を、隣接する下流のコンピューティングインタコネクト装置(図28(B)では子コンピューティングインタコネクト装置5c-2)へ送信する。
図33は、図28(C)における親コンピューティングインタコネクト装置4cの動作を示している。
親コンピューティングインタコネクト装置4cの受信部70は、隣接する上流のコンピューティングインタコネクト装置(図28(C)では子コンピューティングインタコネクト装置5c-3)から受信した通信パケットTPC0のペイロードから勾配の和ΣGとシーケンシャル番号と受信完了フラグとを取り出して振分部73に渡す。
親コンピューティングインタコネクト装置4cの受信部70は、隣接する上流のコンピューティングインタコネクト装置(図28(C)では子コンピューティングインタコネクト装置5c-3)から受信した通信パケットTPC0のペイロードから勾配の和ΣGとシーケンシャル番号と受信完了フラグとを取り出して振分部73に渡す。
振分部73は、受信部70から受け取った受信完了フラグが「未了」を示しているので、受信部70から受け取った勾配の和ΣGとシーケンシャル番号と受信完了フラグとをNN構成パラメータ更新演算部75に渡す。このとき、振分部73は、受信部70から受け取った受信完了フラグを、「未了」から「完了」を示す値に変更した上でNN構成パラメータ更新演算部75に渡す。
第2の実施例と同様に、学習開始時点において、各学習ノード2a-0~2a-3のニューラルネットワーク26は、全ての学習ノード2a-0~2a-3で同じ構成パラメータの初期値が設定されている。この構成パラメータの初期値が親コンピューティングインタコネクト装置4cの構成パラメータメモリ76に記憶されている。
NN構成パラメータ更新演算部75は、振分部73から受け取った勾配の和ΣGと、構成パラメータメモリ76に記憶されている構成パラメータの値w_oldとを基に、ニューラルネットワークの構成パラメータの更新後の値w_newを構成パラメータ毎に計算して、この計算結果と振分部73から受け取ったシーケンシャル番号と受信完了フラグとを送信部72,74に出力する。更新方法として例えば、勾配降下法を用いる場合は式(5)のような計算を行う。
また、NN構成パラメータ更新演算部75は、構成パラメータの更新後の値w_newを送信部72,74に出力すると同時に、構成パラメータメモリ76に格納されている当該構成パラメータの値を、更新後の値w_newによって上書きする。
送信部72は、NN構成パラメータ更新演算部75から受け取った構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを通信パケットTP0のデータペイロードに格納して、通信パケットTP0を学習ノード2a-0へ送信する。
送信部74は、NN構成パラメータ更新演算部75から受け取った構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを通信パケットTPC1のデータペイロードに格納して、通信パケットTPC1を、隣接する下流のコンピューティングインタコネクト装置(図28(C)では子コンピューティングインタコネクト装置5c-1)へ送信する。
送信部74は、NN構成パラメータ更新演算部75から受け取った構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを通信パケットTPC1のデータペイロードに格納して、通信パケットTPC1を、隣接する下流のコンピューティングインタコネクト装置(図28(C)では子コンピューティングインタコネクト装置5c-1)へ送信する。
図34は、図28(D)における子コンピューティングインタコネクト装置5c-1の動作を示している。
子コンピューティングインタコネクト装置5c-1の受信部60は、親コンピューティングインタコネクト装置4cから受信した通信パケットTPC1のデータペイロードから構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを取り出して振分部61に渡す。
子コンピューティングインタコネクト装置5c-1の受信部60は、親コンピューティングインタコネクト装置4cから受信した通信パケットTPC1のデータペイロードから構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを取り出して振分部61に渡す。
振分部61は、受信部60から受け取った受信完了フラグが「完了」を示しているので、受信部60から受け取った構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを送信部64と送信部67とに渡す。
送信部64は、振分部61から受け取った構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを通信パケットTP1のデータペイロードに格納して、通信パケットTP1を学習ノード2a-1へ送信する。
送信部67は、振分部61から受け取った構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを通信パケットTPC2のデータペイロードに格納して、通信パケットTPC2を、隣接する下流のコンピューティングインタコネクト装置(図28(D)では子コンピューティングインタコネクト装置5c-2)へ送信する。
送信部67は、振分部61から受け取った構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを通信パケットTPC2のデータペイロードに格納して、通信パケットTPC2を、隣接する下流のコンピューティングインタコネクト装置(図28(D)では子コンピューティングインタコネクト装置5c-2)へ送信する。
図35は、図28(E)における親コンピューティングインタコネクト装置4cの動作を示している。
親コンピューティングインタコネクト装置4cの受信部70は、隣接する上流のコンピューティングインタコネクト装置(図28(E)では子コンピューティングインタコネクト装置5c-3)から受信した通信パケットTPC0のペイロードから構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを取り出して振分部73に渡す。
親コンピューティングインタコネクト装置4cの受信部70は、隣接する上流のコンピューティングインタコネクト装置(図28(E)では子コンピューティングインタコネクト装置5c-3)から受信した通信パケットTPC0のペイロードから構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを取り出して振分部73に渡す。
振分部73は、受信部70から受け取った受信完了フラグが「完了」を示しているので、受信部70から受け取った構成パラメータの更新後の値w_newとシーケンシャル番号と受信完了フラグとを廃棄する。
以上の動作により、各学習ノード2a-0~2a-3に構成パラメータの更新後の値w_newが送信される。各学習ノード2a-0~2a-3は、シーケンシャル番号で特定される、ニューラルネットワーク26の構成パラメータを、構成パラメータの更新後の値w_newによって上書きすることにより、ニューラルネットワーク26を更新する。
学習ノード2a-0~2a-3の構成は、図10に示した第2の実施例の構成と同様である。第2の実施例との相違点は、各学習ノード2a-0~2a-3の送信部23が、勾配計算部22によって計算された勾配の計算結果とシーケンシャル番号の他に、「未了」を示す受信完了フラグを通信パケットRP0~RP3のデータペイロードに書き込んで、通信パケットRP0~RP3を直上の親コンピューティングインタコネクト装置4c、子コンピューティングインタコネクト装置5c-1~5c-3に送信する点である。
本実施例では、All-reduce処理とニューラルネットワークの構成パラメータの更新演算とにコンピューティングインタコネクト装置4c,5c-1~5c-3を用いることで、各学習ノード2a-0~2a-3からの通信パケットの到着時刻のばらつきに基づく僅かな遅延はあるものの、各学習ノード2a-0~2a-3の間の通信パケットの送受信処理と勾配の加算や構成パラメータの更新演算等の演算処理とを同時並行して高速にハードウェア処理できるため、従来技術のヘッドノードで通信処理や勾配の加算処理をソフトウェア処理する場合に比べて、高速に処理することが可能になる。
特に、本実施例では、構成パラメータの更新演算処理についても専用演算回路を用意することで、高速化を図ることができる。また、勾配の和演算も、構成パラメータの更新演算も、ニューラルネットワーク26の構成によらず、構成パラメータ毎に独立して同じ演算を行えばよいので、学習ノード2a-0~2a-3でのニューラルネットワーク26の構成を変えた場合でも、コンピューティングインタコネクト装置4c,5c-1~5c-3の演算器は同じ専用演算回路を用いることができるというメリットもある。
さらに、本実施例のようにコンピューティングインタコネクト装置4c,5c-1~5c-3をリング状に接続することにより、コンピューティングインタコネクト装置4c,5c-1~5c-3に多くの学習ノード2a-0~2a-3を接続した場合でも、リング型の通信ネットワーク8の通信帯域は学習ノード2a-0~2a-3の数によらず一定でよいという利点もある。
第1~第6の実施例で説明した学習ノードの各々は、CPU(Central Processing Unit)、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。学習ノードの各々のCPUは、各々の記憶装置に格納されたプログラムに従って第1~第6の実施例で説明した処理を実行する。
本発明は、ニューラルネットワークの機械学習を行う技術に適用することができる。
1,1a…コンピューティングインタコネクト装置、2-0~2-15,2a-0~2a-15…学習ノード、3,6~9…通信ネットワーク、4,4a~4c…親コンピューティングインタコネクト装置、5-0~5-3,5a-0~5a-3,5b-1~5b-3,5c-1~5c-3…子コンピューティングインタコネクト装置、10-0~10-3,24,24a,40-0~40-3,50-0~50-3,56,60,63,70,71…受信部、11-0~11-3,41-0~41-3,51-0~51-3,62,65…バッファメモリ、12,42,52,66…加算器、13-0~13-3,13a-0~13a-3,23,43-0~43-3,43a-0~43a-3,53-0~53-3,55,64,67,72,74…送信部、14-0~14-3,14a-0~14a-3,44-0~44-3,44a-0~44a-3,54-0~54-3,68…制御部、15,45,76…構成パラメータメモリ、16,46,75…NN構成パラメータ更新演算部、20…入力部、21…損失関数計算部、22…勾配計算部、25,25a…構成パラメータ更新部、26…ニューラルネットワーク、57…転送部、61,73…振分部。
Claims (6)
- 複数の学習ノードと、
これら複数の学習ノードと通信ネットワークを介して接続されたコンピューティングインタコネクト装置とを備え、
各学習ノードは、
学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、
この勾配計算部の計算結果をパケット化して前記コンピューティングインタコネクト装置に送信する第1の送信部と、
前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、
この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、
前記コンピューティングインタコネクト装置は、
各学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第2の受信部と、
この第2の受信部が取得した前記勾配の値を入力として計算処理を行う演算器と、
この演算器の計算結果をパケット化して各学習ノードに送信する第2の送信部とを備えることを特徴とする分散深層学習システム。 - 複数の学習ノードと、
これら複数の学習ノードと通信ネットワークを介して接続されたコンピューティングインタコネクト装置とを備え、
各学習ノードは、
学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、
この勾配計算部の計算結果をパケット化して前記コンピューティングインタコネクト装置に送信する第1の送信部と、
前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、
この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、
前記コンピューティングインタコネクト装置は、
各学習ノードの前記ニューラルネットワークの構成パラメータを記憶する構成パラメータメモリと、
各学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第2の受信部と、
この第2の受信部が取得した前記勾配の値を入力として計算処理を行う演算器と、
この演算器の計算結果と前記構成パラメータメモリに記憶されている構成パラメータの値とを基に、この構成パラメータの更新後の値を計算して、前記構成パラメータメモリに記憶されている当該構成パラメータの値を更新する構成パラメータ更新演算部と、
前記構成パラメータの更新後の値をパケット化して各学習ノードに送信する第2の送信部とを備え、
各学習ノードの前記構成パラメータ更新部は、前記ニューラルネットワークの構成パラメータを、前記第1の受信部が取得した当該構成パラメータの更新後の値によって上書きすることを特徴とする分散深層学習システム。 - 複数の学習ノードと、
これら複数の学習ノードまたは他の装置と通信ネットワークを介して接続された複数のコンピューティングインタコネクト装置とを備え、
各学習ノードは、
学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、
この勾配計算部の計算結果をパケット化して、自ノードと接続された前記コンピューティングインタコネクト装置に送信する第1の送信部と、
自ノードと接続された前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、
この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、
前記複数のコンピューティングインタコネクト装置のうち、最上位に位置するコンピューティングインタコネクト装置は、
直下位の前記コンピューティングインタコネクト装置から送信されたパケット、および自装置と接続された前記学習ノードから送信されたパケットを受信して、受信したパケットに格納された前記勾配の値を取得する第2の受信部と、
この第2の受信部が取得した前記勾配の値を入力として計算処理を行う第1の演算器と、
この第1の演算器の計算結果をパケット化して、直下位の前記コンピューティングインタコネクト装置、および自装置と接続された前記学習ノードに送信する第2の送信部とを備え、
前記複数のコンピューティングインタコネクト装置のうち、下位の前記コンピューティングインタコネクト装置または下位の前記学習ノードと上位の前記コンピューティングインタコネクト装置との間に位置するコンピューティングインタコネクト装置は、
直下位の前記コンピューティングインタコネクト装置から送信されたパケット、または自装置と接続された前記学習ノードから送信されたパケットを受信して、受信したパケットに格納された前記勾配の値を取得する第3の受信部と、
この第3の受信部が取得した前記勾配の値を入力として計算処理を行う第2の演算器と、
この第2の演算器の計算結果をパケット化して直上位の前記コンピューティングインタコネクト装置に送信する第3の送信部と、
直上位の前記コンピューティングインタコネクト装置から送信されたパケットを、直下位の前記コンピューティングインタコネクト装置、若しくは自装置と接続された前記学習ノードに転送するか、あるいは直上位の前記コンピューティングインタコネクト装置から送信されたパケットを受信してパケットに格納された値を取得し、この取得した値を再度パケット化して、直下位の前記コンピューティングインタコネクト装置、若しくは自装置と接続された前記学習ノードに送信する転送部とを備えることを特徴とする分散深層学習システム。 - 複数の学習ノードと、
これら複数の学習ノードまたは他の装置と通信ネットワークを介して接続された複数のコンピューティングインタコネクト装置とを備え、
各学習ノードは、
学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、
この勾配計算部の計算結果をパケット化して、自ノードと接続された前記コンピューティングインタコネクト装置に送信する第1の送信部と、
自ノードと接続された前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、
この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、
前記複数のコンピューティングインタコネクト装置のうち、最上位に位置するコンピューティングインタコネクト装置は、
各学習ノードの前記ニューラルネットワークの構成パラメータを記憶する構成パラメータメモリと、
直下位の前記コンピューティングインタコネクト装置から送信されたパケット、および自装置と接続された前記学習ノードから送信されたパケットを受信して、受信したパケットに格納された前記勾配の値を取得する第2の受信部と、
この第2の受信部が取得した前記勾配の値を入力として計算処理を行う第1の演算器と、
この第1の演算器の計算結果と前記構成パラメータメモリに記憶されている構成パラメータの値とを基に、この構成パラメータの更新後の値を計算して、前記構成パラメータメモリに記憶されている当該構成パラメータの値を更新する構成パラメータ更新演算部と、
前記構成パラメータの更新後の値をパケット化して直下位の前記コンピューティングインタコネクト装置、および自装置と接続された前記学習ノードに送信する第2の送信部とを備え、
前記複数のコンピューティングインタコネクト装置のうち、下位の前記コンピューティングインタコネクト装置または下位の前記学習ノードと上位の前記コンピューティングインタコネクト装置との間に位置するコンピューティングインタコネクト装置は、
直下位の前記コンピューティングインタコネクト装置から送信されたパケット、または自装置と接続された前記学習ノードから送信されたパケットを受信して、受信したパケットに格納された前記勾配の値を取得する第3の受信部と、
この第3の受信部が取得した前記勾配の値を入力として計算処理を行う第2の演算器と、
この第2の演算器の計算結果をパケット化して直上位の前記コンピューティングインタコネクト装置に送信する第3の送信部と、
直上位の前記コンピューティングインタコネクト装置から送信されたパケットを、直下位の前記コンピューティングインタコネクト装置、若しくは自装置と接続された前記学習ノードに転送するか、あるいは直上位の前記コンピューティングインタコネクト装置から送信されたパケットを受信してパケットに格納された値を取得し、この取得した値を再度パケット化して、直下位の前記コンピューティングインタコネクト装置、若しくは自装置と接続された前記学習ノードに送信する転送部とを備え、
各学習ノードの前記構成パラメータ更新部は、前記ニューラルネットワークの構成パラメータを、前記第1の受信部が取得した当該構成パラメータの更新後の値によって上書きすることを特徴とする分散深層学習システム。 - 複数の学習ノードと、
これら複数の学習ノードまたは他の装置と通信ネットワークを介して接続された複数のコンピューティングインタコネクト装置とを備え、
前記複数のコンピューティングインタコネクト装置は、1方向に限定して通信を行うリング型の通信ネットワークによって接続され、
各学習ノードは、
学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、
この勾配計算部の計算結果をパケット化して、自ノードと接続された前記コンピューティングインタコネクト装置に送信する第1の送信部と、
自ノードと接続された前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、
この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、
前記複数のコンピューティングインタコネクト装置のうち、第1のコンピューティングインタコネクト装置は、
自装置と接続された前記学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第2の受信部と、
隣接する上流の前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第3の受信部と、
この第3の受信部が取得した前記勾配の値を出力し、既に取得した値を再度取得した場合には廃棄する第1の振分部と、
前記第2の受信部が取得した前記勾配の値、または前記第1の振分部から出力された前記勾配の値をパケット化して、隣接する下流の前記コンピューティングインタコネクト装置に送信する第2の送信部と、
前記第1の振分部から出力された前記勾配の値をパケット化して、自装置と接続された前記学習ノードに送信する第3の送信部とを備え、
前記複数のコンピューティングインタコネクト装置のうち、前記第1のコンピューティングインタコネクト装置以外の第2のコンピューティングインタコネクト装置は、
隣接する上流の前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第4の受信部と、
自装置と接続された前記学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第5の受信部と、
前記第4の受信部が取得した値を、勾配に対する計算処理の未了の値と完了の値とに振り分ける第2の振分部と、
前記第2の振分部から出力された前記未了の値と前記第5の受信部が取得した前記勾配の値とを入力として計算処理を行う演算器と、
この演算器の計算結果、または前記第2の振分部から出力された前記完了の値をパケット化して、隣接する下流の前記コンピューティングインタコネクト装置に送信する第4の送信部と、
前記第2の振分部から出力された前記完了の値をパケット化して、自装置と接続された前記学習ノードに送信する第5の送信部とを備えることを特徴とする分散深層学習システム。 - 複数の学習ノードと、
これら複数の学習ノードまたは他の装置と通信ネットワークを介して接続された複数のコンピューティングインタコネクト装置とを備え、
前記複数のコンピューティングインタコネクト装置は、1方向に限定して通信を行うリング型の通信ネットワークによって接続され、
各学習ノードは、
学習対象のニューラルネットワークに学習データを入力した出力結果から損失関数の勾配を計算する勾配計算部と、
この勾配計算部の計算結果をパケット化して、自ノードと接続された前記コンピューティングインタコネクト装置に送信する第1の送信部と、
自ノードと接続された前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第1の受信部と、
この第1の受信部が取得した値に基づいて前記ニューラルネットワークの構成パラメータを更新する構成パラメータ更新部とを備え、
前記複数のコンピューティングインタコネクト装置のうち、第1のコンピューティングインタコネクト装置は、
各学習ノードの前記ニューラルネットワークの構成パラメータを記憶する構成パラメータメモリと、
自装置と接続された前記学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第2の受信部と、
隣接する上流の前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第3の受信部と、
この第3の受信部が取得した前記勾配の値を出力し、既に取得した値を再度取得した場合には廃棄する第1の振分部と、
前記第1の振分部から出力された前記勾配の値と前記構成パラメータメモリに記憶されている構成パラメータの値とを基に、この構成パラメータの更新後の値を計算して、前記構成パラメータメモリに記憶されている当該構成パラメータの値を更新する構成パラメータ更新演算部と、
前記第2の受信部が取得した前記勾配の値、または前記構成パラメータの更新後の値をパケット化して、隣接する下流の前記コンピューティングインタコネクト装置に送信する第2の送信部と、
前記構成パラメータの更新後の値をパケット化して、自装置と接続された前記学習ノードに送信する第3の送信部とを備え、
前記複数のコンピューティングインタコネクト装置のうち、前記第1のコンピューティングインタコネクト装置以外の第2のコンピューティングインタコネクト装置は、
隣接する上流の前記コンピューティングインタコネクト装置から送信されたパケットを受信して、このパケットに格納された値を取得する第4の受信部と、
自装置と接続された前記学習ノードから送信されたパケットを受信して、このパケットに格納された前記勾配の値を取得する第5の受信部と、
前記第4の受信部が取得した値を、勾配に対する計算処理の未了の値と前記構成パラメータの更新後の値とに振り分ける第2の振分部と、
前記第2の振分部から出力された前記未了の値と前記第5の受信部が取得した前記勾配の値とを入力として計算処理を行う演算器と、
この演算器の計算結果、または前記第2の振分部から出力された前記構成パラメータの更新後の値をパケット化して、隣接する下流の前記コンピューティングインタコネクト装置に送信する第4の送信部と、
前記第2の振分部から出力された前記構成パラメータの更新後の値をパケット化して、自装置と接続された前記学習ノードに送信する第5の送信部とを備え、
各学習ノードの前記構成パラメータ更新部は、前記ニューラルネットワークの構成パラメータを、前記第1の受信部が取得した当該構成パラメータの更新後の値によって上書きすることを特徴とする分散深層学習システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/967,702 US12008468B2 (en) | 2018-02-16 | 2019-02-06 | Distributed deep learning system using a communication network for stochastic gradient descent calculations |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018025940A JP6753874B2 (ja) | 2018-02-16 | 2018-02-16 | 分散深層学習システム |
JP2018-025940 | 2018-02-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019159783A1 true WO2019159783A1 (ja) | 2019-08-22 |
Family
ID=67619273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/004213 WO2019159783A1 (ja) | 2018-02-16 | 2019-02-06 | 分散深層学習システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US12008468B2 (ja) |
JP (1) | JP6753874B2 (ja) |
WO (1) | WO2019159783A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112804726A (zh) * | 2021-01-06 | 2021-05-14 | 南京理工大学 | 一种基于地理位置的多智能体强化学习路由算法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11645356B2 (en) * | 2018-09-04 | 2023-05-09 | International Business Machines Corporation | Deep learning for partial differential equation (PDE) based models |
US11244242B2 (en) | 2018-09-07 | 2022-02-08 | Intel Corporation | Technologies for distributing gradient descent computation in a heterogeneous multi-access edge computing (MEC) networks |
JP7167668B2 (ja) * | 2018-11-30 | 2022-11-09 | コニカミノルタ株式会社 | 学習方法、学習装置、プログラムおよび記録媒体 |
CN114930347A (zh) * | 2020-02-03 | 2022-08-19 | 英特尔公司 | 用于无线边缘动态的分布式学习的系统和方法 |
CN112217706B (zh) | 2020-12-02 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
US20220188629A1 (en) * | 2020-12-15 | 2022-06-16 | International Business Machines Corporation | Superresolution and consistency constraints to scale up deep learning models |
KR20230096617A (ko) * | 2021-12-23 | 2023-06-30 | 경희대학교 산학협력단 | 연합학습에서 프록시데이터 세트를 이용한 장치 간 지식 전달 방법 및 그 시스템 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9563854B2 (en) * | 2014-01-06 | 2017-02-07 | Cisco Technology, Inc. | Distributed model training |
DE102018110719A1 (de) * | 2017-05-05 | 2018-11-08 | Intel Corporation | Hardwareimplementierte Punkt-zu-Punkt-Kommunikationsprimitive zum Maschinenlernen |
-
2018
- 2018-02-16 JP JP2018025940A patent/JP6753874B2/ja active Active
-
2019
- 2019-02-06 US US16/967,702 patent/US12008468B2/en active Active
- 2019-02-06 WO PCT/JP2019/004213 patent/WO2019159783A1/ja active Application Filing
Non-Patent Citations (2)
Title |
---|
DEAN, JEFFREY ET AL.: "Large Scale Distributed Deep Networks", PROCEEDINGS OF ADVANCES IN NEURAL INFORMATION PROCESSING SYSTEM 25(NIPS2012), 2012, pages 1 - 9, XP055534679, Retrieved from the Internet <URL:http://papers.nips.cc/paper/4687-large-scale-distributed-deep-networks.pdf> [retrieved on 20190423] * |
HIDAKA, MASATOSHI ET AL.,: "Development of environment-independent and distributed computable deep convolutional neural network framework by JavaScript", IPSJ SIG TECHNICAL REPORTS: GRAPHICS AND CAD (CG), vol. 2015-CG-161, no. 3, 2015, pages 1 - 9 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112804726A (zh) * | 2021-01-06 | 2021-05-14 | 南京理工大学 | 一种基于地理位置的多智能体强化学习路由算法 |
Also Published As
Publication number | Publication date |
---|---|
JP6753874B2 (ja) | 2020-09-09 |
US12008468B2 (en) | 2024-06-11 |
JP2019144642A (ja) | 2019-08-29 |
US20210034978A1 (en) | 2021-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019159783A1 (ja) | 分散深層学習システム | |
JP6981329B2 (ja) | 分散深層学習システム | |
US8065503B2 (en) | Iteratively processing data segments by concurrently transmitting to, processing by, and receiving from partnered process | |
Doan et al. | On the convergence rate of distributed gradient methods for finite-sum optimization under communication delays | |
WO2020003849A1 (ja) | 分散深層学習システム、分散深層学習方法、およびコンピューティングインタコネクト装置 | |
US9842180B2 (en) | NoC timing power estimating device and method thereof | |
CN108304918A (zh) | 一种数据并行的深度学习的参数交换方法和系统 | |
CN102364899A (zh) | 一种基于粒子群优化的虚拟网络映射方法及系统 | |
CN111988225A (zh) | 基于强化学习和迁移学习的多路径路由方法 | |
WO2020028770A1 (en) | Artificial neural network growth | |
Lim et al. | Distributed deep learning framework based on shared memory for fast deep neural network training | |
Ma et al. | Finite‐time average consensus based approach for distributed convex optimization | |
CN113342537A (zh) | 卫星虚拟资源分配方法、装置、存储介质及设备 | |
JP2019144643A (ja) | 分散処理システムおよび分散処理方法 | |
JP7192984B2 (ja) | 分散処理システムおよび分散処理方法 | |
JP7248110B2 (ja) | 分散深層学習システム | |
Zhernovyi et al. | M θ/G/1/m and M θ/G/1 systems with the service time dependent on the queue length | |
US20220391666A1 (en) | Distributed Deep Learning System and Distributed Deep Learning Method | |
JP7074017B2 (ja) | 分散処理システムおよび分散処理方法 | |
US12131246B2 (en) | Distributed deep learning system, distributed deep learning method, and computing interconnect device | |
Klinger et al. | Estimating the Runtime and Global Network Traffic of SMPC Protocols | |
CN108809699A (zh) | 一种实现大规模虚拟网络节点重复映射的方法 | |
JP2020095595A (ja) | 情報処理システム及び情報処理システムの制御方法 | |
CN116896436B (zh) | 基于改进差分进化算法的灵活以太网时隙分配方法及装置 | |
Li et al. | Blossom: Content distribution using inter-datacenter networks |
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: 19754538 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: 19754538 Country of ref document: EP Kind code of ref document: A1 |