[go: up one dir, main page]

WO2025143409A1 - Multipath transmission apparatus and method - Google Patents

Multipath transmission apparatus and method Download PDF

Info

Publication number
WO2025143409A1
WO2025143409A1 PCT/KR2024/010902 KR2024010902W WO2025143409A1 WO 2025143409 A1 WO2025143409 A1 WO 2025143409A1 KR 2024010902 W KR2024010902 W KR 2024010902W WO 2025143409 A1 WO2025143409 A1 WO 2025143409A1
Authority
WO
WIPO (PCT)
Prior art keywords
path
data transmission
paths
module
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/KR2024/010902
Other languages
French (fr)
Korean (ko)
Inventor
이수기
김찬용
최민규
신현경
박외진
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Acryl Inc
Original Assignee
Acryl Inc
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 Acryl Inc filed Critical Acryl Inc
Publication of WO2025143409A1 publication Critical patent/WO2025143409A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation

Definitions

  • the following embodiments relate to a multi-path transmission device and method thereof.
  • RDMA Remote Direct Memory Access
  • DCNs data center networks
  • RDMA Remote Direct Memory Access
  • NICs Network Interface Cards
  • a multi-path transmission device may include an interface module that integrates different libraries, an automatic path collection module that automatically detects and collects data transmission paths available within a platform and selects optimal data transmission paths among the available data transmission paths to generate a path set, 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 to dynamically readjust the optimal data transmission path.
  • the above different libraries may include the NVIDIA Collective Communications Library (NCCL) and the Remote Direct Memory Access (RDMA) API (Application Programming Interface) library, and the interface module may optimize multi-GPU data transmission by transferring the number of GPUs to be used and IP information determined within the NCCL to the RDMA API library.
  • NCCL NVIDIA Collective Communications Library
  • RDMA Remote Direct Memory Access
  • the interface module may optimize multi-GPU data transmission by transferring the number of GPUs to be used and IP information determined within the NCCL to the RDMA API library.
  • the above interface module can divide the data and transmit it through different paths only when the size of the data is greater than a threshold value.
  • the above automatic route collection module can detect network topology changes in real time and perform route search functions.
  • the above automatic route collection module can generate a number of virtual IP addresses within the server, transmit a search packet, and then compare the route information to which the search packet was transmitted with existing route information to select the optimal data transmission route.
  • the above automatic route collection module may include a new route in the route set if the route through which the search packet is transmitted is a new route.
  • the above 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.
  • the above dynamic data classification module can monitor performance indicators for the optimal data transmission paths, adjust the data transmission amount for each path, and optimize the transmission performance of the optimal data transmission paths.
  • An electronic device may include a memory storing instructions and a processor, wherein the instructions, when executed by the processor, cause the electronic device to integrate different libraries, automatically detect and collect data transmission paths available within a platform, select optimal data transmission paths among the available data transmission paths to generate 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 path.
  • a multi-path transmission method may include a step of integrating different libraries, a step of automatically detecting and collecting data transmission paths available within a platform, a step of selecting optimal data transmission paths among the available data transmission paths to generate a path set, a step of transmitting data through the optimal data transmission paths, and a step of monitoring the data transmission in real time to dynamically readjust the optimal data transmission path.
  • FIG. 1 is a schematic diagram illustrating RDMA according to one embodiment.
  • FIG. 2 is a schematic diagram illustrating a multi-path transmission device according to one embodiment.
  • FIG. 3 is a schematic flowchart illustrating a multi-path transmission method according to one embodiment.
  • FIG. 4 is a block diagram illustrating an electronic device according to one embodiment.
  • RDMA can be hardware-based transport. RDMA can be managed and executed by a network adapter (RDMA NIC or RNIC), reducing the workload on the central processing unit.
  • RDMA NIC network adapter
  • RDMA API can provide a programming interface for Remote Direct Memory Access.
  • NCCL and RDMA API together, data transfer and collective operations between multi-GPUs can be efficiently processed in high-performance computing environments.
  • the interface module can convert the collected information into a format that the RDMA API can understand.
  • the interface module can pass this information to the RDMA API so that the RDMA can establish an efficient data transmission path between each GPU.
  • the RDMA API can establish direct memory access to each GPU through the network. It can minimize network delay and optimize transmission speed during data transmission.
  • the automatic path collection module can automatically detect and collect data transmission paths available within the platform, and select optimal data transmission paths among the available data transmission paths to create a path set.
  • platforms include high-performance computing environments, cloud computing infrastructures, large-scale data centers, or enterprise environments with complex network architectures.
  • the automatic path collection module can determine the optimal path by considering various factors such as network bandwidth, delay time, error rate, and congestion status according to the characteristics of each platform.
  • the automatic path collection module can detect changes in network topology in real time and perform a path search function.
  • the network topology can mean the deterioration or logical structure of the network.
  • the network topology can change over time.
  • changes in the network topology can occur for various reasons, such as the addition of new equipment (e.g., the addition of a switch), the removal of existing equipment (e.g., the removal of a server), or the change of network connections.
  • the automatic path collection module can monitor the network in real time to continuously monitor the current status of the network, and detect and identify changes in the topology. After this, the automatic path collection module can recalculate the condensation and optimize the path to select the optimal data transmission path. This can be updated to the data transmission module so that data can be transmitted through the new path.
  • the automatic route collection module can create multiple virtual IP addresses within the server, send probe packets, and then compare the route information to which the probe packets were sent with the existing route information to select the optimal data transmission route.
  • the automatic route collection module can include a new route in the route set if the route along which the probe packet was sent is a new route.
  • the automatic route collection module can generate a virtual IP address.
  • the virtual IP address can be used to experimentally explore various data transmission paths on the network.
  • the virtual IPs can be implemented in software without being assigned to an actual network device.
  • the automatic route collection module can transmit a probe packet.
  • the probe packet can use the generated virtual IP address to determine which path will be used in an actual network situation through the network.
  • the automatic route collection module can compare and analyze the path information.
  • the automatic route collection module can compare the path through which the probe packet is transmitted with existing paths to discover a new path and verify the validity of the new path.
  • the automatic route collection module can add a new path whose validity has been verified to the existing path set.
  • the automatic route collection module can select a src IP for multi-path transmission.
  • the automatic route collection module can select an effective src IP address for each path by considering the path selection that may be different for each network switch device.
  • the automatic route collection module can perform a path search function by periodically performing the above-mentioned process
  • the data transmission module can transmit data through optimal data transmission paths selected by the automatic path collection module.
  • the dynamic data classification module can monitor the data transmission module in real time and dynamically readjust the optimal transmission path.
  • the dynamic data classification module can monitor network traffic patterns, bandwidth usage, or delay time in real time to understand the current status of the network.
  • the dynamic data classification module can monitor performance indicators for optimal data transmission paths to adjust the amount of data transmitted per path and optimize the transmission performance of optimal data transmission paths.
  • the dynamic data classification module can multiplex paths according to the size of the data when the network conditions are poor and the available bandwidth is insufficient. For example, even for data of the same size, if the network conditions are good, it can be sent through a single path, but if the network conditions are poor, the paths may need to be multiplexed to divide the data into several small pieces and transmit them.
  • the dynamic data classification module can determine whether to multiplex paths using the method of the mathematical expression 1 below.
  • the method of determining whether to multiplex paths of the dynamic data classification module is not limited to the mathematical expression described, and various mathematical methods may be applied.
  • size_th max(1byte, 1MB * (current_throughput / max_throughput)
  • the dynamic data classification module can dynamically set the threshold value (size_th) for data segmentation based on the ratio of the current throughput to the maximum throughput of the network.
  • the threshold value for data segmentation can be reduced to more actively utilize path multiplexing. For example, when the network is congested, the threshold value (e.g., from 1 MB to 0.5 MB) can be reduced to transmit smaller data through multiple paths, thereby alleviating network congestion.
  • the dynamic data classification device can reduce the threshold value to 0.5 MB, thereby dividing data with a size of 0.5 MB or more into multiple paths for multipath transmission.
  • FIG. 3 is a schematic flowchart illustrating a multi-path transmission method according to one embodiment.
  • FIG. 1 and FIG. 2 can be equally applied to FIG. 3, and any duplicate content can be omitted.
  • FIG. 3 may be performed in the order and manner illustrated, but the order of some operations may be changed or some operations may be omitted without departing from the spirit and scope of the illustrated embodiment.
  • a plurality of operations illustrated in FIG. 3 may be performed in parallel or simultaneously.
  • steps (310 to 340) are described as being performed using the multi-path transmission device (200) illustrated in FIG. 2. However, these steps (310 to 340) may be utilized via any other suitable electronic device and within any suitable system.
  • the multi-path transmission device can integrate different libraries.
  • the multi-path 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 multi-path transmission device can divide the data and transmit it through different paths only when the size of the data is greater than or equal to a threshold value.
  • the multi-path transmission device can automatically detect and collect available data transmission paths within the platform, and select optimal data transmission paths among the available data transmission paths to generate a path set.
  • the multi-path transmission device can detect a network topology change in real time to perform a path search function.
  • the multi-path transmission device can generate a plurality of virtual IP addresses within the server, transmit a search packet, and then compare the path through which the search packet was transmitted with existing path information to select an optimal data transmission path. If the path through which the search packet was transmitted is a new path, the multi-path transmission device can include the new path in the path set.
  • the multi-path transmission device can transmit data through optimal data transmission paths.
  • the multi-path transmission device can monitor data transmission in real time and dynamically readjust the optimal data transmission path.
  • the multi-path transmission device can detect the network bandwidth and transmission delay of the data transmission module and dynamically readjust the optimal data transmission path.
  • the multi-path transmission device can monitor performance indicators for the optimal data transmission paths and adjust the data transmission amount for each path and optimize the transmission performance of the optimal data transmission paths.
  • FIG. 4 is a block diagram illustrating an electronic device according to one embodiment.
  • an electronic device (400) may include a multi-path transmission device (200).
  • 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 transmitter and a receiver.
  • An electronic device (400) may include a memory (410) and a processor (420) connected to the memory (410) via a system bus or other suitable circuitry.
  • the electronic device (400) may store program code in memory (410).
  • the memory (410) may include one or more physical memory devices, such as local memory or one or more bulk storage devices.
  • the local memory may include a random access memory (RAM) or other volatile memory device that is generally used while actually executing the program code.
  • the bulk storage device may be implemented as a hard disk drive (HDD), a solid state drive (SSD), or other non-volatile memory device.
  • the executable program code stored in the memory (410) is executed by the electronic device (400), various operations described in the present disclosure can be performed by the processor (420).
  • the memory (410) can store program code for causing the processor (420) to perform one or more operations described in FIGS. 1 to 3.
  • the electronic device (400) may include fewer components than those illustrated or additional components not illustrated in FIG. 4. Additionally, one or more of the components may be incorporated into, or otherwise form part of, another component.
  • the processor (420) is a hardware configuration that performs overall control functions for controlling operations of the electronic device (400).
  • the processor (420) may control the electronic device (400) overall by executing programs stored in the memory (410) within the electronic device (400).
  • the processor (420) may be implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application processor (AP), a neural processing unit (NPU), etc., provided within the electronic device (400), but is not limited thereto.
  • the processor (420) can integrate different libraries, automatically detect and collect data transmission paths available 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 data transmission in real time to dynamically readjust the optimal data transmission path.
  • the embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components.
  • 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 instructions and responding to them.
  • the processing device may execute an operating system (OS) and software applications running on the OS.
  • the processing device may access, store, manipulate, process, and generate data in response to the execution of the software.
  • OS operating system
  • the processing device may access, store, manipulate, process, and generate data in response to the execution of the software.
  • processing device is sometimes described as being used alone, but those skilled in the art will appreciate that the processing device may include multiple processing elements and/or multiple types of processing elements.
  • a processing device may include multiple processors, or a processor and a controller.
  • Other processing configurations, such as parallel processors, are also possible.
  • the software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing device to perform a desired operation or may independently or collectively command the processing device.
  • the 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 waves, for interpretation by the processing device or for providing instructions or data to the processing device.
  • the software may also be distributed over network-connected computer systems and stored or executed in a distributed manner.
  • the software and data may be stored on a computer-readable recording medium.
  • the method according to the embodiment may be implemented in the form of program commands that can be executed through various computer means and recorded on a computer-readable medium.
  • the computer-readable medium may include program commands, data files, data structures, etc., alone or in combination, and the program commands recorded on the medium may be those specially designed and configured for the embodiment or may be those known to and available to those skilled in the art of computer software.
  • Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program commands such as ROMs, RAMs, flash memories, etc.
  • Examples of program commands include not only machine language codes generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter, etc.
  • the hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present disclosure relates to a multipath transmission apparatus, which may comprise: an interface module for integrating different libraries; an automatic path collection module which automatically detects and collects available data transmission paths in a platform, and which selects optimal data transmission paths from among the available data transmission paths so as to generate a set of paths; a data transmission module for transmitting data through the optimal data transmission paths; and a dynamic data classification module for dynamically readjusting an optimal data transmission path by monitoring the data transmission module in real time.

Description

다중 경로 전송 장치 및 방법Multipath transmission device and method

아래 실시예들은 다중 경로 전송 장치 및 그 방법에 관한 것이다.The following embodiments relate to a multi-path transmission device and method thereof.

빅 데이터 분석, 머신 러닝 및 데이터 센터 또는 고성능 컴퓨팅(HPC) 환경을 실행하는 과학적 시뮬레이션과 같은 데이터 집약적인 애플리케이션이 많아짐에 따라1 효율적인 네트워크 운영의 중요성이 커지고 있다.As data-intensive applications such as big data analytics, machine learning, and scientific simulations run in data centers or high-performance computing (HPC) environments,1 the importance of efficient network operations increases.

데이터 센터 네트워크(DCN)에서 RDMA(Remote Direct Memory Access)는 높은 대역폭과 매우 짧은 대기 시간이 필요한 데이터 집약적 애플리케이션을 위한 유망한 네트워킹 기술 중 하나이다. RDMA는 하드웨어 NIC(네트워크 인터페이스 카드)에서 전송 논리를 구현하여 제로 카피 읽기/쓰기 작업을 지원하며, 이 논리는 한 컴퓨팅 노드의 메모리에서 다른 컴퓨팅 노드의 메모리로 데이터를 직접 전송할 수 있다.In data center networks (DCNs), Remote Direct Memory Access (RDMA) is one of the promising networking technologies for data-intensive applications that require high bandwidth and very low latency. RDMA supports zero-copy read/write operations by implementing transfer logic in hardware NICs (Network Interface Cards), which can directly transfer data from the memory of one computing node to the memory of another computing node.

일 실시예에 따른 다중 경로 전송 장치는 서로 다른 라이브러리들을 통합하는 인터페이스 모듈, 플랫폼 내에서 사용 가능한 데이터 전송 경로들을 자동으로 탐지 및 수집하고, 상기 사용 가능한 데이터 전송 경로들 중 최적의 데이터 전송 경로들을 선정하여 경로 집합을 생성하는 자동 경로 수집 모듈, 상기 최적의 데이터 전송 경로들을 통해 데이터를 전송하는 데이터 전송 모듈 및 상기 데이터 전송 모듈을 실시간으로 모니터링하여, 상기 최적의 데이터 전송 경로를 동적으로 재조정하는 동적 데이터 분류 모듈을 포함할 수 있다.A multi-path 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 data transmission paths available within a platform and selects optimal data transmission paths among the available data transmission paths to generate a path set, 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 to dynamically readjust the optimal data transmission path.

상기 서로 다른 라이브러리들은 NCCL(NVIDIA Collective Communications Library) 및 RDMA(Remote Direct Memory Access) API(Application Programming Interface) 라이브러리를 포함할 수 있고, 상기 인터페이스 모듈은 상기 NCCL 내에서 결정되는 사용할 GPU 수 및 IP 정보를 상기 RDMA API 라이브러리로 전달하여, 멀티 GPU 데이터 전송을 최적화할 수 있다.The above different libraries may include the NVIDIA Collective Communications Library (NCCL) and the Remote Direct Memory Access (RDMA) API (Application Programming Interface) library, and the interface module may optimize multi-GPU data transmission by transferring the number of GPUs to be used and IP information determined within the NCCL to the RDMA API library.

상기 인터페이스 모듈은 데이터의 크기가 임계값 이상인 경우에만 상기 데이터를 분할하여 각각 다른 경로로 전송할 수 있다.The above interface module can divide the data and transmit it through different paths only when the size of the data is greater than a threshold value.

상기 자동 경로 수집 모듈은 네트워크 토폴로지 변화를 실시간으로 감지하여, 경로 탐색 기능을 수행할 수 있다.The above automatic route collection module can detect network topology changes in real time and perform route search functions.

상기 자동 경로 수집 모듈은 서버 내 다수의 가상 IP 주소를 생성하고, 탐색 패킷을 전송한 후, 상기 탐색 패킷이 전송된 경로 정보와 기존 경로 정보를 비교하여 상기 최적의 데이터 전송 경로를 선정할 수 있다.The above automatic route collection module can generate a number of virtual IP addresses within the server, transmit a search packet, and then compare the route information to which the search packet was transmitted with existing route information to select the optimal data transmission route.

상기 자동 경로 수집 모듈은 상기 탐색 패킷이 전송된 경로가 새로운 경로라면, 상기 새로운 경로를 상기 경로 집합에 포함할 수 있다.The above automatic route collection module may include a new route in the route set if the route through which the search packet is transmitted is a new route.

상기 동적 데이터 분류 모듈은 상기 데이터 전송 모듈의 네트워크 대역폭과 전송 지연을 감지하여, 상기 최적의 데이터 전송 경로를 동적으로 재조정할 수 있다.The above 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.

상기 동적 데이터 분류 모듈은 상기 최적의 데이터 전송 경로들에 대한 성능 지표를 모니터링하여, 경로별 데이터 전송량을 조절하고, 상기 최적의 데이터 전송 경로들의 전송 성능을 최적화할 수 있다.The above dynamic data classification module can monitor performance indicators for the optimal data transmission paths, adjust the data transmission amount for each path, and optimize the transmission performance of the optimal data transmission paths.

일 실시예에 따른 전자 장치는 인스트럭션들을 저장하는 메모리 및 프로세서를 포함할 수 있고, 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금, 서로 다른 라이브러리들을 통합하고, 플랫폼 내에서 사용 가능한 데이터 전송 경로들을 자동으로 탐지 및 수집하고, 상기 사용 가능한 데이터 전송 경로들 중 최적의 데이터 전송 경로들을 선정하여 경로 집합을 생성하고, 상기 최적의 데이터 전송 경로들을 통해 데이터를 전송하고, 상기 데이터 전송을 실시간으로 모니터링하여, 상기 최적의 데이터 전송 경로를 동적으로 재조정하도록할 수 있다.An electronic device according to one embodiment may include a memory storing instructions and a processor, wherein the instructions, when executed by the processor, cause the electronic device to integrate different libraries, automatically detect and collect data transmission paths available within a platform, select optimal data transmission paths among the available data transmission paths to generate 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 path.

일 실시예에 따른 다중 경로 전송 방법은 서로 다른 라이브러리들을 통합하는 단계, 플랫폼 내에서 사용 가능한 데이터 전송 경로들을 자동으로 탐지 및 수집하고, 상기 사용 가능한 데이터 전송 경로들 중 최적의 데이터 전송 경로들을 선정하여 경로 집합을 생성하는 단계, 상기 최적의 데이터 전송 경로들을 통해 데이터를 전송하는 단계 및 상기 데이터 전송을 실시간으로 모니터링하여, 상기 최적의 데이터 전송 경로를 동적으로 재조정하는 단계를 포함할 수 있다.A multi-path transmission method according to one embodiment may include a step of integrating different libraries, a step of automatically detecting and collecting data transmission paths available within a platform, a step of selecting optimal data transmission paths among the available data transmission paths to generate a path set, a step of transmitting data through the optimal data transmission paths, and a step of monitoring the data transmission in real time to dynamically readjust the optimal data transmission path.

도 1은 일 실시예에 따른 RDMA를 설명하기 위한 개략적인 도면이다.FIG. 1 is a schematic diagram illustrating RDMA according to one embodiment.

도 2는 일 실시예에 따른 다중 경로 전송 장치를 개략적으로 도시한 도면이다.FIG. 2 is a schematic diagram illustrating a multi-path transmission device according to one embodiment.

도 3은 일 실시예에 따른 다중 경로 전송 방법을 설명하기 위한 개략적인 흐름도이다.FIG. 3 is a schematic flowchart illustrating a multi-path transmission method according to one embodiment.

도 4는 일 실시예에 따른 전자 장치의 블록도를 도시한 도면이다.FIG. 4 is a block diagram illustrating an electronic device according to one embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only and may be implemented in various forms. Accordingly, the actual implemented form is not limited to the specific embodiments disclosed, and the scope of the present disclosure includes modifications, equivalents, or alternatives included in the technical idea described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although the terms first or second may be used to describe various components, such terms should be construed only for the purpose of distinguishing one component from another. For example, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.When it is said that a component is "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but there may also be other components in between.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, the terms "comprises" or "has" and the like are intended to specify the presence of a described feature, number, step, operation, component, part, or combination thereof, but should be understood to not preclude the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning they have in the context of the relevant art, and will not be interpreted in an idealized or overly formal sense unless explicitly defined herein.

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the attached drawings. In describing with reference to the attached drawings, identical components are given the same reference numerals regardless of the drawing numbers, and redundant descriptions thereof will be omitted.

도 1은 일 실시예에 따른 RDMA를 설명하기 위한 개략적인 도면이다.FIG. 1 is a schematic diagram illustrating RDMA according to one embodiment.

도 1의 하나 이상의 블록들 및 블록들의 조합은 특정 기능을 수행하는 특수 목적 하드웨어 기반 컴퓨터, 또는 특수 목적 하드웨어 및 컴퓨터 명령들의 조합에 의해 구현될 수 있다.One or more of the blocks or combinations of blocks of FIG. 1 may be implemented by a special purpose hardware-based computer performing a particular function, or by a combination of special purpose hardware and computer instructions.

일 실시예에 따른 RDMA(Remote Direct Memory Access)는 컴퓨터 운영 체제, 중앙 처리 장치 또는 캐시를 사용하지 않고 한 컴퓨터의 메모리에서 다른 컴퓨터의 메모리로 직접 메모리 엑세스를 가능하게 하는 방법일 수 있다. RDMA를 사용하면 높은 처리량과 짧은 대기시간의 네트워킹이 가능해지며, 특히 데이터 센터와 고성능 컴퓨터 환경에 유리할 수 있다.Remote Direct Memory Access (RDMA), according to one embodiment, may be a method for enabling direct memory access from the memory of one computer to the memory of another computer without using a computer operating system, a central processing unit, or a cache. RDMA enables high throughput, low latency networking, which may be particularly advantageous in data centers and high-performance computing environments.

RDMA는 메모리 복사가 없는 네트워킹을 할 수 있다. RDMA를 사용하면 데이터(또는 메시지)를 한 시스템의 메모리에서 다른 시스템으로 직접 전송할 수 있으므로 버퍼 간 데이터 복사 필요성이 줄어들 수 있다.RDMA enables networking without memory copying. RDMA allows data (or messages) to be transferred directly from one system's memory to another, thus reducing the need for data copying between buffers.

RDMA는 커널 우회가 가능할 수 있다. RDMA는 운영 체제 커널을 우회하여 컨텍스트 전환, 인터럽트 및 중앙 처리 장치의 오버헤드를 줄일 수 있다.RDMA can be kernel bypassed. RDMA can bypass the operating system kernel, reducing context switching, interrupts, and central processing unit overhead.

RDMA는 하드웨어 기반 전송이 가능할 수 있다. RDMA는 네트워크 어댑터(RDMA NIC 또는 RNIC)에 의해 관리 및 실행되어 중앙 처리 장치에서 워크로드를 줄일 수 있다.RDMA can be hardware-based transport. RDMA can be managed and executed by a network adapter (RDMA NIC or RNIC), reducing the workload on the central processing unit.

RDMA는 다양한 네트워크 패브릭을 지원할 수 있다. RDMA는 InfiniBand, 이더넷(RoCE를 통한 RDMA) 및 iWARP(Internet Wide Area RDMA Protocol)와 같은 다양한 네트워크 패브릭에서 작동할 수 있다.RDMA can support a variety of network fabrics. RDMA can operate over a variety of network fabrics, such as InfiniBand, Ethernet (RDMA over RoCE), and Internet Wide Area RDMA Protocol (iWARP).

RDMA는 낮은 대기 시간 및 높은 효율성을 가질 수 있다. RDMA는 데이터 복사 및 컨텍스트 전환 수를 줄여 대기 시간을 크게 줄이고 데이터 전송 효율성을 높일 수 있다.RDMA can have low latency and high efficiency. RDMA can significantly reduce latency and increase data transfer efficiency by reducing the number of data copies and context switches.

RDMA는 대규모 데이터베이스 트랜잭션, 고성능 컴퓨팅 어플리케이션 및 저장 영역 네트워크와 같이 높은 데이터 처리량과 짧은 대기 시간이 필요한 어플리케이션에서 사용될 수 있다. 중앙 처리 장치에서 작업을 오프로드하고 지연을 최소화하는 기능은 데이터 집약적 컴퓨팅 환경에서 중요할 수 있다.RDMA can be used in applications that require high data throughput and low latency, such as large database transactions, high-performance computing applications, and storage area networks. The ability to offload work from the central processing unit and minimize latency can be important in data-intensive computing environments.

도 1은 네트워크 환경에서 RDMA의 세부 아키텍처와 작동 흐름을 도시한 것이다. 일 실시예에 따른 RDMA에서 주요 구성 요소는 Queue Pairs(QPs) 와 Memory Regions(MRs)일 수 있다. 송신 및 수신 대기열로 구성된 QP는 두 호스트 간의 RDMA 통신을 시작하고 관리하는 데 필수적일 수 있다. 메모리 영역은 RDMA 작업을 통해 직접 액세스할 수 있도록 준비된 메모리의 특정 영역일 수 있다. QP 설정은 송신 및 수신 큐가 있는 호스트 간의 통신 채널 설정을 포함할 수 있다. MR에서, 호스트는 직접 RDMA 작업에 액세스할 수 있는 특정 메모리 영역을 식별할 수 있다. WQEs(Work Queue Elements에서, 데이터 전송 명령은 QP의 대기열에 포함되어 있고, 이러한 명령은 데이터 전송 또는 수신과 같은 작업의 특성을 지정할 수 있다. NIC(Network Interface Card)는 WQE의 인스트럭션에 따라 직접 메모리 전송을 수행하여 명령을 처리할 수 있다. 작업을 완료한 후, NIC은 CQEs(Completion Queue Elements)를 통해 다시 보고하여 RDMA 작업 상태를 표시할 수 있다.FIG. 1 illustrates a detailed architecture and operational flow of RDMA in a network environment. In one embodiment, the main components of RDMA may be Queue Pairs (QPs) and Memory Regions (MRs). A QP, which consists of a transmit and receive queue, may be essential for initiating and managing RDMA communication between two hosts. A memory region may be a specific region of memory prepared to be directly accessed through an RDMA operation. Setting up a QP may include setting up a communication channel between hosts having transmit 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 queued in the QP, and these commands can specify the characteristics of the task, such as transmitting or receiving data. The Network Interface Card (NIC) can process the command by performing a memory transfer directly according to the instructions in the WQE. After completing the task, the NIC can report back through Completion Queue Elements (CQEs) to indicate the status of the RDMA task.

보다 구체적으로, 도 1은 RDMA의 개요를 표현한 것이다. 두 호스트 간에 RDMA 작업을 설정하고 실행하는 프로세스를 보여줄 수 있다. 주요 요소에는 호스트 간의 큐 쌍(QP) 설정이 포함되며, 각 QP는 전송 및 수신 큐로 구성될 수 있다. 메모리 영역(MR)은 네트워크 인터페이스 카드(NIC)에 의한 직접 액세스를 위해 정의될 수 있다. 작업은 작업 대기열 요소(WQE)를 QP에 게시하여 시작될 수 있다. 그런 다음 NIC는 이러한 WQE를 처리하여 제공된 지침에 따라 데이터를 전송할 수 있다. 이러한 작업의 완료는 완료 대기열 요소(CQE)를 통해 표시될 수 있다. 이 설정은 운영 체제와 CPU를 우회하여 대기 시간을 줄이고 네트워크로 연결된 컴퓨터 간의 데이터 전송 효율성을 높이는 RDMA의 직접 고속 데이터 전송 기능을 보여줄 수 있다.More specifically, FIG. 1 illustrates an overview of RDMA. It can show the process of setting up and executing an RDMA task between two hosts. The main elements include setting up a queue pair (QP) between the hosts, where each QP can consist of a transmit and receive queue. A memory region (MR) can be defined for direct access by a network interface card (NIC). A task can be initiated by posting a work queue element (WQE) to the QP. The NIC can then process this WQE and transmit data according to the instructions provided. The completion of this task can be indicated by a completion queue element (CQE). This setup can show the direct high-speed data transfer capability of RDMA, which reduces latency and increases the efficiency of data transfer between networked computers by bypassing the operating system and CPU.

이하에서, RDMA를 활용한 다중 경로 전송에 대하여 설명한다.Below, multipath transmission using RDMA is described.

데이터센터 내 서버들 간 존재하는 다양한 네트워크 링크를 충분히 활용하기 위해서는 다중 경로 전송이 필수적일 수 있다. 다중 경로 전송은 다음과 같은 두 가지 목적으로 활용될 수 있다. 다중 경로 전송은 특정 네트워크 링크의 장애로 인한 우회 경로 활용에 사용되고, 복수의 경로들을 동시에 활용함으로써 데이터 전송량을 증가시킬 수 있다.Multipath transmission may be essential to fully utilize the various network links existing between servers in a data center. Multipath transmission can be utilized for the following two purposes: Multipath transmission is used to utilize a bypass route due to a failure of a specific network link, and data transmission capacity can be increased by utilizing multiple paths simultaneously.

그러나, 종래의 기술들은 모두 고전적인 TCP/IP(Transmission Control Protocol/Internet Protocol)기반의 네트워크를 기반으로 개발된 기술이기에 고성능 데이터 전송기술인 RDMA에 적용하는 것은 불가능할 수 있다.However, since all of the existing technologies were developed based on the classic TCP/IP (Transmission Control Protocol/Internet Protocol)-based network, it may be impossible to apply them to RDMA, a high-performance data transmission technology.

RDMA는 TCP/IP와 달리 하드웨어 내 통신 프로세스들이 모두 탑재되어 있기 때문에, 시스템 커널 (OS) 내에서 RDMA의 전송 로직을 변경하는 것은 불가능할 수 있다. 그러므로 다중 경로 전송 기술을 RDMA에 적용하기 위해서는 1) 새로운 하드웨어 (RNIC, RDMA 전용 NIC 카드)를 개발하거나, 2) RDMA API가 구현된 User-level library내에 해당 기술을 탑재해야 할 수 있다. 1)의 경우, 이미 구매한 하드웨어들에는 적용이 어려울 수 있고, 2)와 같은 방식은 다중 경로 전송 기술에 대한 개발이 필요할 수 있다. 그러나, 종래의 기술들의 경우, 주로, CPU Memory를 대상으로 데이터 전송을 수행하는 RDMA를 고려한 기술들로, 최근 인공지능 등에 사용되는 GPU 기반의 RDMA 통신 (GPUDirect RDMA)에 적용 시 비효율적으로 동작하거나, 효과적으로 활용되기 어려울 수 있다.Unlike TCP/IP, RDMA has all of its communication processes embedded in hardware, so it may be impossible to change the transmission logic of RDMA within the system kernel (OS). Therefore, in order to apply multi-path transmission technology to RDMA, 1) new hardware (RNIC, RDMA-only NIC card) must be developed, or 2) the technology must be embedded in the User-level library where the RDMA API is implemented. In the case of 1), it may be difficult to apply it to hardware that has already been purchased, and a method like 2) may require the development of a multi-path transmission technology. However, in the case of conventional technologies, they are technologies that mainly consider RDMA that performs data transmission targeting CPU Memory, and when applied to GPU-based RDMA communication (GPUDirect RDMA) recently used in artificial intelligence, etc., they may operate inefficiently or be difficult to utilize effectively.

