WO2021111490A1 - 分散処理用計算機および分散深層学習システム - Google Patents
分散処理用計算機および分散深層学習システム Download PDFInfo
- Publication number
- WO2021111490A1 WO2021111490A1 PCT/JP2019/046966 JP2019046966W WO2021111490A1 WO 2021111490 A1 WO2021111490 A1 WO 2021111490A1 JP 2019046966 W JP2019046966 W JP 2019046966W WO 2021111490 A1 WO2021111490 A1 WO 2021111490A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- accelerators
- learning
- processing
- distributed processing
- input data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06N3/0499—Feedforward networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/098—Distributed learning, e.g. federated learning
Definitions
- the present invention relates to a distributed processing computer and a distributed deep learning system, and more particularly to a distributed processing computer having an arithmetic processing unit (central processing unit: CPU), a plurality of accelerators, and a network interface circuit, and a plurality of distributed processing. It relates to a distributed deep learning system using a computer.
- CPU central processing unit
- accelerators accelerators
- network interface circuit network interface circuit
- each of a plurality of computers performs forward propagation and back propagation for each computer based on the divided data, derives weight data of a model (replica) individually, and individually derives the weight data of the model (replica).
- the weight data after backpropagation derived from is shared among all computers by communication.
- the sharing of this weight data is a collective communication called "Allreduce”.
- This Allreduce process includes a process of summing up the weight data after back propagation obtained for each computer (Reduction) and distributing it to all computers (Broadcast).
- Each computer updates the value of each parameter with the shared weight data after Allreduce processing (in many cases, the average of the weight data derived in each of the computers). While this Allreduce plays an important role in data parallel distributed deep learning, it is known to be a bottleneck.
- each layer of the multi-layer neural network is assigned to one accelerator.
- each accelerator transfers the calculation result to the accelerator in charge of the layer lower than itself, and starts processing the next data.
- pipeline processing Such processing is called pipeline processing.
- FIG. 12 shows a configuration example of a computer used for the above-mentioned parallel distributed deep learning.
- the computer 100 includes a CPU 120, a plurality of accelerators 130-1 to 130-4, and a network interface card (NIC) 140.
- the plurality of accelerators 130-1 to 130-4 each correspond to a plurality of layers of the neural network.
- accelerators 130-1 to 130-4 perform forward propagation processing and back propagation processing, respectively, based on the data input for learning, and finally calculate the parameter values of the neural network.
- the computer 100 collectively processes four data by a plurality of accelerators 130-1 to 130-4.
- a plurality of data processed together is called a "mini-batch". That is, every time a mini-batch containing four data is input, the computer 100 sequentially performs forward propagation processing and back propagation processing on each data by pipeline parallel processing, and learning derived for each data. The average of the results is calculated.
- “Fij” represents a forward propagation process based on the j-th data included in the mini-batch by the accelerator (i-th accelerator) corresponding to the i-th layer of the neural network, and “Bik”. Represents the backpropagation process based on the output result for the k-th data by the i-th accelerator.
- "F11” represents a forward propagation process based on the first data included in the mini-batch by the accelerator 1 to which the first layer of the neural network is assigned
- “F21” is the forward propagation process F11. Represents the forward propagation process performed by the accelerator 2 to which the second layer of the neural network is assigned based on the result of.
- B41 represents the backpropagation process performed by the same accelerator 4 based on the result of the forward propagation process F41 by the accelerator 4 to which the fourth layer (output layer) of the neural network is assigned
- B31 is Based on the result of the backpropagation process B41, the backpropagation process performed by the accelerator 3 to which the third layer of the neural network is assigned is represented.
- an object of the present invention is to provide a computer, a distributed deep learning system, and a method capable of performing distributed deep learning in a shorter time by using a computer equipped with a plurality of accelerators.
- a part of the neural network is assigned to each, and the learning result is derived based on the input data, and the learning result is derived.
- a plurality of accelerators (13-1 to 13-4) configured to update the values of parameters included in a part of the neural network using the learning results, and the learning results each via the network.
- a plurality of network interface circuits (14-1 to 14-4) configured to transmit and receive information regarding learning including the above, the plurality of accelerators, and the plurality of network interface circuits are controlled to control the plurality of accelerators.
- a learning result is derived from each of them based on input data, and information about learning including the learning result derived from each of the plurality of accelerators is transmitted and received in parallel to the plurality of network interface circuits. It is provided with an arithmetic processing device (12).
- the distributed deep learning system includes a plurality of computers (10-1, 10-2) that are communicably connected to each other via a network, and each of the plurality of computers has the above-mentioned distributed processing.
- the plurality of network interface circuits (14-1 to 14-4) of one of the plurality of computers are the multiple learning results derived from the plurality of accelerators of the one computer.
- the plurality of learning results derived by the plurality of accelerators of the other computers among the plurality of computers are transmitted and received in parallel, and the plurality of accelerators (13-1 to 13-4) of the one computer transmit and receive in parallel.
- the value of the parameter is updated based on the learning result derived by the plurality of accelerators and the plurality of learning results received from the other computers via the plurality of network interface circuits.
- FIG. 1 is a diagram showing an outline of a distributed deep learning system according to the first embodiment of the present invention.
- FIG. 2 is a diagram showing a configuration of a distributed processing computer constituting a distributed deep learning system according to the first embodiment of the present invention.
- FIG. 3 is a diagram for explaining the relationship between the neural network and the computer for distributed processing.
- FIG. 4 is a diagram for explaining the operation of the distributed processing computer constituting the distributed deep learning system according to the first embodiment of the present invention.
- FIG. 5 is a diagram showing a configuration of a distributed processing computer according to a modified example of the first embodiment of the present invention.
- FIG. 6 is a diagram for explaining the operation of the distributed processing computer according to the modified example of the first embodiment of the present invention.
- FIG. 1 is a diagram showing an outline of a distributed deep learning system according to the first embodiment of the present invention.
- FIG. 2 is a diagram showing a configuration of a distributed processing computer constituting a distributed deep learning system according to the first embodiment of the present invention
- FIG. 7 is a diagram for explaining an example of the operation of the distributed processing computer according to the second embodiment of the present invention.
- FIG. 8A is a diagram showing a configuration of a distributed processing computer according to a third embodiment of the present invention.
- FIG. 8B is a diagram conceptually showing the configuration of the FPGA NIC used in the distributed processing computer according to the third embodiment of the present invention.
- FIG. 9 is a diagram for explaining an example of the operation of the distributed processing computer according to the third embodiment of the present invention.
- FIG. 10A is a diagram showing a configuration of a distributed processing computer according to a fourth embodiment of the present invention.
- FIG. 10B is a diagram conceptually showing the configuration of the FPGA NIC used in the distributed processing computer according to the fourth embodiment of the present invention.
- FIG. 10A is a diagram showing a configuration of a distributed processing computer according to a fourth embodiment of the present invention.
- FIG. 10B is a diagram conceptually showing the configuration of the FPGA NIC used in the distributed processing computer
- FIG. 11 is a diagram for explaining an example of the operation of the distributed processing computer according to the fourth embodiment of the present invention.
- FIG. 12 is a diagram showing a configuration of a conventional computer for distributed processing.
- FIG. 13 is a diagram for explaining an example of the operation of the conventional distributed processing computer.
- the distributed deep learning system according to the first embodiment of the present invention is a data parallel deep learning system that distributes and learns data among a plurality of distributed processing computers that are communicably connected to each other. As shown in FIG. 1, the distributed deep learning system 1 is composed of two distributed processing computers 10-1 and 10-2 that are communicably connected to each other via a communication network 50.
- the distributed processing computers 10-1 and 10-2 have the same hardware configuration as each other. As shown in FIG. 2, the distributed processing computers 10-1 and 10-2 have a plurality of accelerators 13-1 to 13-4 and a plurality of network interface cards (hereinafter referred to as "NIC") 14-, respectively. It is provided with 1 to 14-4 and a central computer processing unit (hereinafter referred to as "CPU") 12 for controlling these accelerators 13-1 to 13-4 and NIC 14-1 to 14-4.
- CPU central computer processing unit
- NICs 14-1 to 14-4 are card-type expansion devices for connecting the distributed processing computers 10-1 and 10-2 to the communication network 50, respectively.
- the accelerators 13-1 to 13-4 and NIC14-1 to 14-4 are connected via the CPU 12, and this is an example of connection using PCI Express (PCIe). Is.
- PCIe PCI Express
- accelerators 13-1 to 13-4 and NIC14-1 to 14-4 may be connected via a PCIe switch without going through a CPU.
- the distributed processing computers 10-1 and 10-2 are devices that emulate a deep neural network having a plurality of intermediate layers, respectively. More specifically, as shown in FIG. 3, the deep neural network DNN is divided into several layers, and the plurality of layers are the accelerators of the distributed processing computers 10-1 and 10-2, respectively. They are assigned to 13-1 to 13-4, respectively. In the present embodiment, each divided layer corresponds to a "part of a neural network" in the present invention. For the sake of simplicity, the CPU 12 of the distributed processing computers 10-1 and 10-2 is not shown in FIG.
- the plurality of NICs 14-1 to 14-4 are associated with any of the plurality of accelerators 13-1 to 13-4, respectively.
- the same number of NICs 14-1 to 14-4 as the accelerators 13-1 to 13-4 are provided, and the NICs 14-1 to 14-4 and the accelerators 13-1 to 13-4 are 1 to each other. It is associated with one-to-one.
- each layer of the deep neural network DNN is assigned to a pair of an accelerator and a NIC.
- the accelerators 13-1 to 13-4 controlled by the CPU 12 sequentially perform forward propagation processing and back propagation processing.
- the accelerators 13-1 to 13-4 first sequentially perform forward propagation processing by pipeline parallel based on each of the input data (FIG. 4, "forward propagation processing" phase).
- the forward propagation process is a process of performing a product-sum calculation of the output of each neuron based on the input data and the weight between the neurons of the next layer in order from the input layer of the deep neural network DNN, and the layers are assigned. It is executed by accelerators 13-1 to 13-4. This weight can be mentioned as one of the "parameters" in the present invention.
- the back propagation process is, for example, a process of propagating the output error obtained by the forward propagation process from the output layer to the input layer to obtain the gradient of each weight.
- the accelerators 13-1 to 13-4 derive the gradient of each weight based on each of the four input data for each layer, the average of the gradient of each weight is calculated for each layer, and this average is calculated.
- the learning result is based on the mini-batch (Fig. 4 "Batch average” phase.
- mini-batch average the process of calculating the average of the learning results derived from each input data in units of the mini-batch is referred to as "mini-batch average” or simply "batch average”. Sometimes.).
- the process of calculating the average of the gradients of each weight is performed in parallel between the accelerators 13-1 to 13-4.
- the forward propagation processing, the back propagation processing, and the mini-batch averaging processing as described above are also performed on the mini-batch containing different input data in other distributed processing computers 10-2, and the gradient of each weight is obtained.
- each of the accelerators 13-1 to 13-4 calculates the learning result, that is, the average of the gradient of each weight for each layer in each of the distributed processing computers 10-1 and 10-2, the NIC 14 of each distributed processing computer As shown in FIG. 4, each of -1 to 14-4 transmits the learning result of each layer derived by the accelerators 13-1 to 13-4 of the own device to another computer for dispersion processing, and other dispersions.
- the learning results of each layer derived from the accelerators 13-1 to 13-4 of the processing computer are received, and the learning results of each layer derived from the accelerators 13-1 to 13-4 of the own device are added to this. Send to another computer.
- CINs 14-1 to 14-4 correspond to the other distributed processing computers 10-2 via the communication network 50.
- a computer for distributed processing 10 by communicating with a NIC, that is, a NIC associated with each other for each layer of the deep neural network DNN, and transmitting and receiving information on learning derived for each layer, that is, an average of each weight of each layer.
- the learning results derived in -1 and 10-2, that is, the average of each weight is shared (Fig. 4, "communication" phase).
- the process of sharing the learning results by NIC14-1 to 14-4 in this way is nothing but the Allreduce process in the data parallel distributed deep learning.
- Each of the plurality of accelerators 13-1 to 13-4 is included in each layer of the deep neural network DNN using the learning result shared via each of NIC14-1 to 14-4, that is, the gradient of each weight.
- Each weight is updated individually (Fig. 4, "update” phase).
- a new mini-batch is given to the distributed processing computers 10-1 and 10-2, respectively, and the above-mentioned processing is performed based on the input data included in the new mini-batch to obtain each weight. Update.
- Such a learning process is repeated a predetermined number of times depending on the number of input data or until the gradient of each weight becomes smaller than a predetermined value.
- the distributed processing computers 10-1 and 10-2 used in the distributed deep learning system 1 each include a plurality of NICs 14-1 to 14-4, the distributed processing computers 10- Communication between 1, 10-2 can be executed in parallel at the device level, and overhead is reduced. Therefore, it is possible to avoid the occurrence of congestion when sharing the learning results between the distributed processing computers 10-1 and 10-2, and it is possible to learn the deep neural network at a higher speed.
- the distributed deep learning system 1 is composed of two distributed processing computers 10-1 and 10-2 has been described as an example, but the distributed processing computers are limited to two. It may be composed of three or more distributed processing computers.
- the communication network 50 including a plurality of distributed processing computers may form a ring type network or a star type network.
- NIC14-1 to 14-4 and accelerators 13-1 to 13-4 are associated with each other on a one-to-one basis, but in the present invention, NIC14-1 ⁇ 14-4 and accelerators 13-1 to 13-4 do not necessarily have to be the same number. That is, the ratio of the accelerator to the NIC may be set to such an extent that congestion does not occur. For example, a plurality of accelerators may be associated with one of the plurality of NICs.
- the embodiment in which the deep neural network DNN has four layers and the distributed processing computers 10-1 and 10-2 each have four accelerators has been described as an example, but the number of accelerators is large. It is determined according to the number of layers constituting the deep neural network DNN and the method of dividing them.
- the pipeline parallel processing has been described as an example in which the mini-batch given to each of the distributed processing computers 10-1 and 10-2 includes four input data, the size of the mini-batch can be arbitrarily determined. Yes, not limited to 4.
- the distributed processing computer 20-1 (20-2) according to the modified example of the first embodiment described above may include the CPU 12 and a plurality of accelerators 13-1 to 13-4. , NIC 14 in the distributed processing computer 10-1 (10-2) according to the first embodiment, which is common to the distributed processing computer 10-1 (10-2) according to the first embodiment described above. It is equipped with FPGA NIC24-1 to 24-4 instead of -1 to 14-4. Each of these FPGA NICs 24-1 to 24-4 is equipped with a circuit for executing Allreduce processing.
- the circuit that executes Allreduce means that the learning results received from the corresponding accelerators 13-1 to 13-4 of the own device are transmitted to the corresponding FPGA NICs of other distributed processing computers, and all the computers are used.
- the operations of the distributed processing computer 20-1 (20-2) are performed in the same order as the distributed processing computer 10-1 (10-2) according to the first embodiment.
- the order is propagation processing phase, backpropagation processing phase, batch average phase, communication phase, and update phase.
- the addition of the Allreduce processing is executed in the accelerators 13-1 to 13-4, so that the calculation kernel and the communication kernel are executed.
- the distributed processing computer includes a CPU and a plurality of distributed processing computers 20-1 (20-2) according to the modified example of the first embodiment shown in FIG. It is equipped with an accelerator and a plurality of FPGA NICs. Each of the plurality of FPGA NICs is equipped with a circuit for executing the Allreduce process, as in the modification of the first embodiment described above.
- FIG. 7 The operation of the distributed processing computer according to the second embodiment will be described with reference to FIG. 7.
- FIGS. 3 and 6 As shown in, after performing forward propagation processing and back propagation processing based on each of the input data included in the mini-batch, averaging the learning results of each data in the mini-batch, and then communicating with other distributed processing computers, Allreduce
- FIG. 7 each time the back propagation calculation based on each input data is completed, the processing is immediately performed between the computers.
- Allreduce processing accompanied by communication is executed, then mini-batch averaging processing is performed, and the parameter value (weight) is updated.
- the back propagation processing and the Allreduce processing are overlapped and pipeline processing is performed for each input data. Therefore, each accelerator calculates the average of a plurality of learning results derived based on each of the input data and subjected to Allreduce processing.
- the distributed processing computer 10-1 (10-2) In the distributed processing computer 10-1 (10-2) according to the first embodiment, overhead occurs when the calculation kernel and the communication kernel are executed alternately. Further, in the distributed processing computer 10-1 (10-2) according to the first embodiment, after the accelerators 13-1 to 13-4 are mini-batch averaged, the data is transferred to NIC14-1 to 14-4, respectively. Since it is sent and the Allreduc processing is executed, and then it is sent to the accelerator again and updated, there is a positive data movement time. On the other hand, according to the distributed processing computer according to the second embodiment, since the overhead of kernel switching does not occur, the communication time becomes shorter. Further, in the distributed processing computer according to the second embodiment, the time for transferring data from the accelerator to the FPGA NIC is hidden by the back propagation processing, so that the learning becomes shorter.
- the distributed processing computer includes a CPU 12, a plurality of accelerators 13-1 to 13-4, and a plurality of FPGA NICs 34-1 to 34-4. There is. As shown in FIG. 8B, each of the plurality of FPGA NICs 34-1 to 34-4 is equipped with a forward propagation processing circuit and a part or all of the back propagation processing circuit together with the NIC.
- FPGA NICs 34-1 to 34-4 are equipped with all of the forward propagation processing circuit and the back propagation processing circuit together with the NIC, respectively (hereinafter referred to as "case 1"), as shown in FIG.
- the accelerators 13-1 to 13-4 and the FPGA NIC34-1 to 34-4 can process different input data included in the mini-batch, respectively.
- the forward propagation processing phase when the FPGA NIC34-1 to 34-4 are equipped with a forward propagation processing circuit and a part of the back propagation processing together with the NIC, respectively (hereinafter referred to as "case 2"), the forward propagation processing phase. Then, the accelerators 13-1 to 13-4 and the FPGA NIC34-1 to 34-4 process different input data contained in the mini-batch, respectively, and in the backpropagation processing phase, the accelerators 13-1 to 13-4 respectively process. After calculating halfway through the backpropagation process, the calculation is handed over to the corresponding FPGA NIC34-1 to 34-4, mini-batch averaging is performed with the accelerators 13-1 to 13-4 or FPGA NIC34-1 to 34-4, and Allreduce processing Communicate for.
- the forward propagation processing is performed.
- accelerators 13-1 to 13-4 and FPGA NIC34-1 to 34-4 process different data contained in the mini-batch, respectively, and in the back-propagation processing phase, the accelerator 13 performs the intermediate calculation required for back-propagation. -1 to 13-4 are not retained, and FPGA NIC34-1 to 34-4 recalculate each time and execute backpropagation processing.
- FPGA NIC34-1 to 34-4 are different from the conventional von Neumann type accelerators, and since the processing is implemented by hardware, learning can be performed at higher speed.
- the throughput of the data of the accelerators 13-1 to 13-4 and the FPGA NIC is doubled in the forward propagation process and the back propagation process.
- the throughput of forward propagation is doubled, and the back propagation is also faster by the amount executed by the FPGA.
- the mini-batch average is executed by FPGA, the data movement is reduced, so that the overhead is reduced accordingly.
- the throughput of the forward propagation is doubled, and the accelerator can discard the intermediate calculation, so that the device memory of the accelerator can be used more effectively.
- the distributed processing computer 40-1 (40-2) includes a CPU 12, a plurality of accelerators 13-1 to 13-4, and a plurality of FPGA NIC44-1. It is equipped with ⁇ 44-4.
- the FPGA NICs 44-1 to 44-4 each include a feedforward processing circuit together with the NIC.
- the distributed processing computer 40-1 (40-2) has forward propagation processing mounted on FPGA NIC44-1 to 44-4 in the forward propagation processing phase.
- the circuit sequentially performs forward propagation processing based on a plurality of input data included in the mini-batch, starts backpropagation during the forward propagation processing, and starts communication during the back propagation processing.
- the FPGA NIC44-4 to which the fourth layer, which is the output layer of the deep neural network DNN, is assigned sequentially terminates the forward propagation processes F41 to F44 based on the input data included in the mini-batch. As soon as the accelerator 13-4 performs the back propagation processes B41 to B44 in sequence. This causes forward propagation and back propagation to overlap. Further, the FPGA NIC44-1 to 44-4, respectively, sequentially start communication with other distributed processing computers following the forward propagation processing. This causes backpropagation and communication to overlap.
- the processing time can be further shortened by the overlap between forward propagation and back propagation, and the overlap between back propagation and communication.
- the deep learning system including the distributed processing computer according to the embodiment of the present invention
- information on learning including learning results derived from each of a plurality of accelerators is paralleled by a plurality of network interface circuits. Since it is transmitted and received to, distributed deep learning can be performed in a shorter time.
- the present invention can be used for a deep learning system.
- Distributed deep learning system 10-1, 10-2, 20-1, 30-1, 40-1 ... Distributed processing computer, 12 ... CPU, 13-1 to 13-4 ... Accelerator, 14-1 to 14-4 ... NIC, 24-1 to 24-4, 34-1 to 34-4, 44-1 to 44-4 ... FPGA NIC.
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)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Multi Processors (AREA)
Abstract
Description
図12に示すように、計算機100は、CPU120と、複数のアクセラレータ130-1~130-4と、ネットワークインターフェースカード(NIC)140とを備えている。ここで複数のアクセラレータ130-1~130-4は、それぞれニューラルネットワークの複数の層にそれぞれ対応している。
[分散深層学習システムおよび分散処理用計算機の構成]
本発明の第1の実施の形態に係る分散深層学習システムは、互いに通信可能に接続された複数の分散処理用計算機の間でデータを分散させて学習を行うデータ並列深層学習システムである。図1に示すように、分散深層学習システム1は、通信ネットワーク50を介して互いに通信可能に接続された2台の分散処理用計算機10-1,10-2から構成されている。
また、NIC14-1~14-4は、それぞれ分散処理用計算機10-1,10-2を通信ネットワーク50に接続するためのカード型の拡張装置である。
なお、図1においては、アクセラレータ13-1~13-4とNIC14-1~14-4とは、CPU12を介して接続されているが、これは、PCI Express(PCIe)を用いた接続の例である。この他に、CPUを介さずにPCIeスイッチを介してアクセラレータ13-1~13-4とNIC14-1~14-4とを接続してもよい。
本実施の形態に係る分散深層学習システムにおいては、データ並列処理のため、分散処理用計算機10-1,10-2には、それぞれ異なる入力データが与えられる。
分散処理用計算機10-1,10-2のそれぞれにおいては、複数の入力データを含むミニバッチ単位で学習が行われる。本実施の形態においては、分散処理用計算機10-1,10-2のそれぞれに、4つの入力データを含むミニバッチが与えられるものとする。
なお、各重みの勾配の平均を算出する処理は、アクセラレータ13-1~13-4の間で並列に行われる。
以上のような順伝播処理、逆伝播処理、ミニバッチ平均処理は、他の分散処理用計算機10-2においても異なる入力データを含むミニバッチに対して行われ、各重みの勾配が求められる。
より具体的には、複数の分散処理用計算機10-1,10-2のそれぞれにおいて、CIN14-1~14-4は、通信ネットワーク50を介して他の分散処理用計算機10-2の対応するNIC、すなわち深層ニューラルネットワークDNNの層ごとに互いに対応づけられたNICと通信を行い、層ごとに導出された学習に関する情報、すなわち各層の各重みの平均を送受信することによって、分散処理用計算機10-1,10-2においてそれぞれ導出された学習結果、すなわち、各重みの平均を共有する(図4「通信」フェーズ)。このようにNIC14-1~14-4によって学習結果を共有する処理は、データ並列分散深層学習におけるAllreduce処理に他ならない。
本実施の形態に係る分散深層学習システム1に用いられる分散処理用計算機10-1,10-2が、それぞれ、複数のNIC14-1~14-4を備えているので、分散処理用計算機10-1,10-2間の通信をデバイスレベルで並列して実行することができ、オーバヘッドが少なくなる。したがって、分散処理用計算機10-1,10-2間で学習結果を共有する際に輻輳が発生することを回避することができ、深層ニューラルネットワークのより高速な学習が可能となる。
上述した第1の実施の形態の変形例に係る分散処理用計算機20-1(20-2)は、図5に示すように、CPU12および複数のアクセラレータ13-1~13-4を含むことは、上述した第1の実施の形態に係る分散処理用計算機10-1(10-2)と共通するが、第1の実施の形態に係る分散処理用計算機10-1(10-2)におけるNIC14-1~14-4に代えて、FPGA NIC24-1~24-4を備えている。これらFPGA NIC24-1~24-4には、それぞれAllreduce処理を実行する回路が搭載されている。ここで「Allreduceを実行する回路」とは、自装置の対応するアクセラレータ13-1~13-4から受け取った学習結果を他の分散処理用計算機の対応するFPGA NICに送信するとともに、すべての計算機のFPGA NICを足し合わせ、その結果をすべてのFPGA NICに分配する機能を実現する回路を言う。
第2の実施の形態に係る分散処理用計算機は、図5に示した第1の実施の形態の変形例に係る分散処理用計算機20-1(20-2)と同じく、CPUと、複数のアクセラレータと、複数のFPGA NICとを備えている。複数のFPGA NICには、それぞれ、上述した第1の実施の形態の変形例と同様に、Allreduce処理を実行する回路が搭載されている。
例えば、第1の実施の形態に係る分散処理用計算機10-1(10-2)や、その変形例に係る分散処理用計算機20-1(20-2)においては、それぞれ図3や図6に示すように、ミニバッチに含まれる入力データのそれぞれに基づいて順伝播処理と逆伝播処理とを行い、各データの学習結果をミニバッチ平均した後に、他の分散処理用計算機との通信を伴うAllreduce処理を行うのに対し、この第2の実施の形態に係る分散処理用計算機においては、図7に示すように、入力データそれぞれに基づく逆伝播計算が終了するたびに、すぐに計算機間での通信を伴うAllreduce処理を実行し、その後ミニバッチ平均処理を行い、パラメータの値(重み)を更新する。これを換言するならば、第2の実施の形態に係る分散処理用計算機においては、逆伝播処理とAllreduce処理とをオーバーラップさせ、入力データごとにパイプライン処理される。したがって、アクセラレータは、それぞれ、入力データのそれぞれに基づいて導出され、かつ、Allreduce処理が行われた、複数の学習結果に対して、それらの平均を算出する。
これに対し、第2の実施の形態に係る分散処理用計算機によれば、カーネル切り替えのオーバヘッドが発生しないため、通信時間がより短くなる。また、第2の実施の形態に係る分散処理用計算機では、アクセラレータからFPGA NICにデータを転送する時間が逆伝播処理に隠蔽されるため、学習がより短時間になる。
第3の実施の形態に係る分散処理用計算機は、図8Aに示すように、CPU12と、複数のアクセラレータ13-1~13-4と、複数のFPGA NIC34-1~34-4とを備えている。複数のFPGA NIC34-1~34-4には、それぞれ、図8Bに示すように、NICとともに、順伝播処理回路と、逆伝播処理回路の一部または全てが搭載されている。
また、上記ケース2の場合には、順伝播のスループットが倍になり、逆伝播もFPGAが実行する分だけ高速になる。また、ミニバッチ平均をFPGAで実行する場合にはデータ移動が軽減されるので、その分のオーバヘッドが削減される。
また、上記ケース3の場合には、順伝播のスループットが倍になり、アクセラレータは途中計算を廃棄できるので、アクセラレータのデバイスメモリをより有効活用できるようになる。
第4の実施の形態に係る分散処理用計算機40-1(40-2)は、図10Aに示すように、CPU12と、複数のアクセラレータ13-1~13-4と、複数のFPGA NIC44-1~44-4とを備えている。
FPGA NIC44-1~44-4は、図10Bに示すように、それぞれ、NICとともに順伝播処理回路を備えている。
Claims (8)
- それぞれにニューラルネットワークの一部分が割り付けられ、入力データに基づいて学習結果を導出するとともに、前記学習結果を用いて前記ニューラルネットワークの一部分に含まれるパラメータの値をそれぞれ更新するように構成された、複数のアクセラレータと、
それぞれが前記学習結果を含む学習に関する情報を送受信するように構成された複数のネットワークインターフェース回路と、
前記複数のアクセラレータおよび前記複数のネットワークインターフェース回路を制御して、前記複数のアクセラレータのそれぞれに入力データに基づいて学習結果を導出させるとともに、前記複数のネットワークインターフェース回路に、前記複数のアクセラレータにそれぞれ導出させた前記学習結果を含む学習に関する情報を並列に送受信させるように構成された、演算処理装置と
を備える分散処理用計算機。 - 請求項1に記載された分散処理用計算機において、
前記複数のアクセラレータには、前記ニューラルネットワークの一部分として、前記ニューラルネットワークを構成する複数の層がそれぞれ割り付けられ、
前記複数のアクセラレータは、前記複数の層ごとに順伝播処理と逆伝播処理とを実行する、
分散処理用計算機。 - 請求項1または2に記載された分散処理用計算機において、
前記複数のネットワークインターフェース回路は、
前記複数のアクセラレータが前記学習結果を導出すると、前記学習結果を含む学習に関する情報を並列に送受信する、分散処理用計算機。 - 請求項3に記載された分散処理用計算機において、
前記複数のアクセラレータは、
複数の入力データを含むミニバッチに対して、前記複数の入力データのそれぞれに基づく順伝播処理と逆伝播処理とをパイプラインで行って前記複数の入力データのそれぞれに基づいて複数の学習結果を導出し、導出された前記複数の学習結果の平均を前記ミニバッチに基づく学習結果として算出し、
前記複数のネットワークインターフェース回路は、
前記複数のアクセラレータが前記複数の入力データに基づいて複数の学習結果を算出すると、前記複数の学習結果を含む学習に関する情報を並列に送受信する、分散処理用計算機。 - 請求項3に記載された分散処理用計算機において、
前記複数のアクセラレータは、
複数の入力データを含むミニバッチに対して、前記複数の入力データのそれぞれに基づく順伝播処理と逆伝播処理とをパイプラインで行って前記複数の入力データのそれぞれに基づいて複数の学習結果を導出し、
前記複数のネットワークインターフェース回路は、
前記複数のアクセラレータが前記ミニバッチに含まれる前記複数の入力データに基づく複数の学習結果を導出するごとに前記学習結果を含む学習に関する情報を並列に送受信する、分散処理用計算機。 - 請求項3に記載された分散処理用計算機において、
前記複数のアクセラレータは、
複数の入力データを含むミニバッチに対して、前記複数の入力データのそれぞれに基づく順伝播処理と逆伝播処理とをパイプラインで行って前記複数の入力データのそれぞれに基づいて複数の学習結果を導出し、
前記複数のネットワークインターフェース回路は、
前記複数のアクセラレータが前記ミニバッチに含まれる前記複数の入力データに基づく複数の学習結果を導出するごとに、前記逆伝播処理とオーバーラップさせて前記学習結果を含む学習に関する情報を順次に送受信する、分散処理用計算機。 - 請求項1~6のいずれか一項に記載された分散処理用計算機において、
前記複数のネットワークインターフェース回路は、前記複数のアクセラレータと同数設けられている、分散処理用計算機。 - 互いに通信可能に接続された複数の計算機を備え、
前記複数の計算機のそれぞれは、請求項1~7のいずれか一項に記載された分散処理用計算機であり、
前記複数の計算機のうちの一の計算機の前記複数のネットワークインターフェース回路は、前記一の計算機の複数のアクセラレータがそれぞれ導出した複数の学習結果と前記複数の計算機のうちの他の計算機の複数のアクセラレータがそれぞれ導出した複数の学習結果とを並列に送受信し、
前記一の計算機の前記複数のアクセラレータは、前記複数のアクセラレータが導出した前記学習結果と、前記複数のネットワークインターフェース回路を介して前記他の計算機から受信した前記複数の学習結果とに基づいて前記パラメータの値を更新する、分散深層学習システム。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021562204A JP7283576B2 (ja) | 2019-12-02 | 2019-12-02 | 分散処理用計算機および分散深層学習システム |
| US17/777,217 US12450481B2 (en) | 2019-12-02 | 2019-12-02 | Distributed processing computer and distributed deep learning system |
| PCT/JP2019/046966 WO2021111490A1 (ja) | 2019-12-02 | 2019-12-02 | 分散処理用計算機および分散深層学習システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2019/046966 WO2021111490A1 (ja) | 2019-12-02 | 2019-12-02 | 分散処理用計算機および分散深層学習システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2021111490A1 true WO2021111490A1 (ja) | 2021-06-10 |
Family
ID=76221494
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2019/046966 Ceased WO2021111490A1 (ja) | 2019-12-02 | 2019-12-02 | 分散処理用計算機および分散深層学習システム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12450481B2 (ja) |
| JP (1) | JP7283576B2 (ja) |
| WO (1) | WO2021111490A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12101103B2 (en) | 2022-02-18 | 2024-09-24 | Fujitsu Limited | Information processing device and information processing method |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11315013B2 (en) * | 2018-04-23 | 2022-04-26 | EMC IP Holding Company LLC | Implementing parameter server in networking infrastructure for high-performance computing |
| JP2020077300A (ja) * | 2018-11-09 | 2020-05-21 | 日本電信電話株式会社 | 分散深層学習システムおよびデータ転送方法 |
| JP7248110B2 (ja) * | 2019-05-31 | 2023-03-29 | 日本電信電話株式会社 | 分散深層学習システム |
| US20210103820A1 (en) * | 2019-10-03 | 2021-04-08 | Vathys, Inc. | Pipelined backpropagation with minibatch emulation |
| JP7287492B2 (ja) * | 2019-11-13 | 2023-06-06 | 日本電信電話株式会社 | 分散深層学習システムおよびデータ転送方法 |
| WO2021095196A1 (ja) * | 2019-11-14 | 2021-05-20 | 日本電信電話株式会社 | 分散深層学習システムおよび分散深層学習方法 |
| KR20220033713A (ko) * | 2020-09-10 | 2022-03-17 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그 동작 방법 |
-
2019
- 2019-12-02 WO PCT/JP2019/046966 patent/WO2021111490A1/ja not_active Ceased
- 2019-12-02 JP JP2021562204A patent/JP7283576B2/ja active Active
- 2019-12-02 US US17/777,217 patent/US12450481B2/en active Active
Non-Patent Citations (2)
| Title |
|---|
| HONDA, TAKUMI ET AL: ".Acceleration of ResNet-50/ImageNet Learning inLarge-scale GPU Clusters", IPSJ SIG TECHNICALREPORT. * |
| HUANG, YANPING ET AL., EFFICIENT TRAINING OF GIANT NEURAL NETWORKS USING PIPELINE PARALLELISM, 16 November 2018 (2018-11-16), XP055730504, Retrieved from the Internet <URL:https://arxiv.org/abs/1811.06965vl> [retrieved on 20200805] * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12101103B2 (en) | 2022-02-18 | 2024-09-24 | Fujitsu Limited | Information processing device and information processing method |
Also Published As
| Publication number | Publication date |
|---|---|
| US12450481B2 (en) | 2025-10-21 |
| US20220391701A1 (en) | 2022-12-08 |
| JP7283576B2 (ja) | 2023-05-30 |
| JPWO2021111490A1 (ja) | 2021-06-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113435682B (zh) | 分布式训练的梯度压缩 | |
| US10482380B2 (en) | Conditional parallel processing in fully-connected neural networks | |
| US10891544B2 (en) | Event-driven universal neural network circuit | |
| US20190370655A1 (en) | Unsupervised, supervised and reinforced learning via spiking computation | |
| CN110033086B (zh) | 用于神经网络卷积运算的硬件加速器 | |
| US20180322384A1 (en) | Post synaptic potential-based learning rule | |
| CN113469355B (zh) | 分布式系统中的多模型训练管道 | |
| US20210304008A1 (en) | Speculative training using partial gradients update | |
| US11886934B2 (en) | Control of data transfer between processing nodes | |
| WO2018060840A1 (en) | Scalable stream synaptic supercomputer for extreme throughput neural networks | |
| CN114281535A (zh) | 一种dnn分区方法及采用该方法的边缘计算架构和存储介质 | |
| JP7283576B2 (ja) | 分散処理用計算機および分散深層学習システム | |
| US20190130276A1 (en) | Tensor manipulation within a neural network | |
| Fang et al. | Improved multiverse optimization algorithm for fuzzy flexible job-shop scheduling problem | |
| US20230409982A1 (en) | Artificial neural network emulation of hotspots | |
| US12518167B1 (en) | Neural network training in a distributed system | |
| KR102090109B1 (ko) | 학습 및 추론 장치 및 그 방법 | |
| US20210142153A1 (en) | Resistive processing unit scalable execution | |
| CN117321573A (zh) | 在神经网络计算区块上高效分配存储器 | |
| WO2025251704A1 (zh) | 一种模型训练方法及装置 | |
| CN120952101A (zh) | 一种模型训练方法及装置 | |
| Dytckov et al. | Efficient STDP micro-architecture for silicon spiking neural networks | |
| Sumarudin et al. | Transfer Learning Mechanism for Fast Learning of DQN Algorithm in Dynamic Maze Environment | |
| Ganghas | Optimizing Large-Scale Spiking Neural Network Simulations Using GPUs | |
| Hu et al. | TOPO-X: Co-optimize Flow Scheduling, Topology, and ML Training Parallelism |
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: 19955018 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2021562204 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19955018 Country of ref document: EP Kind code of ref document: A1 |
|
| WWG | Wipo information: grant in national office |
Ref document number: 17777217 Country of ref document: US |