KR102403379B1 - 다중 gpu간 데이터 공유 방법 - Google Patents

다중 gpu간 데이터 공유 방법 Download PDF

Info

Publication number
KR102403379B1
KR102403379B1 KR1020170116278A KR20170116278A KR102403379B1 KR 102403379 B1 KR102403379 B1 KR 102403379B1 KR 1020170116278 A KR1020170116278 A KR 1020170116278A KR 20170116278 A KR20170116278 A KR 20170116278A KR 102403379 B1 KR102403379 B1 KR 102403379B1
Authority
KR
South Korea
Prior art keywords
data
gpu
transmitted
devices
cpu
Prior art date
Application number
KR1020170116278A
Other languages
English (en)
Other versions
KR20190029123A (ko
Inventor
이동학
Original Assignee
주식회사 코코링크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 코코링크 filed Critical 주식회사 코코링크
Priority to KR1020170116278A priority Critical patent/KR102403379B1/ko
Publication of KR20190029123A publication Critical patent/KR20190029123A/ko
Application granted granted Critical
Publication of KR102403379B1 publication Critical patent/KR102403379B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Abstract

다중 GPU간 데이터 공유 방법에서, 임의의 디바이스에서 자료 송신 수요가 발생하고 나머지 모든 디바이스가 수신해야 하는 상황에서 기존에는 이러한 형태의 자료 수급 수요가 발생되지 않도록 알고리즘을 구성하나, 나머지 디바이스의 수효에 해당하는 회수의 자료 전송을 수행하는 방법으로 프로그래밍 한다.

Description

다중 GPU간 데이터 공유 방법{DATA SHARING METHOD BETWEEN MULTI-GPUS}
본 발명은 다수의 피시아이익스프레스 기반의 지피유가 장착된 컴퓨터에서 다중의 지피유간 데이터를 공유하는 방법으로 상세하게는 다수의 지피유가 장착된 컴퓨터에서 지피유를 포함한 모든 디바이스들이 피시아이익스프레스 구조로 연결되어 있고 피시아이익스프레스 구조는 일대일 통신만 지원되는데, 이더넷의 유용한 일대다 통신의 모사기능을 최적의 성능으로 구현하여 각 디바이스 간에 데이터를 유통하는데 효율적인 다중 GPU간 데이터 공유 방법에 관한 것이다.
피시아이익스프레스 버스는 일반적인 병렬접속 개념의 버스 시스템이 아니라 전형적인 버스 구조인 피시아이버스를 고속의 직렬접속을 단독 또는 다수 병합된 형태로 재구성한 이더넷과 같은 형태인 일대일 직렬접속 시스템이다. 전형적인 버스시스템에서는 버스에 접속된 모든 디바이스가 한 디바이스에서는 발신하고 모든 디바이스는 수신하는 형태로 구성되어 있다. 수신을 하는 해당 디바이스는 디바이스 지정자 혹은 디바이스 지정자가 해당 디바이스를 지정하는 경우 수신정보를 수용하는 형태로 운영되는데 피시아이익스프레스 버스의 경우는 일반적인 직렬통신의 방법인 접속된 대응 디바이스에 정보를 일대일로 송신하는 방식으로 구성되어있다. 이더넷의 경우는 접속을 중계하는 스위치가 다중수신이 가능하도록 하는 기능이 구현되어 있어 접속된 모든 디바이스가 동시에 특정 디바이스에서 발송된 정보를 수신할 수 있으나 피시아이익스프레스 버스는 이러한 다중수신 기능이 구비되어 있지 아니하다. 그러한 이유로 계산처리를 해야 하는 지피유는 분산처리연산 과정에서 흔히 요구되는 다중수신의 기능이 없어 정보 수신의 지연에 따른 시스템 전체의 성능이 저하되는 현상이 나타난다.
피시아이익스프레스 버스에서는 다중수신의 기능이 없어 브로드캐스팅 방법으로 자료를 전달하여야 하는 요구에 대한 대응 방법이 없다. 이로서 심각한 성능 저하의 현상이 나타나 한 대의 컴퓨터에 다수의 지피유를 장착하는 방식이 배척되고 있다.
또한 일반적으로 디바이스 간에 자료를 전송할 때 자료의 전송을 준비하는 단계로 이해할 수 있는 초기지연(Latency)의 문제가 있는데 피시아이익스프레스 버스의 경우 전송속도가 매우 높은데 비하여 초기지연이 상대적으로 길어 성능을 저하하는 요소가 된다.
이에 본 발명은 상기 문제를 해결하기 위한 다중 GPU간 데이터 공유 방법에 관한 것이다.
한 대의 컴퓨터에 많은 지피유를 장착할수록 성능 대비 비용의 효율이 높아지는데, 피시아이익스프레스 버스로 다수의 지피유가 장착된 컴퓨터에서 각각의 지피유에 분산처리연산을 해야 하는 프로그램의 경우, 동시에 다수의 지피유에서 참조해야 할 자료가 있는 경우, 자료의 전달 기전이 부적절할 경우에는 정보 수신 지연에 따른 시스템 전체 성능에 상당한 저하가 발생한다. 또한 자료의 전달 방법에 따라 피시아이익스프레스 버스의 성능을 최대로 활용할 수 있는 반면, 제 성능을 나타내지 않을 수도 있다.
본 발명은, 각 지피유 간의 데이터를 유통하기 위한 유사 다중수신 기능의 방법론과 이에서 요구될 수 있는 최적의 변수 구조 방법론을 제공한다. 초기지연이 상대적으로 긴 피시아이익스프레스 버스에서 변수 구조 방법론은 변수 단일화 과정으로 매크로함수를 사용하여 각 단일 변수들을 하나의 배열 변수로, 다양한 배열 변수를 하나의 배열 변수로 단일화하는 과정을 포함한다.
본 발명은 또한 다수의 지피유 간의 다중 수신 기능을 실행하기 위해 순차적인 자료 전달방식을 적용하여 최소의 자료전달 횟수로 모든 디바이스가 자료를 전달받게 하는 알고리즘적 방법을 고안한다.
다중수신 기능이 구현된 이더넷과 같은 일반적인 직렬통신에 비해서는 다소 많은 시간이 소요되나 피시아이익스프레스 통신에서 일대일로 다수의 디바이스에 자료를 발송하는 기존의 방법에 비해서는 50~90 퍼센트 개선된 성능을 구현 할 수 있다.
도 1은 한 개의 상위 디바이스와 다수의 하위 디바이스가 있는 구조로 일반적인 구조이다.
도 2는 하나의 스위치를 구성하여 한 개의 디바이스가 나머지 하위 디바이스에 정보를 전달하는 개선된 구조이다.
도 3은 다중분기 스위치를 구성하여 다수의 디바이스를 장착할 수 있게 한 개선된 최신의 구조이다.
도 4는 피시아이익스프레스 버스의 초기 지연을 최소화하여 자료를 전송하는 흐름도이다.
임의의 디바이스에서 자료 송신 수요가 발생하고 나머지 모든 디바이스가 수신해야 하는 상황에서 기존에는 이러한 형태의 자료 수급 수요가 발생되지 않도록 알고리즘을 구성하나, 자료를 송신하는 디바이스를 제외한 나머지 디바이스의 수효에 해당하는 회수의 자료 전송을 수행하는 방법으로 프로그래밍 한다.
초기 지연이 상대적으로 긴 피시아이익스프레스 버스에서 빈번한 자료 전송은 초기 지연을 자주 발생시키고 이는 성능 저하의 요인이 된다. 자료 전송을 위해 여러 개의 단일 혹은 배열 변수들을 매크로 함수를 사용하여 하나의 배열 변수로 재구성하고 송신부에서는 자료 압축 단계를 거쳐 전송 성능을 극대화한다. 수신부에서는 자료 압축 해제 단계를 거쳐 수신한 자료를 활용하는 방법으로 피시아이익스프레스 버스에서의 성능을 최대로 높인다.

Claims (3)

  1. 한 개의 상위 디바이스와 다수의 하위 디바이스가 있는 구조에서 데이터를 공유함에 있어,
    상위 디바이스에서 하위 디바이스로 자료를 전송하는 경우, 첫 단계에서는 상위 디바이스인 시피유에서 하위 디바이스 중 첫 번째인 지피유로 자료를 전송하고,
    제 2 단계에서는 시피유에서 2번 지피유로, 1번 지피유는 3번 지피유로 자료를 전송하고,
    제 3 단계에서는 시피유에서 4번 지피유로, 1번 지피유는 5번 지피유로, 2번 지피유는 6번 지피유로, 3번 지피유는 7번 지피유로 자료를 전송하고,
    제 4 단계에서는 시피유에서 8번 지피유로, 1번 지피유는 9번 지피유로, 2번 지피유는 10번 지피유로, 3번 지피유는 11번 지피유로, 4번 지피유는 12번 지피유로, 5번 지피유는 13번 지피유로, 6번 지피유는 14번 지피유로, 7번 지피유는 15번 지피유로 자료를 전송하고,
    제 5 단계에서는 시피유에서 16번 지피유로 자료를 전송하고,
    하위 디바이스끼리의 자료를 전송하는 경우에는 한 개의 하위 디바이스가 나머지 하위 디바이스에 자료를 전송하기 위해, 첫 단계에서는 하위 디바이스 중 첫 번째인 지피유에서 두 번째 지피유로 자료를 전송하고,
    제 2 단계에서는 1번 지피유에서 3번 지피유로, 2번 지피유는 4번 지피유로 자료를 전송하고,
    제 3 단계에서는 1번 지피유에서 5번 지피유로, 2번 지피유는 6번 지피유로, 3번 지피유에서 7번 지피유로, 4번 지피유는 8번 지피유로 자료를 전송하고,
    제 4 단계에서는 1번 지피유에서 9번 지피유로, 2번 지피유는 10번 지피유로, 3번 지피유에서 11번 지피유로, 4번 지피유는 12번 지피유로, 5번 지피유에서 13번 지피유로, 6번 지피유는 14번 지피유로, 7번 지피유에서 15번 지피유로, 8번 지피유는 16번 지피유로 자료를 전송하는 것을 특징으로 하는, 다중 GPU간 데이터 공유 방법.
  2. 병목 구간이 존재하는 다수의 스위치로 구성된 피시아이익스프레스 시스템에서 각 지피유 간의 데이터를 공유함에 있어, 첫 단계에서는 상위 디바이스인 시피유에서 하위 디바이스 중 첫 번째인 지피유로 자료를 전송하고,
    제 2 단계에서는 시피유에서 9번 지피유로, 1번 지피유는 5번 지피유로 자료를 전송하고,
    제 3 단계에서는 시피유에서 13번 지피유로, 하위 디바이스 중 같은 스위치 내에 존재하는 지피유끼리 1번 지피유는 2번 지피유로, 5번 지피유는 6번 지피유로, 9번 지피유는 10번 지피유로 자료를 전송하고,
    제 4 단계에서는 시피유에서 15번 지피유로, 하위 디바이스 중 같은 스위치 내에 존재하는 지피유끼리 1번 지피유는 3번 지피유로, 2번 지피유는 4번 지피유로, 5번 지피유는 7번 지피유로, 6번 지피유는 8번 지피유로, 9번 지피유는 11번 지피유로, 10번 지피유는 12번 지피유로, 13번 지피유는 14번 지피유로 자료를 전송하고,
    제 5 단계에서는 시피유에서 16번 지피유로 자료를 전송하는 것을 특징으로 하는, 다중 GPU간 데이터 공유 방법.
  3. 제 2항에 있어서,
    자료를 송신하기 전과 수신한 후에,
    매크로 함수를 이용한 자료 구조화, 배열변수 단일화 단계와 자료의 압축과 압축 해제 단계를 포함하는 것을 특징으로 하는 다중 GPU간 데이터 공유 방법.
KR1020170116278A 2017-09-12 2017-09-12 다중 gpu간 데이터 공유 방법 KR102403379B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170116278A KR102403379B1 (ko) 2017-09-12 2017-09-12 다중 gpu간 데이터 공유 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170116278A KR102403379B1 (ko) 2017-09-12 2017-09-12 다중 gpu간 데이터 공유 방법

Publications (2)

Publication Number Publication Date
KR20190029123A KR20190029123A (ko) 2019-03-20
KR102403379B1 true KR102403379B1 (ko) 2022-06-02

Family

ID=66036628

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170116278A KR102403379B1 (ko) 2017-09-12 2017-09-12 다중 gpu간 데이터 공유 방법

Country Status (1)

Country Link
KR (1) KR102403379B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542497A (ja) 2010-09-24 2013-11-21 インテル コーポレイション 計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有
JP5484305B2 (ja) 2009-12-31 2014-05-07 インテル・コーポレーション Cpu及びgpuの間のリソース共有
KR101564816B1 (ko) 2010-09-20 2015-10-30 퀄컴 인코포레이티드 다중-프로세서 컴퓨팅 플랫폼에서의 프로세서간 통신 기법들

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319349B2 (en) * 2013-06-20 2016-04-19 Micron Technology, Inc. Encapsulation enabled PCIE virtualisation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5484305B2 (ja) 2009-12-31 2014-05-07 インテル・コーポレーション Cpu及びgpuの間のリソース共有
KR101564816B1 (ko) 2010-09-20 2015-10-30 퀄컴 인코포레이티드 다중-프로세서 컴퓨팅 플랫폼에서의 프로세서간 통신 기법들
JP2013542497A (ja) 2010-09-24 2013-11-21 インテル コーポレイション 計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有

Also Published As

Publication number Publication date
KR20190029123A (ko) 2019-03-20

Similar Documents

Publication Publication Date Title
WO2016037554A1 (zh) 混合网络系统、通信方法和网络节点
US10020850B2 (en) Master reference for base station network interface sourced from distributed antenna system
CN104253767A (zh) 一种虚拟分片网络的实现方法及一种交换机
US10602532B2 (en) Wireless cross-connect switch
US20140052863A1 (en) Node Address Allocation
US20210075639A1 (en) Fractal tree structure-based data transmit device and method, control device, and intelligent chip
KR102403379B1 (ko) 다중 gpu간 데이터 공유 방법
CN101554020B (zh) 利用带有utp电缆的因特网提供移动通信服务的系统
CN103001836A (zh) 无需地址分配的串行通信方法和系统
CN106230913A (zh) 数据处理传输方法及装置
CN103532866A (zh) 虚拟机的流量控制方法和系统
RU2607251C2 (ru) Сеть трансляции информации и соответствующий узел сети
US9929979B2 (en) Scalable crosspoint switch
US20090256748A1 (en) Wireless distribution of data and control
CN201479160U (zh) Rs485信号分配及信号合并的装置
CN103744524A (zh) 一种新型kvm设计方法
CN104363116A (zh) 一种kvm级联共享方法
WO2017107413A1 (zh) 一种分形树结构通信结构、方法、控制装置及智能芯片
JP5876954B1 (ja) 端局装置及び端局装置の受信方法
US10673492B2 (en) Point-to-multipoint communication system in which automatic ID allocation is possible
US11082471B2 (en) Method and apparatus for bonding communication technologies
US10594607B2 (en) Switching apparatus, switching apparatus group, data transmission method, and computer system
KR101158020B1 (ko) 중계 전송 시스템 및 방법
CN105630729B (zh) 用于将主装置和从装置的信息信号转接至输出装置的转接装置
KR101187692B1 (ko) 직병렬분배 조명시스템 및 그의 제어방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right