후술하는 설명은, GPU를 활용한 고성능 컴퓨팅을 기반으로 동작하는 다양한 플랫폼들을 대상으로 효율적으로 활용될 수 있는 다중 경로 전송 기술에 대한 것일 수 있다.The following description may be about a multi-path transmission technology that can be efficiently utilized for various platforms that operate based on high-performance computing utilizing GPUs.

도 2는 일 실시예에 따른 다중 경로 전송 장치를 개략적으로 도시한 도면이다.FIG. 2 is a schematic diagram illustrating a multi-path transmission device according to one embodiment.

도 1을 참조한 설명은 도 2에도 동일하게 적용될 수 있고, 중복되는 내용은 생략될 수 있다. 도 2의 하나 이상의 블록들 및 블록들의 조합은 특정 기능을 수행하는 특수 목적 하드웨어 기반 컴퓨터, 또는 특수 목적 하드웨어 및 컴퓨터 명령들의 조합에 의해 구현될 수 있다.The description with reference to Fig. 1 can be equally applied to Fig. 2, and overlapping content can be omitted. One or more blocks and combinations of blocks of Fig. 2 can be implemented by a special purpose hardware-based computer performing a specific function, or a combination of special purpose hardware and computer instructions.

일 실시예에 따른 다중 경로 전송 장치는 인터페이스 모듈, 자동 경로 수집 모듈, 데이터 전송 모듈 및 동적 데이터 분류 모듈을 포함할 수 있다. 다중 경로 전송 장치는 GPU에서 RDMA 기반으로, 데이터를 다중 경로로 전송할 수 있다. 다중 경로 전송 장치는 서로 다른 라이브러리 간의 효율적인 연동과 자동화된 가용 경로 수집 및 동적으로 데이터를 분류하여 데이터를 전송할 수 있다.A multi-path 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 multi-path transmission device may transmit data in multiple paths based on RDMA from a GPU. The multi-path transmission device may transmit data by efficiently linking between different libraries, automatically collecting available paths, and dynamically classifying data.

