Apparatus and method for transmission of multiple path
Patent Information
- Application Number
- KR1020230191742
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-12-26
- Publication Date
- 2026-08-03
- Estimated Expiration
- 2043-12-26
Smart Images

Figure 112023145760901-PAT00003_ABST
Abstract
Description
Technology Field
[0001] The following embodiments relate to a multipath transmission device and a method thereof. Background Technology
[0003] As data-intensive applications such as big data analytics, machine learning, and scientific simulations running in data center or high-performance computing (HPC) environments increase, the importance of efficient network operations is growing.
[0004] In data center networks (DCN), Remote Direct Memory Access (RDMA) is one of the promising networking technologies for data-intensive applications requiring high bandwidth and very low latency. RDMA supports zero-copy read / write operations by implementing transfer logic on a hardware network interface card (NIC), and this logic can directly transfer data from the memory of one computing node to the memory of another computing node. means of solving the problem
[0005] A multipath transmission device according to one embodiment may include an interface module that integrates different libraries, an automatic path collection module that automatically detects and collects available data transmission paths within a platform and generates a path set by selecting optimal data transmission paths among the available data transmission paths, a data transmission module that transmits data through the optimal data transmission paths, and a dynamic data classification module that monitors the data transmission module in real time and dynamically readjusts the optimal data transmission paths.
[0006] The above different libraries may include the NCCL (NVIDIA Collective Communications Library) and the RDMA (Remote Direct Memory Access) API (Application Programming Interface) library, and the interface module can optimize multi-GPU data transmission by transmitting the number of GPUs to be used and IP information determined within the NCCL to the RDMA API library.
[0007] The above interface module can split the data and transmit each part to a different path only when the size of the data is greater than or equal to a threshold.
[0008] The above automatic path collection module can detect changes in network topology in real time and perform a path search function.
[0009] The above automatic path collection module can generate multiple virtual IP addresses within the server, transmit a search packet, and then compare the path information transmitted in the search packet with existing path information to select the optimal data transmission path.
[0010] The above automatic path collection module may include the new path in the path set if the path to which the search packet was transmitted is a new path.
[0011] The dynamic data classification module can detect the network bandwidth and transmission delay of the data transmission module and dynamically readjust the optimal data transmission path.
[0012] The dynamic data classification module above can monitor performance indicators for the optimal data transmission paths, adjust the amount of data transmitted per path, and optimize the transmission performance of the optimal data transmission paths.
[0013] An electronic device according to one embodiment may include a memory for storing instructions and a processor, and when the instructions are executed by the processor, the electronic device may integrate different libraries, automatically detect and collect available data transmission paths within a platform, select optimal data transmission paths among the available data transmission paths to create a set of paths, transmit data through the optimal data transmission paths, and monitor the data transmission in real time to dynamically readjust the optimal data transmission paths.
[0014] A multipath transmission method according to one embodiment may include the steps of integrating different libraries, automatically detecting and collecting available data transmission paths within a platform, and generating a set of paths by selecting optimal data transmission paths among the available data transmission paths, transmitting data through the optimal data transmission paths, and monitoring the data transmission in real time to dynamically readjust the optimal data transmission paths. Brief explanation of the drawing
[0016] FIG. 1 is a schematic diagram illustrating an RDMA according to one embodiment. FIG. 2 is a schematic diagram illustrating a multipath transmission device according to one embodiment. FIG. 3 is a schematic flowchart illustrating a multipath transmission method according to one embodiment. FIG. 4 is a block diagram of an electronic device according to one embodiment. Specific details for implementing the invention
[0017] Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only and may be modified and implemented in various forms. Accordingly, actual implementations are not limited to the specific embodiments disclosed, and the scope of this specification includes modifications, equivalents, or substitutions included in the technical concept described by the embodiments.
[0018] Terms such as "first" or "second" may be used to describe various components, but these terms should be interpreted solely for the purpose of distinguishing one component from another. For example, the first component may be named the second component, and similarly, the second component may be named the first component.
[0019] When it is stated that a component is "connected" to another component, it should be understood that it may be directly connected to or joined to that other component, or that there may be other components in between.
[0020] The singular expression includes the plural expression unless the context clearly indicates otherwise. In this specification, terms such as "comprising" or "having" are intended to specify the existence of the described features, numbers, steps, actions, components, parts, or combinations thereof, and should be understood as not precluding the existence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.
[0021] Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as generally understood by those skilled in the art. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant technology, and should not be interpreted in an ideal or overly formal sense unless explicitly defined in this specification.
[0022] Hereinafter, embodiments will be described in detail with reference to the attached drawings. In the description with reference to the attached drawings, identical components are given the same reference numeral regardless of the drawing number, and redundant descriptions thereof will be omitted.
[0024] FIG. 1 is a schematic diagram illustrating an RDMA according to one embodiment.
[0025] One or more blocks and combinations of blocks of Fig. 1 may be implemented by a computer based on special-purpose hardware that performs specific functions, or by a combination of special-purpose hardware and computer instructions.
[0026] Remote Direct Memory Access (RDMA) according to one embodiment may be a method that enables direct memory access from the memory of one computer to the memory of another computer without using a computer operating system, central processing unit, or cache. Using RDMA enables networking with high throughput and low latency, and may be particularly advantageous for data centers and high-performance computing environments.
[0027] RDMA enables networking without memory copying. Using RDMA allows data (or messages) to be transferred directly from the memory of one system to another, which can reduce the need for data copying between buffers.
[0028] RDMA can bypass the kernel. RDMA can bypass the operating system kernel to reduce context switching, interrupts, and CPU overhead.
[0029] RDMA can enable hardware-based transmission. RDMA is managed and executed by a network adapter (RDMA NIC or RNIC) to reduce the workload on the central processing unit.
[0030] RDMA can support various network fabrics. RDMA can operate on various network fabrics such as InfiniBand, Ethernet (RDMA over RoCE), and iWARP (Internet Wide Area RDMA Protocol).
[0031] RDMA can offer low latency and high efficiency. By reducing the number of data copies and context switches, RDMA can significantly reduce latency and increase data transmission efficiency.
[0032] RDMA can be used in applications requiring high data throughput and low latency, such as large-scale database transactions, high-performance computing applications, and storage area networks. The ability to offload tasks from the central processing unit and minimize latency can be important in data-intensive computing environments.
[0033] Figure 1 illustrates the detailed architecture and operation flow of RDMA in a network environment. In an RDMA according to one embodiment, the key components may be Queue Pairs (QPs) and Memory Regions (MRs). QPs, consisting of send and receive queues, may be essential for initiating and managing RDMA communication between two hosts. A memory region may be a specific area of memory prepared for direct access through an RDMA operation. QP configuration may include communication channel settings between hosts with send and receive queues. In an MR, a host may identify a specific memory region that can be directly accessed by an RDMA operation. In Work Queue Elements (WQEs), data transfer commands are included in the queues of the QPs, and these commands may specify the characteristics of the operation, such as data transfer or reception. A Network Interface Card (NIC) may process commands by performing direct memory transfers according to the instructions of the WQEs. After completing the operation, the NIC may report back via Completion Queue Elements (CQEs) to indicate the status of the RDMA operation.
[0034] More specifically, Figure 1 illustrates an overview of RDMA. It can show the process of establishing and executing RDMA jobs between two hosts. Key elements include the establishment of queue pairs (QPs) between the hosts, each QP being configured with a transmit and receive queue. Memory regions (MRs) can be defined for direct access by a network interface card (NIC). A job can be initiated by posting a Work Queue Element (WQE) to the QP. The NIC can then process this WQE to transmit data according to the provided instructions. The completion of such a job can be indicated via a Complete Queue Element (CQE). This setup demonstrates the direct high-speed data transfer capabilities of RDMA, which bypass the operating system and CPU to reduce latency and increase data transfer efficiency between networked computers.
[0035] Below, multipath transmission using RDMA is described.
[0036] Multipath transmission may be essential to fully utilize the various network links existing between servers within a data center. Multipath transmission can be utilized for the following two purposes: it is used to utilize alternative routes in the event of a specific network link failure, and it can increase data transmission capacity by utilizing multiple paths simultaneously.
[0037] However, since conventional technologies were all developed based on classic TCP / IP (Transmission Control Protocol / Internet Protocol)-based networks, it may be impossible to apply them to RDMA, a high-performance data transmission technology.
[0038] Unlike TCP / IP, RDMA incorporates all communication processes within the hardware, making it impossible to modify the RDMA transmission logic within the system kernel (OS). Therefore, to apply multipath transmission technology to RDMA, it may be necessary to either 1) develop new hardware (RNIC, RDMA-dedicated NIC card) or 2) embed the technology within a user-level library that implements the RDMA API. In the case of 1), it may be difficult to apply to hardware that has already been purchased, while the method of 2 may require the development of multipath transmission technology. However, conventional technologies are primarily designed for RDMA that performs data transmission targeting CPU memory; consequently, they may operate inefficiently or be difficult to utilize effectively when applied to GPU-based RDMA communication (GPUDirect RDMA) used in recent artificial intelligence applications.
[0039] The following description may be about multipath transmission technology that can be efficiently utilized for various platforms operating based on high-performance computing using GPUs.
[0041] FIG. 2 is a schematic diagram illustrating a multipath transmission device according to one embodiment.
[0042] The description with reference to FIG. 1 may be applied equally to FIG. 2, and redundant content may be omitted. One or more blocks and combinations of blocks in FIG. 2 may be implemented by a computer based on special-purpose hardware that performs specific functions, or by a combination of special-purpose hardware and computer instructions.
[0043] A multipath transmission device according to one embodiment may include an interface module, an automatic path collection module, a data transmission module, and a dynamic data classification module. The multipath transmission device can transmit data via multiple paths based on RDMA on a GPU. The multipath transmission device can transmit data by efficiently linking different libraries, automatically collecting available paths, and dynamically classifying data.
[0044] The term "module" may mean a unit comprising, for example, one or more combinations of hardware, software, or firmware. "Module" may be interchangeably used with terms such as, for example, unit, logic, logical block, component, or circuit. "Module" may be the smallest unit of a component formed integrally or a part thereof. "Module" may be the smallest unit or a part thereof that performs one or more functions. "Module" may be implemented mechanically or electronically. For example, "Module" may include at least one of an application-specific integrated circuit (ASIC) chip, field-programmable gate arrays (FPGAs), or programmable-logic device that performs certain operations, whether known or to be developed in the future.
[0045] The interface module can integrate different libraries. Here, the different libraries may include the NCCL (NVIDIA Collective Communications Library) and RDMA (Remote Direct Memory Access) API (Application Programming Interface) libraries.
[0046] NCCL is a library provided by NVIDIA that supports high-performance, scalable collective communication in multi-GPU environments. Optimized for multi-GPUs, NCCL supports collective communication operations and large-scale clusters, and is compatible with various network interfaces.
[0047] The RDMA API can provide a programming interface for Remote Direct Memory Access. By using NCCL and the RDMA API together, data transfer and collective operations between multiple GPUs can be efficiently handled in high-performance computing environments.
[0048] The interface module can optimize multi-GPU data transmission by transmitting the number of GPUs to be used and IP information determined within NCCL to the RDMA API library. The interface module can split the data and transmit each part through a different path only when the data size exceeds a threshold. For example, the interface module can perform multipath transmission by considering the size of the data to be transmitted, and only when the data is larger than a threshold (e.g., 1MB), dividing the data into multiple smaller parts and transmitting each part through a different path.
[0049] Interface modules can multiplex data transmission paths by utilizing ECMP characteristics and Virtual IPs to assign different Source IPs to data. ECMP (Equal-Cost Multi-Path) is an equal-cost multipath routing method. Among multiple paths leading to the same destination, ECMP can distribute traffic by using multiple paths with the same cost (e.g., latency, number of hops). By transmitting traffic through multiple paths, ECMP can reduce network congestion and improve overall network efficiency. The Source IP Address (src IP) refers to the originating address of a data packet in a network. By diversifying Source IPs using ECMP characteristics and Virtual IPs, interface modules can enable data packets to be transmitted through various different paths. This can improve network load balancing, increase transmission efficiency, and provide higher data transmission reliability.
[0050] The interface module can select a single-path transmission method because using multiple paths can be inefficient when the data is sufficiently small. Since data using a single path may be obstructed by data using multiple paths, performance degradation can be prevented by assigning a high priority to data using a single path.
[0051] The interface module can perform the role of converting and transmitting information provided by NCCL into a format that the RDMA API can understand and utilize. The interface module can first collect information related to GPU usage from NCCL. This information may include the total number of GPUs to be used and the IP addresses assigned to each GPU.
[0052] The interface module can convert collected information into a format that the RDMA API can understand. The interface module transmits this information to the RDMA API, enabling RDMA to establish efficient data transfer paths between each GPU. Based on the information received from the interface module, the RDMA API can configure direct memory access to each GPU over the network. This minimizes network latency and optimizes transfer speeds during data transmission.
[0053] The interface module can monitor whether the interoperability between NCCL and RDMA API is proceeding smoothly. The interface module can support the optimization of data transmission and communication between NCCL and RDMA API.
[0054] The automatic path collection module can automatically detect and collect available data transmission paths within the platform, and generate a set of paths by selecting the optimal paths from among them. Examples of platforms include high-performance computing environments, cloud computing infrastructure, large-scale data centers, or enterprise environments with complex network architectures. Depending on the characteristics of each platform, the automatic path collection module can determine the optimal path by considering various factors such as network bandwidth, latency, error rate, and congestion status.
[0055] The automatic path acquisition module can perform path discovery functions by detecting changes in network topology in real time. Network topology can refer to the physical or logical structure of a network. For example, in a high-performance computing environment, network topology can change over time. In a high-performance computing environment, changes in network topology can occur for various reasons, such as the addition of new equipment (e.g., adding switches), the removal of existing equipment (e.g., removing servers), or changes in network connections. The automatic path acquisition module monitors the network in real time to continuously monitor its current state and detect and identify changes in topology. Subsequently, the module can recalculate the path and optimize it to select the optimal data transmission path. This information can then be updated in the data transmission module to enable data transmission via the new path.
[0056] The automatic path collection module can generate multiple virtual IP addresses within the server, send probe packets, and then compare the path information sent in the probe packets with existing path information to select the optimal data transmission path.
[0057] The automatic route collection module can include the new route in the route set if the route through which the search packet was transmitted is a new route.
[0058] In selecting source IPs for multiplexing data paths, it can be difficult to verify which path each IP address is headed via until it is actually transmitted, as the selection method based on the IP varies across different switch devices. Therefore, the automatic path collection module can automatically identify the number of available paths within the platform and the set of source IP addresses that should be used for each path. Here, the automatic path collection module generates multiple virtual IPs within the server, transmits a scout packet containing the corresponding virtual IP using the path tracing function, and then compares the transmitted path information with existing path information to determine whether it is a new path that did not exist previously. If it is a new path, the automatic path collection module adds it to the existing set of paths, and the source IP address can be utilized for multi-path transmission.
[0059] More specifically, the automatic route collection module can generate virtual IP addresses. Virtual IP addresses can be used to experimentally explore various data transmission paths on the network. Virtual IPs can be implemented in software rather than being assigned to actual network devices. The automatic route collection module can transmit search packets. Using the generated virtual IP addresses, the search packets can identify which paths will be used in actual network situations. The automatic route collection module can compare and analyze route information. By comparing the path through which the search packet was transmitted with existing paths, the automatic route collection module can discover new paths and verify their validity. The automatic route collection module can add the new paths whose validity has been verified to the existing set of paths. The automatic route collection module can select source IPs for multipath transmissions. Considering path selections that may vary depending on the network switch equipment, the automatic route collection module can select effective source IP addresses for each path. The automatic route collection module can perform the route exploration function by periodically executing the aforementioned processes.
[0060] The data transmission module can transmit data through optimal data transmission paths selected by the automatic path collection module.
[0061] The dynamic data classification module monitors the data transmission module in real time and can dynamically readjust the optimal transmission path. The dynamic data classification module can identify the current state of the network by monitoring network traffic patterns, bandwidth usage, or latency in real time.
[0062] The dynamic data classification module can detect the network bandwidth and transmission delay of the data transmission module and dynamically readjust the optimal data transmission path. When the dynamic data classification module detects network congestion or changes in bandwidth, it can independently readjust the optimal data transmission path, and it can also adjust the optimal data transmission path in conjunction with the automatic path collection module.
[0063] The dynamic data classification module monitors performance indicators for optimal data transmission paths to adjust the data transmission volume per path and optimize the transmission performance of the optimal data transmission paths.
[0064] The dynamic data classification module can multiplex paths based on data size in situations where available bandwidth is insufficient due to poor network conditions. For example, even with data of the same size, if network conditions are good, it can be sent via a single path; however, if network conditions are poor, the path may need to be multiplexed to divide the data into several smaller data segments for transmission. The dynamic data classification module can determine whether to multiplex paths using a method such as Equation 1 below. The method for determining whether to multiplex paths by the dynamic data classification module is not limited to the described equation, and various mathematical methods may be applied.
[0065]
[0066] The dynamic data classification module can dynamically set the threshold value (size_th) for data splitting based on the ratio of the network's current throughput to its maximum throughput. If network performance degrades (e.g., when the current throughput is lower than the maximum throughput), the threshold value for data splitting can be reduced to more actively utilize path multiplexing. For example, in the event of network congestion, the threshold value (e.g., from 1MB to 0.5MB) can be reduced to transmit smaller data via multiple paths, thereby alleviating network congestion. In other words, while the multipath transmission device previously split data larger than 1MB for multipath transmission, if a network abnormality occurs, the dynamic data classification device can reduce the threshold value to 0.5MB to split data larger than 0.5MB for multipath transmission.
[0068] FIG. 3 is a schematic flowchart illustrating a multipath transmission method according to one embodiment.
[0069] The description with reference to FIGS. 1 and FIGS. 2 may be applied in the same way to FIGS. 3, and duplicate content may be omitted.
[0070] The operations of FIG. 3 may be performed in the order and manner depicted, but the order of some operations may be changed or some operations may be omitted without departing from the spirit and scope of the depicted embodiment. Multiple operations depicted in FIG. 3 may be performed in parallel or simultaneously.
[0071] For convenience of explanation, steps (310 to 340) are described as being performed using the multipath transmission device (200) illustrated in FIG. 2. However, these steps (310 to 340) may be used through any other suitable electronic device and within any suitable system.
[0072] In step (310), the multipath transmission device can integrate different libraries. For example, the multipath transmission device can optimize multi-GPU data transmission by transmitting the number of GPUs to be used and IP information determined within the NCCL to the RDMA API library. The multipath transmission device can split the data and transmit it to different paths only when the size of the data is greater than or equal to a threshold.
[0073] In step (320), the multipath transmission device can automatically detect and collect available data transmission paths within the platform and create a path set by selecting optimal data transmission paths among the available data transmission paths. For example, the multipath transmission device can perform a path search function by detecting changes in network topology in real time. The multipath transmission device can generate multiple virtual IP addresses within the server, transmit a search packet, and then select an optimal data transmission path by comparing the path to which the search packet was transmitted with existing path information. If the path to which the search packet was transmitted is a new path, the multipath transmission device can include the new path in the path set.
[0074] In step (330), the multipath transmission device can transmit data through optimal data transmission paths.
[0075] In step (340), the multipath transmission device can monitor data transmission in real time and dynamically readjust the optimal data transmission path. For example, the multipath transmission device can detect the network bandwidth and transmission delay of the data transmission module and dynamically readjust the optimal data transmission path. The multipath transmission device can monitor performance indicators for the optimal data transmission paths to adjust the amount of data transmitted per path and optimize the transmission performance of the optimal data transmission paths.
[0077] FIG. 4 is a block diagram of an electronic device according to one embodiment.
[0078] One or more blocks and combinations of blocks in FIG. 4 may be implemented by a computer based on special-purpose hardware that performs specific functions, or by a combination of special-purpose hardware and computer instructions. The description with reference to FIG. 1 through 3 may be equally applicable to FIG. 4. For example, an electronic device (400) according to one embodiment may include a multipath transmission device (200).
[0079] As shown in FIG. 4, the electronic device (400) may include a memory (410) and a processor (420). The electronic device (400) may further include a communication module, and the communication module may include a transmission unit and a reception unit.
[0080] An electronic device (400) according to one embodiment may include a memory (410) and a processor (420) connected to the memory (410) through a system bus or other suitable circuit.
[0081] The electronic device (400) may store program code in memory (410). In one embodiment, memory (410) may include one or more physical memory devices, such as local memory or one or more bulk storage devices. In this case, the local memory may include Random Access Memory (RAM) or other volatile memory devices that are typically used while actually executing the program code. The bulk storage devices may be implemented as Hard Disk Drives (HDD), Solid State Drives (SSD), or other non-volatile memory devices.
[0082] As executable program code stored in memory (410) is executed by the electronic device (400), various operations described in the present disclosure can be performed by the processor (420). For example, memory (410) may store program code to enable the processor (420) to perform one or more operations described in FIGS. 1 to 3.
[0083] Depending on the specific type of device being implemented, the electronic device (400) may include fewer components than the illustrated components or additional components not illustrated in FIG. 4. Additionally, one or more components may be included in other components, or otherwise form part of other components.
[0084] A processor (420) according to one embodiment is a hardware configuration that performs overall control functions for controlling the operations of an electronic device (400). For example, the processor (420) can control the electronic device (400) overall by executing programs stored in memory (410) within the electronic device (400). The processor (420) may be implemented as a CPU (central processing unit), GPU (graphics processing unit), AP (application processor), NPU (neural processing unit), etc., provided within the electronic device (400), but is not limited thereto.
[0085] The processor (420) can integrate different libraries, automatically detect and collect available data transmission paths within the platform, select optimal data transmission paths among available data transmission paths to create a set of paths, transmit data through the optimal data transmission paths, and monitor data transmission in real time to dynamically readjust the optimal data transmission paths.
[0087] The embodiments described above may be implemented as hardware components, software components, and / or combinations of hardware and software components. For example, the devices, methods, and components described in the embodiments may be implemented using a general-purpose computer or a special-purpose computer, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing unit may execute an operating system (OS) and software applications executed on said operating system. Additionally, the processing unit may access, store, manipulate, process, and generate data in response to the execution of the software. For ease of understanding, the processing unit may be described as being used as a single unit, but those skilled in the art will understand that the processing unit may include multiple processing elements and / or multiple types of processing elements. For example, the processing unit may include multiple processors or one processor and one controller. In addition, other processing configurations, such as parallel processors, are also possible.
[0088] Software may include computer programs, code, instructions, or a combination of one or more of these, and may configure a processing unit to operate as desired or command the processing unit independently or collectively. Software and / or data may be permanently or temporarily embodied in any type of machine, component, physical device, virtual equipment, computer storage medium or device, or transmitted signal wave so as to be interpreted by the processing unit or to provide instructions or data to the processing unit. Software may be distributed over networked computer systems and may be stored or executed in a distributed manner. Software and data may be stored on computer-readable recording media.
[0089] The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., either alone or in combination, and the program instructions recorded on the medium may be those specifically designed and configured for the embodiment or those known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes; optical recording media such as CD-ROMs and DVDs; magneto-optical media such as floptical disks; and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, and flash memory. Examples of program instructions include machine code, such as that generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.
[0090] The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.
[0091] Although the embodiments have been described above with reference to the limited drawings, those skilled in the art can apply various technical modifications and variations based thereon. For example, suitable results may be achieved even if the described techniques are performed in a different order than described, and / or if the components of the described system, structure, device, circuit, etc. are combined or assembled in a form different from described, or replaced or substituted by other components or equivalents.
[0092] Therefore, other implementations, other embodiments, and equivalents to the claims also fall within the scope of the claims set forth below.
Claims
Claim 1 In a multipath transmission device, an interface module that integrates different libraries; an automatic path collection module that automatically detects and collects available data transmission paths within a platform, selects optimal data transmission paths among the available data transmission paths, and generates a path set; and a data transmission module that transmits data through the optimal data transmission paths. A multipath transmission device comprising: a dynamic data classification module that monitors the data transmission module in real time and dynamically readjusts the optimal data transmission path; an interface module that integrates the different libraries, namely the NCCL (NVIDIA Collective Communications Library) and the RDMA (Remote Direct Memory Access) API (Application Programming Interface) library, and transmits the number of GPUs to be used and IP information determined within the NCCL to the RDMA API library to optimize multi-GPU data transmission; an automatic path collection module that generates multiple virtual IP addresses within a server, transmits a search packet, compares the path information transmitted by the search packet with existing path information to select the optimal data transmission path, and if the path transmitted by the search packet is a new path, includes the new path in the path set; and a dynamic data classification module that dynamically sets a reference value for data splitting according to the ratio of the maximum throughput to the current throughput of the network to dynamically readjust the optimal data transmission path. Claim 2 delete Claim 3 A multipath transmission device according to claim 1, wherein the interface module divides the data and transmits each to a different path only when the size of the data is greater than or equal to a reference value set by the dynamic data classification module. Claim 4 In claim 1, the automatic path collection module detects changes in network topology in real time and performs a path search function, a multipath transmission device. Claim 5 delete Claim 6 delete Claim 7 In claim 1, the dynamic data classification module detects the network bandwidth and transmission delay of the data transmission module and dynamically readjusts the optimal data transmission path, a multipath transmission device. Claim 8 A multipath transmission device according to claim 1, wherein the dynamic data classification module monitors performance indicators for the optimal data transmission paths, adjusts the amount of data transmitted per path, and optimizes the transmission performance of the optimal data transmission paths. Claim 9 In an electronic device, a memory for storing instructions; The invention includes a processor, and when the instructions are executed by the processor, the electronic device is configured to integrate different libraries, automatically detect and collect available data transmission paths within the platform, select optimal data transmission paths among the available data transmission paths to create a path set, transmit data through the optimal data transmission paths, and monitor the data transmission in real time to dynamically readjust the optimal data transmission paths. Integrating the different libraries includes integrating the different libraries, namely the NCCL (NVIDIA Collective Communications Library) and the RDMA (Remote Direct Memory Access) API (Application Programming Interface) library, and optimizing multi-GPU data transmission by transmitting the number of GPUs to be used and IP information determined within the NCCL to the RDMA API library. Creating the path set includes generating multiple virtual IP addresses within the server, transmitting a search packet, comparing the path information to which the search packet was transmitted with existing path information to select the optimal data transmission path, and if the path to which the search packet was transmitted is a new path, including the new path in the path set. An electronic device comprising, wherein the optimal data transmission path is dynamically readjusted by dynamically setting a reference value for data partitioning according to the ratio of the maximum throughput to the current throughput of the network. Claim 10 A multipath transmission method comprises: a step of integrating different libraries; a step of automatically detecting and collecting available data transmission paths within a platform, and generating a set of paths by selecting optimal data transmission paths among the available data transmission paths; and a step of transmitting data through the optimal data transmission paths. A multipath transmission method comprising: a step of monitoring the data transmission in real time and dynamically readjusting the optimal data transmission path; a step of integrating the different libraries, which is the different libraries, including the NVIDIA Collective Communications Library (NCCL) and the Remote Direct Memory Access (RDMA) API (Application Programming Interface) library, and optimizing multi-GPU data transmission by transmitting the number of GPUs to be used and IP information determined within the NCCL to the RDMA API library; a step of generating the path set, which is which generates a plurality of virtual IP addresses within a server, transmits a search packet, and then selects the optimal data transmission path by comparing the path information transmitted by the search packet with existing path information, and if the path transmitted by the search packet is a new path, includes the new path in the path set; and dynamically readjusting the optimal data transmission path includes a step of dynamically readjusting the optimal data transmission path by dynamically setting a reference value for data splitting according to the ratio of the maximum throughput to the current throughput of the network. Claim 11 A computer program stored on a computer-readable recording medium to be combined with hardware to execute the method of claim 10.