WO2021199396A1 - 分散処理ノードおよび分散処理システム - Google Patents

分散処理ノードおよび分散処理システム Download PDF

Info

Publication number
WO2021199396A1
WO2021199396A1 PCT/JP2020/015157 JP2020015157W WO2021199396A1 WO 2021199396 A1 WO2021199396 A1 WO 2021199396A1 JP 2020015157 W JP2020015157 W JP 2020015157W WO 2021199396 A1 WO2021199396 A1 WO 2021199396A1
Authority
WO
WIPO (PCT)
Prior art keywords
distributed processing
arithmetic
node
information
processing node
Prior art date
Application number
PCT/JP2020/015157
Other languages
English (en)
French (fr)
Inventor
伊藤 猛
顕至 田仲
勇輝 有川
和彦 寺田
坂本 健
Original Assignee
日本電信電話株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2020/015157 priority Critical patent/WO2021199396A1/ja
Priority to US17/915,658 priority patent/US20230124193A1/en
Priority to JP2022511456A priority patent/JP7396463B2/ja
Publication of WO2021199396A1 publication Critical patent/WO2021199396A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning

Definitions

  • the present invention relates to a distributed processing system that executes deep learning and the like in a distributed coordinated manner by a plurality of distributed processing nodes, and efficiently processes group communication between a plurality of computing devices with high speed and low latency. It relates to a distributed processing node and a distributed processing system capable of processing information processing at high speed and with high efficiency.
  • the mini-batch method is used as a method for improving inference accuracy.
  • a gradient calculation process for calculating the gradient for each sample data and an aggregation process for aggregating the gradients for a plurality of different sample data are aggregated.
  • the weight update process of updating each weight based on the gradient is repeated.
  • the distributed data obtained for each distribution processing node is aggregated in the aggregation processing node, from each distributed processing node to the aggregation processing node.
  • Aggregation communication, all-node aggregation processing at the aggregation processing node, and distribution communication from the aggregation processing node to the distribution processing node for transferring the data aggregated by the aggregation processing node to each distribution processing node are required. ..
  • Processing required for distributed deep learning requires a large number of communications, but in order to improve the inference accuracy of deep learning, the number of weights and the number of sample data to be input As the communication time increases, the time required for deep learning increases. Therefore, in order to improve the inference accuracy and not increase the time required for deep learning, a plurality of arithmetic devices are mounted at high density in the distributed processing node, and the processing performance of the distributed processing node itself is improved. Technology is used.
  • FIG. 10 is a block diagram showing an example of a conventional distributed processing system using acceleration technology.
  • the distributed processing nodes 500-1 to 500-4 are connected to each other by a transmission line 504.
  • Each of the distributed processing nodes 500-1 to 500-4 is a general-purpose bus that connects a plurality of arithmetic devices 501, an interconnect device 502 composed of an FPGA (Field Programmable Gate Array), and the arithmetic device 501 and the interconnect device 502. It is equipped with 503.
  • FPGA Field Programmable Gate Array
  • the calculation in the aggregated communication is performed by the hardware of the interconnect device 502 having the interconnect port, for example.
  • the calculation in the collective communication is performed by the hardware of the interconnect device 502 mounted on each distributed processing node 500-1 to 500-4. conduct. As a result, it is possible to perform group communication operations at high speed and realize high-speed distributed processing as in the node.
  • NCCL NVIDIA Collective Communications Library
  • NCCL NVIDIA Collective Communications Library
  • Non-Patent Document 2 direct memory access (DMA: Direct Memory Access) transfer between computing devices and interconnect devices via a general-purpose bus streamlines data movement within nodes and data movement between nodes, thereby speeding up processing.
  • DMA Direct Memory Access
  • Non-Patent Document 2 the technique disclosed in Non-Patent Document 2 cannot avoid congestion when communication from a plurality of computing devices is concentrated on the interconnect device, and it is difficult to significantly improve the processing efficiency.
  • Patent Document 1 Scalable Hierarchical Aggregation and Reduction Protocol
  • Patent Document 1 Scalable Hierarchical Aggregation and Reduction Protocol
  • the present invention has been made in consideration of the above circumstances, and in a distributed processing system in which distributed processing nodes equipped with a plurality of arithmetic devices are connected by an interconnect device, communication congestion in the distributed processing nodes is caused.
  • the purpose is to provide a highly efficient distributed processing node and distributed processing system by eliminating communication bottlenecks due to congestion and making the arithmetic processing of collective communication uniform.
  • the distributed processing node of the present invention is configured to calculate the gradient data of the loss function from the output result of inputting the training data to the model to be trained and update the parameters of the model based on the aggregated data of the gradient data.
  • the interconnect device configured to aggregate the gradient data between the plurality of arithmetic devices and other distributed processing nodes, and the bus device connected to the plurality of arithmetic devices and the interconnect device.
  • An arithmetic function unit provided so as to perform at least one of processing of gradient data from the plurality of arithmetic devices and processing of gradient data from the interconnect device, the plurality of arithmetic devices, and the bus device.
  • a DMA controller configured to control the DMA transfer of gradient data between the bus device and the interconnect device, and a plurality of learning jobs requested from the outside. It is characterized by including a control unit configured to be assigned to at least one of the arithmetic devices of the above.
  • the arithmetic function unit is provided for each learning job. Further, in one configuration example of the distributed processing node of the present invention, information regarding DMA transfer from the plurality of arithmetic devices to the bus device is acquired from the DMA controller and calculated by the arithmetic device in response to a request of the learning job. It is further provided with a distribution unit configured to distribute the gradient data transferred to the bus device to the calculation function unit corresponding to the learning job based on the information acquired from the DMA controller. It is a thing.
  • information regarding DMA transfer from the plurality of arithmetic devices to the bus device is acquired from the DMA controller, and the arithmetic function in the bus device is based on the acquired information. It is characterized by further including a scheduler unit configured to determine the order and timing of DMA transfer from the unit to the interconnect device. Further, in one configuration example of the distributed processing node of the present invention, the frequency of the clock signal supplied to the arithmetic function unit is higher than the frequency of the clock signal supplied to the interconnect device, and the operation of the arithmetic function unit is performed. The speed is faster than the operating speed of the interconnect device.
  • the distributed processing system of the present invention includes a plurality of distributed processing nodes and a control node configured to control the plurality of distributed processing nodes, and the control node is provided with request information of a learning job from the outside. It is managed by the job reception unit configured to accept, the management database unit configured to manage the resource information of each distributed processing node, the request information from the job reception unit, and the management database unit.
  • a control instruction unit configured to create control instruction information including information on an arithmetic device to which a learning job is assigned based on resource information for each distributed processing node is provided, and the control unit of each distributed processing node is provided. It is characterized in that a learning job is assigned to an arithmetic device of the own node instructed by the control instruction information and the learning job is started.
  • each distributed processing node further includes a parameter storage unit configured to store the parameters of the model, and the management database unit of the control node is each distributed.
  • the control unit that manages the resource information of the processing node and the information about the model, and the control instruction unit of the control node includes the information about the model to be learned and the parameter information in addition to the information of the arithmetic device to which the learning job is assigned.
  • the instruction information is created, and the control unit of each distributed processing node is characterized in that the parameters of the model to be learned are read from the parameter storage unit of the own node according to the control instruction information.
  • a plurality of arithmetic devices are used when one large learning job is processed at high speed or when a plurality of learning jobs are processed at high speed and efficiently.
  • a bus device that performs arithmetic processing such as group communication is provided in the general-purpose bus path between the and the interconnect device, an arithmetic function unit is provided in this bus device, and the arithmetic function unit is made to process gradient data. Therefore, in the present invention, even if the processed gradient data is transferred to the interconnect device, congestion does not occur in the interconnect device and no waiting time due to congestion occurs, so that a learning job or the like can be performed. Information processing can be performed at high speed and with high efficiency.
  • FIG. 1 is a block diagram showing a configuration of a distributed processing system according to a first embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating the operation of the arithmetic device and the DMA controller of the distributed processing node according to the first embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating the operation of the DMA controller of the distributed processing node according to the first embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating the operation of the interconnect device and the DMA controller of the distributed processing node according to the first embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating the operation of the interconnect device and the DMA controller of the distributed processing node according to the first embodiment of the present invention.
  • FIG. 1 is a block diagram showing a configuration of a distributed processing system according to a first embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating the operation of the arithmetic device and the DMA controller of the distributed processing
  • FIG. 6 is a block diagram showing a configuration of a distributed processing system according to a second embodiment of the present invention.
  • FIG. 7 is a block diagram showing a configuration of a distributed processing system according to a third embodiment of the present invention.
  • FIG. 8 is a block diagram showing a configuration of a distributed processing system according to a fourth embodiment of the present invention.
  • FIG. 9 is a block diagram showing a configuration example of a computer that realizes the distributed processing nodes according to the first to fourth embodiments of the present invention.
  • FIG. 10 is a block diagram showing a configuration of a conventional distributed processing system.
  • FIG. 1 is a block diagram showing a configuration of a distributed processing system according to a first embodiment of the present invention.
  • the distributed processing system 101 is composed of a plurality of distributed processing nodes 102 and a transmission line 101A connecting the plurality of distributed processing nodes 102.
  • Each distributed processing node 102 includes a plurality of arithmetic devices 103 including GPUs (Graphics Processing Units), interconnect devices 104 including FPGAs and optical transceivers having a data communication function via a transmission line, and PCI-Express.
  • a bus device 105 made of an FPGA having a function and a calculation function for data communication with the calculation device 103 by a general-purpose bus such as, and data from the calculation device 103 and the interconnect device 104 provided in the bus device 105. It is provided with a calculation function unit 106 for processing.
  • each distributed processing node 102 has a high-speed clock unit 107 that supplies a high-speed clock signal to the arithmetic function unit 106 of the bus device 105, DMA transfer of data between the arithmetic device 103 and the bus device 105, and a bus device.
  • a DMA controller 108 that controls the DMA transfer of data between the 105 and the interconnect device 104, a control unit 111 that allocates a learning job requested from the outside to at least one of a plurality of arithmetic devices 103, and a model. It includes a parameter storage unit 112 that stores parameters.
  • a Supermicro SYS-4028GR-TR2 server (hereinafter, simply referred to as a server) is used.
  • the CPU motherboard of this server is equipped with two Intel Xeon® processors E5-2600V4 as CPUs and eight DDR4-2400 DIMM (Dual Inline Memory Module) 32GB memory cards as main memory. ing.
  • a 16-lane slot daughter board of PCI-Express3.0 (Gen3) is mounted on the CPU motherboard.
  • four V100s which are GPUs manufactured by NVIDIA, are mounted as arithmetic devices 103, and one VCU118 Assessment board manufactured by Xillinx is mounted as an interconnect device 104.
  • this Assessment board is equipped with two QSFP28 optical transceivers.
  • the distributed processing nodes 102 are connected to each other in a ring shape by a transmission line 101A made of an optical fiber.
  • a PCIe root complex device is mounted on the motherboard of the server as a bus device.
  • this PCIe root complex device is not equipped with arithmetic functions such as addition processing required for collective communication between arithmetic devices. Therefore, in this embodiment, a device in which the function of the arithmetic function unit 106 is added to the PCIe root complex device is used as the bus device 105.
  • a clock signal of 100 MHz is usually supplied to the PCIe route complex device.
  • a 500 MHz clock signal is supplied from the high-speed clock unit 107 to the arithmetic function unit 106 of the bus device 105.
  • the DMA controller 108 mounted on the motherboard the one modified so as to operate via the bus device 105 is mounted.
  • the DMA controller 108 is arranged outside the interconnect device 104 in FIG. 1, the DMA controller 108 may be provided inside the FPGA constituting the interconnect device 104.
  • the server is equipped with an SSD (Solid State Drive) with a capacity of 480 GB as a storage medium for installing an OS (Operating System).
  • OS Operating System
  • Ubuntu 18.04 LTE is used as the OS.
  • AI Artificial Intelligence
  • Resnet50 one of the learning models
  • a job executed by deep learning is referred to as a learning job. Even if the users are the same, the learning jobs may be different.
  • the control unit 111 is composed of, for example, a CPU.
  • the control unit 111 has a function of constructing a mathematical model by software according to software such as a TensorFlow-based deep learning platform, and a function of reading parameters (weights, etc.) of the model to be learned from the parameter storage unit 112.
  • the interconnect device 104 aggregates data with other distributed processing nodes 102.
  • FIG. 2 is a flowchart illustrating the operation of the distributed processing node 102 and the DMA controller 108.
  • Each arithmetic device 103 of the distributed processing node 102 receives the image data of the image via the control unit 111, and has a loss function of the model for each of a plurality of weights of the model to be trained (neural network of Resnet 50) in the own node.
  • the gradient is calculated, and gradient data that aggregates the gradients for each image data is generated for each weight (step S100 in FIG. 2).
  • the gradient calculation process which is one of the tasks of the learning job, is performed for 32 mini-batch sizes.
  • the DMA controller 108 transmits the gradient data calculated by each arithmetic device 103 to the memory in the interconnect device 104 via the arithmetic function unit 106 of the bus device 105 of the own node. DMA transfer to 1040 (step S101 in FIG. 2). This DMA transfer will be described later.
  • FIG. 3 is a flowchart illustrating the operation of the DMA controller 108 of the distributed processing node 102.
  • the gradient data is generated by the arithmetic device 103 of each distributed processing node 102 (step 200 in FIG. 3)
  • the gradient data is DMA-transferred to the arithmetic function unit 106 of the bus device 105 for each weight (step 201 in FIG. 3). ).
  • the arithmetic function unit 106 of the bus device 105 of each distributed processing node 102 receives the gradient data from all the arithmetic devices 103 of the own node by DMA transfer by the DMA controller 108 of the own node (step S202 in FIG. 3).
  • the sum of the gradient data is obtained for each weight (step S203 in FIG. 3).
  • the DMA controller 108 performs DMA transfer of the gradient data added by the arithmetic function unit 106 to the memory 1040 of the interconnect device 104 of the own node (step S204 in FIG. 3).
  • the gradient data from each arithmetic device 501 is aggregated in the interconnect device 502 (FPGA), and the interconnect device 502 performs the addition process.
  • the size of the data from each arithmetic device 501 is 100MB and the execution bandwidth of the bus 503 connecting the arithmetic device 501 and the interconnect device 502 is 10 GB / s
  • the gradient data transferred from the four arithmetic devices 103 is aggregated in the arithmetic function unit 106 of the bus device 105 and the addition process is performed. Therefore, when gradient data is simultaneously input to the bus device 105 from the four arithmetic devices 103, the amount of data is compressed to 1/4 after the addition processing is performed by the arithmetic function unit 106.
  • the processing time is 80 nsec. This processing time is extremely small compared to the waiting time that has conventionally occurred.
  • FIG. 4 is a flowchart illustrating the operation of the interconnect device 104 and the DMA controller 108 of the specified parent node of each distributed processing node 102
  • FIG. 5 is an interconnect device of a child node other than the parent node of each distributed processing node 102. It is a flowchart explaining operation of 104 and DMA controller 108.
  • the interconnect device 104 of the parent node transfers the gradient data to the child node having the next number (YES in the transmission line 101A). For example, DMA transfer is performed to a child node in the clockwise direction (step S301 in FIG. 4).
  • the interconnect device 104 of the child node receives the gradient data from the adjacent parent node or child node (for example, the parent node or child node in the counterclockwise direction) (YES in step S400 of FIG. 5), the interconnect device 104 and the received gradient data The sum of the gradient data and the gradient data transferred by the DMA controller 108 of the own node is obtained for each weight (step S401 in FIG. 5).
  • the interconnect device 104 of the child node performs DMA transfer of the added gradient data to the node of the next number (for example, the node in the clockwise direction) via the transmission line 101A (step S402 in FIG. 5).
  • the result of adding the gradient data of each distributed processing node 102 can be obtained.
  • the gradient data for which the addition processing at each distributed processing node 102 is completed will be referred to as aggregated data.
  • the interconnect device 104 of the parent node receives aggregated data from an adjacent child node (for example, a child node in the counterclockwise direction) (YES in step S302 of FIG. 4), the received aggregated data is sent to the child node having the next number. DMA transfer is performed to (for example, a child node in the clockwise direction) (step S303 in FIG. 4).
  • the DMA controller 108 of the parent node first triggers the DMA transfer of the aggregated data received by the interconnect device 104 of the own node from the adjacent child node from the memory 1040 in the interconnect device 104 to the arithmetic device 103, and first of all, the DMA controller 108 of the own node DMA transfer to the bus device 105 (step S304 in FIG. 4).
  • the interconnect device 104 of the child node receives the aggregated data from the adjacent parent node or child node (for example, the parent node or child node in the counterclockwise direction) (YES in step S403 of FIG. 5), the received aggregated data is received. DMA transfer is performed to a child node having the next number (for example, a child node in the clockwise direction) (step S404 in FIG. 5).
  • the DMA controller 108 of the child node first triggers the DMA transfer of the aggregated data received by the interconnect device 104 of the own node from the adjacent parent node or child node from the memory 1040 in the interconnect device 104 to the arithmetic device 103 as a trigger. DMA transfer is performed to the bus device 105 of the own node (step S405 of FIG. 5). In this way, the aggregated data is shared by each distributed processing node 102 by distributed communication.
  • the DMA controller 108 of each distributed processing node 102 performs DMA transfer of the aggregated data transferred from the interconnect device 104 of the own node to the bus device 105 to each arithmetic device 103 of the own node (FIGS. 3 steps S205 and S206). ).
  • the arithmetic device 103 updates the weight of the model (neural network of Resnet 50) in the own node based on the aggregated data.
  • the weight update process is performed (step S103 in FIG. 2).
  • the weight to be updated is stored in the parameter storage unit 112.
  • the weight may be updated so that the loss function is minimized based on the gradient of the loss function indicated by the aggregated data. Since updating the weight is a well-known technique, detailed description thereof will be omitted.
  • Each distributed processing node 102 learns using new image data of the image. In this way, the inference accuracy of the model is improved by repeating the learning.
  • the gradient data calculated by the plurality of arithmetic devices 103 is aggregated in the bus device 105 to perform the arithmetic necessary for collective communication, so that the waiting time due to congestion in the interconnect device is reduced. It does not occur. Further, in the present embodiment, since it is not necessary to go around a plurality of arithmetic devices to perform arithmetic operations, it is possible to suppress variations in processing time. As a result, in this embodiment, it is possible to realize high-speed, low-latency, and stable processing.
  • the addition process (step S401) in the interconnect device 104 is also bound to the frequency of the frequency division clock 195.3125 MHz used in 100G Ethernet (registered trademark), which is a transmission specification for connecting nodes. It is possible to use a clock signal with a higher frequency than this. Needless to say, by using such a high frequency clock signal, the time required for the addition processing associated with the collective communication between the nodes is shortened, and the total processing time can be further shortened.
  • One point of this embodiment is that the high-speed clock unit 107 that supplies a high-speed clock signal to the arithmetic function unit 106 is provided in the distributed processing node 102, so that the in-node addition processing is performed by the interconnect device as in the conventional case.
  • the point is that the arithmetic processing time can be shortened as compared with the case.
  • the bit width processed in one clock is set to 512 bits.
  • 16 adders are provided in parallel.
  • the processing speed differs depending on the frequency of one clock.
  • the frequency of the clock signal supplied from the high-speed clock unit 107 to the arithmetic function unit 106 is 500 MHz, and the frequency of the clock signal in the interconnect device 104 is 195.3125 MHz. Therefore, the processing speed of the arithmetic function unit 106 is 2.62 times faster than the case where the in-node addition processing is performed by the interconnect device, and the processing delay due to the in-node addition processing is added by the interconnect device. It can be shortened more than the case. Such reduction of the processing delay is effective when the processing speed of the arithmetic function unit 106 of the bus device 105 is equal to or higher than the processing speed of the interconnect device 104.
  • the memory area built in each device is fixed between the arithmetic device 103 and the bus device 105, and between the bus device 105 and the interconnect device 104, and each fixed memory address.
  • a DMA transfer technique for transferring data between each other is used.
  • the DMA transfer technique is also used between the interconnect devices 104 of each distributed processing node 102.
  • the gradient data DMA-transferred to the bus device 105 is added, and then the gradient data is DMA-transferred to the memory 1040 of the interconnect device 104.
  • the gradient data is DMA-transferred from four arithmetic devices to different memory areas of the interconnect devices, four memory areas are required.
  • the DMA controller 108 of the present embodiment may perform DMA transfer of the gradient data added by the bus device 105 to one memory area in the interconnect device 104. In this way, it is not necessary for the interconnect device 104 to have four memory areas for DMA transfer from the bus device 105, and the memory areas can be used efficiently.
  • the efficient use of the memory area of the interconnect device 104 can further improve the efficiency of the distributed processing system 101. Such efficiency improvement is effective even when the number of users increases and a plurality of learning jobs are performed in parallel, as will be described in the following examples.
  • FIG. 6 is a block diagram showing a configuration of a distributed processing system according to a second embodiment of the present invention.
  • the distributed processing system 201 of this embodiment is composed of a plurality of distributed processing nodes 202 and a transmission line 201A connecting the plurality of distributed processing nodes 202.
  • Each distributed processing node 202 includes a plurality of arithmetic devices 203a and 203b including GPUs, an interconnect device 204 composed of an FPGA having a data communication function via a transmission line and an optical transceiver, and an arithmetic device 203a by a general-purpose bus.
  • 203b A bus device 205 composed of an FPGA having a function of performing data communication and a calculation function, and a plurality of bus devices 205 provided in the bus device 205 for processing data from the calculation devices 203a and 203b and the interconnect device 204. It is provided with arithmetic function units 206a and 206b for each learning job.
  • each distributed processing node 202 has a high-speed clock unit 207 that supplies a high-speed clock signal to the arithmetic function units 206a and 206b, a DMA transfer of data between the arithmetic devices 203a and 203b and the bus device 205, and a bus device.
  • the DMA controller 208 that controls the DMA transfer of data between the 205 and the interconnect device 204, and the order and timing of the DMA transfer from the arithmetic function units 206a and 206b to the interconnect device 204 provided in the bus device 205.
  • the difference from the first embodiment is that the plurality of arithmetic devices 203a and the plurality of arithmetic devices 203b perform different learning jobs, and the arithmetic function unit 206a for the arithmetic device 203a and the arithmetic function unit 206b for the arithmetic device 203b.
  • the scheduler unit 209 are provided in the bus device 205.
  • the four arithmetic devices 203a are fixedly connected to the arithmetic function unit 206a, and the two arithmetic devices 203b are fixedly connected to the arithmetic function unit 206b.
  • the interconnect device 204 is provided with a memory area 2040a for the arithmetic device 203a and a memory area 2040b for the arithmetic device 203b in the memory 2040.
  • the DMA controller 208 of each distributed processing node 202 uses the gradient data calculated by each arithmetic device 203a as the arithmetic function unit of the bus device 205 of its own node. DMA transfer is performed to the memory 2040a in the interconnect device 204 via the 206a (step S101 in FIG. 2).
  • the two arithmetic devices 203b perform learning jobs different from those of the arithmetic device 203a.
  • Examples of different learning jobs include training a model using different image data, training a plurality of models using the same image data, and the like.
  • the DMA controller 208 transmits the gradient data calculated by each arithmetic device 203b to the memory in the interconnect device 204 via the arithmetic function unit 206b of the bus device 205 of the own node. DMA transfer to 2040b (step S101).
  • the arithmetic function unit 206a of the bus device 205 of each distributed processing node 202 obtains the sum of the received gradient data for each weight (FIG. 3). 3 steps S203).
  • the arithmetic function unit 206b obtains the sum of the received gradient data for each weight (step S203).
  • the DMA controller 208 of each distributed processing node 202 performs DMA transfer of the gradient data added by the arithmetic function unit 206a of the own node to the memory area 2040a of the interconnect device 204 of the own node (step S204 in FIG. 3). Similarly, the DMA controller 208 performs DMA transfer of the gradient data added by the arithmetic function unit 206b of the own node to the memory area 2040b of the interconnect device 204 of the own node (step S204).
  • the scheduler unit 209 determines at what timing the gradient data added by which arithmetic function unit is transferred to the interconnect device 204. Control.
  • the gradient calculation process on the two arithmetic devices 203b is completed after the gradient calculation process on the four arithmetic devices 203a is completed will be described.
  • the scheduler unit 209 in the bus device 205 acquires and stores information regarding DMA transfer from the arithmetic device 203a or 203b to the arithmetic function unit 206a or 206b of the bus device 205 from the DMA controller 208.
  • the information related to the DMA transfer includes the data size of the DMA transfer, the timing information of the DMA transfer, the ID (identification) of the learning job of the arithmetic device 203a or 203b, and the like.
  • the scheduler unit 209 stores information related to these DMA transfers for each learning job ID (for each calculation function unit). Further, the scheduler unit 209 stores the time required for each of the processing of the arithmetic function units 206a and 206b.
  • the scheduler unit 209 determines which of the arithmetic function units 206a and 206b transfers the gradient data to the interconnect device 204 based on the information regarding the DMA transfer and the processing time information of the arithmetic function units 206a and 206b. do.
  • the scheduler unit 209 notifies the DMA controller 208 to transfer the gradient data added by the arithmetic function unit 206b to the interconnect device 204 before the gradient data added by the arithmetic function unit 206a. do.
  • the operations of the arithmetic function units 206a and 206b and the interconnect device 204 are the same as the operations of the arithmetic function units 106 and the interconnect device 104 of the first embodiment.
  • the ID of the learning job is added to the gradient data generated by the arithmetic devices 203a and 203b. Therefore, the arithmetic function units 206a and 206b and the interconnect device 204 can perform the processing described in the first embodiment for each learning job.
  • the scheduler unit 209 is not an arithmetic function unit that is expected to finish the addition process early, but is a DMA transfer of the arithmetic function unit for each learning job based on the priority information determined in advance for the type of learning job. The ranking may be determined.
  • FIG. 7 is a block diagram showing a configuration of a distributed processing system according to a third embodiment of the present invention.
  • the distributed processing system 301 of this embodiment is composed of a plurality of distributed processing nodes 302 and a transmission line 301A connecting the plurality of distributed processing nodes 302.
  • Each distributed processing node 302 includes a plurality of arithmetic devices 303-1 to 303-6 including GPUs, an interconnect device 304 consisting of an FPGA having a data communication function via a transmission line and an optical transceiver, and a general-purpose bus.
  • Bus device 305 made of FPGA having a function to perform data communication with arithmetic devices 303-1 to 303-6 and an arithmetic function, and arithmetic devices 303-1 to 303-6 provided in the bus device 305. It includes a plurality of arithmetic function units 306a and 306b that process data from the interconnect device 304.
  • each distributed processing node 302 performs DMA transfer of data between the high-speed clock unit 307 that supplies a high-speed clock signal to the arithmetic function units 306a and 306b, the arithmetic devices 303-1 to 303-6, and the bus device 305.
  • a DMA controller 308 that controls the DMA transfer of data between the bus device 305 and the interconnect device 304, and a DMA controller 308 provided in the bus device 305 that transfers the DMA from the arithmetic function units 306a and 306b to the interconnect device 304. It is provided with a scheduler unit 309 that determines the order and timing.
  • each distributed processing node 302 is provided in the bus device 305, and the gradient data calculated by the arithmetic devices 303-1 to 303-6 in response to the request of the learning job and transferred to the bus device 305 is used as the learning job.
  • a distribution unit 310 that distributes to the corresponding arithmetic function units 306a and 306b, a control unit 311 that allocates a learning job requested from the outside to at least one of a plurality of arithmetic devices 303-1 to 303-6, and model parameters. It is provided with a parameter storage unit 312 for storing.
  • the interconnect device 304 is provided with a memory area 2040a for the arithmetic device 303a and a memory area 2040b for the arithmetic device 303b in the memory 3040.
  • the difference from the second embodiment is that the allocation of the learning job to each arithmetic device 303-1 to 303-6 is not fixed, and the gradient data from each arithmetic device 303-1 to 303-6 is transferred.
  • the bus device 305 is provided with a distribution unit 310 that distributes data to the calculation function units 206a or 206b corresponding to the learning job of the original calculation device.
  • the operation of the distributed processing system 301 of this embodiment will be described.
  • the operation will be described in the case where different learning jobs are executed in the distributed processing node 302 at the same time and information processing such as distributed deep learning is performed between the distributed processing nodes 302.
  • the processing flow of the distributed processing system 301 is the same as that of the first embodiment, and thus the reference numerals of FIGS. 2 to 5 will be used for description.
  • control unit 311 of the distributed processing node 302 searches for free resources, that is, arithmetic devices 303-1 to 303-6 to which the learning job is not assigned.
  • the learning job (hereinafter, learning job a) has already been performed by the arithmetic devices 303-1, 303-3, 303-4, 303-6. It is assumed that it has been done. Therefore, the arithmetic devices 303-2 and 303-5 are free resources. Therefore, the control unit 311 allocates a new learning job (hereinafter, learning job b) to the arithmetic devices 303-2 and 303-5.
  • the calculation function (addition processing function of gradient data from four calculation devices) required for the group communication in the learning job a is implemented in the calculation function unit 306a, and is required for the group communication in the learning job b. It is assumed that the calculation function (addition processing function of gradient data from two calculation devices) is implemented in the calculation function unit 306b.
  • the DMA controller 308 of each distributed processing node 302 outputs the gradient data calculated by each of the arithmetic devices 303-1 to 303-6 after the gradient calculation processing of each of the arithmetic devices 303-1 to 303-6 of the own node is completed. DMA transfer is performed to the memory 3040 in the interconnect device 304 via the bus device 305 of the own node (FIG. 2, step S101).
  • the distribution unit 310 acquires information regarding the DMA transfer from the arithmetic devices 303-1 to 303-6 to the bus device 305 from the DMA controller 308.
  • the information related to the DMA transfer includes the data size of the DMA transfer, the timing information of the DMA transfer, the ID of the learning job of the arithmetic devices 303-1 to 303-6, the ID of the bus used for the DMA transfer, and the like.
  • the distribution unit 310 distributes the gradient data calculated by the arithmetic devices 303-1 to 303-6 based on the information acquired from the DMA controller 308 to the arithmetic function units 306a or 306b.
  • the distribution unit 310 uses the gradient data calculated by the calculation devices 303-1, 303-3, 303-4, 303-6 that perform the learning job a, and the calculation function unit 306a corresponding to the learning job a. Sort to. Further, the distribution unit 310 distributes the gradient data calculated by the calculation devices 303-2 and 303-5 that perform the learning job b to the calculation function unit 306b corresponding to the learning job b.
  • a plurality of users that is, a plurality of learning jobs share the distributed processing system, and it may differ depending on the number of learning jobs and the required amount of resources.
  • a plurality of users that is, a plurality of learning jobs share a distributed processing system, different learning is performed even if the amount of resources required for the learning job differs depending on the learning job. Since gradient data by jobs are not mixed, it is possible to process a plurality of learning jobs efficiently and stably.
  • the operations of the arithmetic function units 306a and 306b, the scheduler unit 309, and the interconnect device 304 are the same as the operations of the arithmetic function units 206a and 206b, the scheduler unit 209, and the interconnect device 204 of the second embodiment.
  • the arithmetic function implemented in the arithmetic function units 106, 206a, 206b, 306a, 306b does not have to be the arithmetic function required for collective communication.
  • the arithmetic function units 106, 206a, 206b, 306a, and 306b may be divided into a plurality of units according to their functions.
  • bus devices 105, 205, 305 having the arithmetic function units 106, 206a, 206b, 306a, 306b do not have to be singular, and may be mounted on a plurality of, that is, a plurality of general-purpose buses, respectively. Further, a plurality of bus devices may be connected to independent interconnect devices.
  • the connection configuration of is hierarchical. However, there is no restriction that the number of arithmetic devices is equal to or greater than the number of arithmetic functional units and the number of arithmetic functional units is equal to or greater than the number of interconnect devices.
  • the number of arithmetic devices is 4, the number of arithmetic function units is 1, and the number of interconnect devices is 4.
  • the transfer from the arithmetic devices 103, 203a, 203b, 303-1 to 303-6 to the interconnect devices 104, 204, 304 has been described, but the same applies to the reverse directions. There may be a function of.
  • the copy function is provided as a function of the arithmetic function unit, the operation of the transfer destination acquired from the DMA controller is performed. Based on the device information, the aggregated data copied by the arithmetic function unit can be DMA-transferred to the fixed memory area of the designated arithmetic device. Thereby, the function in the opposite direction can be realized. Further, the copy function may be in the distribution unit instead of the calculation function unit.
  • FIG. 8 is a block diagram showing a configuration of a distributed processing system according to a fourth embodiment of the present invention.
  • the distributed processing system 401 of this embodiment includes a plurality of distributed processing nodes 402-1 to 402-4, a transmission line 401A connecting the plurality of distributed processing nodes 402-1 to 402-4, and a distributed processing node 402-. It is composed of a control node 413 that controls 1 to 402-4 and a control network 414 that connects the control node 413 and the distributed processing nodes 402-1 to 402-4.
  • Each of the distributed processing nodes 402-1 to 402-4 includes a plurality of arithmetic devices 303-1 to 303-6, an interconnect device 304, a bus device 305, and a plurality of arithmetic function units provided in the bus device 305. It includes 306a and 306b, a high-speed clock unit 207, a DMA controller 308, a scheduler unit 309, a distribution unit 310, a control unit 311 and a parameter storage unit 312.
  • the difference from the first to third embodiments is that, for example, the distributed processing node 402-1 is installed in the building A, the distributed processing node 402-2 is installed in the building B, and the distributed processing node 402-3 is installed in the building C.
  • Each distributed processing node 402-1 to 402-4 is installed in a different building, such that the distributed processing node 402-4 is installed in the building D, and each distributed processing node 402-1.
  • the control node 413 is provided for the synchronization of the processing timings in ⁇ 402-4 and the management of the entire system.
  • this embodiment will be described by taking the learning process in distributed deep learning as an example. Similar to the third embodiment, in the distributed processing node 402-1 installed in the building A, among the six arithmetic devices 303-1 to 303-6, the arithmetic devices 303-1, 303-3, 303- It is assumed that the learning job a has already been performed in 4,303-6. A case where a new learning job b is executed in this state will be described.
  • the state of another distributed processing node for example, the distributed processing node 402-2 installed in the building B, cannot be known from the distributed processing node 402-1. Therefore, in this embodiment, the control nodes 413 connected to the distributed processing nodes 402-1 to 402-4 are provided.
  • the control node 413 holds and manages a job reception unit 415 that receives a request for a learning job from a user, resource information and model information of each distributed processing node 402-1 to 402-4, information about learning data, and the like.
  • a unit 416 and a control instruction unit 417 that gives instructions to the distributed processing nodes 402-1 to 402-4 are provided.
  • the distributed processing system 401 is controlled by the control node 413.
  • the request information of the new learning job b from the user is received by the job reception unit 415 of the control node 413.
  • This request information includes information about the model to be learned, the calculation data type, the required resource amount, and the like.
  • the control instruction unit 417 creates control instruction information for each distributed processing node 402-1 to 402-4 based on the request information from the job reception unit 415 and the information managed by the management database unit 416.
  • This control instruction information includes information about the model to be learned, data required for calculation, model parameter information, information on the calculation device to which the learning job is assigned, and the like.
  • control unit 311 of each distributed processing node 402-1 to 402-4 receives the control instruction information from the control instruction unit 417 of the control node 413 via the control network 414, the control unit 311 secures a resource based on the control instruction information. .. That is, the control unit 111 allocates the learning job to the arithmetic device 303 of the own node instructed by the control instruction information.
  • control unit 111 prepares for reading parameters of the model to be trained and reading training data. In this way, by reading the parameters of the model to be learned from the parameter storage unit 312, it is possible to cause the arithmetic device 303 to start the learning job.
  • the control instruction unit 417 of the control node 413 has the arithmetic devices 303-2 and 303-5 to which the learning job a is not assigned among the six arithmetic devices 303-1 to 303-6 of the distributed processing node 402-1. And, among the six arithmetic devices 303-1 to 303-6 of the distributed processing node 402-2, the learning job b is assigned to the arithmetic devices 303-3, 303-4, 303-5 to which the learning job a is not assigned. Decide to allocate.
  • the control unit 111 of the distributed processing node 402-1 allocates the learning job b to the arithmetic devices 303-2 and 303-5 of the own node instructed by the control instruction information from the control instruction unit 417 of the control node 413.
  • the control unit 111 of the distributed processing node 402-2 allocates the learning job b to the arithmetic devices 303-3, 303-4, 303-5 of the own node instructed by the control instruction information.
  • the operations of the arithmetic function units 306a and 306b, the scheduler unit 309, the distribution unit 310, and the interconnect device 304 are the same as those in the third embodiment.
  • the ID of the learning job is added to the gradient data generated by the arithmetic devices 303-1 to 303-6 of the distributed processing nodes 402-1 to 402-4.
  • the arithmetic function units 306a and 306b, the scheduler unit 309, the distribution unit 310, and the interconnect device 304 can perform the processes described in the first to third embodiments for each learning job. In this way, the distributed processing for the learning job b is performed separately from the distributed processing for the learning job a.
  • the result of the update processing that is, the updated model parameters are written to the parameter storage unit 312, and the information indicating that the learning job a is completed is sent from the control unit 311 to the control node 413. It is sent to the management database unit 416 of.
  • the distributed processing system 401 is in a standby state for the next new learning job.
  • the distributed processing nodes 402-1 to 402-4 since the distributed processing nodes 402-1 to 402-4 perform the distributed processing according to the instruction from the control node 413, the distributed processing nodes 402-1 located in the geographically separated buildings.
  • the distributed processing can be efficiently performed between ⁇ 402-4.
  • the parameter storage unit 312 in each distributed processing node 402-1 to 402-4, a request for a learning job using learning data such as sensor information generated in a burst in the area where the distributed processing node is installed is requested.
  • learning data such as sensor information generated in a burst in the area where the distributed processing node is installed.
  • the configuration of the distributed processing node of the third embodiment is used as the configuration of the distributed processing nodes 402-1 to 402-4, but the configuration of the distributed processing node of the first and second embodiments is used. Needless to say, it's okay.
  • the GPU has been described as an example of the arithmetic devices 103, 203a, 203b, 303-1 to 303-6, but the present invention is not limited to this, and the arithmetic device 103, As 203a, 203b, 303-1 to 303-6, a CPU, FPGA, quantum computing device, artificial intelligence (neuron) chip, or the like may be used.
  • the fixed term for DMA transfer in the above sentence means that the memory swap-out is prevented by the setting regarding the memory in which the DMA transfer is performed. Therefore, the fixed memory means that the user can monopolize a specific area of the memory and use the memory. Depending on the setting, the fixed memory can be used as a memory area for sharing the memory area with another user or as a memory area for the DMA of another user. It is also possible to change it. Fixed for DMA transfer does not mean that a specific memory area is fixed in advance and cannot be changed.
  • Each of the distributed processing nodes described in the first to fourth embodiments includes a computer having a computing unit such as a CPU and a GPU, a storage device, and an interface, a program for controlling these hardware resources, and an FPGA. Can be realized by.
  • a configuration example of this computer is shown in FIG.
  • the computer includes a calculation unit 600, a storage device 601 and an FPGA 603.
  • Each CPU, GPU, or other arithmetic unit 600 of the distributed processing node executes the processing described in the first to fourth embodiments according to the program stored in each storage device 601.
  • the control node 413 can also be realized by a computer.
  • the present invention can be applied to a distributed processing system in which deep learning is executed in a distributed and coordinated manner on a plurality of nodes.
  • Parameter storage unit 209, 309 ... Scheduler unit, 310 ... Distribution unit, 413 ... Control node, 414 ... Control network 415 ... Job reception unit, 416 ... Management database unit, 417 ... Control instruction unit, 1040, 2040, 3040 ... Memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Multi Processors (AREA)