용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면,"모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.The term "module" can mean, for example, a unit comprising one or more of hardware, software, or firmware. "Module" can be used interchangeably with, for example, the terms unit, logic, logical block, component, or circuit. A "module" can be the smallest unit of an integrally formed component or a portion thereof. A "module" can also be the smallest unit or a portion thereof that performs one or more functions. A "module" can be implemented mechanically or electronically. For example, a "module" can include at least one of an application-specific integrated circuit (ASIC) chip, field-programmable gate arrays (FPGAs), or a programmable-logic device that performs certain operations, known or to be developed in the future.

인터페이스 모듈은 서로 다른 라이브러리를 통합할 수 있다. 여기서, 서로 다른 라이브러리들은 NCCL(NVIDIA Collective Communications Library) 및 RDMA(Remote Direct Memory Access) API(Application Programming Interface) 라이브러리를 포함할 수 있다.The interface module can integrate different libraries, which can include the NVIDIA Collective Communications Library (NCCL) and the Remote Direct Memory Access (RDMA) Application Programming Interface (API) library.

NCCL은 NVIDIA에서 제공하는 라이브러리로, 멀티 GPU 환경에서 고성능의 확장 가능한 집합적 통신을 지원할 수 있다. NCCL은 멀티 GPU에 최적화되어, 집합적 통신 연산, 대규모 클러스터를 지원하고, 다양한 네트워크 인터페이스와 호환성을 가질 수 잇다.NCCL is a library provided by NVIDIA that can support high-performance and scalable collective communication in a multi-GPU environment. NCCL is optimized for multi-GPU, supports collective communication operations, large-scale clusters, and is compatible with various network interfaces.

