KR20180131836A - 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법 - Google Patents

파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법 Download PDF

Info

Publication number
KR20180131836A
KR20180131836A KR1020170068445A KR20170068445A KR20180131836A KR 20180131836 A KR20180131836 A KR 20180131836A KR 1020170068445 A KR1020170068445 A KR 1020170068445A KR 20170068445 A KR20170068445 A KR 20170068445A KR 20180131836 A KR20180131836 A KR 20180131836A
Authority
KR
South Korea
Prior art keywords
shared memory
parameter
master
worker
request
Prior art date
Application number
KR1020170068445A
Other languages
English (en)
Other versions
KR102197247B1 (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 KR1020170068445A priority Critical patent/KR102197247B1/ko
Priority to US15/984,262 priority patent/US10990561B2/en
Publication of KR20180131836A publication Critical patent/KR20180131836A/ko
Application granted granted Critical
Publication of KR102197247B1 publication Critical patent/KR102197247B1/ko
Priority to US17/216,322 priority patent/US11487698B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법이 개시된다. 본 발명에 따른 파라미터 서버에 의해 수행되는 분산 딥러닝 파라미터 공유 방법은, 마스터 프로세스의 초기화 요청에 상응하도록 전역 가중치 파라미터를 초기화하는 단계, 로컬 가중치 파라미터를 상기 전역 가중치 파라미터로 업데이트한 후 딥러닝 트레이닝을 수행한 상기 워커 프로세스로부터, 학습된 로컬 그래디언트 파라미터를 입력받아 업데이트하는 단계, 상기 마스터 프로세스의 요청에 따라, 그래디언트 파라미터 누적을 연산하는 단계, 그리고 상기 하나 이상의 워커 프로세스의 상기 그래디언트 파라미터 누적을 이용하여 전역 가중치 파라미터를 계산한 상기 마스터 프로세스로부터, 상기 전역 가중치 파라미터를 입력받아 업데이트하는 단계를 포함한다.

Description

파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법{PARAMETER SERVER AND METHOD FOR SHARING DISTRIBUTED DEEP LEARNING PARAMETER USING THE SAME}
본 발명은 분산 딥러닝 프레임워크에서 분산 트레이닝되는 파라미터를 공유하는 기술에 관한 것으로, 특히 분산 딥러닝 프로세스들이 파라미터 서버의 물리 메모리를 공유 메모리 형태로 접근할 수 있도록 하여, 딥러닝 프로세스들 간 파라미터 공유를 가속화하는 기술에 관한 것이다.
딥러닝이란 사람의 신경세포(Biological Neuron)를 모사하여 기계가 학습하도록 하는 인공신경망(Artificial Neural Network) 기반의 기계 학습법을 의미한다. 최근, 딥러닝 기술은 이미지 인식, 음성 인식, 자연어 처리의 발전에 기여하며 주목 받고 있다. 그리고 오늘날의 딥러닝 모델들은 응용의 인식 성능을 높이기 위해 모델의 계층이 깊어지고(Deep), 특징(Feature)이 많아지는(Wide) 대규모 모델로 진화하고 있다.
그러나 대형화되는 딥러닝 모델과 대규모의 학습 데이터를 단일 머신에서 처리하기에는 한계가 있다. 이에, 대규모 분산 컴퓨팅 자원을 활용하려는 노력의 일환으로 딥러닝 분산 플랫폼 기술이 개발되고 있다.
딥러닝 분산 플랫폼에서는 분산 병렬 처리를 통하여 딥러닝 트레이닝 가속을 시도하는데, 분산 병렬 처리 방법으로 데이터 병렬 처리(Data Parallelism)와 모델 병렬 처리(Model Parallelism) 방법이 있다. 데이터 병렬 처리란 학습해야 하는 입력 데이터 집합을 다수의 컴퓨터들이 나누어 트레이닝하는 방법이고, 모델 병렬 처리란 딥러닝 모델을 나누어 다수의 컴퓨터들이 트레이닝하는 방법이다.
딥러닝 트레이닝 분산 병렬 처리 시에는 트레이닝의 대상이 되는 가중치와 특징값 등의 파라미터들을 모든 컴퓨터가 공유해야 한다. 파라미터를 공유하는 방법에는 각 컴퓨터들이 다른 모든 컴퓨터들에게 직접 파라미터를 전달하는 풀 메시(full mesh) 토폴로지 기반 공유 방법과 모든 분산 컴퓨터들이 공유 장소를 이용하여 파라미터를 읽고 쓰는 스타(star) 토톨로지 기반의 공유 방법이 있다. 그리고 대부분의 분산 플랫폼은 일반적으로 중앙 집중형 파라미터 공유 저장소(파라미터 서버)를 통해 파라미터를 교환하는 두 번째 방식을 선택하고 있다.
파라미터 공유 방법에서는 분산된 컴퓨터들이 각각 파라미터를 중앙 집중형으로 업데이트 하기 때문에 가중치를 갱신해야 하는 주기(일정 트레이닝 반복)마다 분산 트레이닝 중인 컴퓨터 간 파라미터 동기화가 필요하다. 동기식 업데이트의 경우는 딥러닝을 분산 처리하는 컴퓨터들의 일정 트레이닝 반복마다 파라미터를 파라미터 서버로 전송하여 분산 트레이닝된 파라미터를 통합한다.
반면, 비동기식 업데이트 방식은 파라미터 서버가 분산 컴퓨터들로부터 늦거나 빨리 도착하는 파라미터들의 동기를 맞추지 않고 트레이닝을 진행하는 방법이다. 비동기 방식은 동기식에 비해 정확성을 크게 희생시키지 않으면서 빠르게 트레이닝 할 수 있는 장점이 있다. 대부분의 분산 프레임워크들에서는 동기식 방법과 비동기식 방법을 모두 또는 선택적으로 제공하고 있다.
각 딥러닝 분산 플랫폼에서 파라미터 서버를 구현하는 방법으로는 마스터 역할을 하는 프로세스가 자신의 메모리에 마스터 파라미터를 저장하는 영역을 할당한다. 그리고 분산 트레이닝을 수행하는 워커(또는 슬레이브) 프로세스들이 통신 메시지 형태로 주기적으로 보내주는 파라미터로 마스터 파라미터를 업데이트 한 후 다시 워커 프로세스들에 업데이트된 마스터 파라미터를 배포하는 방식이 있다. Petuum, CNTK와 같은 분산 플랫폼은 파라미터 서버 전용 목적으로 개발된 분산 키-밸류 저장소를 이용하기도 한다.
종래 기술에 따르면, 파라미터 서버와 분산 컴퓨터간에 메시지 송수신 형태의 통신방법을 통해 파라미터를 교환한다. 그러나, 메시지 송수신 형태의 통신 방법으로 파라미터를 교환할 경우, 통신 오버헤드가 높고, CPU, GPU 등이 대기하는 시간이 길어지며, 이는 자원 사용률의 저하로 이어진다.
따라서, 통신 프로토콜로 대규모 파라미터를 송수신하는 기술의 한계를 극복하여, 추가적인 메모리 복사 및 프로토콜 처리 등의 통신 오버헤드를 대폭 경감하고, 통신 성능을 개선할 수 있는 파라미터 공유 기술의 개발이 필요하다.
한국 등록 특허 제10-1559089호, 2015년 10월 02일 공개(명칭: 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜)
본 발명의 목적은 분산 딥러닝 플랫폼에서 분산 트레이닝을 수행하는 프로세스들이 대규모 파라미터를 교환할 수 있도록 하는 것이다.
또한, 본 발명의 목적은 파라미터 서버와 분산 컴퓨터가 메시지 송수신 형태의 통신 방법으로 파라미터를 교환할 경우 발생하는 추가적인 메모리 복사 및 통신 오버헤드를 대폭 경감하는 것이다.
또한, 본 발명의 목적은 메시지 송수신 형태의 통신 방법으로 파라미터를 교환하는 방법에 비하여, 통신 성능을 개선하고, 파라미터 송수신 시 유휴 상태인 계산 자원의 이용률을 극대화하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 파라미터 서버에 의해 수행되는 분산 딥러닝 파라미터 공유 방법은 마스터 프로세스 및 워커 프로세스 중 적어도 어느 하나의 요청에 상응하도록, 공유 메모리를 생성 및 할당하는 단계, 상기 마스터 프로세스의 초기화 요청에 상응하도록, 상기 공유 메모리의 마스터 가중치 파라미터 영역을 초기화하는 단계, 상기 공유 메모리의 워커 로컬 가중치 파라미터 영역을 상기 마스터 가중치 파라미터의 값으로 업데이트하는 단계, 동기 방식으로 분산 딥러닝 트레이닝을 수행한 상기 워커 프로세스로부터, 학습된 워커 로컬 그래디언트 파라미터를 입력받아 그래디언트 파라미터 누적을 연산하는 단계, 상기 하나 이상의 워커 프로세스의 상기 그래디언트 파라미터 누적을 이용하여 마스터 가중치 파라미터를 계산한 상기 마스터 프로세스로부터, 상기 마스터 가중치 파라미터를 입력받아 상기 마스터 가중치 파라미터 영역을 업데이트하는 단계, 그리고 상기 분산 딥러닝 트레이닝의 수행이 완료된 후, 사용이 완료된 상기 공유 메모리를 해제 및 삭제하는 단계를 포함한다.
이때, 상기 공유 메모리를 생성 및 할당하는 단계는, 상기 마스터 프로세스로부터 파라미터용 원격 공유 메모리 생성 요청을 수신하는 단계, 상기 파라미터용 원격 공유 메모리 생성 요청에 상응하도록 공유 메모리를 생성하는 단계, 생성된 상기 공유 메모리에 상응하는 공유 메모리 생성키 및 접근 정보를 상기 마스터 프로세스로 전송하는 단계, 상기 마스터 프로세스로부터 이벤트 설정 요청을 수신하여, 상기 공유 메모리의 이벤트를 설정하는 단계, 상기 마스터 프로세스로부터 상기 공유 메모리 생성키를 전달받은 상기 워커 프로세스로부터, 공유 메모리 할당 요청을 수신하는 단계, 그리고 상기 공유 메모리를 할당하고, 할당된 상기 공유 메모리의 접근 정보를 상기 워커 프로세스로 전송하는 단계를 더 포함할 수 있다.
이때, 상기 공유 메모리를 해제 및 삭제하는 단계는, 상기 워커 프로세스로부터 공유 메모리 해제 요청을 수신하여, 상기 공유 메모리를 해제하는 단계, 상기 공유 메모리의 해제 완료 시 상기 마스터 프로세스로부터, 공유 메모리 삭제 요청을 수신하는 단계, 그리고 상기 공유 메모리 삭제 요청에 상응하도록 상기 공유 메모리를 삭제하는 단계를 더 포함할 수 있다.
이때, 상기 마스터 가중치 파라미터 영역의 업데이트를 적어도 어느 하나의 상기 워커 프로세스로 알리는 단계, 그리고 상기 그래디언트 파라미터 누적의 연산의 완료를 상기 마스터 프로세스로 알리는 단계를 더 포함할 수 있다.
이때, 상기 그래디언트 파라미터 누적을 연산하는 단계는, 상기 분산 딥러닝 트레이닝을 수행한 상기 워커 프로세스로부터, 학습된 워커 로컬 그래디언트 파라미터를 입력받아 상기 공유 메모리에 저장하는 단계, 상기 워커 프로세스로부터 그래디언트 파라미터 누적 연산을 요청받는 단계, 요청에 상응하는 상기 워커 로컬 그래디언트 파라미터를 마스터 그래디언트 파라미터로 누적 연산하는 단계, 그리고 상기 누적 연산의 완료를 상기 마스터 프로세스로 알리는 단계를 포함한다.
본 발명의 또 다른 실시예에 따른 파라미터 서버에 의해 수행되는 분산 딥러닝 파라미터 공유 방법은 마스터 프로세스 및 워커 프로세스 중 적어도 어느 하나의 요청에 상응하도록, 공유 메모리를 생성 및 할당하는 단계, 상기 마스터 프로세스의 초기화 요청에 상응하도록, 상기 공유 메모리의 마스터 가중치 파라미터 영역을 초기화하는 단계, 하나 이상의 상기 워커 프로세스에 상응하는 상기 공유 메모리의 워커 로컬 가중치 파라미터 영역을 업데이트 하는 단계, 분산 딥러닝 트레이닝을 수행한 상기 하나 이상의 워커 프로세스로부터, 워커 그래디언트 파라미터를 수신하는 단계, 상기 하나 이상의 워커 프로세스로부터 수신한 마스터 가중치 파라미터의 업데이트 요청에 상응하도록, 상기 마스터 가중치 파라미터 영역을 업데이트하는 단계, 그리고 상기 분산 딥러닝 트레이닝의 수행이 완료된 후, 사용이 완료된 상기 공유 메모리를 해제 및 삭제하는 단계를 포함한다.
이때, 상기 공유 메모리의 워커 로컬 가중치 파라미터 영역을 업데이트 하는 단계는, 초기화 또는 업데이트된 상기 마스터 가중치 파라미터 영역에 저장된 값을 읽어와, 상기 워커 로컬 가중치 파라미터 영역에 업데이트 할 수 있다.
또한, 본 발명의 일실시예에 따른 파라미터 서버는 마스터 프로세스 및 워커 프로세스 중 적어도 어느 하나와 메시지를 송수신하고, 원격 직접 메모리 접근(RDMA) 방식의 읽기 및 쓰기를 지원하는 통신 처리부, 공유 메모리의 할당 및 해제를 관리하는 공유 메모리 관리부, 분산 딥러닝 파라미터를 계산하는 파라미터 연산부, 그리고 상기 공유 메모리에 대한 이벤트 발생 시, 상기 공유 메모리에 상응하는 상기 마스터 프로세스 및 하나 이상의 상기 워커 프로세스 중 적어도 어느 하나로 상기 이벤트의 발생을 알리는 이벤트 처리부를 포함한다.
이때, 상기 파라미터 연산부는, 두 개의 공유 메모리 영역에 대한 벡터/매트릭스 연산을 수행할 수 있다.
이때, 상기 파라미터 연산부는, 제1 벡터에 제1 상수를 곱하는 연산, 상기 제1 상수를 곱한 제1 벡터와 제2 벡터를 합하는 연산 및 상기 제1 상수를 곱한 상기 제1 벡터와 제2 상수를 곱한 상기 제2 벡터를 합하는 연산 중 적어도 어느 하나의 상기 벡터 연산을 수행할 수 있다.
이때, 상기 파라미터 연산부는, 가중치 파라미터 및 그래디언트 파라미터 중 적어도 어느 하나를 포함하는 상기 분산 딥러닝 파라미터를 연산할 수 있다.
이때, 상기 마스터 프로세스는, 상기 마스터 프로세스가 할당한 모든 상기 공유 메모리의 영역에 접근 가능하고, 상기 워커 프로세스는, 마스터 파라미터 영역 및 상기 워커 프로세스가 딥러닝 트레이닝을 수행한 결과를 저장하는 워커 파라미터 영역만 접근 가능할 수 있다.
이때, 상기 파라미터 연산부는, 동기식으로 상기 분산 딥러닝 파라미터를 공유하는 경우, 상기 그래디언트 파라미터 누적을 연산할 수 있다.
이때, 상기 파라미터 연산부는, 비동기식으로 상기 분산 딥러닝 파라미터를 공유하는 경우, 상기 워커 프로세스로부터 수신한 워커 그래디언트 파라미터를 마스터 가중치 파라미터 영역에 업데이트할 수 있다.
이때, 상기 공유 메모리 관리부는, 상기 마스터 프로세스로부터 수신한 파라미터용 원격 공유 메모리 생성 요청에 상응하도록 공유 메모리를 생성하고, 상기 공유 메모리의 공유 메모리 생성키 및 접근 정보를 상기 마스터 프로세스로 전송할 수 있다.
이때, 상기 공유 메모리 관리부는, 상기 마스터 프로세스로부터 상기 공유 메모리 생성키를 전달받은 상기 워커 프로세스로부터 공유 메모리 할당 요청을 수신하고, 상기 공유 메모리 할당 요청에 상응하도록 상기 공유 메모리를 할당하며, 할당된 상기 공유 메모리의 접근 정보를 상기 워커 프로세스로 전송할 수 있다.
이때, 상기 공유 메모리 관리부는, 상기 워커 프로세스로부터 수신한 공유 메모리 해제 요청에 상응하도록 상기 공유 메모리를 해제하고, 상기 마스터 프로세스로부터 수신한 공유 메모리 삭제 요청에 상응하도록 상기 공유 메모리를 삭제할 수 있다.
이때, 상기 마스터 프로세스 및 워커 프로세스는, 상기 원격 직접 메모리 접근(RDMA)을 지원하는 고속 네트워크를 통하여, 상기 파라미터 서버에 저장한 상기 분산 딥러닝 파라미터를 직접 읽어오거나 쓰는 방식으로 상기 분산 딥러닝 파라미터를 공유할 수 있다.
본 발명에 따르면, 분산 딥러닝 플랫폼에서 분산 트레이닝을 수행하는 프로세스들이 대규모 파라미터를 교환할 수 있다.
또한 본 발명에 따르면, 파라미터 서버와 분산 컴퓨터가 메시지 송수신 형태의 통신 방법으로 파라미터를 교환할 경우 발생하는 추가적인 메모리 복사 및 통신 오버헤드를 대폭 경감할 수 있다.
또한 본 발명에 따르면, 메시지 송수신 형태의 통신 방법으로 파라미터를 교환하는 방법에 비하여, 통신 성능을 개선하고, 파라미터 송수신 시 유휴 상태인 계산 자원의 이용률을 극대화할 수 있다.
도 1은 본 발명의 일실시예에 따른 파라미터 서버가 적용되는 분산 딥러닝 프레임워크 환경을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 파라미터 서버의 구성을 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 파라미터 공유를 위한 원격 공유 메모리 가상 매핑 매커니즘을 나타낸 예시도이다.
도 4는 본 발명의 일실시예에 따른 분산 딥러닝 프레임워크의 기능을 설명하기 위한 구조도이다.
도 5는 본 발명의 일실시예에 따른 프로세스별 원격 공유 메모리 할당의 일 예를 나타낸 예시도이다.
도 6은 본 발명의 일실시예에 따른 원격 공유 메모리의 생성 및 할당 과정을 나타낸 순서도이다.
도 7은 본 발명의 일실시예에 따른 원격 공유 메모리의 삭제 및 해제 과정을 나타낸 순서도이다.
도 8은 본 발명의 일실시예에 따른 동기식 파라미터 공유 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 일실시예에 따른 비동기식 파라미터 공유 방법을 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일실시예에 따른 파라미터 서버가 적용되는 분산 딥러닝 프레임워크 환경을 개략적으로 나타낸 도면이다.
도 1에 도시한 바와 같이, 딥러닝 트레이닝을 수행하는 분산된 계산 노드에서 실행되는 마스터 프로세스(100), 하나 이상의 워커 프로세스(150) 및 파라미터 서버(200)는 원격 직접 메모리 접근(RDMA, Remote Direct Memory Access)을 지원하는 고속 네트워크로 연결된다.
마스터 프로세스(100)는 파라미터 서버(200)에 원격 공유 메모리를 생성하고, 분산 딥러닝 프레임워크의 전체적인 제어를 담당한다. 그리고 마스터 프로세스(100)는 워커 프로세스들(150)에 원격 공유 메모리 정보를 전달하여, 워커 프로세스들(150)이 파라미터 서버(200) 상의 동일 메모리 영역에 접근할 수 있도록 한다. 반면, 워크 프로세스들(150)은 분산 트레이닝을 수행하고, 트레이닝한 결과를 저장한다.
파라미터 서버(200)는 가중치(Weight) 파라미터 및 그래디언트(Gradient) 파라미터 중 적어도 어느 하나를 포함하는 분산 딥러닝 파라미터를 공유하기 위한 공유 메모리를 제공한다.
이하에서는 도 2를 통하여, 본 발명의 일실시예에 따른 파라미터 서버의 구성 및 기능에 대하여 더욱 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 파라미터 서버의 구성을 나타낸 블록도이다.
도 2에 도시한 바와 같이, 파라미터 서버(200)는 통신 처리부(210), 공유 메모리 관리부(220), 파라미터 연산부(230) 및 이벤트 처리부(240)를 포함한다.
먼저, 통신 처리부(210)는 마스터 프로세스 및 하나 이상의 워커 프로세스 중 적어도 어느 하나의 분산 딥러닝 트레이닝 엔진과 메시지를 송수신한다. 그리고 통신 처리부(210)는 마스터 프로세스 및 워커 프로세스 중 적어도 어느 하나의 원격 직접 메모리 접근(RDMA) 방식의 읽기 및 쓰기를 지원한다.
그리고 공유 메모리 관리부(220)는 공유 메모리의 생성/할당 및 삭제/해제를 관리한다.
공유 메모리 관리부(220)는 분산된 마스터 프로세스 또는 워커 프로세스로부터 수신한 파라미터용 원격 공유 메모리 생성 요청에 상응하도록 공유 메모리를 생성하고, 공유 메모리의 공유 메모리 생성키 및 접근 정보를 마스터 프로세스로 전송할 수 있다. 또한, 공유 메모리 관리부(220)는 워커 프로세스로부터 공유 메모리 할당 요청을 수신하고, 공유 메모리 할당 요청에 상응하도록 공유 메모리를 할당한다. 그리고 할당된 공유 메모리의 접근 정보를 워커 프로세스로 전송할 수 있다.
그리고 공유 메모리 관리부(220)는 워커 프로세스로부터 공유 메모리 해제 요청을 수신하여 공유 메모리를 해제하고, 마스터 프로세스로부터 공유 메모리 삭제 요청을 수신하여 공유 메모리를 삭제할 수 있다.
다음으로 파라미터 연산부(230)는 분산 딥러닝 파라미터를 계산한다. 이때, 분산 딥러닝 파라미터는 가중치 파라미터 및 그래디언트 파라미터를 포함할 수 있다.
그리고 파라미터 연산부(230)는 두 개의 공유 메모리 영역에 대한 벡터/매트릭스 연산을 수행할 수 있으며, 벡터 연산은 제1 벡터(X)에 제1 상수(a)를 곱하는 scal 연산(X=aX), 제1 상수(a)를 곱한 제1 벡터(X)와 제2 벡터(Y)를 합하는 axpy 연산(Y=aX+Y), 제1 상수(a)를 곱한 제1 벡터(X)와 제2 상수(b)를 곱한 제2 벡터(Y)를 합하는 axpby 연산(Y=aX+bY) 등을 의미할 수 있다.
또한, 파라미터 연산부(230)는 동기식으로 분산 딥러닝 파라미터를 공유하는 경우, 그래디언트 파라미터 누적을 연산할 수 있다. 그리고 비동기식으로 분산 딥러닝 파라미터를 공유하는 경우, 파라미터 연산부(230)는 워커 프로세스로부터 수신한 워커 그래디언트 파라미터로 마스터 가중치 파라미터 영역을 업데이트할 수 있다.
마지막으로 이벤트 처리부(240)는 공유 메모리에 대한 이벤트 발생 시, 공유 메모리에 상응하는 마스터 프로세스 및 워커 프로세스 중 적어도 어느 하나로 이벤트의 발생을 알릴 수 있다. 이벤트 처리부(240)는 특정 공유 메모리 영역에 대한 이벤트를 해당 공유 메모리를 공유하는 지정된 분산 마스터 프로세스 또는 워커 프로세스에 알리는 통보 메시지를 전송할 수 있다.
예를 들어, 특정 공유 메모리 영역이 업데이트 되었거나, 특정 공유 메모리 영역에 대해 설정된 연산이 완료된 경우, 이벤트 처리부(240)는 지정된 분산 딥러닝 트레이닝 엔진에 통보 메시지를 전송할 수 있다.
이하에서는 도 3 내지 도 5를 통하여 본 발명의 일실시예에 따른 분산 딥러닝 프레임워크의 동작 및 기능에 대하여 더욱 상세하게 설명한다.
도 3은 본 발명의 일실시예에 따른 파라미터 공유를 위한 원격 공유 메모리 가상 매핑 매커니즘을 나타낸 예시도이다.
도 3과 같이, 분산 딥러닝 트레이닝 엔진을 포함하는 마스터 프로세스(310) 및 워커 프로세스(320)는 파라미터를 공유하기 위하여, 파라미터 서버(330)에 원격 공유 메모리를 생성 및 할당하고, 로컬 물리 메모리(파라미터의 임시 저장을 위한 호스트 물리 메모리 또는 GPU 등의 가속기 물리 메모리)를 할당하며, 가상 주소 공간에 맵핑한다.
마스터 프로세스(310) 및 워커 프로세스(320) 각각은 분산 딥러닝 트레이닝 엔진 및 파라미터 서버 접근 지원부로 구성될 수 있으며, 분산 딥러닝 트레이닝 엔진은 딥러닝 모델 복사본(Model replica)을 이용하여 트레이닝을 수행할 수 있다. 이때, 분산 딥러닝 트레이닝 엔진의 역할은 마스터 프로세스(310)인지, 워커 프로세스(320)인지 여부에 따라 상이할 수 있다.
마스터 프로세스(310)의 분산 딥러닝 트레이닝 엔진은 파라미터 서버(330)에 원격 공유 메모리를 생성하고, 하나 이상의 워커 프로세스(320)의 분산 딥러닝 트레이닝 엔진에 원격 공유 메모리의 정보를 전달하여, 워커 프로세스(320)들이 파라미터 서버(330) 상의 동일 메모리 영역에 접근할 수 있도록 한다. 이때, 원격 공유 메모리의 정보는 공유 메모리 생성키, 공유 메모리 크기 등을 포함할 수 있다.
그리고 마스터 프로세스(310) 또는 워커 프로세스(320)의 분산 딥러닝 트레이닝 엔진은 파라미터 서버 접근 지원부를 통하여, 원격 계산 노드에서 실행된 파라미터 서버(330)를 이용할 수 있다. 이때, 파라미터 서버(330)가 원격 공유 메모리를 할당하면, 파라미터 서버 접근 지원부는 원격 공유 메모리와 동일한 크기의 로컬 물리 메모리를 할당받고, 할당받은 로컬 물리 메모리를 분산 딥러닝 트레이닝 엔진의 가상 주소 공간에 맵핑한다.
마스터 프로세스(310) 또는 워커 프로세스(320)의 분산 딥러닝 트레이닝 엔진은 자신의 로컬 물리 메모리에 트레이닝된 파라미터를 저장하고, 명시적으로 파라미터 서버 접근 지원부가 제공하는 API를 이용하여 동기화(쓰기) 요청을 하면, 로컬 물리 메모리의 계산된 파라미터 데이터가 파라미터 서버(330)의 원격 공유 메모리로 복사된다. 또한, 마스터 프로세스(310) 또는 워커 프로세스(320)는 원격 공유 메모리의 업데이트된 파라미터를 읽어오는 동기화(읽기) 요청도 수행할 수 있다.
설명의 편의를 위하여, 파라미터 서버(330)가 제공하는 메모리를 원격 공유 메모리로 명명하였으나, 이는 접근 방식이 공유 메모리 형태의 접근 방식인 것을 의미하며, 공유 메모리를 할당받은 프로세스간 자동 동기화 기능은 제공하지 않고, 원격 공유 메모리는 일종의 통신 버퍼로 활용됨을 의미할 수 있다.
도 4는 본 발명의 일실시예에 따른 분산 딥러닝 프레임워크의 기능을 설명하기 위한 구조도이다.
도 4에 도시한 바와 같이, 분산 딥러닝 프레임워크는 분산 프로세스(410) 및 파라미터 서버(420)를 포함하며, 분산 프로세스(410)는 분산 딥러닝 트레이닝 엔진(411) 및 파라미터 서버 접근 지원부(415)를 포함할 수 있다.
분산 딥러닝 트레이닝 엔진(411)의 관점에서, 파라미터 서버 접근 지원부(415)는 분산 프로세스(계산 노드)(410)에 함께 링크되어 라이브러리 형태로 제공될 수 있으며, 파라미터 서버 접근 지원부(415)의 기능은 모두 유저 레벨 라이브러리 형태로 구현될 수 있다. 또한, 파라미터 서버 접근 API만 라이브러리 형태로 구현되고, 이외의 기능은 장치 드라이버 형태로 구현될 수 있다.
분산 딥러닝 트레이닝 엔진(411)은 분산 프로세스(410)에서 실행되며, 파라미터 서버 접근 지원부(415)에서 제공하는 파라미터 서버 접근 API를 이용하여 다른 분산 프로세스의 분산 딥러닝 트레이닝 엔진(411) 간 파라미터를 공유할 수 있다.
파라미터 서버(420)는 별도의 프로세스에서 실행되며, 분산 프로세스(410)의 파라미터 서버 접근 지원부(415)와 Infiniband 등의 고속 네트워크 채널을 통해 메시지를 송수신하고, 원격 직접 메모리 접근(RDMA) 방식으로 원격 공유 메모리의 읽기/쓰기를 수행할 수 있다.
분산 프로세스(410)의 분산 딥러닝 트레이닝 엔진(411)은 파라미터 서버 접근 지원부(415)의 파라미터 서버 접근 API(응용 프로그램 인터페이스)를 이용하여, 공유 메모리의 할당 및 해제, 명시적 공유 메모리 동기화(읽기/쓰기), 파라미터 연산 요청 등을 수행할 수 있다.
그리고 파라미터 서버 접근 지원부(415)는 파라미터 서버 접근 API와 원격 공유 메모리 할당 요청 모듈, 공유 메모리 동기화 모듈, 공유 메모리 파라미터 연산 요청 모듈, 공유 메모리 이벤트 요청 모듈, 메시지 송수신 처리 모듈 및 고속 네트워크 통신 처리 모듈을 포함할 수 있다.
그리고 파라미터 서버 접근 지원부(415)는 파라미터 서버 접근 API를 통해 분산 딥러닝 트레이닝 엔진(411)의 요청을 수신하면, 구성 모듈을 이용하여 요청에 상응하는 처리를 수행할 수 있다.
예를 들어, 공유 메모리의 할당/해제 요청을 수신한 경우 파라미터 서버 접근 지원부(415)는 원격 공유 메모리 할당 요청 모듈을 이용하여 요청을 처리하고, 공유 메모리 동기화 요청을 수신하면 공유 메모리 동기화 모듈이 원격 메모리의 읽기 및 쓰기를 수행할 수 있다.
그리고 파라미터 계산 요청을 수신한 경우 파라미터 서버 접근 지원부(415)는 공유 메모리 파라미터 연산 요청 모듈이 파라미터 서버(420)로 특정 공유 메모리 영역들 간의 연산을 요청할 수 있다. 또한, 이벤트 메시지의 송수신 요청을 수신하면, 파라미터 서버 접근 지원부(415)는 공유 메모리 이벤트 요청 모듈을 통하여 파라미터 서버로 이벤트 메시지의 전송을 요청할 수 있다.
파라미터 서버(420)는 분산 프로세스(410)의 파라미터 서버 접근 지원부(415)의 요청을 처리하며, 원격 공유 메모리 할당 관리 모듈, 공유 메모리 파라미터 연산 모듈, 공유 메모리 이벤트 처리 모듈, 메시지 송수신 처리 모듈 및 고속 네트워크 통신 처리 모듈을 포함할 수 있다.
원격 공유 메모리 할당 관리 모듈은 공유 메모리의 생성, 삭제, 할당 및 해제 요청을 처리하고, 공유 메모리 파라미터 연산 모듈은 2 개의 공유 메모리 영역에 대한 벡터/매트릭스 연산을 수행할 수 있다. 또한, 공유 메모리 이벤트 처리 모듈은 특정 공유 메모리 영역에 대한 이벤트를 해당 공유 메모리 영역을 생성 및 할당받은 분산 프로세스(410)의 분산 딥러닝 트레이닝 엔진(411)에 알리는 통보 메시지를 전송할 수 있다.
설명의 편의를 위하여, 분산 프로세스(410)를 하나만 도시하였으나, 분산 딥러닝 프레임워크는 하나 이상의 분산 프로세스(410)를 포함할 수 있고, 분산 프로세스(410)는 분산 딥러닝 트레이닝 엔진(411)의 기능에 따라 마스터 프로세스 및 워커 프로세스로 구분될 수 있다.
도 5는 본 발명의 일실시예에 따른 프로세스별 원격 공유 메모리 할당의 일 예를 나타낸 예시도이다.
도 5와 같이, 마스터 프로세스(510)는 마스터 파라미터를 위한 원격 공유 메모리 생성을 담당한다. 그리고 마스터 프로세스(510)는 파라미터 서버(530)에 원격 공유 메모리를 생성하므로, 생성한 모든 원격 공유 메모리 영역에 접근할 수 있으며, 공유 메모리 생성 정보를 워커 프로세스(520)로 전송하여, 워커 프로세스(520)들이 마스터 영역에 접근할 수 있도록 한다.
반면, 워커 프로세스(520)는 자신이 트레이닝한 결과를 저장하는 워커 그래디언트 파라미터 영역을 생성하고, 생성한 워커 그래디언트 파라미터 영역에 접근할 수 있다. 즉, 워커 프로세스(520)는 다른 워커 프로세스의 메모리 영역에 접근할 수 없으며, 마스터 파라미터 영역 및 해당 워커 프로세스(520)가 트레이닝한 결과를 저장하는 워커 파라미터 영역에만 접근 가능하다. 다시 말해, 제x 워커 프로세스(520_x)는 마스터 파라미터 영역 및 제x 워커 파라미터 영역에 접근 가능하다.
설명의 편의를 위하여, 워커 프로세스(520)가 하나의 워커 파라미터 영역의 공유 메모리를 할당 받는 것으로 도시하였다. 그러나 실제 딥러닝 레이어별로 파라미터가 존재하므로, 워커 프로세스들(520)은 딥러닝 계층별로 하나의 마스터 파라미터와 워커 파라미터에 접근할 수 있으며, 도 5의 마스터 파라미터 영역 및 워커 파라미터 영역들은 다수의 공유 메모리 집합을 의미할 수 있다.
이하에서는 도 6 및 도 7을 통하여, 본 발명의 일실시예에 따른 원격 공유 메모리의 생성, 할당, 삭제 및 해제 과정에 대하여 더욱 상세하게 설명한다.
도 6은 본 발명의 일실시예에 따른 원격 공유 메모리의 생성 및 할당 과정을 나타낸 순서도이다.
먼저, 마스터 프로세스(100)는 파라미터 서버(200)로 원격 공유 메모리 생성 요청을 전송한다(S610).
그리고 파라미터 서버(200)는 수신된 원격 공유 메모리 생성 요청에 상응하도록 공유 메모리를 생성하고(S620), 마스터 프로세스(100)로 공유 메모리 생성키 및 접근 정보를 전송한다(S630).
이때, 파라미터 서버(200)는 생성된 공유 메모리에 접근하고자 하는 경우 필요한 정보인 공유 메모리 주소, 원격 메모리 접근키 등을 공유 메모리 생성키와 함께 마스터 프로세스(100)로 전송할 수 있다.
다음으로 마스터 프로세스(100)는 파라미터 서버(200)로 공유 메모리 이벤트 설정 요청을 전송한다(S640).
마스터 프로세스(100)는 업데이트 통지 이벤트, 누적 완료 이벤트 등의 공유 이벤트에 대한 이벤트 설정 요청을 파라미터 서버(200)로 전송할 수 있다. 여기서, 업데이트 통지 이벤트는 마스터 프로세스(100)가 특정 공유 메모리를 업데이트한 경우, 해당 공유 메모리를 공유하고 있는 모든 워커 프로세스들(150)로 알리는 메시지를 전송하도록 하는 이벤트를 의미한다.
그리고 누적 완료 이벤트는 워커 프로세스들(150)이 특정 공유 메모리에 누적 수행을 완료한 경우, 마스터 프로세스(100)로 누적 완료를 알리는 메시지를 전송하는 이벤트를 의미한다.
또한, 마스터 프로세스(100)는 공유 메모리 생성키를 하나 이상의 워커 프로세스(150)로 배포한다(S650).
설명의 편의를 위하여 도 6에는 마스터 프로세스(100)가 하나의 워크 프로세스(150_1)로 공유 메모리 생성키를 배포하는 것으로 도시하였으나 이에 한정하지 않고, 마스터 프로세스(100)는 분산 딥러닝 프레임워크에 포함된 복수 개의 워커 프로세스(150)로 공유 메모리 생성키를 배포할 수 있다. 이때, 마스터 프로세스(100)는 마스터 프로세스(100)와 워커 프로세스(150)간 별도의 통신 채널을 이용하여 공유 메모리 생성키를 배포할 수 있다.
그리고 공유 메모리 생성키를 수신한 제1 워커 프로세스(150_1)는 파라미터 서버(200)로 공유 메모리 할당 요청을 전송하고(S660), 파라미터 서버(200)는 공유 메모리를 할당한다(S670).
마스터 프로세스(100)로부터 공유 메모리 생성키를 수신한 워커 프로세스(150)는 공유 메모리 생성키를 이용하여 파라미터 서버(200)로 공유 메모리 할당을 요청할 수 있다. 그리고 파라미터 서버(200)는 공유 메모리 생성키로 기 생성된 공유 메모리에 대한 할당을 수행할 수 있다.
또한, 파라미터 서버(200)는 제1 워커 프로세스(150_1)로 할당된 공유 메모리 접근 정보를 전송한다(S680).
파라미터 서버(200)는 공유 메모리 접근에 필요한 정보인 공유 메모리 주소, 원격 메모리 접근키 등의 공유 메모리 접근 정보를 워커 프로세스(150)로 전송한다. 그리고 공유 메모리 접근 정보를 수신한 워커 프로세스(150)는 공유 메모리 접근 정보를 이용하여 할당받은 원격 공유 메모리 주소에 RDMA 직접 읽기 또는 쓰기를 수행할 수 있다.
그리고 분산 딥러닝 프레임워크에 포함된 모든 워커 프로세스들(150)이 S670 단계를 수행하여 공유 메모리 접근 정보를 수신하면, 마스터 프로세스(100)는 딥러닝 트레이닝을 수행할 수 있다.
도 6과 같은 공유 메모리 할당 이외에, 워커 프로세스(150)가 주도적으로 공유 메모리를 할당하여, 다른 워커 프로세스들과 공유할 수 있으며, 마스터 프로세스(100) 및 워커 프로세스들(150)이 포함하는 딥러닝 트레이닝 엔진들 간의 공유 메모리 할당이 완료되면, 딥러닝 트레이닝 엔진들은 트레이닝을 시작할 수 있다. 그리고 딥러닝 트레이닝 중에는 마스터 프로세스(100)와 워커 프로세스(150)간에 다양한 형태로 딥러닝 파라미터가 공유될 수 있다.
도 7은 본 발명의 일실시예에 따른 원격 공유 메모리의 삭제 및 해제 과정을 나타낸 순서도이다.
제1 워커 프로세스(150_1)는 파라미터 서버(200)로 공유 메모리 해제 요청을 전송한다(S710).
딥러닝 트레이닝이 완료된 후, 워커 프로세스(150) 각각은 자신이 할당받은 원격 공유 메모리의 해제를 파라미터 서버(200)에 요청할 수 있다.
그리고 공유 메모리 해제 요청을 수신한 파라미터 서버(200)는 공유 메모리를 해제하고(S720), 제1 워커 프로세스(150_1)로 공유 메모리 해제를 통보한다(S730).
여기서, 공유 메모리의 해제는 파라미터 서버(200)가 공유 메모리에 대한 공유 정보를 삭제하는 것을 의미할 수 있다.
또한, 마스터 프로세스(100)는 파라미터 서버(200)로 원격 공유 메모리 삭제 요청을 전송하고(S740), 공유 메모리 삭제 요청을 수신한 파라미터 서버(200)는 공유 메모리를 삭제하며(S750), 마스터 프로세스(100)로 공유 메모리 삭제 완료를 통보한다(S760).
이하에서는 도 8 및 도 9를 통하여 본 발명의 일실시예에 따른 분산 딥러닝 프레임워크 환경에서 동기식 및 비동기식으로 파라미터를 공유하는 방법에 대하여 더욱 상세하게 설명한다.
파라미터 서버(200)에 원격 공유 메모리가 생성 및 할당된 후, 마스터 프로세스(100) 및 하나 이상의 워커 프로세스(150)는 파라미터 서버(200)를 기반으로 딥러닝 파라미터를 공유하여, 딥러닝 트레이닝 과정을 반복 수행할 수 있다.
여기서, 파라미터 서버(200)에 생성되는 파라미터는 마스터 가중치 파라미터(WMaster), 마스터 그래디언트 파라미터(GMaster) 및 워커x 그래디언트 파라미터(Gworker_x)로 구분될 수 있다.
그리고 딥러닝 트레이닝 과정에서 분산 딥러닝 파라미터는 도 8 또는 도 9의 과정을 통하여 동기식 또는 비동기식으로 공유될 수 있다. 이때, 도 8 및 도 9의 분산 딥러닝 파라미터를 공유하는 과정은 딥러닝 알고리즘에 따라 일부 순서의 변경 및 수정이 가능하다.
또한, 도 8 및 도 9의 파라미터 공유 과정 각각은 도 6의 공유 메모리 생성 및 할당 과정을 수행한 후 수행될 수 있으며, 도 8 및 도 9의 과정을 수행한 후 도 7의 공유 메모리 삭제 및 해제 과정이 수행될 수 있다.
도 8은 본 발명의 일실시예에 따른 동기식 파라미터 공유 방법을 설명하기 위한 순서도이다.
먼저, 마스터 프로세스(100)는 파라미터 서버(200)의 마스터 가중치 파라미터 영역(WMaster) 및 마스터 그래디언트 파라미터 영역(GMaster)을 초기화한다(S810).
마스터 프로세스(100)는 마스터 프로세스(100)의 로컬 메모리에 초기화된 가중치 파라미터 값을 마스터 가중치 파라미터 영역에 쓰기하여, 마스터 가중치 파라미터 영역(WMaster)을 초기화할 수 있다. 그리고 마스터 프로세스(100)는 모든 값을 0으로 설정하여 마스터 그래디언트 파라미터 영역(GMaster)을 리셋할 수 있다.
그리고 파라미터 서버(200)는 제1 워커 프로세스(150_1)로 마스터 가중치 파라미터(WMaster)가 업데이트 되었음을 알린다(S820).
파라미터 서버(200)는 마스터 가중치 파라미터(WMaster)영역을 공유하는 하나 이상의 워커 프로세스들(150)로, 마스터 가중치 파라미터(WMaster) 영역이 업데이트 되었음을 알릴 수 있다.
제1 워커 프로세스(150_1)는 마스터 가중치 파라미터(WMaster)를 읽어와 워커 로컬 가중치 파라미터를 업데이트하고(S830), 딥러닝 트레이닝을 수행한다(S840).
워커 프로세스들(150)은 파라미터 서버(200)의 마스터 가중치 파라미터 영역을 RDMA 방식으로 읽어, 로컬 가중치 파라미터(WWorker) 영역으로 복사한다(WWorker = WMaster). 여기서, X는 워커 프로세스의 일련 번호를 의미하며, 제1 워커 프로세스(150_1)는 로컬 가중치 파라미터(WWorker1)을 업데이트할 수 있다.
그리고 S840 단계에서 워커 프로세스들(150) 각각은 지정된 반복 트레이닝 횟수만큼 반복하여 딥러닝 트레이닝을 수행한다. 이때, 워커 프로세스들(150)은 가중치 파라미터는 업데이트하지 않고, 그래디언트 파라미터(GWorker)만 연산할 수도 있다.
또한, 제1 워커 프로세스(150_1)는 파라미터 서버(200)에 워커 로컬 그래디언트 파라미터를 저장한다(S850).
딥러닝 트레이닝을 수행한 워커 프로세스들(150)은 학습된 워커 로컬 그래디언트 파라미터(GWorker)를 파라미터 서버(200)의 워커 파라미터 영역에 RDMA 쓰기 한다. 즉, 제1 워커 프로세스(150_1)는 제1 워커 로컬 그래디언트 파라미터(GWorker1)를 제1 워커 파라미터 영역에 RDMA 쓰기 할 수 있다.
그리고 제1 워커 프로세스(150_1)는 파라미터 서버(200)로 그래디언트 파라미터 누적 연산을 요청하고(S860), 파라미터 서버(200)는 요청된 그래디언트 파라미터 영역들 간의 그래디언트 파라미터 누적 연산을 수행한다(S870).
제1 워커 프로세스(150_1)는 파라미터 서버(200)의 제1 워커 파라미터 영역에 저장된 그래디언트 파라미터(GWorker)를 마스터 그래디언트 파라미터(GMaster) 영역에 누적하도록, 파라미터 서버(200)에 요청한다. 그리고 파라미터 서버(200)는 요청된 그래디언트 파라미터 영역들 간의 파라미터를 누적하는 연산인 GMaster'= GMaster + GWorker 연산을 수행할 수 있다.
모든 워커 프로세스(150)들의 그래디언트 파라미터 누적 연산이 완료되면 파라미터 서버(200)는 마스터 프로세스(100)로 그래디언트 파라미터(GMaster) 누적 연산의 완료를 통보한다(S880).
마스터 프로세스(100)는 분산 딥러닝 프레임워크에 포함된 모든 워커 프로세스들(150)의 그래디언트 파라미터 누적이 완료될 때까지 대기한 후, 파라미터 서버(200)로부터 누적 완료된 마스터 그래디언트 파라미터(GMaster) 영역을 읽어온다(S890).
이때, 마스터 프로세스(100)는 모든 워커 프로세스들(150)의 그래디언트 파라미터가 누적된 마스터 그래디언트 파라미터 영역(GMaster)을 RDMA 방식으로 읽어올 수 있다.
그리고 마스터 프로세스(100)는 마스터 가중치 파라미터(WMaster')를 연산하며(S900), 마스터 가중치 파라미터(WMaster')를 파라미터 서버(200)에 업데이트한다(S910).
마스터 프로세스(100)는 S890 단계에서 읽어온 그래디언트 누적 값(GMaster)의 평균을 이용하여, 마스터 가중치 파라미터(WMaster')를 연산할 수 있다. 또한, 마스터 프로세스(100)는 새로 업데이트된 마스터 가중치 파라미터(WMaster')를 파라미터 서버(200)의 마스터 가중치 파라미터 영역에 저장할 수 있다.
마스터 프로세스(100) 및 워커 프로세스들(150)은 지정된 반복 트레이닝 횟수만큼 S820 단계 내지 S910 단계의 수행을 반복할 수 있다.
도 9는 본 발명의 일실시예에 따른 비동기식 파라미터 공유 방법을 설명하기 위한 순서도이다.
먼저, 마스터 프로세스(100)는 파라미터 서버(200)의 마스터 가중치 파라미터(WMaster) 영역을 초기화한다(S1010). 그리고 파라미터 서버(200)는 제1 워커 프로세스(150_1)로 마스터 가중치 파라미터(WMaster)의 업데이트를 통보한다(S1020).
설명의 편의를 위하여, 파라미터 서버(200)가 제1 워커 프로세스(150_1)로 마스터 가중치 파라미터의 업데이트를 통보하는 것으로 설명하였으나 이에 한정하지 않고, 파라미터 서버(200)는 분산 딥러닝 프레임워크에 포함된 하나 이상의 워커 프로세스들(150)로 마스터 가중치 파라미터(WMaster)가 업데이트 되었음을 알릴 수 있다.
다음으로, 제1 워커 프로세스(150_1)는 파라미터 서버(200)로부터 마스터 파라미터(WMaster)를 읽어와, 워커 로컬 가중치 파라미터(WWorker)를 업데이트하고(S1030), 딥러닝 트레이닝을 수행한다(S1040).
제1 워커 프로세스(150_1)는 RDMA 방식으로 마스터 가중치 파라미터(WMaster)를 읽어올 수 있으며, 읽어온 마스터 파라미터(WMaster)를 워커 로컬 가중치 파라미터(WWorker)로 복사(WWorker = WMaster)하여, 워커 로컬 가중치 파라미터(WWorker)를 업데이트할 수 있다. 그리고 제1 워커 프로세스(150_1)는 지정된 반복 횟수만큼 딥러닝 트레이닝을 수행하여, 워커 로컬 그래디언트 파라미터(GWorker)를 계산할 수 있다.
딥러닝 트레이닝을 수행한 제1 워커 프로세스(150_1)는 새로 학습된 그래디언트 파라미터(GWorker)를 파라미터 서버(200)에 RDMA 쓰기하여 저장한다(S1050). 그리고 제1 워커 프로세스(150_1)는 마스터 파라미터 서버(200)에 마스터 가중치 파라미터(WMaster)의 업데이트를 요청한다(S1060).
파라미터 서버(200)는 마스터 가중치 파라미터(WMaster)의 업데이트를 수행하고(S1070), 업데이트를 요청한 제1 워커 프로세스(150_1)로 업데이트의 완료를 통보한다(S1080).
이때, 파라미터 서버(200)는 복수의 워커 프로세스들(150)로부터 수신된 마스터 가중치 파라미터의 업데이트 수행 요청을 동시에 수행하지 않고, 순차적으로 처리할 수 있다.
그리고 파라미터 서버(200)는 마스터 파라미터 영역의 업데이트가 완료되었음을 하나 이상의 워커 프로세스(150)에 통보할 수 있다. 이때, 딥러닝 트레이닝이 종료되지 않은 경우, S1030 단계 내지 S1080 단계의 과정을 반복하여 수행할 수 있다.
도 8 및 도 9에는 도시하지 않았으나, 딥러닝 트레이닝 종료 시, 마스터 가중치 파라미터를 저장하는 과정을 수행한 후, 딥러닝 트레이닝을 종료할 수 있다.
이상에서와 같이 본 발명에 따른 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 마스터 프로세스 150: 워커 프로세스
200: 파라미터 서버 210: 통신 처리부
220: 공유 메모리 관리부 230: 파라미터 연산부
240: 이벤트 처리부 310: 마스터 프로세스
320: 워커 프로세스 330: 파라미터 서버
410: 분산 프로세스 411: 분산 딥러닝 트레이닝 엔진
415: 파라미터 서버 접근 지원부 420: 파라미터 서버
510: 마스터 프로세스 520: 워커 프로세스
530: 파라미터 서버

Claims (18)

  1. 파라미터 서버에 의해 수행되는 분산 딥러닝 파라미터 공유 방법에 있어서,
    마스터 프로세스 및 워커 프로세스 중 적어도 어느 하나의 요청에 상응하도록, 공유 메모리를 생성 및 할당하는 단계,
    상기 마스터 프로세스의 초기화 요청에 상응하도록, 상기 공유 메모리의 마스터 가중치 파라미터 영역을 초기화하는 단계,
    상기 공유 메모리의 워커 로컬 가중치 파라미터 영역을 상기 마스터 가중치 파라미터의 값으로 업데이트하는 단계,
    동기 방식으로 분산 딥러닝 트레이닝을 수행한 상기 워커 프로세스로부터, 학습된 워커 로컬 그래디언트 파라미터를 입력받아 그래디언트 파라미터 누적을 연산하는 단계,
    상기 하나 이상의 워커 프로세스의 상기 그래디언트 파라미터 누적을 이용하여 마스터 가중치 파라미터를 계산한 상기 마스터 프로세스로부터, 상기 마스터 가중치 파라미터를 입력받아 상기 마스터 가중치 파라미터 영역을 업데이트하는 단계, 그리고
    상기 분산 딥러닝 트레이닝의 수행이 완료된 후, 사용이 완료된 상기 공유 메모리를 해제 및 삭제하는 단계를 포함하는 것을 특징으로 하는 분산 딥러닝 파라미터 공유 방법.
  2. 제1항에 있어서,
    상기 공유 메모리를 생성 및 할당하는 단계는,
    상기 마스터 프로세스로부터 파라미터용 원격 공유 메모리 생성 요청을 수신하는 단계,
    상기 파라미터용 원격 공유 메모리 생성 요청에 상응하도록 상기 공유 메모리를 생성하는 단계,
    생성된 상기 공유 메모리에 상응하는 공유 메모리 생성키 및 접근 정보를 상기 마스터 프로세스로 전송하는 단계,
    상기 마스터 프로세스로부터 이벤트 설정 요청을 수신하여, 상기 공유 메모리의 이벤트를 설정하는 단계,
    상기 마스터 프로세스로부터 상기 공유 메모리 생성키를 전달받은 상기 워커 프로세스로부터, 공유 메모리 할당 요청을 수신하는 단계, 그리고
    상기 공유 메모리를 할당하고, 할당된 상기 공유 메모리의 접근 정보를 상기 워커 프로세스로 전송하는 단계를 포함하는 것을 특징으로 하는 분산 딥러닝 파라미터 공유 방법.
  3. 제1항에 있어서,
    상기 공유 메모리를 해제 및 삭제하는 단계는,
    상기 워커 프로세스로부터 공유 메모리 해제 요청을 수신하여, 상기 공유 메모리를 해제하는 단계,
    상기 공유 메모리의 해제 완료 시 상기 마스터 프로세스로부터, 공유 메모리 삭제 요청을 수신하는 단계, 그리고
    상기 공유 메모리 삭제 요청에 상응하도록 상기 공유 메모리를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 분산 딥러닝 파라미터 공유 방법.
  4. 제1항에 있어서,
    상기 마스터 가중치 파라미터 영역의 업데이트를 적어도 어느 하나의 상기 워커 프로세스로 알리는 단계, 그리고
    상기 그래디언트 파라미터 누적의 연산의 완료를 상기 마스터 프로세스로 알리는 단계
    를 더 포함하는 것을 특징으로 하는 분산 딥러닝 파라미터 공유 방법.
  5. 제1항에 있어서,
    상기 그래디언트 파라미터 누적을 연산하는 단계는,
    상기 분산 딥러닝 트레이닝을 수행한 상기 워커 프로세스로부터, 학습된 워커 로컬 그래디언트 파라미터를 입력받아 상기 공유 메모리에 저장하는 단계,
    상기 워커 프로세스로부터 그래디언트 파라미터 누적 연산을 요청받는 단계,
    요청에 상응하는 상기 워커 로컬 그래디언트 파라미터를 마스터 그래디언트 파라미터로 누적 연산하는 단계, 그리고
    상기 누적 연산의 완료를 상기 마스터 프로세스로 알리는 단계
    를 포함하는 것을 특징으로 하는 분산 딥러닝 파라미터 공유 방법.
  6. 파라미터 서버에 의해 수행되는 분산 딥러닝 파라미터 공유 방법에 있어서,
    마스터 프로세스 및 워커 프로세스 중 적어도 어느 하나의 요청에 상응하도록, 공유 메모리를 생성 및 할당하는 단계,
    상기 마스터 프로세스의 초기화 요청에 상응하도록, 상기 공유 메모리의 마스터 가중치 파라미터 영역을 초기화하는 단계,
    하나 이상의 상기 워커 프로세스에 상응하는 상기 공유 메모리의 워커 로컬 가중치 파라미터 영역을 업데이트 하는 단계,
    분산 딥러닝 트레이닝을 수행한 상기 하나 이상의 워커 프로세스로부터, 워커 그래디언트 파라미터를 수신하는 단계,
    상기 하나 이상의 워커 프로세스로부터 수신한 마스터 가중치 파라미터의 업데이트 요청에 상응하도록, 상기 마스터 가중치 파라미터 영역을 업데이트하는 단계, 그리고
    상기 분산 딥러닝 트레이닝의 수행이 완료된 후, 사용이 완료된 상기 공유 메모리를 해제 및 삭제하는 단계
    를 포함하는 것을 특징으로 하는 분산 딥러닝 파라미터 공유 방법.
  7. 제6항에 있어서,
    상기 공유 메모리의 워커 로컬 가중치 파라미터 영역을 업데이트 하는 단계는,
    초기화 또는 업데이트된 상기 마스터 가중치 파라미터 영역에 저장된 값을 읽어와, 상기 워커 로컬 가중치 파라미터 영역에 업데이트 하는 것을 특징으로 하는 분산 딥러닝 파라미터 공유 방법.
  8. 마스터 프로세스 및 워커 프로세스 중 적어도 어느 하나와 메시지를 송수신하고, 원격 직접 메모리 접근(RDMA) 방식의 읽기 및 쓰기를 지원하는 통신 처리부,
    공유 메모리의 할당 및 해제를 관리하는 공유 메모리 관리부,
    분산 딥러닝 파라미터를 계산하는 파라미터 연산부, 그리고
    상기 공유 메모리에 대한 이벤트 발생 시, 상기 공유 메모리에 상응하는 상기 마스터 프로세스 및 하나 이상의 상기 워커 프로세스 중 적어도 어느 하나로 상기 이벤트의 발생을 알리는 이벤트 처리부를 포함하는 것을 특징으로 하는 파라미터 서버.
  9. 제8항에 있어서,
    상기 파라미터 연산부는,
    두 개의 공유 메모리 영역에 대한 벡터 연산을 수행하는 것을 특징으로 하는 파라미터 서버.
  10. 제9항에 있어서,
    상기 파라미터 연산부는,
    제1 벡터에 제1 상수를 곱하는 연산, 상기 제1 상수를 곱한 제1 벡터와 제2 벡터를 합하는 연산 및 상기 제1 상수를 곱한 상기 제1 벡터와 제2 상수를 곱한 상기 제2 벡터를 합하는 연산 중 적어도 어느 하나의 상기 벡터 연산을 수행하는 것을 특징으로 하는 파라미터 서버.
  11. 제8항에 있어서,
    상기 파라미터 연산부는,
    가중치 파라미터 및 그래디언트 파라미터 중 적어도 어느 하나를 포함하는 상기 분산 딥러닝 파라미터를 연산하는 것을 특징으로 하는 파라미터 서버.
  12. 제11항에 있어서,
    상기 마스터 프로세스는,
    상기 마스터 프로세스가 할당한 모든 상기 공유 메모리의 영역에 접근 가능하고,
    상기 워커 프로세스는,
    마스터 파라미터 영역 및 상기 워커 프로세스가 딥러닝 트레이닝을 수행한 결과를 저장하는 워커 파라미터 영역만 접근 가능한 것을 특징으로 하는 파라미터 서버.
  13. 제12항에 있어서,
    상기 파라미터 연산부는,
    동기식으로 상기 분산 딥러닝 파라미터를 공유하는 경우, 상기 그래디언트 파라미터 누적을 연산하는 것을 특징으로 하는 파라미터 서버.
  14. 제12항에 있어서,
    상기 파라미터 연산부는,
    비동기식으로 상기 분산 딥러닝 파라미터를 공유하는 경우, 상기 워커 프로세스로부터 수신한 워커 그래디언트 파라미터를 마스터 가중치 파라미터 영역에 업데이트하는 것을 특징으로 하는 파라미터 서버.
  15. 제8항에 있어서,
    상기 공유 메모리 관리부는,
    상기 마스터 프로세스로부터 수신한 파라미터용 원격 공유 메모리 생성 요청에 상응하도록 공유 메모리를 생성하고, 상기 공유 메모리의 공유 메모리 생성키 및 접근 정보를 상기 마스터 프로세스로 전송하는 것을 특징으로 하는 파라미터 서버.
  16. 제15항에 있어서,
    상기 공유 메모리 관리부는,
    상기 마스터 프로세스로부터 상기 공유 메모리 생성키를 전달받은 상기 워커 프로세스로부터 공유 메모리 할당 요청을 수신하고, 상기 공유 메모리 할당 요청에 상응하도록 상기 공유 메모리를 할당하며, 할당된 상기 공유 메모리의 접근 정보를 상기 워커 프로세스로 전송하는 것을 특징으로 하는 파라미터 서버.
  17. 제16항에 있어서,
    상기 공유 메모리 관리부는,
    상기 워커 프로세스로부터 수신한 공유 메모리 해제 요청에 상응하도록 상기 공유 메모리를 해제하고, 상기 마스터 프로세스로부터 수신한 공유 메모리 삭제 요청에 상응하도록 상기 공유 메모리를 삭제하는 것을 특징으로 하는 파라미터 서버.
  18. 제8항에 있어서,
    상기 마스터 프로세스 및 워커 프로세스는,
    상기 원격 직접 메모리 접근(RDMA)을 지원하는 고속 네트워크를 통하여, 상기 파라미터 서버에 저장한 상기 분산 딥러닝 파라미터를 직접 읽어오거나 쓰는 방식으로 상기 분산 딥러닝 파라미터를 공유하는 것을 특징으로 하는 파라미터 서버.
KR1020170068445A 2017-06-01 2017-06-01 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법 KR102197247B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170068445A KR102197247B1 (ko) 2017-06-01 2017-06-01 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법
US15/984,262 US10990561B2 (en) 2017-06-01 2018-05-18 Parameter server and method for sharing distributed deep learning parameter using the same
US17/216,322 US11487698B2 (en) 2017-06-01 2021-03-29 Parameter server and method for sharing distributed deep learning parameter using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170068445A KR102197247B1 (ko) 2017-06-01 2017-06-01 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법

Publications (2)

Publication Number Publication Date
KR20180131836A true KR20180131836A (ko) 2018-12-11
KR102197247B1 KR102197247B1 (ko) 2020-12-31

Family

ID=64460507

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170068445A KR102197247B1 (ko) 2017-06-01 2017-06-01 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법

Country Status (2)

Country Link
US (2) US10990561B2 (ko)
KR (1) KR102197247B1 (ko)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200104959A (ko) * 2019-02-27 2020-09-07 한국전력공사 분산 딥러닝 환경에서 데이터 압축 장치 및 방법
KR20200107124A (ko) * 2019-03-06 2020-09-16 한국전자통신연구원 이종 클러스터 기반의 분산 딥러닝 방법 및 이를 위한 장치
KR102163402B1 (ko) * 2020-06-15 2020-10-08 주식회사 딥노이드 멀티 노드와 멀티 gpu를 이용한 분산 학습 시스템 및 방법
WO2020242665A1 (en) * 2019-05-28 2020-12-03 Micron Technology, Inc. Memory as a service for artificial neural network (ann) applications
KR20210051604A (ko) * 2019-10-31 2021-05-10 에스케이텔레콤 주식회사 딥러닝 분산 학습 시스템 및 동작 방법
WO2021107169A1 (ko) * 2019-11-26 2021-06-03 전자부품연구원 엣지-클라우드 시스템에서 딥러닝 네트워크 상호 학습 및 업데이트 방법
KR20210073769A (ko) * 2019-12-11 2021-06-21 국민대학교산학협력단 분산 클라우드 환경에서의 뉴럴 네트워크 파라미터 처리 방법 및 장치
KR20210080756A (ko) * 2019-12-23 2021-07-01 주식회사 제로원에이아이 인공지능 모델의 분산 학습 기법
KR102296319B1 (ko) * 2020-04-29 2021-08-31 고려대학교 산학협력단 프로그래머블 스위치에서의 패킷 스케줄링을 이용한 분산 딥러닝 방법
KR20220025579A (ko) * 2020-08-24 2022-03-03 한국전자통신연구원 심층 신경망 기반의 추론 서비스 제공 시스템 및 방법
WO2022131525A1 (ko) * 2020-12-14 2022-06-23 한양대학교 산학협력단 파라미터 서버 기반 비대칭 분산 학습 기법
KR102473941B1 (ko) * 2021-11-30 2022-12-06 주식회사 튜닙 딥러닝 모델 병렬 처리 장치 및 방법

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046475A1 (en) * 2016-08-11 2018-02-15 Twitter, Inc. Detecting scripted or otherwise anomalous interactions with social media platform
US11037330B2 (en) 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US10943171B2 (en) * 2017-09-01 2021-03-09 Facebook, Inc. Sparse neural network training optimization
US11593634B2 (en) * 2018-06-19 2023-02-28 Adobe Inc. Asynchronously training machine learning models across client devices for adaptive intelligence
US11175960B2 (en) 2018-12-05 2021-11-16 Electronics And Telecommunications Research Institute Worker-scheduling method in cloud-computing system and apparatus for the same
EP3900308A4 (en) 2019-01-30 2022-02-23 Huawei Technologies Co., Ltd. I/O PROCESSING IN A DISTRIBUTED STORAGE NODE WITH RDMA
CN111722937A (zh) * 2019-03-21 2020-09-29 阿里巴巴集团控股有限公司 深度学习权重更新方法、装置
KR20200113744A (ko) 2019-03-26 2020-10-07 한국전자통신연구원 심층 신경망 분할 방법 및 장치
CN110297670B (zh) * 2019-05-17 2023-06-27 深圳致星科技有限公司 一种提高容器云上分布式任务训练效率的方法及系统
US11256624B2 (en) 2019-05-28 2022-02-22 Micron Technology, Inc. Intelligent content migration with borrowed memory
US11169930B2 (en) 2019-05-28 2021-11-09 Micron Technology, Inc. Fine grain data migration to or from borrowed memory
US20200379809A1 (en) * 2019-05-28 2020-12-03 Micron Technology, Inc. Memory as a Service for Artificial Neural Network (ANN) Applications
US11438414B2 (en) 2019-05-28 2022-09-06 Micron Technology, Inc. Inter operating system memory services over communication network connections
US11061819B2 (en) 2019-05-28 2021-07-13 Micron Technology, Inc. Distributed computing based on memory as a service
US11100007B2 (en) 2019-05-28 2021-08-24 Micron Technology, Inc. Memory management unit (MMU) for accessing borrowed memory
KR102461731B1 (ko) 2019-07-12 2022-11-01 한국전자통신연구원 변수 간 상관관계를 바탕으로 기계학습을 수행하는 장치 및 방법
US11379727B2 (en) * 2019-11-25 2022-07-05 Shanghai United Imaging Intelligence Co., Ltd. Systems and methods for enhancing a distributed medical network
US11461645B2 (en) 2019-12-02 2022-10-04 International Business Machines Corporation Initialization of memory networks
CN112381218B (zh) * 2020-11-20 2022-04-12 中国人民解放军国防科技大学 一种用于分布式深度学习训练的本地更新方法
US20220334898A1 (en) * 2021-04-14 2022-10-20 Nvidia Corporation Application programming interface to identify memory
US11829239B2 (en) 2021-11-17 2023-11-28 Adobe Inc. Managing machine learning model reconstruction
CN116974778A (zh) * 2022-04-22 2023-10-31 戴尔产品有限公司 用于数据共享的方法、电子设备和计算机程序产品
KR102480140B1 (ko) * 2022-05-19 2022-12-23 (주)아크릴 인공 신경망 모델 학습 결과 합성을 통한 공통 모델 생성 방법
KR20240003537A (ko) * 2022-07-01 2024-01-09 몬드리안에이아이 주식회사 공유자원 기반 원격 분산 학습 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101559089B1 (ko) 2009-01-21 2015-10-08 에이티아이 테크놀로지스 유엘씨 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜
US20150324690A1 (en) * 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US20160103901A1 (en) * 2014-10-08 2016-04-14 Nec Laboratories America, Inc. Parallelized Machine Learning With Distributed Lockless Training
US20170098171A1 (en) * 2015-10-02 2017-04-06 International Business Machines Corporation Asynchronous stochastic gradient descent
KR20180051987A (ko) * 2016-11-09 2018-05-17 삼성전자주식회사 인공 신경망의 연산 처리 경로 관리 방법
US20180218257A1 (en) * 2017-01-27 2018-08-02 Hewlett Packard Enterprise Development Lp Memory side acceleration for deep learning parameter updates
KR20180125734A (ko) * 2017-05-16 2018-11-26 한국전자통신연구원 파라미터 공유 장치 및 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100020220A (ko) 2008-08-12 2010-02-22 한국전자통신연구원 메모리 공유 제어장치 및 메모리 공유 제어방법, 그리고 공유 메모리 접근방법
GB0917753D0 (en) * 2009-10-09 2009-11-25 Touchtype Ltd System and method for inputting text into electronic devices
US9218573B1 (en) 2012-05-22 2015-12-22 Google Inc. Training a model using parameter server shards
KR102115759B1 (ko) 2014-01-07 2020-05-27 한국전자통신연구원 공유 메모리 기반 통신 장치 및 그 방법
CN104951637B (zh) 2014-03-25 2018-04-03 腾讯科技(深圳)有限公司 一种获取训练参数的方法及装置
US10445641B2 (en) * 2015-02-06 2019-10-15 Deepmind Technologies Limited Distributed training of reinforcement learning systems
US10402469B2 (en) * 2015-10-16 2019-09-03 Google Llc Systems and methods of distributed optimization
WO2017087002A1 (en) * 2015-11-20 2017-05-26 Hewlett Packard Enterprise Development Lp Shared memory for distributed data
US10789545B2 (en) * 2016-04-14 2020-09-29 Oath Inc. Method and system for distributed machine learning
WO2018162069A1 (en) * 2017-03-09 2018-09-13 Huawei Technologies Co., Ltd. Computer system for distributed machine learning
US11461105B2 (en) * 2017-04-07 2022-10-04 Intel Corporation Methods and apparatus for deep learning network execution pipeline on multi-processor platform
US10649806B2 (en) * 2017-04-12 2020-05-12 Petuum, Inc. Elastic management of machine learning computing
US10614356B2 (en) * 2017-04-24 2020-04-07 International Business Machines Corporation Local multicast in single-host multi-GPU machine for distributed deep learning systems
US11106998B2 (en) * 2017-05-10 2021-08-31 Petuum Inc System with hybrid communication strategy for large-scale distributed deep learning
US10755199B2 (en) * 2017-05-30 2020-08-25 Adobe Inc. Introspection network for training neural networks

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101559089B1 (ko) 2009-01-21 2015-10-08 에이티아이 테크놀로지스 유엘씨 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜
US20150324690A1 (en) * 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US20160103901A1 (en) * 2014-10-08 2016-04-14 Nec Laboratories America, Inc. Parallelized Machine Learning With Distributed Lockless Training
US20170098171A1 (en) * 2015-10-02 2017-04-06 International Business Machines Corporation Asynchronous stochastic gradient descent
KR20180051987A (ko) * 2016-11-09 2018-05-17 삼성전자주식회사 인공 신경망의 연산 처리 경로 관리 방법
US20180218257A1 (en) * 2017-01-27 2018-08-02 Hewlett Packard Enterprise Development Lp Memory side acceleration for deep learning parameter updates
KR20180125734A (ko) * 2017-05-16 2018-11-26 한국전자통신연구원 파라미터 공유 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Deep Image, Scaling up Image Recognition. Ren Wu et al. Baidu. 2015.02.06.* *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200104959A (ko) * 2019-02-27 2020-09-07 한국전력공사 분산 딥러닝 환경에서 데이터 압축 장치 및 방법
KR20200107124A (ko) * 2019-03-06 2020-09-16 한국전자통신연구원 이종 클러스터 기반의 분산 딥러닝 방법 및 이를 위한 장치
WO2020242665A1 (en) * 2019-05-28 2020-12-03 Micron Technology, Inc. Memory as a service for artificial neural network (ann) applications
KR20210051604A (ko) * 2019-10-31 2021-05-10 에스케이텔레콤 주식회사 딥러닝 분산 학습 시스템 및 동작 방법
WO2021107169A1 (ko) * 2019-11-26 2021-06-03 전자부품연구원 엣지-클라우드 시스템에서 딥러닝 네트워크 상호 학습 및 업데이트 방법
KR20210073769A (ko) * 2019-12-11 2021-06-21 국민대학교산학협력단 분산 클라우드 환경에서의 뉴럴 네트워크 파라미터 처리 방법 및 장치
KR20210080756A (ko) * 2019-12-23 2021-07-01 주식회사 제로원에이아이 인공지능 모델의 분산 학습 기법
KR102296319B1 (ko) * 2020-04-29 2021-08-31 고려대학교 산학협력단 프로그래머블 스위치에서의 패킷 스케줄링을 이용한 분산 딥러닝 방법
KR102163402B1 (ko) * 2020-06-15 2020-10-08 주식회사 딥노이드 멀티 노드와 멀티 gpu를 이용한 분산 학습 시스템 및 방법
KR20220025579A (ko) * 2020-08-24 2022-03-03 한국전자통신연구원 심층 신경망 기반의 추론 서비스 제공 시스템 및 방법
WO2022131525A1 (ko) * 2020-12-14 2022-06-23 한양대학교 산학협력단 파라미터 서버 기반 비대칭 분산 학습 기법
KR102473941B1 (ko) * 2021-11-30 2022-12-06 주식회사 튜닙 딥러닝 모델 병렬 처리 장치 및 방법

Also Published As

Publication number Publication date
US20210216495A1 (en) 2021-07-15
US10990561B2 (en) 2021-04-27
US11487698B2 (en) 2022-11-01
US20180349313A1 (en) 2018-12-06
KR102197247B1 (ko) 2020-12-31

Similar Documents

Publication Publication Date Title
KR102197247B1 (ko) 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법
Cui et al. Geeps: Scalable deep learning on distributed gpus with a gpu-specialized parameter server
US20210027000A1 (en) Simulation Systems and Methods
US9678497B2 (en) Parallel processing with cooperative multitasking
Yang et al. GNNLab: a factored system for sample-based GNN training over GPUs
JP2018514018A (ja) リソース配置を最適化するための適時性リソース移行
CN100428131C (zh) 海量存储系统中的资源分配方法
CN104714847A (zh) 用于动态地改变云计算环境的方法和系统
KR20180125734A (ko) 파라미터 공유 장치 및 방법
WO2024016542A1 (zh) 信息融合方法、数据通信方法、装置及电子设备和非易失性可读存储介质
CN108292235A (zh) 使用选择性资源迁移的网络附连存储器
CN111708719B (zh) 计算机存储加速方法、电子设备及存储介质
CN102981929A (zh) 磁盘镜像的管理方法和系统
Fang et al. Parallel training of pre-trained models via chunk-based dynamic memory management
CA3173088A1 (en) Utilizing coherently attached interfaces in a network stack framework
WO2023183057A9 (en) Quantum computing service with quality of service (qos) enforcement via out-of-band prioritization of quantum tasks
Aji et al. MPI-ACC: accelerator-aware MPI for scientific applications
CN114675964A (zh) 基于联邦决策树模型训练的分布式调度方法、系统及介质
EP4184324A1 (en) Efficient accelerator offload in multi-accelerator framework
US11533367B2 (en) Simulation systems and methods using query-based interest
CN108304261B (zh) 一种基于6D-Torus网络的作业调度方法和装置
CN107577733B (zh) 一种数据复制的加速方法及系统
Cui et al. Scalable deep learning on distributed GPUs with a GPU-specialized parameter server
JP2024512843A (ja) メモリチャネルコントローラのオンチップ相互接続
CN110928683B (zh) 基于两类密集型虚拟机的边缘计算资源分配方法

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)