Abstract

分散処理ノード(102)は、学習対象のモデルに学習データを入力した出力結果から損失関数の勾配データを計算する演算デバイス(103)と、他の分散処理ノード(102)との間で勾配データを集計するインタコネクトデバイス(104)と、バスデバイス(105)内に設けられ、演算デバイス(103)からの勾配データの処理を行う演算機能部(106)と、演算デバイス(103)とバスデバイス(105)との間の勾配データのDMA転送、およびバスデバイス(105)とインタコネクトデバイス(104)との間の勾配データのDMA転送を制御するDMAコントローラ(108)とを備える。

Description

分散処理ノードおよび分散処理システム
 本発明は、深層学習等を複数の分散処理ノードで分散協調して実行する分散処理システムに係り、複数の演算デバイス間での集団通信を効率的、かつ高速・低レイテンシに処理することで、情報処理を高速、高効率に処理することが可能な分散処理ノードおよび分散処理システムに関するものである。
 近年、シリコンプロセスの微細化の限界によりムーアの法則が適用できない、いわゆるポストムーア時代の到来が言われてきている。このポストムーア時代に向けて、CPU(Central Processing Unit)などの演算デバイスのシリコンプロセス微細化による演算性能限界を打破して、デバイスの演算性能を飛躍的に向上しようとする取り組みが行われている。
 このような取り組みとして、1つのプロセッサ内に演算コアを複数持たせるマルチコア化のアプローチがある。しかし、マルチコアは、1つのシリコンチップの大きさの限界などのために、単体のプロセッサの飛躍的な性能向上には限界があった。そこで、単体のプロセッサの限界を超えるため、演算デバイスを搭載した複数のサーバを大容量のインタコネクトで接続した分散処理システムを用いることにより、単一のデバイスや単一のサーバでは難しかった高負荷のタスクを高速で処理する分散処理システム技術が注目されつつある。
 例えば、高負荷のジョブの1例である深層学習では、多層のニューロンモデルからなる学習対象について、各ニューロンモデルの重み(前段のニューロンモデルが出力した値に乗じる係数)を、入力した大量のサンプルデータを用いて更新することにより、推論精度を改善する。
 通常、推論精度を改善する手法には、ミニバッチ法が用いられている。ミニバッチ法では、サンプルデータ毎に重みに対する勾配を計算する勾配計算処理と、複数の異なるサンプルデータについて勾配を集計する(サンプルデータ毎に得られた勾配を重み別に合算する)集計処理と、集計した勾配に基づいて各重みを更新する重み更新処理と、を繰り返す。
 また、分散処理システム技術を適用した分散深層学習では、集計処理を行うために、分散処理ノード毎に得られた分散データを集計処理ノードに集約するための、各分散処理ノードから集計処理ノードへの集約通信と、集計処理ノードでの全ノード集計処理と、集計処理ノードが集計したデータを各分散処理ノードに転送するための、集計処理ノードから分散処理ノードへの分配通信とが必要となる。
 分散深層学習に必要な処理、特に集約通信や分配通信といった集団通信は、多数回の通信を必要とするが、深層学習の推論精度を向上させるために、重みの個数や入力するサンプルデータの個数を増加させると、通信時間が増加すると共に、深層学習に要する時間が増大する。このため、推論精度を向上させ、なおかつ、深層学習に要する時間を増加さないために、分散処理ノード内に演算デバイスを複数高密度に実装し、分散処理ノード自体の処理性能を向上させるアクセラレーション技術が用いられる。
 図10はアクセラレーション技術を用いた従来の分散処理システムの1例を示すブロック図である。各分散処理ノード500-1~500-4は、伝送路504によって互いに接続されている。各分散処理ノード500-1~500-4は、それぞれ複数の演算デバイス501と、FPGA(Field Programmable Gate Array)からなるインタコネクトデバイス502と、演算デバイス501とインタコネクトデバイス502とを接続する汎用バス503とを備えている。
 図10に示すように、分散処理ノード500-1~500-4に複数の演算デバイス501を実装することで、分散処理ノード500-1~500-4の処理性能を向上させようとする場合、集約通信における演算を例えばインタコネクトポートを有するインタコネクトデバイス502のハードウェアによって行わせる。
 その後、伝送路504によって接続された分散処理ノード500-1~500-4間で、集団通信における演算を各分散処理ノード500-1~500-4に搭載されたインタコネクトデバイス502のハードウェアによって行う。これにより、集団通信の演算を高速に行い、ノード内と同様に分散処理の高速化を実現することができる。
 しかし、分散処理ノード500-1~500-4内に複数の演算デバイス501を実装した場合、各演算デバイス501から同時に演算結果がノード内の汎用バス503を通してインタコネクトデバイス502へ送られる。このため、インタコネクトデバイス502の入力側で複数の演算デバイス501からのデータ同士の衝突による輻輳が発生し、この輻輳が通信ボトルネックになり、演算性能を劣化させてしまうという問題が生じる。
 また、ノード内の集団通信を効率的に行う技術として、NCCL(NVIDIA Collective Communications Library)が提案されている(非特許文献1参照)。しかしながら、このNCCLでは、複数の演算デバイスを巡回するようにして演算を行うので、演算デバイスで行う集団通信の処理時間にバラつきがあり、処理能力が低下してしまうという問題があった。
 また、演算デバイスとインタコネクトデバイス間で汎用バスを介してダイレクトメモリアクセス(DMA:Direct Memory Access)転送によって、ノード内のデータ移動およびノード間のデータ移動を効率化することによって、処理を高速化する技術が提案されている(非特許文献2参照)。しかし、非特許文献2に開示された技術では、複数の演算デバイスからの通信がインタコネクトデバイスに集中してしまう際の輻輳を回避することができず、大幅な処理効率の改善は難しい。
 このような輻輳を回避する類似技術として、SHARP(Scalable Hierarchical Aggregation and Reduction Protocol)(登録商標)という技術が提案されている(特許文献1参照)。この特許文献1に開示された技術を分散処理システムに適用した場合、分散処理ノード間にスイッチ装置を設置することによりノード間の集団通信での輻輳は回避できるが、ノード内での輻輳による処理低下という問題が残存してしまう。
