KR20190054449A - 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법 - Google Patents

이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법 Download PDF

Info

Publication number
KR20190054449A
KR20190054449A KR1020170150700A KR20170150700A KR20190054449A KR 20190054449 A KR20190054449 A KR 20190054449A KR 1020170150700 A KR1020170150700 A KR 1020170150700A KR 20170150700 A KR20170150700 A KR 20170150700A KR 20190054449 A KR20190054449 A KR 20190054449A
Authority
KR
South Korea
Prior art keywords
model
training
neural network
sub
time
Prior art date
Application number
KR1020170150700A
Other languages
English (en)
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 KR1020170150700A priority Critical patent/KR20190054449A/ko
Publication of KR20190054449A publication Critical patent/KR20190054449A/ko

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명에 따른 하나 혹은 다수의 GPU 워커를 포함하는 컴퓨팅 노드들로 구성된 이종 클러스터 환경에서, 여러 계층으로 구성된 신경망 모델을 지정된 학습 배치 크기로 학습시키기 위해 각 신경망 계층을 GPU 워커에 배치하고 학습 배치 크기를 정하는 방법으로서, (a) 트레이닝 시간을 최소화시키기 위해 최대한 많은 컴퓨팅 자원을 사용하는 Best-effort scheduling 방법; 및 (b) 자원 대비 효율적인 트레이닝 시간을 얻기 위해 GPU 워커를 배치시키는 Resource-Efficient scheduling 방법을 포함한다.

Description