RDMA API는 원격 직접 메모리 접근(Remote Direct Memory Access)을 위한 프로그래밍 인터페이스를 제공할 수 있다. NCCL과 RDMA API를 함께 사용함으로써, 고성능 컴퓨팅 환경에서 멀티 GPU 간의 데이터 전송과 집합적 연산을 효율적으로 처리할 수 있다.RDMA API can provide a programming interface for Remote Direct Memory Access. By using NCCL and RDMA API together, data transfer and collective operations between multi-GPUs can be efficiently processed in high-performance computing environments.

인터페이스 모듈은 NCCL 내에서 결정되는 사용할 GPU 수 및 IP 정보를 RDMA API 라이브러리로 전달하여, 멀티 GPU 데이터 전송을 최적화할 수 있다. 인터페이스 모듈은 데이터의 크기가 임계값 이상인 경우에만 상기 데이터를 분할하여 각각 다른 경로로 전송할 수 있다. 예를 들어, 인터페이스 모듈은 전송하려는 데이터 크기를 고려해, 데이터가 임계값(예: 1MB) 보다 큰 경우에만, 해당 데이터를 복수의 작은 데이터들로 나누고 각각 다른 경로로 전송함으로써 다중 경로 전송을 수행할 수 있도록 할 수 있다.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. The interface module can divide the data and transmit them through different paths only when the size of the data is greater than or equal to a threshold value. For example, the interface module can perform multi-path transmission by dividing the data into multiple small pieces of data and transmitting them through different paths only when the data to be transmitted is larger than a threshold value (e.g., 1 MB).