米国特許第10284383号明細書
Nathan Luehr,NVIDIA Corporation,"Fast Multi-GPU collectives with NCCL",2016,<https://devblogs.nvidia.com/fast-multi-gpu-collectives-nccl/> Mellanox Technologies Ltd. ,"Mellanox OFED GPUDirect RDMA",2018,<https://www.mellanox.com/related-docs/prod_software/PB_GPUDirect_RDMA.PDF>
 本発明は、上記のような事情を考慮してなされたものであり、演算デバイスを複数搭載した分散処理ノード同士をインタコネクトデバイスで接続した分散処理システムにおいて、分散処理ノード内での通信輻輳を解消し、輻輳による通信ボトルネックや集団通信の演算処理を均一化することで、高効率な分散処理ノードおよび分散処理システムを提供することを目的とする。
 本発明の分散処理ノードは、学習対象のモデルに学習データを入力した出力結果から損失関数の勾配データを計算し、前記勾配データの集計データに基づいて前記モデルのパラメータを更新するように構成された複数の演算デバイスと、他の分散処理ノードとの間で前記勾配データを集計するように構成されたインタコネクトデバイスと、前記複数の演算デバイスおよび前記インタコネクトデバイスと接続されたバスデバイス内に設けられ、前記複数の演算デバイスからの勾配データの処理および前記インタコネクトデバイスからの勾配データの処理のうち少なくとも一方を行うように構成された演算機能部と、前記複数の演算デバイスと前記バスデバイスとの間の勾配データのDMA転送、および前記バスデバイスと前記インタコネクトデバイスとの間の勾配データのDMA転送を制御するように構成されたDMAコントローラと、外部から要求された学習ジョブを前記複数の演算デバイスのうちの少なくとも1つに割り当てるように構成された制御部とを備えることを特徴とするものである。
 また、本発明の分散処理ノードの1構成例において、前記演算機能部は、学習ジョブ毎に設けられることを特徴とするものである。
 また、本発明の分散処理ノードの1構成例は、前記複数の演算デバイスから前記バスデバイスへのDMA転送に関する情報を前記DMAコントローラから取得し、前記学習ジョブの要求に応じて前記演算デバイスによって計算され前記バスデバイスへ転送された勾配データを、前記DMAコントローラから取得した情報に基づいて、前記学習ジョブに対応する前記演算機能部に振り分けるように構成された振り分け部をさらに備えることを特徴とするものである。
 また、本発明の分散処理ノードの1構成例は、前記複数の演算デバイスから前記バスデバイスへのDMA転送に関する情報を前記DMAコントローラから取得し、取得した情報に基づいて前記バスデバイス内の演算機能部から前記インタコネクトデバイスへのDMA転送の順位とタイミングとを決定するように構成されたスケジューラ部をさらに備えることを特徴とするものである。
 また、本発明の分散処理ノードの1構成例において、前記演算機能部に供給されるクロック信号の周波数は、前記インタコネクトデバイスに供給されるクロック信号の周波数よりも高く、前記演算機能部の動作速度は、前記インタコネクトデバイスの動作速度よりも速い。
 また、本発明の分散処理システムは、分散処理ノードを複数備えると共に、前記複数の分散処理ノードを制御するように構成された制御ノードを備え、前記制御ノードは、外部からの学習ジョブの要求情報を受け付けるように構成されたジョブ受付部と、各分散処理ノードのリソース情報を管理するように構成された管理データベース部と、前記ジョブ受付部からの要求情報と前記管理データベース部で管理されているリソース情報とを基に、学習ジョブを割り当てる演算デバイスの情報を含む制御指示情報を各分散処理ノード向けに作成するように構成された制御指示部とを備え、各分散処理ノードの制御部は、前記制御指示情報によって指示された自ノードの演算デバイスに学習ジョブを割り当てて学習ジョブを開始させることを特徴とするものである。
 また、本発明の分散処理システムの1構成例において、各分散処理ノードは、前記モデルのパラメータを格納するように構成されたパラメータ格納部をさらに備え、前記制御ノードの管理データベース部は、各分散処理ノードのリソース情報とモデルに関する情報とを管理し、前記制御ノードの制御指示部は、学習ジョブを割り当てる演算デバイスの情報の他に、学習対象のモデルに関する情報とパラメータの情報とを含む前記制御指示情報を作成し、各分散処理ノードの制御部は、前記制御指示情報に従って自ノードの前記パラメータ格納部から学習対象のモデルのパラメータを読み出すことを特徴とするものである。
 本発明では、多量の情報処理を行う大規模な分散処理システムにおいて、1つの大きい学習ジョブを高速で処理させる場合や、複数の学習ジョブを高速かつ効率的に処理させる場合において、複数の演算デバイスとインタコネクトデバイス間の汎用バス経路に、集団通信などの演算処理を行うバスデバイスを設け、このバスデバイスに演算機能部を設けて、演算機能部に勾配データの処理を行わせる。したがって、本発明では、処理が行われた勾配データをインタコネクトデバイスに転送しても、インタコネクトデバイスでの輻輳が発生せず、輻輳による待ち時間が発生することがないので、学習ジョブなどの情報処理を高速、高効率に行うことができる。