이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법{METHOD FOR PLACING COMPUTE NODE FOR DEEP NEURAL NETWORK ACCELERATION IN HETEROGENEOUS CLUSTER}
본 발명은 딥러닝 응용(Deep Learning Application)을 학습시키는 속도를 가속화하기 위해 분산 자원 위에 배치하는 스케줄링 기법에 관한 것으로서, 더욱 상세하게는 이종 컴퓨팅 환경에서의 디바이스 할당 기술로 딥러닝 응용을 구성하는 레이어들을 이종 컴퓨팅 노드(Compute Node) 내의 GPU 워커(Worker) 위에 배치하는 방법에 관한 것이다.
딥 러닝(Deep Learning)은 사람의 신경세포(Biological Neuron)를 모사하여 기계가 학습하도록 하는 인공신경망(Artificial Neural Network) 기반의 기계 학습법으로서 최근 이미지 인식, 음성 인식, 자연어 처리의 발전에 기여하며 주목받고 있다. 딥러닝 처리 과정은 트레이닝(Training) 과정과 인퍼런스(Inference) 과정으로 구성되며, 딥러닝 트레이닝 과정은 딥러닝 모델 상에서 입력 데이터에 대해 은닉 계층(Hidden Layer) 별 특징값(Feature)을 적용하여 출력 결과를 예측하고 실제 결과와 비교하면서 오류가 최소화될 때까지 연결망 및 은닉 계층의 특징값과 가중치들(이후 특징값과 가중치를 파라미터로 칭함)을 수정해 가는 과정을 의미한다. 출력 결과를 예측하는 과정을 피드 포워드(Feed-forward), 오류를 최소화하기 위해 파라미터를 수정하는 과정을 역전파(Backpropagation) 과정이라고 부른다. 딥러닝 인퍼런스 과정은 트레이닝을 거쳐 최적화된 모델에서 입력 데이터에 대한 특징을 분석한 후 예상 결과를 도출해내는 과정이다.
인공지능 선두기업들을 중심으로 응용의 정화성을 높이기 위해 딥러닝 신경망 모델의 계층이 깊어지고(Deep), 특징이 많아지고 있다(Wide). 이에 따라 단일 딥러닝 신경망 모델의 트레이닝을 위해 필요한 컴퓨팅 성능이 증가하게 되었다. 수십 기가바이트의 메모리와 수 엑사플롭의 연산량을 요구하는 모델들이 증가하면서 단일 GPU 혹은 컴퓨트 노드에서는 제한적인 학습만이 가능하며, 따라서 HPC 환경 위에서 GPU 병렬화를 통한 학습이 불가피하게 되었다.
Google Brain 프로젝트는 딥러닝 모델 트레이닝을 처리를 병렬화하기 위해 데이터 병렬화(Data Parallelism)와 모델 병렬화(Model Parallelism)의 두 가지 기법을 제안하였다. 데이터 병렬화는 모델 트레이닝 과정에서 트레이닝에 사용되는 데이터 배치(Data batch)를 연산에 사용하는 컴퓨트 노드에 각각 동일하게 나누어 할당하는 방식이다. 이를 통해 분산된 컴퓨트 노드들은 동일한 신경망에 대한 트레이닝을 동시다발적으로 진행하게 되므로 각각의 컴퓨팅 성능을 최대한 활용할 수 있다. 하지만, 각 컴퓨트 노드간 파라미터를 공유해야 하기 때문에 통신량이 많아지게 된다. 모델 병렬화는 모델 트레이닝 과정에서 신경망 모델을 여러 개의 서브모델로 분할한 후, 각 서브모델을 컴퓨트 노드에 각각 할당하여 트레이닝하는 방법이다. 각 서브모델의 학습이 순차적으로 이루어지기 때문에 분산된 컴퓨트 노드의 컴퓨팅 성능을 효율적으로 활용할 수는 없지만 노드간 통신량이 낮아지며 모델을 분할하였기 때문에 트레이닝에 사용하는 파라미터 크기가 작아져 메모리 사용량이 분산되는 효과를 얻을 수 있다. 모델 병렬화와 데이터 병렬화의 장점을 섞은 하이브리드 병렬화(Hybrid Parallelism) 방식 또한 제안되었으며 하나의 병렬화 방식만 적용한 것보다 실험적으로 빠른 트레이닝 시간을 보였다.
딥러닝 모델을 병렬 학습시키기 위한 Tensorflow, Caffe 등의 다양한 프레임워크들이 제안되었다. 하지만 현존 프레임워크들은 데이터 혹은 모델 병렬의 단순한 병렬화 기법만을 사용하며, 동종(Homogeneous) 자원만을 고려하고 있어 대부분의 이종(Heterogeneous) 자원으로 구성된 HPC 클러스터에서 적용하기 어렵다. 또한, 병렬 트레이닝을 위해서는 사용자가 수동으로 신경망 계층과 GPU 디바이스를 맵핑해야 하기 때문에 트레이닝이 비효율적으로 이루어진다. 사용자가 최적으로 디바이스를 맵핑하기 어려우며, 이에 따른 트레이닝 시간의 편차가 몹시 크기 때문이다. 따라서 이종 환경에서 딥러닝 모델의 학습을 가속화하기 위해 신경망 모델을 디바이스에 배치하는 기법이 반드시 필요하다.
본 발명은 이와 같은 문제점을 해결하기 위하여 창안된 것으로서, 신경망 모델을 데이터 병렬과 모델 병렬을 같이 고려하여 이종 클러스터 위에 배치하여 시간 효율적인 트레이닝을 하는 데 그 목적이 있다.
이와 같은 목적을 달성하기 위하여 본 발명에 따른 하나 혹은 다수의 GPU 워커를 포함하는 컴퓨팅 노드들로 구성된 이종 클러스터 환경에서, 여러 계층으로 구성된 신경망 모델을 지정된 학습 배치 크기로 학습시키기 위해 각 신경망 계층을 GPU 워커에 배치하고 학습 배치 크기를 정하는 방법으로서, (a) 트레이닝 시간을 최소화시키기 위해 최대한 많은 컴퓨팅 자원을 사용하는 Best-effort scheduling 방법; 및 (b) 자원 대비 효율적인 트레이닝 시간을 얻기 위해 GPU 워커를 배치시키는 Resource-Efficient scheduling 방법을 포함한다.
상기 스케줄링 방법 (a), (b)는 3개 단계로 구성되며, (a1, b1) 신경망 모델을 분할하여 서브모델을 생성하는 모델 분할 단계; (a2, b2) 상기 (a1, b1) 단계에서 분할된 서브모델에 컴퓨트 노드를 할당하고 예상 트레이닝 시간을 계산해 가장 빠른 시간을 갖는 모델 분할 및 노드 배치를 찾는 노드 할당 단계; (a3, b3) 컴퓨트 노드 내의 GPU 워커에 배치를 나누어 할당하는 워커 할당 단계를 포함한다.
본 발명에 의하면, 사용자가 직접 신경망 모델을 GPU 위에 수동으로 병렬화하지 않고도 자동화된 병렬 트레이닝을 가능케 하는 효과가 있다. 또한, 데이터 혹은 모델 병렬의 단순환 병렬화 기법이 아닌 하이브리드 병렬을 고려하기 때문에 훨씬 빠른 트레이닝을 가능케 하는 효과가 있다.
본 발명은 이종 클러스터 자원 전체를 사용하여 트레이닝 시간을 최소화할 수 있으며 자원 사용량을 고려하여 제한된 자원 내에서 최소한의 시간을 갖는 트레이닝 또한 가능하기 때문에 이종 클러스터의 자원을 운용, 관리하기 용이해지는 효과가 있다.
도 1은 이종 클러스터 환경의 구조를 보여주는 도면
도 2는 데이터 병렬화와 모델 병렬화를 나타내는 도면
도 3은 상기 발명의 전체 과정을 나타내는 순서도
도 4는 상기 발명의 a2 과정을 나타내는 순서도
도 5는 상기 발명의 a3 과정을 나타내는 순서도
도 6은 상기 발명의 b2 과정을 나타내는 순서도
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
본 발명의 일실예에 따른 이종 클러스터 환경은 도 1과 같이 N개의 서로 다른 컴퓨트 노드로 이루어진 클러스터 환경이며,
Figure pat00001
로 나타낸다. 이 때, 각 컴퓨트 노드는 하나 혹은 다수의 GPU를 포함하고 있으며, GPU들은 워커로 동작해 실제로 신경망을 트레이닝하는 주체가 된다.
Figure pat00002
형태로 컴퓨트 노드와 워커를 수식화할 수 있다. 워커
Figure pat00003
는 학습을 위한 GPU로 컴퓨팅 성능
Figure pat00004
와 메모리 크기
Figure pat00005
를 포함한다. 노드
Figure pat00006
의 컴퓨팅 성능
Figure pat00007
과 메모리 크기
Figure pat00008
는 노드에 포함된 워커의 성능과 메모리를 합한 것으로 나타낸다.
신경망 모델은 M개의 연속된 계층이 나열된 형태를 띄며
Figure pat00009
으로 표현할 수 있다. 계층
Figure pat00010
는 필터 크기
Figure pat00011
, 요구 연산량
Figure pat00012
, 입력 데이터 크기
Figure pat00013
과 출력 데이터 크기
Figure pat00014
을 포함한다.
본 발명에서 트레이닝 시간 가속화를 위해서는 분산 클러스터 환경에서 신경망 모델에 데이터 및 모델 병렬화를 적용했을 때의 예상 트레이닝 시간을 모델링해야 한다.
도 2는 신경망 모델에 모델 병렬화와 데이터 병렬화가 적용된 분산 실행 환경을 나타내고 있다. 도면 상단의 10개 계층으로 구성된 모델을 3개, 5개, 2개의 계층을 포함하는 서브모델
Figure pat00015
,
Figure pat00016
,
Figure pat00017
로 분할하여 모델 병렬화를 표현하였다. 각 서브모델은 서로 다른 컴퓨트 노드에서 처리되며, 서브모델
Figure pat00018
가 실행된 후 산출물 데이터
Figure pat00019
를 서브모델
Figure pat00020
를 실행하는 컴퓨트 노드에 전달함으로써 트레이닝이 끊기지 않게(seamless) 진행되도록 한다. (붉은 화살표로 표현) 도면 가운데 표현되어 있듯이 각 서브모델은 다수의 컴퓨트 노드(검정색 PC로 표현)와 다수의 워커(흰색 사각형으로 표현)에 의해 학습이 진행된다. 각 워커들은 전체의 데이터 배치를 나누어 학습하며, 하나의 필터를 공유한다. (붉은 화살표로 표현) [k-1, k, k+1을 1,2,3으로 바꿔 그림그릴 것.]
모델 병렬화을 통한 트레이닝을 수식으로 표현하기 위해 신경망 모델은 모델 분할 단계를 거쳐 K개의 서브모델
Figure pat00021
로 분할된다. 각 서브모델
Figure pat00022
는 하나 이상의 계층을 포함하며, 총 필터 크기
Figure pat00023
와 연산량
Figure pat00024
, 입력 데이터 크기
Figure pat00025
과 출력 데이터 크기
Figure pat00026
를 갖는다.
데이터 병렬화를 통한 트레이닝을 수식으로 표현하기 위해 각 서브모델
Figure pat00027
는 하나 이상의 컴퓨트 노드가 트레이닝을 위해 할당된다. 컴퓨트 노드
Figure pat00028
가 서브모델
Figure pat00029
의 트레이닝을 위해 할당된 컴퓨트 노드일 때, 서브모델
Figure pat00030
의 트레이닝을 위해 할당된 컴퓨트 노드들의 집합(Nodes Allocated)을
Figure pat00031
로 표현한다.
Figure pat00032
는 노드
Figure pat00033
에 포함된 j번째 워커
Figure pat00034
에 서브모델
Figure pat00035
의 트레이닝을 위해 할당된 배치 크기를 의미한다. 노드
Figure pat00036
에 서브모델
Figure pat00037
의 트레이닝을 위해 할당된 배치 크기는
Figure pat00038
로 나타낸다.
신경망 모델을 트레이닝하는 데 걸리는 시간(
Figure pat00039
)은 연산에 걸리는 시간(
Figure pat00040
)과 데이터 전송에 걸리는 시간(
Figure pat00041
)으로 구분된다. 연산 시간은 워커의 성능과 계층의 연산량에 의해 결정되며, 통신 시간은 통신 대역폭과 전송되는 데이터 크기에 의해 결정된다. 트레이닝 배치 크기가
Figure pat00042
일 때, 워커
Figure pat00043
에 배치
Figure pat00044
가 할당되었다면 워커
Figure pat00045
는 전체 연산량
Figure pat00046
Figure pat00047
에 해당하는 연산량을
Figure pat00048
의 속도로 처리한다. 컴퓨팅 flop을 고려한 이상적인 배치 분배가 이루어졌을 때, 각 워커
Figure pat00049
Figure pat00050
의 연산량을
Figure pat00051
의 속도로 함께 처리한다고 생각할 수 있다.
또한, 서브모델
Figure pat00052
의 트레이닝을 위해서는 이전 서브모델
Figure pat00053
의 실행 결과 데이터
Figure pat00054
을 전송받아와야 하며,
Figure pat00055
의 학습이 완료되면 다음 서브모델의 트레이닝을 위해 실행 결과
Figure pat00056
를 다음 서브모델 트레이닝을 담당하는 컴퓨트 노드들로 전송해야 한다. 또한,
Figure pat00057
를 학습한 컴퓨팅 노드끼리 필터 특징값을 공유해야 하기 때문에 필터 크기
Figure pat00058
또한 공유되어야 한다. 따라서 총 데이터
Figure pat00059
Figure pat00060
의 트레이닝을 위해 할당된 노드
Figure pat00061
와 각각의 워커로 전달해야 한다. 각각의 노드는 대역폭
Figure pat00062
로 통신하며, 노드 내의 최대
Figure pat00063
개 워커들은 PCI를 통해
Figure pat00064
의 대역폭으로 통신한다. 신경망 트레이닝은 피드 포워드(Feed forward) 과정과 역전파(Backpropagation) 과정을 통해 이루어지기 때문에 데이터 통신량은 2배가 된다.
서브모델
Figure pat00065
를 트레이닝하는 데 걸리는 연산 시간
Figure pat00066
과 통신 시간
Figure pat00067
는 [수학식 1]과 같이 계산할 수 있다.
[수학식 1] 서브모델
Figure pat00068
를 트레이닝하는 데 걸리는 연산 시간과 통신 시간
Figure pat00069
Figure pat00070
[수학식 1]을 토대로 전체 신경망 모델을 고려했을 때의 예상 학습 시간을 계산하면 [수학식 2]와 같이 나타난다.
[수학식 2] 신경망 모델
Figure pat00071
를 트레이닝하는 데 걸리는 시간
Figure pat00072
본 발명은 위의 수학 모델을 토대로 보유한 이종 자원을 최대한 사용하면서 트레이닝 시간을 최소화하는 (a) Best-effort Scheduling 기법과 사용한 자원량에 비해 작은 트레이닝 시간을 갖는 (b) Resource efficient Scheduling 기법을 포함한다.
본 발명의 Best-effort Scheduling 방식은 실행 시간을 최소화하기 위해 신경망 모델의 계층과 워커를 맵핑하는 기법으로, 하나의 트레이닝을 최대한 가속화하기 위해 가용한 모든 이종 자원이 적용된다. 이종 클러스터의 대부분의 자원이 하나의 학습에 동원되어야 할 만큼 신경망 모델이나 배치 규모가 큰 경우 적용하기 용이하다. 본 발명의 (a) Best-effort Scheduling 방식은 (a1) 모델 분할 과정, (a2) 노드 할당 과정과 (a3) 워커 할당 과정의 3가지 단계를 통해 이루어진다.
본 발명의 (a1)모델 분할 과정은 주어진 모델을 분할하여 서브 모델을 생성하는 과정이다. 서브모델은 신경망 모델의 부분집합으로 하나 이상의 계층을 포함하며, 서브모델의 트레이닝을 위해 반드시 하나 이상의 컴퓨트 노드가 할당되어야 한다. 모델 분할 과정은 서브 모델의 개수 K를 1부터
Figure pat00073
까지 증가시켜 나가면서 각 K에 대해 모든 경우를 고려해 모델을 분할하여 서브모델을 생성하고, 생성된 서브모델에 대해 (a2) 과정을 진행하여 [수학식 2]를 통해 학습 시간을 예상한다. 이 과정을 반복하여 정해진 K에 대해 가장 빠른 트레이닝 시간이 예상되는 경우를 기억한다. K가 증가하였을 때 트레이닝 시간이 감소하는 경향을 보이면 더 이상 서브모델을 생성할 필요가 없는 상태이기 때문에 알고리즘을 멈추고 가장 트레이닝 시간이 빨랐던 경우를 취한다.
본 발명의 (a2) 노드 할당 과정은 상기 (a1) 과정을 통해 생성된 서브모델들을 트레이닝하기 위해 적합한 컴퓨트 노드를 할당하는 과정이다. 서브모델이 정해진 상태에서는 [수학식 2]의 통신 시간이 상수로 고정되기 때문에 학습 시간을 빠르게 하기 위해서는 연산 시간만이 고려된다. 서브모델의 개수 K가 증가할수록 네트워크 지연은 커질 수밖에 없기 때문에 서브모델이 K-1일 때의 최적 연산 시간보다 (a2) 노드 할당 과정을 통해 계산된 연산 시간이 큰 경우 바로 해집합에서 탈락시킬 수 있다. K개 서브모델의 트레이닝을 위해 할당된 컴퓨트 노드의 집합을
Figure pat00074
, 각 서브모델에 할당된 총 Flop 수를
Figure pat00075
이라고 하면, 서브모델
Figure pat00076
의 요구 연산량
Figure pat00077
을 할당된 자원의 성능
Figure pat00078
로 나눠준 값이 클수록 우선적으로 컴퓨트 노드를 배치해야 하는 서브모델이 될 것이다. 서브모델에 할당된 노드의 수가 증가할수록 통신 시간이 커지기 때문에 컴퓨트 노드는
Figure pat00079
에 대해 내림차순으로 정렬해 가장 좋은 성능의 노드를 우선으로 고려하도록 한다. 또한, 컴퓨트 노드를 추가로 할당하였을 때, 시간적 이득이 있어야 하기 때문에 컴퓨트 노드를 추가하였을 때 얻는 연산 시간 감소 효과와 통신 시간 증가 효과를 비교해야 한다. 따라서 [수학식 3]을 만족하는 컴퓨트 노드에 한해
Figure pat00080
를 비교하고, 가장 값이 큰 서브모델에 컴퓨트 노드를 배치한다.
[수학식 3] 서브모델
Figure pat00081
에 컴퓨트 노드
Figure pat00082
를 할당하기 위한 조건
Figure pat00083
초기에는 어떤 서브모델에도 컴퓨트 노드가 할당되어있지 않기 때문에
Figure pat00084
는 공집합이며,
Figure pat00085
는 0일 것이다. 하지만, [수학식 3]에서
Figure pat00086
로 나눠주는 부분이 있기 때문에 초기
Figure pat00087
는 컴퓨트 노드의 flop을 평균낸 값으로 초기값을 준 후, 해당 서브모델에 컴퓨트 노드가 최초로 할당되면 초기값을 제거한다.
본 발명의 (a3) 워커 할당 과정은 상기 (a1), (a2) 과정을 통해 특정 K에 대해 예상 트레이닝 시간이 가장 짧은 경우가 계산되어졌을 때 적용된다. 각 서브모델의 데이터 배치 수와 할당된 노드 정보를 토대로 노드 내의 워커에 각각 데이터 배치를 얼마나 할당할 것인지를 결정하는 단계이다. 각 워커에 배치를 설정하기 위한 배치의 기본 단위를
Figure pat00088
이라고 정의한다. GPU는 Warp 단위로 연산이 이루어지며, 이는 32개의 쓰레드로 구성되어 있기 때문에 GPU에서 트레이닝을 수행할 때 데이터 배치는 32의 배수로 이루어지는 것이 효율적이다. 따라서
Figure pat00089
은 32를 기본으로 한다. 워커 할당 과정은 우선 서브모델
Figure pat00090
의 트레이닝을 위해 할당된 컴퓨트 노드의 flop 수의 비중을 계산해 전체 배치 수로 나눠줌으로써 각 컴퓨트 노드가 처리해야 하는 배치의 수를 계산한다. 이는 [수학식 4]를 통해 이루어진다. 이후, 노드 내의 워커들에 실제로 배치를 할당한다.
Figure pat00091
에 할당된 배치를
Figure pat00092
라 하면
Figure pat00093
가 가장 큰 워커에 우선적으로 배치가
Figure pat00094
만큼 추가 할당한다.
[수학식 4]
Figure pat00095
트레이닝을 위해 배치된 노드 중
Figure pat00096
에 할당되는 배치 수
Figure pat00097
where B is a total batch size allocated to
Figure pat00098
본 발명의 Resource-Efficient Scheduling 방식은 자원 사용의 효율성에 초점을 맞춰 신경망 모델의 계층과 워커를 맵핑하는 기법으로, 메모리가 부족하지 않은 선에서 최소한의 자원을 사용한다. 신경망 모델이나 배치 규모가 이종 클러스터 자원을 전부 사용하지 않아도 될 정도로 작거나 클러스터에서 다양한 학습을 동시에 진행해야 할 때 적용할 수 있다. 본 발명의 (b) Resource-Efficient Scheduling 방식은 (b1) 모델 분할 과정, (b2) 노드 할당 과정과 (b3) 워커 할당 과정의 3가지 단계를 통해 이루어진다.
본 발명의 (b1)모델 분할 과정은 (a1)의 모델 분할 과정과 정확하게 일치한다. 모델 분할 과정은 서브 모델의 개수 K를 1부터
Figure pat00099
까지 증가시켜 나가면서 각 K에 대해 모든 경우를 고려해 모델을 분할하여 서브모델을 생성하고, 생성된 서브모델에 대해 (a2) 과정을 진행하여 [수학식 2]를 통해 학습 시간을 예상한다. 이 과정을 반복하여 정해진 K에 대해 가장 빠른 트레이닝 시간이 예상되는 경우를 기억한다. K가 증가하였을 때 트레이닝 시간이 감소하는 경향을 보이면 더 이상 서브모델을 생성할 필요가 없는 상태이기 때문에 알고리즘을 멈추고 가장 트레이닝 시간이 빨랐던 경우를 취한다.
본 발명의 (b2) 노드 할당 과정은 상기 (b1) 과정을 통해 생성된 서브모델들을 트레이닝하기 위해 적합한 컴퓨트 노드를 할당하는 과정이다. 서브모델이 정해진 상태에서는 [수학식 2]의 통신 시간이 상수로 고정되기 때문에 학습 시간을 빠르게 하기 위해서는 연산 시간만이 고려된다. 서브모델의 개수 K가 증가할수록 네트워크 지연은 커질 수밖에 없기 때문에 서브모델이 K-1일 때의 최적 연산 시간보다 (b2) 노드 할당 과정을 통해 계산된 연산 시간이 큰 경우 바로 해집합에서 탈락시킬 수 있다. K개 서브모델의 트레이닝을 위해 할당된 컴퓨트 노드의 집합을
Figure pat00100
, 각 서브모델에 할당된 총 Flop 수를
Figure pat00101
이라고 하면, 서브모델
Figure pat00102
의 요구 연산량
Figure pat00103
을 할당된 자원의 성능
Figure pat00104
로 나눠준 값이 클수록 우선적으로 컴퓨트 노드를 배치해야 하는 서브모델이 될 것이다. 서브모델에 할당된 노드의 수가 증가할수록 통신 시간이 커지기 때문에 컴퓨트 노드는
Figure pat00105
에 대해 내림차순으로 정렬해 가장 좋은 성능의 노드를 우선으로 고려하도록 한다. [수식 5]는 리소스 합이 일정할 때 트레이닝 시간을 줄이기 위해 각 서브모델에 최적의 컴퓨팅 성능
Figure pat00106
를 분배할 때 적용되는 수식이다. 이를 통해 하나의 서브모델에 컴퓨트 노드를 할당하면 나머지 서브모델에 어느 정도의 컴퓨트 노드가 할당되어야 하는지를 계산할 수 있다. 따라서 가장 요구 성능이 낮은 서브모델 하나에 직접 컴퓨트 노드를 할당한 후, 이를 통해 나머지 서브모델에 할당될 최적의
Figure pat00107
를 계산한다.
[수학식 5] 제한된 리소스 내에서 트레이닝 시간을 줄이기 위해 각 서브모델에 최적의 컴퓨팅 성능
Figure pat00108
를 할당할 때 다음 수식이 성립한다.
Figure pat00109
where
Figure pat00110
첫 번째 서브모델에는 메모리를 만족하면서 가장 컴퓨팅 성능이 작은 노드를 찾아 할당한다. 노드 하나로 메모리를 만족할 수 없는 경우, 메모리를 만족할때까지 메모리카 큰 순서대로 컴퓨트 노드를 차례로 할당한다. 서브모델에 컴퓨트 노드 할당은 기본적으로 그리디 방식을 따른다. 자원을 플롭 수에 대해 내림차순 정렬하고 최적 플롭수에 가까울때까지 하나씩 더한다. 최종적으로는 수학식 6의 fairness를 최소화하는 것을 목표로 한다.
[수학식 6] 각 서브모델의 최적 플롭을
Figure pat00111
, 실제로 할당된 플롭을
Figure pat00112
라 하면 전체 노드 할당의 fairness는 다음과 같이 나타낸다.
Figure pat00113
본 발명의 (b3) 워커 할당 과정은 상기 (b1), (b2) 과정을 통해 특정 K에 대해 예상 트레이닝 시간이 가장 짧은 경우가 계산되어졌을 때 적용된다. 각 서브모델의 데이터 배치 수와 할당된 노드 정보를 토대로 노드 내의 워커에 각각 데이터 배치를 얼마나 할당할 것인지를 결정하는 단계로 (a3) 단계와 상동하다.