인터페이스 모듈은 ECMP 특성과 가상(Virtual) IP를 활용하여 데이터의 src ip를 달리 부여함으로써 데이터가 전송되는 경로를 다중화할 수 있다. ECMP(Equal-Cost Multi-Path)는 동일 비용 다중 경로 라우팅 방법이다. ECMP는 동일한 목적지로 가는 여러 경로 중, 비용(예: 지연 시간, 홉 수)이 동일한 여러 경로를 사용하여 트래픽을 분산시킬 수 있다. ECMP는 트래픽이 여러 경로를 통해 전송됨으로써 네트워크 혼잡을 줄이고 전체적인 네트워크 효율성을 향상시킬 수 있다. src IP(Source IP Address)는 네트워크에서 데이터 패킷의 발신지 주소, 즉 '출발지 IP 주소'를 의미할 수 있다. 인터페이스 모듈은 ECMP의 특성과 가상 IP를 활용하여 데이터의 src IP를 다양화함으로써, 데이터 패킷이 여러 다른 경로를 통해 전송되도록 할 수 있다. 이는 네트워크의 부하 분산을 개선하고, 전송 효율성을 증가시키며, 더 높은 데이터 전송 신뢰성을 제공할 수 있다.The interface module can multiplex the paths through which data is transmitted by assigning different src IPs to the data by utilizing the ECMP characteristics and virtual IPs. ECMP (Equal-Cost Multi-Path) is an equal-cost multi-path routing method. ECMP can distribute traffic by using multiple paths with the same cost (e.g., delay time, number of hops) among multiple paths to the same destination. ECMP can reduce network congestion and improve overall network efficiency by transmitting traffic through multiple paths. The src IP (Source IP Address) can mean the source address of a data packet in a network, i.e., the 'source IP address'. The interface module can diversify the src IPs of data by utilizing the characteristics of ECMP and virtual IPs, thereby allowing data packets to be transmitted through multiple different paths. This can improve network load distribution, increase transmission efficiency, and provide higher data transmission reliability.

인터페이스 모듈은 데이터가 충분히 작은 경우에는 다중 경로를 사용하는 것이 비효율적일 수 있기 때문에, 단일 경로로 전송하는 방법을 선택할 수 있다. 단일 경로를 사용하는 데이터가 다중 경로를 사용하는 데이터에 의해 전송을 방해 받을수 있기 때문에, 단일 경로를 사용하는 데이터들에게 높은 우선순위를 부여하여, 성능 저하를 방지할 수 있다.The interface module may choose to transmit data via a single path, since using multiple paths may be inefficient when the data is sufficiently small. Since data using a single path may be interrupted by data using multiple paths, data using a single path may be given a higher priority to prevent performance degradation.

인터페이스 모듈은 NCCL에서 제공하는 정보를 RDMA API가 이해하고 활용할 수 있는 형태로 변환하고 전달하는 역할을 수행할 수 있다. 인터페이스 모듈은 먼저 NCCL에서 GPU 사용에 관련된 정보를 수집할 수 있다. 이 정보에는 사용할 GPU의 총 수와 각 GPU에 할당된 IP 주소가 포함될 수 있다.The interface module can perform the role of converting and transmitting the information provided by NCCL into a form that the RDMA API can understand and utilize. The interface module can first collect information related to GPU usage from NCCL. This information can include the total number of GPUs to be used and the IP address assigned to each GPU.

인터페이스 모듈은 수집된 정보는 RDMA API가 이해할 수 있는 형식으로 변환할 수 있다. 인터페이스 모듈은 이 정보를 RDMA API에 전달하여, RDMA가 각 GPU 간의 효율적인 데이터 전송 경로를 설정할 수 있도록 할 수 있다. RDMA API는 인터페이스 모듈로부터 받은 정보를 바탕으로, 네트워크를 통해 각 GPU에 대한 직접 메모리 접근을 설정할 수 있다. 데이터 전송 시 네트워크 지연을 최소화하고 전송 속도를 최적화할 수 있다.The interface module can convert the collected information into a format that the RDMA API can understand. The interface module can pass this information to the RDMA API so that the RDMA can establish an efficient data transmission path between each GPU. Based on the information received from the interface module, the RDMA API can establish direct memory access to each GPU through the network. It can minimize network delay and optimize transmission speed during data transmission.

인터페이스 모듈은 NCCL과 RDMA API 간의 연동이 원활하게 이루어지고 있는지 모니터링할 수 있다. 인터페이스 모듈은 NCCL과 RDMA API 간의 데이터 전송과 통신이 최적화되도록 지원할 수 있다.The interface module can monitor whether the interoperability between NCCL and RDMA API is smooth. The interface module can support optimization of data transmission and communication between NCCL and RDMA API.

자동 경로 수집 모듈은 플랫폼 내에서 사용 가능한 데이터 전송 경로들을 자동으로 탐지 및 수집하고, 사용 가능한 데이터 전송 경로들 중 최적의 데이터 전송 경로들을 선정하여 경로 집합을 생성할 수 있다. 플랫폼은 일반적으로 고성능 컴퓨팅 환경, 클라우드 컴퓨팅 인프라, 대규모 데이터 센터 또는 복잡한 네트워크 아키텍처를 가진 기업 환경 등을 예로 들 수 있다. 자동 경로 수집 모듈은 각 플랫폼의 특성에 따라, 네트워크 대역폭, 지연 시간, 오류율, 혼잡 상태 등 다양한 요소를 고려하여 최적의 경로를 결정할 수 있다.The automatic path collection module can automatically detect and collect data transmission paths available within the platform, and select optimal data transmission paths among the available data transmission paths to create a path set. Examples of platforms include high-performance computing environments, cloud computing infrastructures, large-scale data centers, or enterprise environments with complex network architectures. The automatic path collection module can determine the optimal path by considering various factors such as network bandwidth, delay time, error rate, and congestion status according to the characteristics of each platform.

자동 경로 수집 모듈은 네트워크 토폴로지 변화를 실시간으로 감지하여, 경로 탐색 기능을 수행할 수 있다. 네트워크 토폴로지는, 네트워크의 물러적 또는 논리적 구조를 의미할 수 있다. 예를 들어, 고성능 컴퓨팅 환경에서, 네트워크 토폴로지는 시간에 따라 변할 수 있다. 고성능 컴퓨팅 환경에서 네트워크 토폴로지의 변화는 새로운 장비의 추가(예: 스위치의 추가), 기존 장비의 제거(예: 서버의 제거) 또는 네트워크 연결의 변경 등 다양한 이유로 발생할 수 있다. 자동 경로 수집 모듈은 실시간 네트워크를 모니터링하여 네트워크의 현재 상태를 지속적으로 모니터링하고, 토폴로지 변화를 감지하여, 식별할 수 있다. 이 후, 자동 경로 수집 모듈은 결로를 재계산하고, 경로를 최적화하여 최적의 데이터 전송 경로를 선택할 수 있다. 이를 데이터 전송 모듈에 업데이트하여, 새로운 경로로 데이터가 전송될 수 있도록 할 수 있다.The automatic path collection module can detect changes in network topology in real time and perform a path search function. The network topology can mean the deterioration or logical structure of the network. For example, in a high-performance computing environment, the network topology can change over time. In a high-performance computing environment, changes in the network topology can occur for various reasons, such as the addition of new equipment (e.g., the addition of a switch), the removal of existing equipment (e.g., the removal of a server), or the change of network connections. The automatic path collection module can monitor the network in real time to continuously monitor the current status of the network, and detect and identify changes in the topology. After this, the automatic path collection module can recalculate the condensation and optimize the path to select the optimal data transmission path. This can be updated to the data transmission module so that data can be transmitted through the new path.

자동 경로 수집 모듈은 서버 내 다수의 가상 IP 주소를 생성하고, 탐색(probe) 패킷을 전송한 후, 탐색 패킷이 전송된 경로 정보와 기존 경로 정보를 비교하여 최적의 데이터 전송 경로를 선정할 수 있다.The automatic route collection module can create multiple virtual IP addresses within the server, send probe packets, and then compare the route information to which the probe packets were sent with the existing route information to select the optimal data transmission route.

자동 경로 수집 모듈은 탐색 패킷이 전송된 경로가 새로운 경로라면, 새로운 경로를 경로 집합에 포함할 수 있다.The automatic route collection module can include a new route in the route set if the route along which the probe packet was sent is a new route.

데이터의 경로를 다중화하기 위한 src ip 선택에서, 스위치 장비마다 ip에 따른 겨로 선택 방식이 다르기 때문에 각 ip 주소가 어느 경로로 가는지 실제로 보내기 전까지 확인하기 어려울 수 있다. 따라서, 자동 경로 수집 모듈은 플랫폼 내 가용 가용 경로 수와 경로별 사용해야 하는 src ip 주소들의 집합을 자동으로 찾아줄 수 있다. 여기서, 자동 경로 수집 모듈은 서버 내 다수의 가상 IP를 생성하고, 경로 추적 기능을 통해 해당 가상 IP를 가진 탐색 패킷을 전송한 뒤, 해당 패킷이 전송된 경로 정보와 기존 경로 정보를 비교하여, 기존에 없던 새 경로인지 여부를 판단할 수 있다. 만약 새 경로라면, 자동 경로 수집 모듈은 기존 경로 집합에 추가하고, 해당 src ip 주소를 다중 경로 전송에 활용할 수 있다.In selecting a src IP for multiplexing the path of data, since the selection method according to the IP is different for each switch device, it may be difficult to confirm which path each IP address goes to before actually sending it. Therefore, the automatic route collection module can automatically find the number of available paths in the platform and the set of src IP addresses that should be used for each path. Here, the automatic route collection module creates a number of virtual IPs in the server, and transmits a search packet with the corresponding virtual IP through the path tracking function, and then compares the path information to which the corresponding packet was transmitted with the existing path information to determine whether it is a new path that did not exist before. If it is a new path, the automatic route collection module can add it to the existing path set and utilize the corresponding src IP address for multiple path transmission.