図1は、本発明の第1の実施例に係る分散処理システムの構成を示すブロック図である。 図2は、本発明の第1の実施例に係る分散処理ノードの演算デバイスとDMAコントローラの動作を説明するフローチャートである。 図3は、本発明の第1の実施例に係る分散処理ノードのDMAコントローラの動作を説明するフローチャートである。 図4は、本発明の第1の実施例に係る分散処理ノードのインタコネクトデバイスとDMAコントローラの動作を説明するフローチャートである。 図5は、本発明の第1の実施例に係る分散処理ノードのインタコネクトデバイスとDMAコントローラの動作を説明するフローチャートである。 図6は、本発明の第2の実施例に係る分散処理システムの構成を示すブロック図である。 図7は、本発明の第3の実施例に係る分散処理システムの構成を示すブロック図である。 図8は、本発明の第4の実施例に係る分散処理システムの構成を示すブロック図である。 図9は、本発明の第1~第4の実施例に係る分散処理ノードを実現するコンピュータの構成例を示すブロック図である。 図10は、従来の分散処理システムの構成を示すブロック図である。
[第1の実施例]
 以下、本発明の実施例について図面を参照して説明する。図1は本発明の第1の実施例に係る分散処理システムの構成を示すブロック図である。分散処理システム101は、複数の分散処理ノード102と、複数の分散処理ノード102間を接続する伝送路101Aとから構成される。
 各分散処理ノード102は、GPU(Graphics Processing Unit)などからなる複数の演算デバイス103と、伝送路を介したデータ通信機能を備えたFPGAと光トランシーバとからなるインタコネクトデバイス104と、PCI-Expressなどの汎用バスによって演算デバイス103とのデータ通信を行う機能と演算機能とを備えたFPGAからなるバスデバイス105と、バスデバイス105内に設けられ、演算デバイス103やインタコネクトデバイス104からのデータを処理する演算機能部106とを備えている。
 また、各分散処理ノード102は、バスデバイス105の演算機能部106に高速なクロック信号を供給する高速クロック部107と、演算デバイス103とバスデバイス105との間のデータのDMA転送、およびバスデバイス105とインタコネクトデバイス104との間のデータのDMA転送を制御するDMAコントローラ108と、外部から要求された学習ジョブを複数の演算デバイス103のうちの少なくとも1つに割り当てる制御部111と、モデルのパラメータを記憶するパラメータ格納部112とを備えている。
 より具体的には、例えば分散処理ノード102として、Supermicro社製SYS-4028GR-TR2サーバ(以降、単にサーバと称す)を用いる。このサーバのCPUマザーボードには、CPUとしてIntel社製Xeon(登録商標)プロセッサE5-2600V4が2台搭載され、メインメモリとしてDDR4-2400 DIMM(Dual Inline Memory Module)32GBのメモリカードが8枚搭載されている。
 また、CPUマザーボードには、PCI-Express3.0(Gen3)の16レーンスロットのドーターボードが実装されている。このドーターボードのスロットには、演算デバイス103としてNVIDIA社製のGPUであるV100が4台搭載され、インタコネクトデバイス104としてXillinx社製のVCU118 Evaluationボード1台が搭載されている。さらに、このEvaluationボードには、QSFP28の光トランシーバ2台が搭載されている。分散処理ノード102同士は、光ファイバからなる伝送路101Aによってリング状に接続されている。
 また、サーバのマザーボードには、バスデバイスとして、PCIeルートコンプレックスデバイスが搭載されている。しかし、このPCIeルートコンプレックスデバイスには、演算デバイス間の集団通信に必要な加算処理などの演算機能が搭載されていない。そこで、本実施例では、PCIeルートコンプレックスデバイスに演算機能部106の機能を付与したデバイスをバスデバイス105として用いる。
 また、サーバでは、通常、100MHzのクロック信号がPCIeルートコンプレックスデバイスに供給される。本実施例では、高速クロック部107を新たに設けることにより、500MHzのクロック信号を高速クロック部107からバスデバイス105の演算機能部106に供給する。
 また、マザーボードに搭載されているDMAコントローラ108としては、バスデバイス105を介しても動作するように変更したものが搭載されている。なお、図1では、DMAコントローラ108をインタコネクトデバイス104の外部に配置しているが、インタコネクトデバイス104を構成するFPGAの内部にDMAコントローラ108を設けるようにしてもよい。
 また、サーバには、OS(Operating System)をインストールするための記憶媒体として480GB容量のSSD(Solid State Drive)が搭載されている。OSとしては、Ubuntu18.04LTEを使用する。このOSには、後述する演算フレームワークが組み込まれている。
 図1の分散処理システム101を用いて、従来技術の動作と対比させながら、本実施例の動作を説明する。ここでは、画像データベースであるimagenet(http://www.image-net.org/)に蓄積されている画像を分類するAI(Artificial Intelligence)の分散深層学習を、学習モデルの1つであるResnet50を用いて行う場合を例に挙げて説明する。なお、深層学習プラットフォームとしてはTensor Flowベースのものを用いることとする。
 本発明では、深層学習で実行されるジョブを学習ジョブと称する。ユーザが同じでも学習ジョブが異なる場合が有り得る。
 制御部111は、例えばCPUから構成される。制御部111は、例えばTensor Flowベースの深層学習プラットフォームなどのソフトウエアに従って、数学モデルをソフトウェア的に構築する機能と、学習対象のモデルのパラメータ(重みなど)をパラメータ格納部112から読み出す機能と、モデルのパラメータをパラメータ格納部112に書き込む機能と、リソース、すなわち空いている演算デバイスを確保して演算デバイス103に学習ジョブを割り当てる機能と、外部から画像データ等の学習データを読み出して演算デバイス103に渡す機能などを備えている。
 インタコネクトデバイス104は、他の分散処理ノード102との間でデータを集計する。
 図2は分散処理ノード102とDMAコントローラ108の動作を説明するフローチャートである。
 分散処理ノード102の各演算デバイス103は、imagenetの画像データを制御部111を介して受け取り、自ノード内の学習対象のモデル(Resnet50のニューラルネットワーク)の複数の重みの各々についてモデルの損失関数の勾配を計算して、画像データ毎の勾配を集計した勾配データを重み毎に生成する(図2ステップS100)。
 モデルの重み、モデルの性能の悪さを示す指標である損失関数、および損失関数の勾配については周知の技術であるので、詳細な説明は省略する。本実施例では、例えばミニバッチサイズ32枚分に対して学習ジョブのタスクの1つである勾配計算処理を行うものとする。
 DMAコントローラ108は、各演算デバイス103における勾配計算処理の終了後、各演算デバイス103によって計算された勾配データを自ノードのバスデバイス105の演算機能部106を経由してインタコネクトデバイス104内のメモリ1040にDMA転送する(図2ステップS101)。このDMA転送については後述する。
 図3は分散処理ノード102のDMAコントローラ108の動作を説明するフローチャートである。
 各分散処理ノード102の演算デバイス103によって勾配データが生成されると(図3ステップ200)、この勾配データは、重み毎にバスデバイス105の演算機能部106へDMA転送される(図3ステップ201)。
 各分散処理ノード102のバスデバイス105の演算機能部106は、自ノードのDMAコントローラ108によって自ノードの全ての演算デバイス103からの勾配データがDMA転送されると(図3ステップS202)、受信した勾配データの和を重み毎に求める(図3ステップS203)。
 DMAコントローラ108は、演算機能部106によって加算された勾配データを自ノードのインタコネクトデバイス104のメモリ1040にDMA転送する(図3ステップS204)。
 図10に示した従来の技術では、各演算デバイス501からの勾配データがインタコネクトデバイス502(FPGA)に集約され、インタコネクトデバイス502が加算処理を行う。各演算デバイス501からのデータの大きさが100MB、演算デバイス501とインタコネクトデバイス502とを接続するバス503の実行帯域が10GB/sとすると、1つの演算デバイス501からインタコネクトデバイス502へのデータ転送に10msecかかる。
 したがって、従来の技術では、インタコネクトデバイス502での輻輳により、単一の演算デバイスからのデータ転送に比べ、輻輳によって30msec転送に余分に時間がかかってしまう。以降、この余分の時間を待ち時間と称する。
 これに対して、本実施例によれば、4つの演算デバイス103から転送された勾配データをバスデバイス105の演算機能部106に集約して加算処理を行う。このため、4つの演算デバイス103から勾配データが同時にバスデバイス105に入力された場合、演算機能部106によって加算処理が行われた後は、データ量が1/4に圧縮される。
 したがって、加算処理が行われた勾配データをインタコネクトデバイス104に転送しても、インタコネクトデバイス104での輻輳が発生しないため、輻輳による待ち時間が発生しない。例えば、バスデバイス105の演算機能部106において演算処理に40サイクルかかったとすると、処理時間は80nsecである。この処理時間は、従来発生していた待ち時間に対して極めて小さい時間になる。
 次に、インタコネクトデバイス104を介して各分散処理ノード102間で勾配データが更に集約され、加算処理される。
 図4は各分散処理ノード102のうち規定の親ノードのインタコネクトデバイス104とDMAコントローラ108の動作を説明するフローチャート、図5は各分散処理ノード102のうち親ノード以外の子ノードのインタコネクトデバイス104とDMAコントローラ108の動作を説明するフローチャートである。
 親ノードのインタコネクトデバイス104は、自ノードのDMAコントローラ108によって勾配データがDMA転送されると(図4ステップS300においてYES)、この勾配データを伝送路101Aを介して次の番号の子ノード(例えば時計回りの方向の子ノード)にDMA転送する(図4ステップS301)。
 子ノードのインタコネクトデバイス104は、隣接する親ノードまたは子ノード(例えば反時計回りの方向の親ノードまたは子ノード)から勾配データを受信すると(図5ステップS400においてYES)、受信した勾配データと自ノードのDMAコントローラ108によってDMA転送された勾配データとの和を重み毎に求める(図5ステップS401)。
 そして、子ノードのインタコネクトデバイス104は、加算処理した勾配データを伝送路101Aを介して次の番号のノード(例えば時計回りの方向のノード)にDMA転送する(図5ステップS402)。
 図5のステップS400~S402の処理が伝送路101Aによってリング状に接続された各子ノードにおいて順番に行われることにより、各分散処理ノード102の勾配データを加算した結果が得られる。以降、各分散処理ノード102での加算処理が終了した勾配データを集計データと称する。
 親ノードのインタコネクトデバイス104は、隣接する子ノード(例えば反時計回りの方向の子ノード)から集計データを受信すると(図4ステップS302においてYES)、受信した集計データを次の番号の子ノード(例えば時計回りの方向の子ノード)にDMA転送する(図4ステップS303)。
 親ノードのDMAコントローラ108は、隣接する子ノードから自ノードのインタコネクトデバイス104が受信した集計データをインタコネクトデバイス104内のメモリ1040から演算デバイス103へのDMA転送をトリガとして、まず自ノードのバスデバイス105にDMA転送する(図4ステップS304)。
 子ノードのインタコネクトデバイス104は、隣接する親ノードまたは子ノード(例えば反時計回りの方向の親ノードまたは子ノード)から集計データを受信すると(図5ステップS403においてYES)、受信した集計データを次の番号の子ノード(例えば時計回りの方向の子ノード)にDMA転送する(図5ステップS404)。
 子ノードのDMAコントローラ108は、隣接する親ノードまたは子ノードから自ノードのインタコネクトデバイス104が受信した集計データをインタコネクトデバイス104内のメモリ1040から演算デバイス103へのDMA転送をトリガとして、まず自ノードのバスデバイス105にDMA転送する(図5ステップS405)。
 こうして、集計データは、分配通信によって各分散処理ノード102で共有される。
 次に、各分散処理ノード102のDMAコントローラ108は、自ノードのインタコネクトデバイス104からバスデバイス105に転送した集計データを、自ノードの各演算デバイス103にDMA転送する(図3ステップS205,S206)。
 演算デバイス103は、自ノードのDMAコントローラ108によって集計データがDMA転送されると(図2ステップS102においてYES)、集計データに基づいて、自ノード内のモデル(Resnet50のニューラルネットワーク)の重みを更新する重み更新処理を行う(図2ステップS103)。更新対象の重みは、パラメータ格納部112に格納されている。
 重み更新処理においては、例えば集計データが示す、損失関数の勾配に基づいて損失関数が最小になるように重みを更新すればよい。重みの更新は周知の技術であるので、詳細な説明は省略する。
 重み更新処理の終了により、1回の学習が終了する。各分散処理ノード102は、imagenetの新たな画像データを用いて学習を行う。こうして、学習を繰り返すことにより、モデルの推論精度を向上させる。
 以上のように、本実施例では、複数の演算デバイス103によって計算された勾配データをバスデバイス105内に集約して集団通信に必要な演算を行うので、インタコネクトデバイスでの輻輳による待ち時間が発生することがない。また、本実施例では、複数の演算デバイスを巡回して演算を行う必要がないので、処理時間のバラつきを抑制することができる。その結果、本実施例では、高速、低レイテンシ、かつ安定な処理を実現することが可能となる。
 本実施例では、インタコネクトデバイス104内の加算処理(ステップS401)についても、ノード間を接続する伝送仕様である100Gイーサネット(登録商標)で用いられる分周クロックの周波数195.3125MHzに縛られることなく、これより高い周波数のクロック信号を用いることが可能である。このような高い周波数のクロック信号を用いることにより、ノード間の集団通信に伴う加算処理に要する時間も短くなり、全体の処理時間の更なる短縮化が可能となるのは言うまでもない。
 本実施例の1つのポイントは、演算機能部106に高速なクロック信号を供給する高速クロック部107を分散処理ノード102内に設けることにより、従来のようにインタコネクトデバイスでノード内加算処理を行う場合に比べて演算処理時間を短くできる点である。
 例えば、従来のインタコネクトデバイスでの加算処理と本実施例の演算機能部106での加算処理において、1クロックで処理するビット幅が共に512ビットとする。この512ビット幅の加算処理は、32ビットの浮動小数点の加算処理を行う加算器を用いる場合、加算器を16個並列に設けることになる。従来のインタコネクトデバイスでの加算処理のビット幅と本実施例の演算機能部106での加算処理のビット幅が同じ場合、1クロックの周波数によって処理速度に差が生じる。
 本実施例では、高速クロック部107から演算機能部106に供給されるクロック信号の周波数が500MHzであり、インタコネクトデバイス104内のクロック信号の周波数が195.3125MHzである。したがって、インタコネクトデバイスでノード内加算処理を行う場合と比較して、演算機能部106の処理速度は2.62倍速くなり、ノード内加算処理による処理遅延を、インタコネクトデバイスで加算処理を行う場合よりも短縮化できる。このような処理遅延の短縮化は、バスデバイス105の演算機能部106の処理速度がインタコネクトデバイス104の処理速度以上の場合で効果を発揮することになる。
 次に、演算デバイス103とインタコネクトデバイス104間でのDMA転送について、詳細に説明する。勾配データを分散処理ノード102内や分散処理ノード102間で転送するための集約通信や、集計データを各分散処理ノード102に分配するための分配通信では、高速にデータを移動させる必要がある。
 このため、分散処理ノード102内では、演算デバイス103とバスデバイス105間、およびバスデバイス105とインタコネクトデバイス104間において、各デバイスに内蔵されるメモリ領域を固定化して、それぞれの固定したメモリアドレスどうしでデータ転送を行うDMA転送技術が用いられる。同様に、各分散処理ノード102のインタコネクトデバイス104間においてもDMA転送技術が用いられる。
 本実施例では、各演算デバイス103での演算終了後、バスデバイス105へDMA転送された勾配データが加算された後に、インタコネクトデバイス104のメモリ1040へDMA転送される。従来の集団通信の場合には、4つの演算デバイスからそれぞれインタコネクトデバイスの異なるメモリ領域に勾配データをDMA転送するので、メモリ領域が4つ必要となる。
 一方、本実施例では、勾配データをバスデバイス105で加算した後にインタコネクトデバイス104へDMA転送するので、従来のDMA用に割り当てられた4つのメモリ領域の内、3つにはデータ転送が不要となり、インタコネクトデバイス104のメモリ領域が無駄になる。
 そこで、本実施例のDMAコントローラ108は、バスデバイス105によって加算処理された勾配データを、インタコネクトデバイス104内の1つのメモリ領域にDMA転送すればよい。こうして、インタコネクトデバイス104にバスデバイス105からのDMA転送用のメモリ領域を4つ持たせる必要がなくなり、メモリ領域の効率的な利用が可能となる。インタコネクトデバイス104のメモリ領域の効率的利用によって分散処理システム101での更なる効率化を図ることができる。このような効率化は、以降の実施例で説明するように、ユーザが増加し、複数の学習ジョブが並列で行われる際にも効果を発揮する。
[第2の実施例]
 次に、本発明の第2の実施例について説明する。図6は本発明の第2の実施例に係る分散処理システムの構成を示すブロック図である。本実施例の分散処理システム201は、複数の分散処理ノード202と、複数の分散処理ノード202間を接続する伝送路201Aとから構成される。
 各分散処理ノード202は、GPUなどからなる複数の演算デバイス203a,203bと、伝送路を介したデータ通信機能を備えたFPGAと光トランシーバとからなるインタコネクトデバイス204と、汎用バスによって演算デバイス203a,203bとのデータ通信を行う機能と演算機能とを備えたFPGAからなるバスデバイス205と、バスデバイス205内に設けられ、演算デバイス203a,203bやインタコネクトデバイス204からのデータを処理する複数の学習ジョブ別の演算機能部206a,206bとを備えている。
 また、各分散処理ノード202は、演算機能部206a,206bに高速なクロック信号を供給する高速クロック部207と、演算デバイス203a,203bとバスデバイス205との間のデータのDMA転送、およびバスデバイス205とインタコネクトデバイス204との間のデータのDMA転送を制御するDMAコントローラ208と、バスデバイス205内に設けられ、演算機能部206a,206bからインタコネクトデバイス204へのDMA転送の順位とタイミングとを決定するスケジューラ部209と、外部から要求された学習ジョブを複数の演算デバイス203a,203bのうちの少なくとも1つに割り当てる制御部211と、モデルのパラメータを記憶するパラメータ格納部212とを備えている。
 第1の実施例との差分は、複数の演算デバイス203aと複数の演算デバイス203bとが異なる学習ジョブを行うことと、演算デバイス203a用の演算機能部206aと演算デバイス203b用の演算機能部206bとスケジューラ部209とがバスデバイス205に設けられていることである。4つの演算デバイス203aは演算機能部206aと固定的に接続され、2つの演算デバイス203bは演算機能部206bと固定的に接続されている。
 次に、本実施例の分散処理システム201の動作を説明する。本実施例においても、分散処理システム201の処理の流れは第1の実施例と同様であるので、図2~図5の符号を用いて説明する。
 インタコネクトデバイス204には、メモリ2040内に演算デバイス203a用のメモリ領域2040aと、演算デバイス203b用のメモリ領域2040bとが用意されている。
 各分散処理ノード202のDMAコントローラ208は、演算デバイス203aでの勾配計算処理の終了後(図2ステップS100)、各演算デバイス203aによって計算された勾配データを自ノードのバスデバイス205の演算機能部206aを経由してインタコネクトデバイス204内のメモリ2040aにDMA転送する(図2ステップS101)。
 2つの演算デバイス203bでは、演算デバイス203aと異なる学習ジョブが行われる。異なる学習ジョブの例としては、例えば異なる画像データを用いてモデルに学習させたり、同じ画像データを用いて複数のモデルを学習させたりすること等がある。
 DMAコントローラ208は、演算デバイス203bでの勾配計算処理の終了後、各演算デバイス203bによって計算された勾配データを自ノードのバスデバイス205の演算機能部206bを経由してインタコネクトデバイス204内のメモリ2040bにDMA転送する(ステップS101)。
 各分散処理ノード202のバスデバイス205の演算機能部206aは、DMAコントローラ208によって勾配データがDMA転送されると(図3ステップS202においてYES)、受信した勾配データの和を重み毎に求める(図3ステップS203)。同様に、演算機能部206bは、DMAコントローラ208によって勾配データがDMA転送されると、受信した勾配データの和を重み毎に求める(ステップS203)。
 各分散処理ノード202のDMAコントローラ208は、自ノードの演算機能部206aによって加算された勾配データを自ノードのインタコネクトデバイス204のメモリ領域2040aにDMA転送する(図3ステップS204)。同様に、DMAコントローラ208は、自ノードの演算機能部206bによって加算された勾配データを自ノードのインタコネクトデバイス204のメモリ領域2040bにDMA転送する(ステップS204)。
 本実施例では、このようなステップS204のDMA転送が実施される際に、どの演算機能部によって加算処理された勾配データをどのようなタイミングでインタコネクトデバイス204へ転送するかをスケジューラ部209によって制御する。
 ここでは、4つの演算デバイス203aでの勾配計算処理の終了後に、2つの演算デバイス203bでの勾配計算処理が終了する場合について説明する。
 バスデバイス205内のスケジューラ部209は、演算デバイス203aまたは203bからバスデバイス205の演算機能部206aまたは206bへのDMA転送に関する情報をDMAコントローラ208から取得して記憶している。DMA転送に関する情報としては、DMA転送したデータサイズ、DMA転送のタイミング情報、演算デバイス203aまたは203bの学習ジョブのID(identification)などがある。
 スケジューラ部209は、これらのDMA転送に関する情報を、学習ジョブのID毎(演算機能部毎)に記憶している。また、スケジューラ部209は、演算機能部206a,206bのそれぞれの処理に要する時間を記憶している。
 スケジューラ部209は、DMA転送に関する情報と演算機能部206a,206bの処理時間の情報とを基に、演算機能部206a,206bのうちのどちらから勾配データをインタコネクトデバイス204に転送するかを決定する。
 例えば、4つの演算デバイス203aからの勾配データが先に演算機能部206aに到達し、加算処理が開始されたものの、処理時間が長く、2つの演算デバイス203bからの勾配データを処理する演算機能部206bの方が処理が早く終わると予想されるものとする。この場合、スケジューラ部209は、演算機能部206aによって加算処理される勾配データよりも、演算機能部206bによって加算処理される勾配データを先にインタコネクトデバイス204に転送するよう、DMAコントローラ208に通知する。
 こうして、本実施例では、勾配データのDMA転送が途中で停止してしまうような事態を回避することができ、DMAコントローラ208による確実なDMA転送が可能となる。したがって、本実施例では、複数の学習ジョブを効率的かつ安定的に処理することが可能となる。
 演算機能部206a,206b、インタコネクトデバイス204の動作は、第1の実施例の演算機能部106、インタコネクトデバイス104の動作と同様である。演算デバイス203a,203bによって生成される勾配データには、学習ジョブのIDが付加されている。したがって、演算機能部206a,206bとインタコネクトデバイス204とは、学習ジョブ別に第1の実施例で説明した処理を行うことができる。
 なお、スケジューラ部209は、加算処理が早く終わると予想される演算機能部ではなく、予め学習ジョブの種類に対して定められた優先順位の情報に基づいて学習ジョブ毎の演算機能部のDMA転送順位を決定するようにしてもよい。
[第3の実施例]
 次に、本発明の第3の実施例について説明する。図7は本発明の第3の実施例に係る分散処理システムの構成を示すブロック図である。本実施例の分散処理システム301は、複数の分散処理ノード302と、複数の分散処理ノード302間を接続する伝送路301Aとから構成される。
 各分散処理ノード302は、GPUなどからなる複数の演算デバイス303-1~303-6と、伝送路を介したデータ通信機能を備えたFPGAと光トランシーバとからなるインタコネクトデバイス304と、汎用バスによって演算デバイス303-1~303-6とのデータ通信を行う機能と演算機能とを備えたFPGAからなるバスデバイス305と、バスデバイス305内に設けられ、演算デバイス303-1~303-6やインタコネクトデバイス304からのデータを処理する複数の演算機能部306a,306bとを備えている。
 また、各分散処理ノード302は、演算機能部306a,306bに高速なクロック信号を供給する高速クロック部307と、演算デバイス303-1~303-6とバスデバイス305との間のデータのDMA転送、およびバスデバイス305とインタコネクトデバイス304との間のデータのDMA転送を制御するDMAコントローラ308と、バスデバイス305内に設けられ、演算機能部306a,306bからインタコネクトデバイス304へのDMA転送の順位とタイミングとを決定するスケジューラ部309とを備えている。
 さらに、各分散処理ノード302は、バスデバイス305内に設けられ、学習ジョブの要求に応じて演算デバイス303-1~303-6によって計算されバスデバイス305へ転送された勾配データを、学習ジョブに対応する演算機能部306a,306bに振り分ける振り分け部310と、外部から要求された学習ジョブを複数の演算デバイス303-1~303-6のうちの少なくとも1つに割り当てる制御部311と、モデルのパラメータを記憶するパラメータ格納部312とを備えている。
 インタコネクトデバイス304には、メモリ3040内に演算デバイス303a用のメモリ領域2040aと、演算デバイス303b用のメモリ領域2040bとが用意されている。
 第2の実施例との差分は、各演算デバイス303-1~303-6への学習ジョブの割り当てが固定されていないことと、各演算デバイス303-1~303-6からの勾配データを転送元の演算デバイスの学習ジョブに対応する演算機能部206aまたは206bに振り分ける振り分け部310がバスデバイス305に設けられていることである。
 次に、本実施例の分散処理システム301の動作を説明する。ここでは、分散処理ノード302内で異なる学習ジョブが同時期に実行され、分散処理ノード302間で分散深層学習などの情報処理を行う場合について動作を説明する。本実施例においても、分散処理システム301の処理の流れは第1の実施例と同様であるので、図2~図5の符号を用いて説明する。
 例えば、新たなユーザから学習ジョブの要求があった段階で、分散処理ノード302の制御部311は、空きリソース、すなわち学習ジョブが割り当てられていない演算デバイス303-1~303-6を探索する。
 図7の例では、6つの演算デバイス303-1~303-6の内、演算デバイス303-1,303-3,303-4,303-6で既に学習ジョブ(以降、学習ジョブa)が行なわれているものとする。したがって、演算デバイス303-2,303-5が空きリソースとなっている。このため、制御部311は、演算デバイス303-2,303-5に新たな学習ジョブ(以降、学習ジョブb)を割り当てる。
 本実施例では、学習ジョブaでの集団通信に必要な演算機能(4つの演算デバイスからの勾配データの加算処理機能)が演算機能部306aに実装され、学習ジョブbでの集団通信に必要な演算機能(2つの演算デバイスからの勾配データの加算処理機能)が演算機能部306bに実装されているものとする。
 各分散処理ノード302のDMAコントローラ308は、自ノードの各演算デバイス303-1~303-6での勾配計算処理の終了後、各演算デバイス303-1~303-6によって計算された勾配データを自ノードのバスデバイス305を経由してインタコネクトデバイス304内のメモリ3040にDMA転送する(図2ステップS101)。
 このとき、振り分け部310は、演算デバイス303-1~303-6からバスデバイス305へのDMA転送に関する情報をDMAコントローラ308から取得する。DMA転送に関する情報としては、DMA転送したデータサイズ、DMA転送のタイミング情報、演算デバイス303-1~303-6の学習ジョブのID、DMA転送に用いたバスのIDなどがある。
 振り分け部310は、DMAコントローラ308から取得した情報に基づいて演算デバイス303-1~303-6によって計算された勾配データを演算機能部306aまたは306bに振り分ける。
 具体的には、振り分け部310は、学習ジョブaを行う演算デバイス303-1,303-3,303-4,303-6によって計算された勾配データを、学習ジョブaに対応する演算機能部306aに振り分ける。また、振り分け部310は、学習ジョブbを行う演算デバイス303-2,303-5によって計算された勾配データを、学習ジョブbに対応する演算機能部306bに振り分ける。
 本実施例では、振り分け部310によって勾配データの振り分けを行うことで、複数のユーザ、すなわち複数の学習ジョブが分散処理システムを共有する場合、学習ジョブの数や必要なリソース量によって異なる場合であってもこのような振り分けを行うことで、複数のユーザ、すなわち、複数の学習ジョブが分散処理システムを共有する場合、学習ジョブに必要なリソース量が学習ジョブによって異なる場合であっても、異なる学習ジョブによる勾配データが混在することがないので、複数の学習ジョブを効率的かつ安定的に処理することが可能となる。
 演算機能部306a,306b、スケジューラ部309、インタコネクトデバイス304の動作は、第2の実施例の演算機能部206a,206b、スケジューラ部209、インタコネクトデバイス204の動作と同じである。
 なお、第2、第3の実施例では、6つの演算デバイスと2つの演算機能部が設けられている場合を例に挙げて説明しているが、これら演算デバイスや演算機能部の数は第2、第3の実施例に限定されることは無い。
 また、第1~第3の実施例の演算機能部106,206a,206b,306a,306bに実装される演算機能としては、Allreduceと呼ばれる集団通信処理に必要な演算機能を想定している。
 しかし、アプリケーションに応じて例えば勾配データを集約するreduceと呼ばれる処理や、結果を全てのノードに分配するall-gatherと呼ばれる処理に必要な演算機能であってもよい。また、演算機能部106,206a,206b,306a,306bに実装される演算機能は、集団通信に必要な演算機能でなくてもよい。また、演算機能部106,206a,206b,306a,306bは、機能別に複数に分かれていてもよい。
 また、演算機能部106,206a,206b,306a,306bを有するバスデバイス105,205,305は、単数でなくてもよく、複数、すなわち複数の汎用バスに対してそれぞれ実装されていてもよい。また、複数のバスデバイスが各々、独立したインタコネクトデバイスに接続されていてもよい。
 なお、第1~第3の実施例において、演算デバイス103,203a,203b,303-1~303-6と演算機能部106,206a,206b,306a,306bとインタコネクトデバイス104,204,304との接続構成は階層型である。ただし、演算デバイスの数が演算機能部の数以上で、かつ演算機能部の数がインタコネクトデバイスの数以上という制約は無い。
 例えば、4つの演算デバイスからの勾配データを演算機能部で分配する場合は、演算デバイスの数が4、演算機能部の数が1、インタコネクトデバイスの数が4という実装も可能である。
 なお、第1~第3の実施例では、演算デバイス103,203a,203b,303-1~303-6からインタコネクトデバイス104,204,304の方向への転送について説明したが、逆方向でも同様の機能があってよい。
 例えば、分散処理ノード間で加算された集計データを各分散処理ノード内の演算デバイスで共有する場合、演算機能部の機能として、コピー機能が備わっていれば、DMAコントローラから取得した転送先の演算デバイスの情報に基づいて、演算機能部でコピーした集計データを指定の演算デバイスの固定メモリ領域にDMA転送することができる。これにより、逆方向の機能を実現することができる。また、コピー機能は演算機能部ではなく、振り分け部にあってもよい。
[第4の実施例]
 次に、本発明の第4の実施例について説明する。図8は本発明の第4の実施例に係る分散処理システムの構成を示すブロック図である。本実施例の分散処理システム401は、複数の分散処理ノード402-1~402-4と、複数の分散処理ノード402-1~402-4間を接続する伝送路401Aと、分散処理ノード402-1~402-4を制御する制御ノード413と、制御ノード413と各分散処理ノード402-1~402-4とを接続する制御網414とから構成される。
 各分散処理ノード402-1~402-4は、複数の演算デバイス303-1~303-6と、インタコネクトデバイス304と、バスデバイス305と、バスデバイス305内に設けられた複数の演算機能部306a,306bと、高速クロック部207と、DMAコントローラ308と、スケジューラ部309と、振り分け部310と、制御部311と、パラメータ格納部312とを備えている。
 第1~第3の実施例との差分は、例えば分散処理ノード402-1がビルAに設置され、分散処理ノード402-2がビルBに設置され、分散処理ノード402-3がビルCに設置され、分散処理ノード402-4がビルDに設置されている、というように各分散処理ノード402-1~402-4が異なる建物に設置されていることと、各分散処理ノード402-1~402-4での処理タイミングの同期やシステム全体の管理などのために制御ノード413が設けられていることである。
 上述した構成を基に、分散深層学習における学習処理を例にとって、本実施例の動作を説明する。第3の実施例と同様に、ビルAに設置されている分散処理ノード402-1では、6つの演算デバイス303-1~303-6の内、演算デバイス303-1,303-3,303-4,303-6で既に学習ジョブaが行なわれているものとする。この状態で、新たな学習ジョブbを実行する場合について説明する。
 第3の実施例の構成では、他の分散処理ノード、例えば、ビルBに設置されている分散処理ノード402-2の状態は、分散処理ノード402-1からは分からない。このため、本実施例では、各分散処理ノード402-1~402-4と接続される制御ノード413を設けている。
 制御ノード413は、ユーザから学習ジョブの要求を受け付けるジョブ受付部415と、各分散処理ノード402-1~402-4のリソース情報とモデルに関する情報と学習データに関する情報などを保持・管理する管理データベース部416と、各分散処理ノード402-1~402-4に指示を与える制御指示部417とを備えている。この制御ノード413により分散処理システム401を制御する。
 ユーザからの新たな学習ジョブbの要求情報は、制御ノード413のジョブ受付部415で受け付けられる。この要求情報には、学習対象のモデルに関する情報、演算データ種別、要求リソース量などの情報が含まれる。
 制御指示部417は、ジョブ受付部415からの要求情報と管理データベース部416で管理されている情報とを基に、各分散処理ノード402-1~402-4への制御指示情報を作成する。この制御指示情報には、学習対象のモデルに関する情報、演算に必要なデータ、モデルのパラメータの情報、学習ジョブを割り当てる演算デバイスの情報などが含まれる。
 各分散処理ノード402-1~402-4の制御部311は、制御ノード413の制御指示部417から制御網414を介して制御指示情報を受信すると、この制御指示情報に基づいてリソースを確保する。すなわち、制御部111は、制御指示情報によって指示された自ノードの演算デバイス303に学習ジョブを割り当てる。
 また、制御部111は、リソースの確保の他に、学習対象のモデルのパラメータの読み出しや学習データの読み出しなどの準備を行う。こうして、学習対象のモデルのパラメータをパラメータ格納部312から読み出すことにより、演算デバイス303に学習ジョブを開始させることが可能となる。
 上記の例では、ビルAに設置されている分散処理ノード402-1の6つの演算デバイス303-1~303-6の内、演算デバイス303-1,303-3,303-4,303-6で既に学習ジョブaが行なわれている。
 そこで、制御ノード413の制御指示部417は、分散処理ノード402-1の6つの演算デバイス303-1~303-6の内、学習ジョブaが割り当てられていない演算デバイス303-2,303-5と、分散処理ノード402-2の6つの演算デバイス303-1~303-6の内、学習ジョブaが割り当てられていない演算デバイス303-3,303-4,303-5とに学習ジョブbを割り当てることを決定する。
 分散処理ノード402-1の制御部111は、制御ノード413の制御指示部417からの制御指示情報によって指示された自ノードの演算デバイス303-2,303-5に学習ジョブbを割り当てる。同様に、分散処理ノード402-2の制御部111は、制御指示情報によって指示された自ノードの演算デバイス303-3,303-4,303-5に学習ジョブbを割り当てる。
 演算機能部306a,306b、スケジューラ部309、振り分け部310、インタコネクトデバイス304の動作は、第3の実施例と同じである。各分散処理ノード402-1~402-4の演算デバイス303-1~303-6によって生成される勾配データには、学習ジョブのIDが付加されている。
 したがって、演算機能部306a,306bとスケジューラ部309と振り分け部310とインタコネクトデバイス304とは、学習ジョブ別に第1~第3の実施例で説明した処理を行うことができる。こうして、学習ジョブaに対する分散処理とは別に、学習ジョブbに対する分散処理が行われる。
 学習ジョブaの分散処理が終了すると、更新処理の結果、すなわち更新されたモデルのパラメータがパラメータ格納部312に書き込まれると共に、学習ジョブaが完了したことを示す情報が制御部311から制御ノード413の管理データベース部416に送られる。
 同様に、学習ジョブbの分散処理が終了すると、更新処理の結果がパラメータ格納部312に書き込まれ、学習ジョブbが完了したことを示す情報が制御部311から制御ノード413の管理データベース部416に送られる。こうして、分散処理システム401は、次の新たな学習ジョブの待機状態となる。
 以上説明したように、本実施例では、制御ノード413からの指示に従って各分散処理ノード402-1~402-4が分散処理を行うので、地理的に離れたビルにある分散処理ノード402-1~402-4間で、効率的に分散処理を行うことができる。
 また、各分散処理ノード402-1~402-4にパラメータ格納部312を設けることにより、例えば分散処理ノードが設置されたエリアでバースト的に発生したセンサ情報などの学習データを用いる学習ジョブの要求が発生したときに、モデルの学習を行った結果をパラメータ格納部312に格納することができる。したがって、処理すべき学習ジョブの要求が再び発生したときには、前回の学習ジョブで得られたパラメータをパラメータ格納部312から得ることができ、このパラメータを利用してモデルの学習が可能となる。
 本実施例では、分散処理ノード402-1~402-4の構成として第3の実施例の分散処理ノードの構成を用いたが、第1、第2の実施例の分散処理ノードの構成を用いてもよいことは言うまでもない。
 第1~第4の実施例では、演算デバイス103,203a,203b,303-1~303-6の例として、GPUを例に挙げて説明したが、これに限るものではなく、演算デバイス103,203a,203b,303-1~303-6として、CPU、FPGA、量子演算デバイス、人工知能(ニューロン)チップなどを用いてもよい。
 なお、上記の文中のDMA転送に関する固定とは、DMA転送が行われるメモリに関し、設定によりメモリのスワップアウトが防止されることを意味している。このため、固定メモリは、ユーザがメモリの特定領域を独占してメモリを利用できることであり、設定により、他のユーザとメモリ領域を共有する場合や、他のユーザのDMA用のメモリ領域として、変更することも可能である。DMA転送に関する固定とは、あらかじめ特定のメモリ領域が固定されていて、変更できないことを意味するものではない。
 第1~第4の実施例で説明した分散処理ノードの各々は、CPU、GPU等の演算部と記憶装置とインタフェースとを備えたコンピュータと、これらのハードウェア資源を制御するプログラムと、FPGAとによって実現することができる。このコンピュータの構成例を図9に示す。コンピュータは、演算部600と、記憶装置601と、FPGA603とを備えている。分散処理ノードの各々のCPU、GPU等の演算部600は、各々の記憶装置601に格納されたプログラムに従って第1~第4の実施例で説明した処理を実行する。同様に、制御ノード413についても、コンピュータによって実現することができる。
 本発明は、深層学習を複数のノードで分散協調して実行する分散処理システムに適用することができる。
 101、201,301,401…分散処理システム、101A,201A,301A,401A…伝送路、102,202,302,402-1~402-4…分散処理ノード、103,203a,203b,303-1~303-6…演算デバイス、104,204,304…インタコネクトデバイス、105,205,305…バスデバイス、106,206a,206b,306a,306b…演算機能部、107,207,307…高速クロック部、108,208,308…DMAコントローラ、111,211,311…制御部、112,212,312…パラメータ格納部、209,309…スケジューラ部、310…振り分け部、413…制御ノード、414…制御網、415…ジョブ受付部、416…管理データベース部、417…制御指示部、1040,2040,3040…メモリ。

Claims (7)

  1.  学習対象のモデルに学習データを入力した出力結果から損失関数の勾配データを計算し、前記勾配データの集計データに基づいて前記モデルのパラメータを更新するように構成された複数の演算デバイスと、
     他の分散処理ノードとの間で前記勾配データを集計するように構成されたインタコネクトデバイスと、
     前記複数の演算デバイスおよび前記インタコネクトデバイスと接続されたバスデバイス内に設けられ、前記複数の演算デバイスからの勾配データの処理および前記インタコネクトデバイスからの勾配データの処理のうち少なくとも一方を行うように構成された演算機能部と、
     前記複数の演算デバイスと前記バスデバイスとの間の勾配データのDMA転送、および前記バスデバイスと前記インタコネクトデバイスとの間の勾配データのDMA転送を制御するように構成されたDMAコントローラと、
     外部から要求された学習ジョブを前記複数の演算デバイスのうちの少なくとも1つに割り当てるように構成された制御部とを備えることを特徴とする分散処理ノード。
  2.  請求項1記載の分散処理ノードにおいて、
     前記演算機能部は、学習ジョブ毎に設けられることを特徴とする分散処理ノード。
  3.  請求項2記載の分散処理ノードにおいて、
     前記複数の演算デバイスから前記バスデバイスへのDMA転送に関する情報を前記DMAコントローラから取得し、前記学習ジョブの要求に応じて前記演算デバイスによって計算され前記バスデバイスへ転送された勾配データを、前記DMAコントローラから取得した情報に基づいて、前記学習ジョブに対応する前記演算機能部に振り分けるように構成された振り分け部をさらに備えることを特徴とする分散処理ノード。
  4.  請求項2または3記載の分散処理ノードにおいて、
     前記複数の演算デバイスから前記バスデバイスへのDMA転送に関する情報を前記DMAコントローラから取得し、取得した情報に基づいて前記バスデバイス内の演算機能部から前記インタコネクトデバイスへのDMA転送の順位とタイミングとを決定するように構成されたスケジューラ部をさらに備えることを特徴とする分散処理ノード。
  5.  請求項1乃至4のいずれか1項に記載の分散処理ノードにおいて、
     前記演算機能部に供給されるクロック信号の周波数は、前記インタコネクトデバイスに供給されるクロック信号の周波数よりも高く、
     前記演算機能部の動作速度は、前記インタコネクトデバイスの動作速度よりも速いことを特徴とする分散処理ノード。
  6.  請求項1乃至5のいずれか1項に記載の分散処理ノードを複数備えると共に、
     前記複数の分散処理ノードを制御するように構成された制御ノードを備え、
     前記制御ノードは、
     外部からの学習ジョブの要求情報を受け付けるように構成されたジョブ受付部と、
     各分散処理ノードのリソース情報を管理するように構成された管理データベース部と、
     前記ジョブ受付部からの要求情報と前記管理データベース部で管理されているリソース情報とを基に、学習ジョブを割り当てる演算デバイスの情報を含む制御指示情報を各分散処理ノード向けに作成するように構成された制御指示部とを備え、
     各分散処理ノードの制御部は、前記制御指示情報によって指示された自ノードの演算デバイスに学習ジョブを割り当てて学習ジョブを開始させることを特徴とする分散処理システム。
  7.  請求項6記載の分散処理システムにおいて、
     各分散処理ノードは、前記モデルのパラメータを格納するように構成されたパラメータ格納部をさらに備え、
     前記制御ノードの管理データベース部は、各分散処理ノードのリソース情報とモデルに関する情報とを管理し、
     前記制御ノードの制御指示部は、学習ジョブを割り当てる演算デバイスの情報の他に、学習対象のモデルに関する情報とパラメータの情報とを含む前記制御指示情報を作成し、
     各分散処理ノードの制御部は、前記制御指示情報に従って自ノードの前記パラメータ格納部から学習対象のモデルのパラメータを読み出すことを特徴とする分散処理システム。
PCT/JP2020/015157 2020-04-02 2020-04-02 分散処理ノードおよび分散処理システム WO2021199396A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2020/015157 WO2021199396A1 (ja) 2020-04-02 2020-04-02 分散処理ノードおよび分散処理システム
US17/915,658 US20230124193A1 (en) 2020-04-02 2020-04-02 Distributed Processing Node and Distributed Processing System
JP2022511456A JP7396463B2 (ja) 2020-04-02 2020-04-02 分散処理ノードおよび分散処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/015157 WO2021199396A1 (ja) 2020-04-02 2020-04-02 分散処理ノードおよび分散処理システム

Publications (1)

Publication Number Publication Date
WO2021199396A1 true WO2021199396A1 (ja) 2021-10-07

Family

ID=77930159

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/015157 WO2021199396A1 (ja) 2020-04-02 2020-04-02 分散処理ノードおよび分散処理システム

Country Status (3)

Country Link
US (1) US20230124193A1 (ja)
JP (1) JP7396463B2 (ja)
WO (1) WO2021199396A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019181374A1 (ja) * 2018-03-23 2019-09-26 日本電信電話株式会社 分散深層学習システム
WO2020003849A1 (ja) * 2018-06-25 2020-01-02 日本電信電話株式会社 分散深層学習システム、分散深層学習方法、およびコンピューティングインタコネクト装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190188563A1 (en) * 2017-12-18 2019-06-20 Kabushiki Kaisha Toshiba System
US10776164B2 (en) * 2018-11-30 2020-09-15 EMC IP Holding Company LLC Dynamic composition of data pipeline in accelerator-as-a-service computing environment
US11099902B1 (en) * 2019-05-10 2021-08-24 Innovium, Inc. Parallelized ingress compute architecture for network switches in distributed artificial intelligence and other applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019181374A1 (ja) * 2018-03-23 2019-09-26 日本電信電話株式会社 分散深層学習システム
WO2020003849A1 (ja) * 2018-06-25 2020-01-02 日本電信電話株式会社 分散深層学習システム、分散深層学習方法、およびコンピューティングインタコネクト装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TAKEMOTO KAZUMA, MATSUTANI HIROKI: "A Case for Updating Parameter of Deep Learning Using FPGA Based Switch", IPSJ SYMPOSIUM SERIES: PROCEEDINGS OF 2017 EMBEDDED SYSTEMS SYMPOSIUM (ESS2017), vol. 2017, 24 August 2017 (2017-08-24), Japan, pages 13 - 16, XP055937968 *

Also Published As

Publication number Publication date
JP7396463B2 (ja) 2023-12-12
JPWO2021199396A1 (ja) 2021-10-07
US20230124193A1 (en) 2023-04-20

Similar Documents

Publication Publication Date Title
US10325343B1 (en) Topology aware grouping and provisioning of GPU resources in GPU-as-a-Service platform
US12001681B2 (en) Distributed storage system and data processing method
US10728091B2 (en) Topology-aware provisioning of hardware accelerator resources in a distributed environment
CN110795228B (zh) 用于训练深度学习模型的方法和制品、以及计算系统
US10891156B1 (en) Intelligent data coordination for accelerated computing in cloud environment
US10331595B2 (en) Collaborative hardware interaction by multiple entities using a shared queue
RU2597556C2 (ru) Структура компьютерного кластера для выполнения вычислительных задач и способ функционирования указанного кластера
EP2930619A2 (en) System and method for shared utilisation of virtualised computing resources
WO2013082809A1 (zh) 协处理加速方法、装置及系统
US11556391B2 (en) CPU utilization for service level I/O scheduling
JP7379668B2 (ja) 機械学習ワークロードのためのタスクスケジューリング
CN116070682B (zh) 神经元计算机操作系统的snn模型动态映射方法及装置
CN117493237B (zh) 计算设备、服务器、数据处理方法和存储介质
CN115244909A (zh) 机器学习加速器中的队列分配
CN110908929A (zh) 用于高带宽缩放的一致数据高速缓存
WO2021199396A1 (ja) 分散処理ノードおよび分散処理システム
JP2022527121A (ja) 割り当て可能なi/oドメインおよびコヒーレントドメインを有する周辺i/oデバイス
CN117631974A (zh) 跨越基于存储器的通信队列的多信道接口的存取请求重新排序
Shen et al. KubeGPU: efficient sharing and isolation mechanisms for GPU resource management in container cloud
Cui et al. Scalable deep learning on distributed GPUs with a GPU-specialized parameter server
JP2012038275A (ja) 取引計算シミュレーションシステム、方法及びプログラム
JP7347537B2 (ja) 分散処理システム
US20230195664A1 (en) Software management of direct memory access commands
WO2024001850A1 (zh) 数据处理系统、方法、装置和控制器
US20240069965A1 (en) Systems and methods for executing compute functions

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: 20929555

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022511456

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: 20929555

Country of ref document: EP

Kind code of ref document: A1