Claims (1)

  1. 복수의 계층으로 구성된 신경망 모델을 지정된 학습 배치 크기로 학습시키기 위해 각 신경망 계층을 GPU 워커에 배치하고 학습 배치 크기를 정하는 방법으로서,
    (a) 트레이닝 시간을 최소화시키기 위해 최대한 많은 컴퓨팅 자원을 사용하는 Best-effort scheduling 하는 단계와,
    (b) 자원 대비 효율적인 트레이닝 시간을 얻기 위해 GPU 워커를 배치시키는 Resource-Efficient scheduling 하는 단계를 포함하는
    학습 배치 크기를 정하는 방법.
KR1020170150700A 2017-11-13 2017-11-13 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법 KR20190054449A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170150700A KR20190054449A (ko) 2017-11-13 2017-11-13 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170150700A KR20190054449A (ko) 2017-11-13 2017-11-13 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법

Publications (1)

Publication Number Publication Date
KR20190054449A true KR20190054449A (ko) 2019-05-22

Family

ID=66680613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170150700A KR20190054449A (ko) 2017-11-13 2017-11-13 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법

Country Status (1)

Country Link
KR (1) KR20190054449A (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020246724A1 (en) * 2019-06-05 2020-12-10 Samsung Electronics Co., Ltd. Electronic apparatus and method of performing operations thereof
KR20210103928A (ko) * 2020-02-14 2021-08-24 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 태스크 병렬 처리 구현 방법, 장치, 기기 및 매체
KR20210115370A (ko) * 2020-03-12 2021-09-27 한국과학기술원 공유 gpu 클러스터를 위한 분산 딥러닝 작업 스케줄링 방법 및 이를 기록한 컴퓨터 판독 가능 기록매체
KR20210127538A (ko) * 2020-04-14 2021-10-22 주식회사 모레 딥러닝 작업을 이기종 가속기에서 처리하는 방법 및 이러한 방법을 수행하는 클러스터 시스템
KR20220006360A (ko) * 2020-07-08 2022-01-17 울산과학기술원 파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템
CN116050499A (zh) * 2023-04-03 2023-05-02 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种模型并行训练中的自适应模型划分方法、系统及设备
US11693706B2 (en) 2018-11-21 2023-07-04 Samsung Electronics Co., Ltd. System and method for dynamic scheduling of distributed deep learning training jobs
CN117093871A (zh) * 2023-10-16 2023-11-21 之江实验室 一种面向深度学习分布式训练测评方法和系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11693706B2 (en) 2018-11-21 2023-07-04 Samsung Electronics Co., Ltd. System and method for dynamic scheduling of distributed deep learning training jobs
WO2020246724A1 (en) * 2019-06-05 2020-12-10 Samsung Electronics Co., Ltd. Electronic apparatus and method of performing operations thereof
US11734577B2 (en) 2019-06-05 2023-08-22 Samsung Electronics Co., Ltd Electronic apparatus and method of performing operations thereof
KR20210103928A (ko) * 2020-02-14 2021-08-24 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 태스크 병렬 처리 구현 방법, 장치, 기기 및 매체
KR20210115370A (ko) * 2020-03-12 2021-09-27 한국과학기술원 공유 gpu 클러스터를 위한 분산 딥러닝 작업 스케줄링 방법 및 이를 기록한 컴퓨터 판독 가능 기록매체
KR20210127538A (ko) * 2020-04-14 2021-10-22 주식회사 모레 딥러닝 작업을 이기종 가속기에서 처리하는 방법 및 이러한 방법을 수행하는 클러스터 시스템
KR20220006360A (ko) * 2020-07-08 2022-01-17 울산과학기술원 파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템
CN116050499A (zh) * 2023-04-03 2023-05-02 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种模型并行训练中的自适应模型划分方法、系统及设备
CN116050499B (zh) * 2023-04-03 2023-07-18 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 一种模型并行训练中的自适应模型划分方法、系统及设备
CN117093871A (zh) * 2023-10-16 2023-11-21 之江实验室 一种面向深度学习分布式训练测评方法和系统
CN117093871B (zh) * 2023-10-16 2024-02-13 之江实验室 一种面向深度学习分布式训练测评方法和系统

Similar Documents

Publication Publication Date Title
KR20190054449A (ko) 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법
JP6898496B2 (ja) 計算グラフの処理
CN112199190B (zh) 内存分配方法、装置、存储介质及电子设备
CN110321222B (zh) 基于决策树预测的数据并行作业资源分配方法
CN110737529A (zh) 一种面向短时多变大数据作业集群调度自适应性配置方法
CN111274036A (zh) 一种基于速度预测的深度学习任务的调度方法
CN112328380A (zh) 一种基于异构计算的任务调度方法及装置
US20230012487A1 (en) Machine learning workload orchestration in heterogeneous clusters
CN109819032B (zh) 一种联合考虑基站选择与计算迁移的云机器人任务分配方法
CN113742089B (zh) 异构资源中神经网络计算任务的分配方法、装置和设备
US11055139B2 (en) Smart accelerator allocation and reclamation for deep learning jobs in a computing cluster
CN112579286B (zh) 用于光源掩模优化的方法、设备和存储介质
CN109684088B (zh) 云平台资源约束的遥感大数据快速处理任务调度方法
CN108427602B (zh) 一种分布式计算任务的协同调度方法及装置
CN116263681A (zh) 移动边缘计算任务卸载方法、装置、设备及存储介质
CN112862083B (zh) 一种边缘环境下的深度神经网络推断方法及装置
CN112560392B (zh) 用于处理电路版图的方法、设备和存储介质
CN113641448A (zh) 一种边缘计算容器分配和层下载排序体系结构及其方法
KR20220098949A (ko) 딥러닝 모델 분산 학습 시스템 및 방법
CN116915869A (zh) 基于云边协同的时延敏感型智能服务快速响应方法
CN116684291A (zh) 一种适用通用化平台的服务功能链映射资源智能分配方法
CN115794385A (zh) 一种面向深度学习模型分布式训练的容器自动编排方法
CN106126343B (zh) 基于增量式分区策略的MapReduce数据均衡方法
KR20230064963A (ko) 클러스터 컴퓨팅 시스템에서의 리소스 할당 방법 및 장치
Ghanavatinasab et al. SAF: simulated annealing fair scheduling for Hadoop Yarn clusters

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application