보다 구체적으로, 자동 경로 수집 모듈은 가상 IP 주소를 생성할 수 있다. 가상 IP 주소는 네트워크 상에서 다양한 데이터 전송 경로를 실험적으로 탐색하기 위해 사용될 수 있다. 가상 IP 들은 실제 네트워크 장치에 할당되지 않고 소프트웨어적으로 구현될 수 있다. 자동 경로 수집 모듈은 탐색 패킷을 전송할 수 있다. 탐색 패킷은 생성된 가상 IP 주소를 사용하여 네트워크를 통해 실제 네트워크 상황에서 어떤 경로가 사용될 지 파악할 수 있다. 자동 경로 수집 모듈은 경로 정보를 비교하고 분석할 수 있다. 자동 경로 수집 모듈은 탐색 패킷이 전송된 경로와 기존 경로들을 비교하여, 새로운 경로의 발견 및 새로운 경로의 유효성을 확인할 수 있다. 자동 경로 수집 모듈은 유효성이 확인된 새 경로를 기존의 경로 집합에 추가할 수 있다. 자동 경로 수집 모듈은 다중 경로 전송에 대한 src ip를 선택할 수 있다. 자동 경로 수집 모듈은 네트워크 스위치 장비마다 다를 수 있는 경로 선택을 고려하여, 각 경로에 대한 효과적인 src ip 주소를 선택할 수 있다. 자동 경로 수집 모듈은 전술한 과정을 주기적으로 실시하여, 경로 탐색 기능을 수행할 수 있다.More specifically, the automatic route collection module can generate a virtual IP address. The virtual IP address can be used to experimentally explore various data transmission paths on the network. The virtual IPs can be implemented in software without being assigned to an actual network device. The automatic route collection module can transmit a probe packet. The probe packet can use the generated virtual IP address to determine which path will be used in an actual network situation through the network. The automatic route collection module can compare and analyze the path information. The automatic route collection module can compare the path through which the probe packet is transmitted with existing paths to discover a new path and verify the validity of the new path. The automatic route collection module can add a new path whose validity has been verified to the existing path set. The automatic route collection module can select a src IP for multi-path transmission. The automatic route collection module can select an effective src IP address for each path by considering the path selection that may be different for each network switch device. The automatic route collection module can perform a path search function by periodically performing the above-mentioned process.

데이터 전송 모듈은 자동 경로 수집 모듈에 의해 선택된 최적의 데이터 전송 경로들을 통해 데이터를 전송할 수 있다.The data transmission module can transmit data through optimal data transmission paths selected by the automatic path collection module.

동적 데이터 분류 모듈은 데이터 전송 모듈을 실시간으로 모니터링하여, 최적의 전송 경로를 동적으로 재조정할 수 있다. 동적 데이터 분류 모듈은 네트워크 트래픽 패턴, 대역폭 사용량 또는 지연 시간 등을 실시간으로 모니터링하여 네트워크의 현재 상태를 파악할 수 있다.The dynamic data classification module can monitor the data transmission module in real time and dynamically readjust the optimal transmission path. The dynamic data classification module can monitor network traffic patterns, bandwidth usage, or delay time in real time to understand the current status of the network.

동적 데이터 분류 모듈은 데이터 전송 모듈의 네트워크 대역폭과 전송 지연을 감지하여, 최적의 데이터 전송 경로를 동적으로 재조정할 수 있다. 동적 데이터 분류 모듈은 네트워크 혼잡 상태나 대역폭의 변화를 감지하면, 자체적으로 최적의 데이터 전송 경로를 재조정할 수 있고, 자동 경로 수집 모듈과 연계하여 최적의 데이터 전송 경로를 조정할 수도 있다.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 changes in network congestion or bandwidth, it can readjust the optimal data transmission path on its own, and can also adjust the optimal data transmission path in conjunction with the automatic path collection module.

동적 데이터 분류 모듈은 최적의 데이터 전송 경로들에 대한 성능 지표를 모니터링하여 경로별 데이터 전송량을 조절하고, 최적의 데이터 전송 경로들의 전송 성능을 최적화할 수 있다.The dynamic data classification module can monitor performance indicators for optimal data transmission paths to adjust the amount of data transmitted per path and optimize the transmission performance of optimal data transmission paths.

동적 데이터 분류 모듈은 네트워크 상황이 좋지 않아 가용 대역폭이 부족한 상황에서, 데이터의 크기에 따라 경로를 다중화할 수 있다. 예를 들어, 같은 크기의 데이터라도, 네트워크 상황이 좋으면 단일 경로로 보낼 수 있으나, 네트워크 상황이 좋지 않으면 경로를 다중화하여 데이터를 여러 개의 작은 데이터로 분할하여 전송해야 할 수 있다. 동적 데이터 분류 모듈은 아래 수학식 1과 같은 방식을 통해, 경로 다중화 여부를 결정할 수 있다. 동적 데이터 분류 모듈의 경로 다중화 여부를 결정하는 방법은 기재된 수학식에 한정되는 것은 아니고, 다양한 수학적 방식이 적용될 수 있다.The dynamic data classification module can multiplex paths according to the size of the data when the network conditions are poor and the available bandwidth is insufficient. For example, even for data of the same size, if the network conditions are good, it can be sent through a single path, but if the network conditions are poor, the paths may need to be multiplexed to divide the data into several small pieces and transmit them. The dynamic data classification module can determine whether to multiplex paths using the method of the mathematical expression 1 below. The method of determining whether to multiplex paths of the dynamic data classification module is not limited to the mathematical expression described, and various mathematical methods may be applied.

[수학식 1][Mathematical formula 1]

size_th = max(1byte, 1MB * (current_throughput / max_throughput)size_th = max(1byte, 1MB * (current_throughput / max_throughput)

동적 데이터 분류 모듈은 네트워크의 현재 처리량 대비 최대 처리량의 비율에 따라 데이터 분할의 기준값(size_th)을 동적으로 설정할 수 있다. 네트워크의 성능이 저하될 경우(예: 현재 처리량이 최대 처리량에 비해 낮을 경우), 데이터 분할의 기준값을 감소시켜 경로 다중화를 더 적극적으로 활용할 수 있다. 예를 들어, 네트워크 혼잡 시 기준값(예: 1MB에서 0.5MB) 값을 줄여, 더 작은 크기의 데이터를 다중 경로로 전송하여 네트워크 혼잡을 완화시킬 수 있다. 즉, 다중 경로 전송 장치가 이전에는 1MB 이상의 크기를 가진 데이터를 분할하여 다중 경로 전송을 하고 있었으나, 네트워크 상태 이상이 발생하면 동적 데이터 분류 장치가 기준 값을 0.5MB로 감소시켜, 0.5MB 이상의 크기를 가진 데이터들을 분할하여 다중 경로 전송을 할 수 있다.The dynamic data classification module can dynamically set the threshold value (size_th) for data segmentation based on the ratio of the current throughput to the maximum throughput of the network. When the performance of the network deteriorates (e.g., when the current throughput is lower than the maximum throughput), the threshold value for data segmentation can be reduced to more actively utilize path multiplexing. For example, when the network is congested, the threshold value (e.g., from 1 MB to 0.5 MB) can be reduced to transmit smaller data through multiple paths, thereby alleviating network congestion. That is, while the multipath transmission device previously divided data with a size of 1 MB or more into multiple paths for multipath transmission, when a network status abnormality occurs, the dynamic data classification device can reduce the threshold value to 0.5 MB, thereby dividing data with a size of 0.5 MB or more into multiple paths for multipath transmission.

도 3은 일 실시예에 따른 다중 경로 전송 방법을 설명하기 위한 개략적인 흐름도이다.FIG. 3 is a schematic flowchart illustrating a multi-path transmission method according to one embodiment.

도 1 및 도 2를 참조한 설명은, 도 3에도 동일하게 적용될 수 있고, 중복되는 내용은 생략될 수 있다.The description referring to FIG. 1 and FIG. 2 can be equally applied to FIG. 3, and any duplicate content can be omitted.

도 3의 동작은 도시된 순서 및 방식으로 수행될 수 있지만, 도시된 실시예의 사상 및 범위를 벗어나지 않으면서 일부 동작의 순서가 변경되거나 일부 동작이 생략될 수 있다. 도 3에 도시된 다수의 동작은 병렬로 또는 동시에 수행될 수 있다.The operations of FIG. 3 may be performed in the order and manner illustrated, but the order of some operations may be changed or some operations may be omitted without departing from the spirit and scope of the illustrated embodiment. A plurality of operations illustrated in FIG. 3 may be performed in parallel or simultaneously.

설명의 편의를 위해, 단계들(310 내지 340)은 도 2에 도시된 다중 경로 전송 장치(200)를 사용하여 수행되는 것으로 기술된다. 그러나 이 단계들(310 내지 340)은 어떤 다른 적절한 전자 기기를 통해, 그리고 어떤 적절한 시스템 내에서도 사용될 수 있을 것이다.For convenience of explanation, steps (310 to 340) are described as being performed using the multi-path transmission device (200) illustrated in FIG. 2. However, these steps (310 to 340) may be utilized via any other suitable electronic device and within any suitable system.

단계(310)에서, 다중 경로 전송 장치는 서로 다른 라이브러리들을 통합할 수 있다. 예를 들어, 다중 경로 전송 장치는 NCCL 내에서 결정되는 사용할 GPU 수 및 IP 정보를 RDMA API 라이브러리로 전달하여, 멀티 GPU 데이터 전송을 최적화할 수 있다. 다중 경로 전송 장치는 데이터의 크기가 임계값 이상인 경우에만 상기 데이터를 분할하여 각각 다른 경로로 전송할 수 있다.In step (310), the multi-path transmission device can integrate different libraries. For example, the multi-path 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 multi-path transmission device can divide the data and transmit it through different paths only when the size of the data is greater than or equal to a threshold value.

단계(320)에서, 다중 경로 전송 장치는 플랫폼 내에서 사용 가능한 데이터 전송 경로들을 자동으로 탐지 및 수집하고, 사용 가능한 데이터 전송 경로들 중 최적의 데이터 전송 경로들을 선정하여 경로 집합을 생성할 수 있다. 예를 들어, 다중 경로 전송 장치는 네트워크 토폴로지 변화를 실시간으로 감지하여, 경로 탐색 기능을 수행할 수 있다. 다중 경로 전송 장치는 서버 내 다수의 가상 IP 주소를 생성하고, 탐색 패킷을 전송한 후, 탐색 패킷이 전송된 경로와 기존 경로 정보를 비교하여 최적의 데이터 전송 경로를 선정할 수 있다. 다중 경로 전송 장치는 탐색 패킷이 전송된 경로가 새로운 경로라면, 새로운 경로를 경로 집합에 포함할 수 있다.In step (320), the multi-path transmission device can automatically detect and collect available data transmission paths within the platform, and select optimal data transmission paths among the available data transmission paths to generate a path set. For example, the multi-path transmission device can detect a network topology change in real time to perform a path search function. The multi-path transmission device can generate a plurality of virtual IP addresses within the server, transmit a search packet, and then compare the path through which the search packet was transmitted with existing path information to select an optimal data transmission path. If the path through which the search packet was transmitted is a new path, the multi-path transmission device can include the new path in the path set.

단계(330)에서, 다중 경로 전송 장치는 최적의 데이터 전송 경로들을 통해 데이터를 전송할 수 있다.In step (330), the multi-path transmission device can transmit data through optimal data transmission paths.

단계(340)에서, 다중 경로 전송 장치는 데이터 전송을 실시간으로 모니터링하여, 최적의 데이터 전송 경로를 동적으로 재조정할 수 있다. 예를 들어, 다중 경로 전송 장치는 데이터 전송 모듈의 네트워크 대역폭과 전송 지연을 감지하여, 최적의 데이터 전송 경로를 동적으로 재조정할 수 있다. 다중 경로 전송 장치는 최적의 데이터 전송 경로들에 대한 성능 지표를 모니터링하여, 경로별 데이터 전송량을 조절하고, 최적의 데이터 전송 경로들의 전송 성능을 최적화할 수 있다.In step (340), the multi-path transmission device can monitor data transmission in real time and dynamically readjust the optimal data transmission path. For example, the multi-path transmission device can detect the network bandwidth and transmission delay of the data transmission module and dynamically readjust the optimal data transmission path. The multi-path transmission device can monitor performance indicators for the optimal data transmission paths and adjust the data transmission amount for each path and optimize the transmission performance of the optimal data transmission paths.

도 4는 일 실시예에 따른 전자 장치의 블록도를 도시한 도면이다.FIG. 4 is a block diagram illustrating an electronic device according to one embodiment.

도 4의 하나 이상의 블록들 및 블록들의 조합은 특정 기능을 수행하는 특수 목적 하드웨어 기반 컴퓨터, 또는 특수 목적 하드웨어 및 컴퓨터 명령들의 조합에 의해 구현될 수 있다. 도 1 내지 도 3를 참조하여 설명한 내용은 도 4에 동일하게 적용될 수 있다. 예를 들어, 일 실시예에 따른 전자 장치(400)는 다중 경로 전송 장치(200)을 포함할 수 있다. One or more of the blocks and combinations of blocks of FIG. 4 may be implemented by a special purpose hardware-based computer performing a specific function, or a combination of special purpose hardware and computer instructions. The contents described with reference to FIGS. 1 to 3 may be equally applied to FIG. 4. For example, an electronic device (400) according to one embodiment may include a multi-path transmission device (200).

도 4와 같이, 전자 장치(400)는 메모리(410) 및 프로세서(420)를 포함할 수 있다. 전자 장치(400)는 통신 모듈을 더 포함할 수 있고, 통신 모듈은 전송부 및 수신부를 포함할 수 있다.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 transmitter and a receiver.

일 실시예에 따른 전자 장치(400)는 메모리(410) 및 시스템 버스 또는 다른 적절한 회로를 통해 메모리(410)와 연결된 프로세서(420)를 포함할 수 있다.An electronic device (400) according to one embodiment may include a memory (410) and a processor (420) connected to the memory (410) via a system bus or other suitable circuitry.

전자 장치(400)는 메모리(410)에 프로그램 코드를 저장할 수 있다. 일 실시예에 따른 메모리(410)는 로컬 메모리 또는 하나 이상의 대용량 저장 장치들(bulk storage devices)과 같은 하나 이상의 물리적 메모리 장치들을 포함할 수 있다. 이 때, 로컬 메모리는 RAM(Random Access Memory) 또는 프로그램 코드를 실제로 실행하는 동안 일반적으로 사용되는 다른 휘발성 메모리 장치를 포함할 수 있다. 대용량 저장 장치는 HDD(Hard Disk Drive), SSD(Solid State Drive) 또는 다른 비휘발성 메모리 장치로 구현될 수 있다.The electronic device (400) may store program code in memory (410). The memory (410) according to one embodiment 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 a random access memory (RAM) or other volatile memory device that is generally used while actually executing the program code. The bulk storage device may be implemented as a hard disk drive (HDD), a solid state drive (SSD), or other non-volatile memory device.

메모리(410)에 저장된 실행 가능한 프로그램 코드가 전자 장치(400)에 의해 실행됨에 따라, 프로세서(420)에 의해 본 개시에 기재된 다양한 동작들을 수행할 수 있다. 예를 들어, 메모리(410)는 프로세서(420)가 도 1 내지 3에 기재된 하나 이상의 동작을 수행하도록 하기 위한 프로그램 코드를 저장할 수 있다.As the executable program code stored in the 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, the memory (410) can store program code for causing the processor (420) to perform one or more operations described in FIGS. 1 to 3.

구현되는 장치의 특정 유형에 따라, 전자 장치(400)는 도시된 구성 요소보다 적은 구성 요소들 또는 도 4에 도시되지 않은 추가적인 구성 요소들을 포함할 수 있다. 또한, 하나 이상의 구성 요소들은 다른 구성 요소에 포함될 수 있고, 그렇지 않으면 다른 구성 요소의 일부를 형성할 수 있다.Depending on the particular type of device being implemented, the electronic device (400) may include fewer components than those illustrated or additional components not illustrated in FIG. 4. Additionally, one or more of the components may be incorporated into, or otherwise form part of, another component.

일 실시예에 따른 프로세서(420)는 전자 장치(400)의 동작들을 제어하기 위한 전반적인 제어 기능들을 수행하는 하드웨어 구성이다. 예를 들어, 프로세서(420)는 전자 장치(400) 내의 메모리(410)에 저장된 프로그램들을 실행함으로써, 전자 장치(400)를 전반적으로 제어할 수 있다. 프로세서(420)는 전자 장치(400) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor), NPU(neural processing unit) 등으로 구현될 수 있으나, 이에 제한되지 않는다.The processor (420) according to one embodiment is a hardware configuration that performs overall control functions for controlling operations of the electronic device (400). For example, the processor (420) may control the electronic device (400) overall by executing programs stored in the memory (410) within the electronic device (400). The processor (420) may be implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application processor (AP), a neural processing unit (NPU), etc., provided within the electronic device (400), but is not limited thereto.

프로세서(420)는 서로 다른 라이브러리들을 통합하고, 플랫폼 내에서 사용 가능한 데이터 전송 경로들을 자동으로 탐지 및 수집하고, 사용 가능한 데이터 전송 경로들 중 최적의 데이터 전송 경로들을 선정하여 경로 집합을 생성하고, 최적의 데이터 전송 경로들을 통해 데이터를 전송하고, 데이터 전송을 실시간으로 모니터링하여, 최적의 데이터 전송 경로를 동적으로 재조정할 수 있다.The processor (420) can integrate different libraries, automatically detect and collect data transmission paths available 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 data transmission in real time to dynamically readjust the optimal data transmission path.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components 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 instructions and responding to them. The processing device may execute an operating system (OS) and software applications running on the OS. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of the software. For ease of understanding, the processing device is sometimes described as being used alone, but those skilled in the art will appreciate that the processing device may include multiple processing elements and/or multiple types of processing elements. For example, a processing device may include multiple processors, or a processor and a controller. Other processing configurations, such as parallel processors, are also possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing device to perform a desired operation or may independently or collectively command the processing device. The 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 waves, for interpretation by the processing device or for providing instructions or data to the processing device. The software may also be distributed over network-connected computer systems and stored or executed in a distributed manner. The software and data may be stored on a computer-readable recording medium.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program commands that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program commands, data files, data structures, etc., alone or in combination, and the program commands recorded on the medium may be those specially designed and configured for the embodiment or may be those known to and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program commands such as ROMs, RAMs, flash memories, etc. Examples of program commands include not only machine language codes generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter, etc.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with limited drawings as described above, those skilled in the art can apply various technical modifications and variations based on them. For example, even if the described techniques are performed in a different order than the described method, and/or the components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or are replaced or substituted by other components or equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also included in the scope of the claims described below.

Claims (11)

다중 경로 전송 장치에 있어서,In a multi-path transmission device, 서로 다른 라이브러리들을 통합하는 인터페이스 모듈;Interface module that integrates different libraries; 플랫폼 내에서 사용 가능한 데이터 전송 경로들을 자동으로 탐지 및 수집하고, 상기 사용 가능한 데이터 전송 경로들 중 최적의 데이터 전송 경로들을 선정하여 경로 집합을 생성하는 자동 경로 수집 모듈;An automatic path collection module that automatically detects and collects data transmission paths available within the platform and selects optimal data transmission paths among the available data transmission paths to create a path set; 상기 최적의 데이터 전송 경로들을 통해 데이터를 전송하는 데이터 전송 모듈; 및A data transmission module for transmitting data through the above optimal data transmission paths; and 상기 데이터 전송 모듈을 실시간으로 모니터링하여, 상기 최적의 데이터 전송 경로를 동적으로 재조정하는 동적 데이터 분류 모듈A dynamic data classification module that monitors the above data transmission module in real time and dynamically readjusts the optimal data transmission path. 을 포함하는, 다중 경로 전송 장치.A multi-path transmission device comprising: 제1항에 있어서,In the first paragraph, 상기 서로 다른 라이브러리들은The above different libraries are NCCL(NVIDIA Collective Communications Library) 및 RDMA(Remote Direct Memory Access) API(Application Programming Interface) 라이브러리NVIDIA Collective Communications Library (NCCL) and Remote Direct Memory Access (RDMA) Application Programming Interface (API) libraries 를 포함하고,Including, 상기 인터페이스 모듈은The above interface module 상기 NCCL 내에서 결정되는 사용할 GPU 수 및 IP 정보를 상기 RDMA API 라이브러리로 전달하여, 멀티 GPU 데이터 전송을 최적화하는, 다중 경로 전송 장치.A multi-path transmission device that optimizes multi-GPU data transmission by transmitting the number of GPUs to be used and IP information determined within the above NCCL to the above RDMA API library. 제2항에 있어서,In the second paragraph, 상기 인터페이스 모듈은The above interface module 데이터의 크기가 임계값 이상인 경우에만 상기 데이터를 분할하여 각각 다른 경로로 전송하는, 다중 경로 전송 장치.A multi-path transmission device that divides the data and transmits it through different paths only when the size of the data is greater than a threshold value. 제1항에 있어서,In the first paragraph, 상기 자동 경로 수집 모듈은The above automatic route collection module 네트워크 토폴로지 변화를 실시간으로 감지하여, 경로 탐색 기능을 수행하는, 다중 경로 전송 장치.A multi-path transmission device that detects network topology changes in real time and performs a path search function. 제1항에 있어서,In the first paragraph, 상기 자동 경로 수집 모듈은The above automatic route collection module 서버 내 다수의 가상 IP 주소를 생성하고, 탐색 패킷을 전송한 후, 상기 탐색 패킷이 전송된 경로 정보와 기존 경로 정보를 비교하여 상기 최적의 데이터 전송 경로를 선정하는, 다중 경로 전송 장치.A multi-path transmission device that creates multiple virtual IP addresses within a server, transmits a search packet, and then compares the route information along which the search packet was transmitted with existing route information to select the optimal data transmission route. 제5항에 있어서,In paragraph 5, 상기 자동 경로 수집 모듈은The above automatic route collection module 상기 탐색 패킷이 전송된 경로가 새로운 경로라면, 상기 새로운 경로를 상기 경로 집합에 포함하는, 다중 경로 전송 장치.A multi-path transmission device that includes the new path in the path set if the path along which the above search packet is transmitted is a new path. 제1항에 있어서,In the first paragraph, 상기 동적 데이터 분류 모듈은The above dynamic data classification module 상기 데이터 전송 모듈의 네트워크 대역폭과 전송 지연을 감지하여, 상기 최적의 데이터 전송 경로를 동적으로 재조정하는, 다중 경로 전송 장치.A multi-path transmission device that detects the network bandwidth and transmission delay of the above data transmission module and dynamically readjusts the optimal data transmission path. 제1항에 있어서,In the first paragraph, 상기 동적 데이터 분류 모듈은The above dynamic data classification module 상기 최적의 데이터 전송 경로들에 대한 성능 지표를 모니터링하여, 경로별 데이터 전송량을 조절하고, 상기 최적의 데이터 전송 경로들의 전송 성능을 최적화하는, 다중 경로 전송 장치.A multi-path transmission device that monitors performance indicators for the above optimal data transmission paths, adjusts the data transmission amount for each path, and optimizes the transmission performance of the above optimal data transmission paths. 전자 장치에 있어서,In electronic devices, 인스트럭션들을 저장하는 메모리; 및Memory for storing instructions; and 프로세서Processor 를 포함하고Including 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때, 상기 전자 장치로 하여금,The above instructions, when executed by the processor, cause the electronic device to: 서로 다른 라이브러리들을 통합하고,Integrate different libraries, 플랫폼 내에서 사용 가능한 데이터 전송 경로들을 자동으로 탐지 및 수집하고, 상기 사용 가능한 데이터 전송 경로들 중 최적의 데이터 전송 경로들을 선정하여 경로 집합을 생성하고,Automatically detects and collects data transmission paths available within the platform, selects optimal data transmission paths among the available data transmission paths, and creates a set of paths. 상기 최적의 데이터 전송 경로들을 통해 데이터를 전송하고,Transmitting data through the above optimal data transmission paths, 상기 데이터 전송을 실시간으로 모니터링하여, 상기 최적의 데이터 전송 경로를 동적으로 재조정하도록 하는, 전자 장치.An electronic device that monitors the above data transmission in real time and dynamically readjusts the optimal data transmission path. 다중 경로 전송 방법에 있어서,In a multi-path transmission method, 서로 다른 라이브러리들을 통합하는 단계;Steps to integrate different libraries; 플랫폼 내에서 사용 가능한 데이터 전송 경로들을 자동으로 탐지 및 수집하고, 상기 사용 가능한 데이터 전송 경로들 중 최적의 데이터 전송 경로들을 선정하여 경로 집합을 생성하는 단계;A step of automatically detecting and collecting data transmission paths available within a platform, and selecting optimal data transmission paths among the available data transmission paths to generate a path set; 상기 최적의 데이터 전송 경로들을 통해 데이터를 전송하는 단계; 및A step of transmitting data through the above optimal data transmission paths; and 상기 데이터 전송을 실시간으로 모니터링하여, 상기 최적의 데이터 전송 경로를 동적으로 재조정하는 단계A step of monitoring the above data transmission in real time and dynamically readjusting the optimal data transmission path. 를 포함하는, 다중 경로 전송 방법.A multi-path transmission method comprising: 하드웨어와 결합되어 제10항의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.A computer program stored on a computer-readable recording medium for executing the method of claim 10 in combination with hardware.
PCT/KR2024/010902 2023-12-26 2024-07-26 Multipath transmission apparatus and method Pending WO2025143409A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020230191742A KR20250100303A (en) 2023-12-26 2023-12-26 Apparatus and method for transmission of multiple path
KR10-2023-0191742 2023-12-26

Publications (1)

Publication Number Publication Date
WO2025143409A1 true WO2025143409A1 (en) 2025-07-03

Family

ID=96219264

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2024/010902 Pending WO2025143409A1 (en) 2023-12-26 2024-07-26 Multipath transmission apparatus and method

Country Status (2)

Country Link
KR (1) KR20250100303A (en)
WO (1) WO2025143409A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212190B1 (en) * 1997-06-23 2001-04-03 Sun Microsystems, Inc. Method and system for generating data packets on a heterogeneous network
US20080155107A1 (en) * 2006-12-20 2008-06-26 Vivek Kashyap Communication Paths From An InfiniBand Host
US20150200802A1 (en) * 2014-01-15 2015-07-16 Dell Products, L.P. Systems and methods for improved fault tolerance in solicited information handling systems
US20160028819A1 (en) * 2014-07-25 2016-01-28 Unisys Corporation Data path selection for network transfer using high speed rdma or non-rdma data paths
US20230139774A1 (en) * 2021-10-31 2023-05-04 S.C Correct Networks S.R.L. Method for verifying data center network performance

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212190B1 (en) * 1997-06-23 2001-04-03 Sun Microsystems, Inc. Method and system for generating data packets on a heterogeneous network
US20080155107A1 (en) * 2006-12-20 2008-06-26 Vivek Kashyap Communication Paths From An InfiniBand Host
US20150200802A1 (en) * 2014-01-15 2015-07-16 Dell Products, L.P. Systems and methods for improved fault tolerance in solicited information handling systems
US20160028819A1 (en) * 2014-07-25 2016-01-28 Unisys Corporation Data path selection for network transfer using high speed rdma or non-rdma data paths
US20230139774A1 (en) * 2021-10-31 2023-05-04 S.C Correct Networks S.R.L. Method for verifying data center network performance

Also Published As

Publication number Publication date
KR20250100303A (en) 2025-07-03

Similar Documents

Publication Publication Date Title
US12166666B2 (en) Resilient network communication using selective multipath packet flow spraying
US12368790B2 (en) Multi-path transport design
US8806025B2 (en) Systems and methods for input/output virtualization
JP3783017B2 (en) End node classification using local identifiers
JP6169251B2 (en) Asymmetric packet flow in distributed load balancers
US8180949B1 (en) Resource virtualization switch
US5898826A (en) Method and apparatus for deadlock-free routing around an unusable routing component in an N-dimensional network
EP1706824B1 (en) Method and apparatus for shared i/o in a load/store fabric
US20130148546A1 (en) Support for converged traffic over ethernet link aggregation (lag)
US8270295B2 (en) Reassigning virtual lane buffer allocation during initialization to maximize IO performance
US20120218905A1 (en) Method and apparatus for a shared i/o network interface controller
US20090080428A1 (en) System and method for scalable switch fabric for computer network
US20060080416A1 (en) Virtual logical unit state maintenance rules engine
US6941252B2 (en) Striping data frames across parallel fibre channel links
CN113994321A (en) Mapping NVME packets on a fabric using virtual output queues
KR20240004315A (en) Network-attached MPI processing architecture within SMARTNICs
US10423333B2 (en) System and method for scalable processing of abort commands in a host bus adapter system
US7346064B2 (en) Routing packets in packet-based input/output communications
WO2025143409A1 (en) Multipath transmission apparatus and method
US8055818B2 (en) Low latency queue pairs for I/O adapters
US7609710B1 (en) Method and system for credit management in a networking system
CN119299367B (en) Message forwarding systems, devices and clusters
US20250202832A1 (en) Tunneling of Peripheral-Bus Protocol Traffic over Coherent Fabric
Ji et al. The Realization of High Speed Data Transmission and Processing of Space-Based TT&C Network
WO2017138693A1 (en) Device and method for interest parallel forwarding using multiple paths in content-centric networking

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

Country of ref document: EP

Kind code of ref document: A1