KR20230051064A - Gpu 클러스터 기반 지역별 분산 제어 시스템 및 방법, gpu 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램 및 gpu 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램이 저장된 컴퓨터 판독 가능한 기록매체 - Google Patents

Gpu 클러스터 기반 지역별 분산 제어 시스템 및 방법, gpu 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램 및 gpu 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램이 저장된 컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
KR20230051064A
KR20230051064A KR1020220113662A KR20220113662A KR20230051064A KR 20230051064 A KR20230051064 A KR 20230051064A KR 1020220113662 A KR1020220113662 A KR 1020220113662A KR 20220113662 A KR20220113662 A KR 20220113662A KR 20230051064 A KR20230051064 A KR 20230051064A
Authority
KR
South Korea
Prior art keywords
gpu
setting value
frequency setting
power
frequency
Prior art date
Application number
KR1020220113662A
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 한국과학기술원
Publication of KR20230051064A publication Critical patent/KR20230051064A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/048Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators using a predictor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Supply And Distribution Of Alternating Current (AREA)

Abstract

본 발명은 GPU 클러스터 기반 지역별 분산 제어 기술에 관한 것으로, GPU의 학습 모델 연산을 위한 출력 샘플을 기초로 설정되는 제1 모델 계수에 따라 상기 GPU의 입력 샘플을 조정하는 GPU 서버; 상기 제1 모델 계수를 수신하여 상기 GPU의 제1 주파수 설정값을 결정하는 전력 제어정보 연산부; 및 상기 제1 주파수 설정값과 기 설정된 전력 예산값을 수신하고, 상기 제1 주파수 설정값과 상기 전력 예산값을 기초로 이중화 변수(dual variable)를 결정하며, 결정되는 상기 이중화 변수를 상기 전력 제어정보 연산부로 전송하는 코디네이터(coordinator);를 포함하되, 상기 전력 제어정보 연산부는 상기 이중화 변수를 기초로 상기 제1 주파수 설정값을 갱신한 제2 주파수 설정값을 결정할 수 있다.

Description

GPU 클러스터 기반 지역별 분산 제어 시스템 및 방법, GPU 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램 및 GPU 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램이 저장된 컴퓨터 판독 가능한 기록매체 {METHOD AND SYSTEM FOR PROVIDING DISTRIBUTED POWER CONTROL BASED ON GPU CLUSTERS}
본 발명은 GPU(graphic processing unit) 기반의 다중 서버 클러스터(multi server cluster)로 구성된 컴퓨팅 환경에서의 지역별 분산 제어 기술에 관한 것이다.
딥러닝(deep learning) 및 머신러닝(machine learning) 작업과 같이 대규모 데이터 연산 처리를 요구하는 응용에 대한 수요가 크게 증가함에 따라 이를 위한 고성능 컴퓨팅 클러스터(high performance computing cluster) 구축 및 운용에 대한 관심이 증가하고 있다.
전통적인 CPU 기반 클러스터가 가지는 병렬 연산 성능의 한계와 설치 비용 문제를 극복하기 위하여, 최근에는 범용 그래픽 처리 유닛(general-purpose graphic processing unit, GPGPU)을 중심으로 하는 다수의 서버로 구성된 클러스터를 개발하고 운용하는 연구가 활발히 진행되고 있다. 전세계 외장형 그래픽 카드 시장에서 과반 이상의 점유율을 차지하고 있는 주요 벤더인 NVIDIA는 수십 개 이상의 스트리밍 멀티프로세서(streaming multiprocessor, SM)를 GPU 내부에 탑재한 그래픽 카드 여러 개를 랙(rack) 내에 설치하고, 고속 버스(bus)를 통해 연결하여 병렬 연산 성능을 극대화하고 있다.
그러나, GPU 기반의 고성능 클러스터는 높은 성능을 도출하는 반면, 전력 소비량(power consumption)이 높다는 단점이 있다. 수백 대 이상의 GPU 기반 서버로 구성된 클러스터 혹은 데이터센터의 경우, 예산 절감을 위해서 전력 언더-프로비져닝(under-provisioning facility power) 방법을 사용하므로 최대 가용 전력 공급량은 클러스터 혹은 데이터센터의 정점 수요(peak demand)를 만족시키지 못한다. 워크로드(workload) 변화에 의해 정점 수요가 발생하는 경우 전력 예산(power budget) 부족이 발생할 수 있으며, 이는 클러스터 내의 서버에 대해 회로 고장(circuit breakdown)을 발생시킬 수 있다. 결과적으로 이는 인프라의 서비스 품질을 떨어뜨리며 컴퓨팅 서버들의 수명을 낮추는 결과를 초래하게 된다.
이와 같은 문제를 해결하기 위해 기존 CPU 기반 클러스터 환경에서는 전력 캐핑(power capping) 기법을 적용하고 있다. 전력 캐핑 기법은 워크로드 상황을 토대로 전력 예산 초과가 예상되는 경우 서버의 연산 능력(capability)을 동적으로 쓰로틀링(throttling) 하여 전력 예산 이내로 들어오도록 전력 소비량을 조정하는 방식이다. 전통적인 전력 캐핑 방식은 동적으로 변동하는 CPU 워크로드 및 전기 사용 가격(electricity price)에 대해 적응적인 전력 제어를 가능하게 하였다.
그러나, 기존 CPU 기반 클러스터 환경을 위한 전력 캐핑 방식은 다음과 같은 이유로 딥러닝 및 머신러닝 작업을 다루는 최신 GPU 기반 클러스터 환경에는 적합하지 않다.
첫째, CPU와 달리 GPU는 아키텍쳐의 발전 속도가 빠르고 데이터센터 관점에서도 지속적인 업그레이드를 수행할 필요가 있다. 동일한 클러스터 환경에서도 성능과 구조가 다른 이종의(heterogeneous) GPU들이 존재할 수 있는데, 이러한 상황에서 특정 GPU 아키텍쳐를 기반으로 하는 전력 및 성능 추정 모델을 전체 클러스터에 적용할 수는 없는 실정이다.
둘째, 딥러닝 작업에 수반되는 딥뉴럴(deep neural) 네트워크 모델의 종류와 학습 데이터의 크기가 다양하기 때문에, 모든 작업과 GPU 장치의 조합에 대해 미리 오프라인 프로파일링(offline profiling)을 수행해서 모델 특성을 조사하는 것은 현실적으로 불가능하거나 큰 비용이 소요된다.
셋째, 전력 예산은 수백 대 이상의 GPU 기반 서버로 구성된 클러스터 전체에 걸쳐 적용되므로, 단순한 방법으로는 전력 제어 문제를 분산해서 처리할 수 없다(non-separable). 따라서 서버의 개수가 많아지면 제어 문제의 최적해를 찾는데 시간이 너무 오래 걸리게 되어 실시간 적시 전력 제어(on-time power control)를 수행할 수 없게 된다.
본 발명은 기존의 GPU 기반 클러스터 환경에서의 제한 요소들을 극복하기 위한 것으로, 이종의 GPU 기반 고성능 컴퓨팅 클러스터 위에 딥러닝을 포함한 머신러닝 작업(task)이 실행될 때 정적으로 혹은 동적으로 주어진 전력 예산을 준수하면서도 각 러닝 작업에서 요구하는 학습 데드라인의 위반을 최소화할 수 있는 GPU 기반 클러스터의 실시간 분산 제어 기술을 제안하고자 한다.
또한 본 발명은, 수백 대 이상의 GPU 서버가 포함된 환경에 대해서도 동적으로 변하는 상황에 따라 실시간 적시 제어를 할 수 있도록 하는 분산 제어 기술을 제안하고자 한다.
또한 본 발명은, 전력 예산 제약 조건을 가진 GPU 기반의 다중 서버 클러스터로 구성된 컴퓨팅 환경에서 딥러닝 작업의 성능 보장을 위한 협력적 실시간 분산 전력 제어 기술을 제안하고자 한다.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시예에 따르면, GPU의 학습 모델 연산을 위한 출력 샘플을 기초로 설정되는 제1 모델 계수에 따라 상기 GPU의 입력 샘플을 조정하는 GPU 서버; 상기 제1 모델 계수를 수신하여 상기 GPU의 제1 주파수 설정값을 결정하는 전력 제어정보 연산부; 및 상기 제1 주파수 설정값과 기 설정된 전력 예산값을 수신하고, 상기 제1 주파수 설정값과 상기 전력 예산값을 기초로 이중화 변수(dual variable)를 결정하며, 결정되는 상기 이중화 변수를 상기 전력 제어정보 연산부로 전송하는 코디네이터(coordinator);를 포함하되, 상기 전력 제어정보 연산부는 상기 이중화 변수를 기초로 상기 제1 주파수 설정값을 갱신한 제2 주파수 설정값을 결정하는 GPU 클러스터 기반 지역별 분산 제어 시스템을 제공할 수 있다.
여기서, 상기 전력 제어정보 연산부는 상기 제2 주파수 설정값을 상기 GPU 서버로 전달할 수 있다.
또한, 상기 GPU 서버는 상기 제1 모델 계수를 설정하는 전력 모델링부를 포함하고, 상기 전력 모델링부는 상기 제2 주파수 설정값과 상기 입력 샘플을 기초로 상기 제1 모델 계수를 갱신한 제2 모델 계수를 설정할 수 있다.
또한, 상기 GPU 서버는 상기 제2 모델 계수를 기초로 상기 입력 샘플을 갱신할 수 있다.
또한, 상기 입력 샘플은 상기 GPU의 주파수이고, 상기 출력 샘플은 상기 GPU의 상기 학습 모델 연산에 대한 이터레이션(iteration) 처리 시간 및 전력 소비량일 수 있다.
또한, 상기 전력 제어정보 연산부는 상기 GPU의 전력 소비량이 상기 전력 예산값을 초과하지 않으면서, 이터레이션 처리 시간과 이터레이션 처리 요구 시간 간의 갭(gap)을 최소화하기 위한 주파수 설정값을 상기 제1 주파수 설정값 또는 상기 제2 주파수 설정값으로 결정할 수 있다.
또한, 상기 GPU의 주파수는 코어 주파수 및 메모리 주파수 중 적어도 하나를 포함할 수 있다.
또한, 상기 제1 모델 계수는 상기 이터레이션 처리 시간을 상기 전력 모델링부에서 학습한 결과인 이터레이션 처리 시간 모델 계수와, 상기 전력 소비량을 상기 전력 모델링부에서 학습한 결과인 전력 소비량 모델 계수를 포함할 수 있다.
또한, 상기 GPU 서버는, 상기 이터레이션 처리 시간을 수집하고, 상기 이터레이션 처리 시간을 상기 전력 모델링부로 전달하는 학습 출력 파서(training output parser)를 더 포함할 수 있다.
또한, 상기 GPU 서버는, 상기 GPU에서 발생하는 전력 소비량을 모니터링하고, 상기 전력 소비량을 상기 전력 모델링부로 전달하는 전력 모니터링부를 더 포함할 수 있다.
또한, 상기 전력 모델링부는 상기 전력 예산값을 기반으로 재귀적 최소 제곱 회귀(recursive least square regression) 방식을 적용하여 상기 제1 모델 계수 또는 상기 제2 모델 계수를 설정하는 것을 특징으로 할 수 있다.
또한, 상기 GPU는 상기 GPU 서버 내에 복수 개로 구비되고, 상기 GPU 서버는 복수 개의 지역별 GPU 클러스터 각각마다 복수 개로 구비될 수 있다.
본 발명의 실시예에 따르면, 지역별 GPU 클러스터 내에 포함된 GPU 서버의 GPU에서 학습 모델 연산이 수행되면 상기 GPU의 이터레이션 처리 시간과 전력 소비량을 측정하는 단계; 상기 이터레이션 처리 시간과 상기 전력 소비량을 기초로 제1 모델 계수를 설정하는 단계; 상기 제1 모델 계수에 따른 상기 GPU의 제1 주파수 설정값과 기 설정된 전력 예산값을 기초로 갱신된 제2 주파수 설정값을 수신하는 단계; 및 상기 제2 주파수 설정값을 기초로 상기 GPU의 주파수를 조정하는 단계;를 포함하는 GPU 서버의 GPU 클러스터 기반 지역별 분산 제어 방법을 제공할 수 있다.
여기서, 상기 조정하는 단계는, 상기 제2 주파수 설정값과 상기 GPU의 현재 주파수 정보를 기초로 상기 제1 모델 계수를 갱신한 제2 모델 계수를 설정하는 단계를 포함할 수 있다.
또한, 상기 조정하는 단계는, 상기 GPU의 전력 소비량이 상기 전력 예산값을 초과하지 않으면서 상기 GPU의 학습 모델 연산에 대한 이터레이션 처리 시간과 이터레이션 처리 요구 시간 간의 갭이 최소화되도록 상기 GPU의 주파수를 조정하는 단계일 수 있다.
본 발명의 실시예에 따르면, 지역별 GPU 클러스터 내에 포함된 GPU 서버로부터 GPU의 출력 샘플에 따른 제1 모델 계수를 수신하는 단계; 상기 제1 모델 계수를 기초로 상기 GPU의 제1 주파수 설정값을 결정하는 단계; 상기 제1 주파수 설정값을 코디네이터로 전송하는 단계; 상기 제1 주파수 설정값과 기 설정된 전력 예산값에 따른 이중화 변수를 상기 코디네이터로부터 수신하는 단계; 상기 이중화 변수를 기초로 상기 제1 주파수 설정값을 갱신한 제2 주파수 설정값을 결정하는 단계; 및 상기 제2 주파수 설정값을 상기 GPU 서버로 전송하는 단계;를 포함하는 GPU 클러스터 기반 지역별 분산 제어 방법을 제공할 수 있다.
여기서, 상기 방법은, 상기 GPU 서버에서, 상기 제2 주파수 설정값과 상기 GPU의 입력 샘플을 기초로 상기 제1 모델 계수를 갱신한 제2 모델 계수가 설정되도록 하는 단계를 더 포함할 수 있다.
또한, 상기 입력 샘플은 상기 GPU의 주파수이고, 상기 출력 샘플은 상기 GPU의 이터레이션 처리 시간 및 전력 소비량일 수 있다.
또한, 상기 방법은, 상기 전력 소비량이 상기 전력 예산값을 초과하지 않으면서, 상기 이터레이션 처리 시간과 이터레이션 처리 요구 시간 간의 갭을 최소화하기 위한 주파수 설정값을 상기 제1 주파수 설정값 또는 상기 제2 주파수 설정값으로 결정하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따르면, 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서, 상기 컴퓨터 프로그램은, GPU 클러스터 기반 지역별 분산 제어 장치에 의해 수행되는 지역별 분산 제어 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하고, 상기 방법은, 지역별 GPU 클러스터 내에 포함된 GPU 서버로부터 GPU의 출력 샘플에 따른 제1 모델 계수를 수신하는 단계; 상기 제1 모델 계수를 기초로 상기 GPU의 제1 주파수 설정값을 결정하는 단계; 상기 제1 주파수 설정값을 코디네이터로 전송하는 단계; 상기 제1 주파수 설정값과 기 설정된 전력 예산값에 따른 이중화 변수를 상기 코디네이터로부터 수신하는 단계; 상기 이중화 변수를 기초로 상기 제1 주파수 설정값을 갱신한 제2 주파수 설정값을 결정하는 단계; 및 상기 제2 주파수 설정값을 상기 GPU 서버로 전송하는 단계;를 포함할 수 있다.
본 발명의 실시예에 따르면, 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은, GPU 클러스터 기반 지역별 분산 제어 장치에 의해 수행되는 지역별 분산 제어 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하고, 상기 방법은, 지역별 GPU 클러스터 내에 포함된 GPU 서버로부터 GPU의 출력 샘플에 따른 제1 모델 계수를 수신하는 단계; 상기 제1 모델 계수를 기초로 상기 GPU의 제1 주파수 설정값을 결정하는 단계; 상기 제1 주파수 설정값을 코디네이터로 전송하는 단계; 상기 제1 주파수 설정값과 기 설정된 전력 예산값에 따른 이중화 변수를 상기 코디네이터로부터 수신하는 단계; 상기 이중화 변수를 기초로 상기 제1 주파수 설정값을 갱신한 제2 주파수 설정값을 결정하는 단계; 및 상기 제2 주파수 설정값을 상기 GPU 서버로 전송하는 단계;를 포함할 수 있다.
본 발명에 의하면, GPU 클러스터의 최적 전력 조정을 위한 협력적 분산 제어 시스템은 수백 대 이상의 GPU 서버가 포함된 대규모 클러스터 환경에 대해서 적재된 각 딥러닝 및 머신러닝 작업의 학습 성능 저하를 최소화하면서도 동시에 주어진 전력 예산을 초과하지 않도록 적시 전력 제어를 달성할 수 있다. 특히, 본 발명의 실시예에 따른 GPU 주파수 및 딥러닝 작업 전력/성능 기반 전력 모델링은, 오프라인 프로파일링 방식이 요구하는 추가 계산 시간과 비용 문제를 해결하면서도 정확한 GPU 주파수 런타임 튜닝을 달성할 수 있다. 작업의 적재 후 수집된 짧은 시간 동안의 모니터링 정보만으로도 전력 제어 최적해 계산에 필요한 GPU 전력/작업성능 모델 계수(coefficients)를 얻을 수 있다. 또한, 본 발명에 의하면, 경제적 모델 예측 제어(economic model predictive control, EMPC) 이론을 기반으로 전체 제어 문제를 수식화하여 강건(rigorous)하고 안정(stable)적인 전력 제어를 달성할 수 있다. 특히, 본 발명의 실시예에 따른 GPU 클러스터 기반의 지역별 실시간 분산 제어 시스템은 라그랑지안 이중 분할 기법(lagrangian dual decomposition)을 활용하여 전체 제어 문제를 여러 개의 서브-제어 문제로 나누어 분산 제어가 가능하도록 한다. 지역별 GPU 전력 제어정보 연산부의 개수를 단순히 늘리는 것 만으로 전체 제어 문제의 해 차원 수(solution dimension)를 효과적으로 줄임으로써, 수백 대 이상의 GPU 서버에 대해서 신속한 실시간 전력 제어를 달성할 수 있다.
도 1은 본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 시스템을 포함하는 GPU 클러스터 시스템의 블록도이다.
도 2는 도 1의 GPU 클러스터 기반 지역별 분산 제어 시스템에서 임의의 GPU 서버, 예컨대 제1 GPU 서버의 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 방법을 설명하는 타임 차트를 예시한 도면이다.
도 4는 본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 시스템에서 딥러닝 클러스터를 구성하는 GPU 서버의 전력 제어를 위한 GPU 코어 주파수(core frequency) 및 GPU 메모리 주파수(memory frequency)를 조정하는 경우를 예시적으로 설명하기 위한 구성도이다.
도 5는 본 발명의 실시예에 따라 다수의 에포크(epoch)로 구성된 딥러닝 작업이 적재될 때 미리 정의된 작업 데드라인(dead-line) 이내에 처리되어야 하는 에포크 및 이터레이션(iteration)의 개수를 예시적으로 설명하는 개념도이다.
도 6은 본 발명의 실시예에 따라 단일 GPU 서버 관점에서 GPU 주파수-딥러닝 태스크 전력/성능 관계 기반 재귀적 최소 제곱 회귀 분석(recursive least square regression)을 기초로 한 전력 모델링부의 처리 과정을 예시적으로 설명하는 도면이다.
도 7은 본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 시스템의 전체 구조를 개념적으로 설명하기 위한 예시도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
또한, 명세서에서 사용되는 '부'라는 용어는 소프트웨어 또는 FPGA나 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.
본 발명의 실시예에서는 다음 2가지 기술들이 대표적으로 제안될 수 있다.
첫째, 온라인 모델 추정(online model estimation)을 이용한 GPU 코어 주파수 및 GPU 메모리 주파수 조정(core & memory frequency scaling, FS) 기술을 제안한다. 가정한 전력 및 성능 모델을 기반으로 재귀적 최소 제곱 회귀 방식을 적용하여 실시간으로 수집되는 샘플값을 통해 GPU 주파수 - 전력/성능 모델 사이의 관계식을 도출한다. 이러한 본 발명의 실시예를 통해 비싸고 긴 시간이 소요되는 오프라인 프로파일링을 수행할 필요없이 런타임 프로파일링(runtime profiling)으로 GPU 주파수 조정을 수행하며 원하는 레벨의 GPU 전력 소비량 및 딥러닝 작업의 성능을 달성할 수 있다.
둘째, 제어 이론 중 하나인 경제적 모델 예측 제어 기반의 협력적 분산 제어 기술(cooperative distributed control)을 제안한다. 경제적 모델 예측 제어는 비용과 관련된 목적 함수(cost-related objective function), 동적 모델이 알려진 상태(state) 및 입력 변수(input variable), 그리고 제약 조건(constraint)이 주어질 때 안정성(stability)을 보장하면서도 최적의 제어 해를 찾을 수 있게 하는 이론이다. 경제적 모델 예측 제어를 기반으로 본 발명의 실시예에서는 라그랑지안 이중화 분할 기법을 적용한 시스템을 설계 및 제안하여, 수백대 이상의 GPU 서버로 구성된 클러스터에 대해서도 실시간 적시 전력 제어를 할 수 있도록 한다.
이하에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.
도 1은 본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 시스템을 포함하는 GPU 클러스터 시스템의 블록도이다.
도 1에 도시한 바와 같이, GPU 클러스터 시스템(A)은 복수 개로 구성된 GPU 클러스터 그룹(100-1~100-N)이 분산 처리를 위해 고속의 네트워크 환경에서 서로 연결될 수 있으며, 이러한 GPU 클러스터 시스템(A)은 본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 시스템(a)을 포함할 수 있다.
본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 시스템(a)은 GPU 클러스터 그룹(100-1~100-N) 각각마다 구비되는 GPU 서버 그룹(110-1~110-N) 내의 임의의 GPU 서버(예컨대, 제1 GPU 서버(110-1)), GPU 클러스터 그룹(100-1~100-N) 각각마다 구비되는 전력 제어정보 연산부(120) 및 코디네이터(200)를 포함할 수 있다.
즉, GPU 클러스터 그룹(100-1~100-N) 각각에는 복수 개로 구성된 GPU 서버 그룹(110-1~110-N)과 전력 제어정보 연산부(120)가 구비될 수 있으며, GPU 클러스터 그룹(100-1~100-N)은 코디네이터(200)와 연결될 수 있다.
본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 시스템(a)을 구성하는 제1 GPU 서버(110-1)는 GPU의 학습 모델 연산을 위한 출력 샘플을 기초로 설정되는 모델 계수에 따라 GPU의 입력 샘플을 조정할 수 있다.
이러한 제1 GPU 서버(110-1)는 도 2에 도시한 바와 같이, GPU(10)와 전력 모델링부(20)를 포함할 수 있다.
GPU(10)는 제1 GPU 서버(110-1) 내에 구비되며, 클러스터 단위로 학습 모델 연산을 수행하는 역할을 한다. 이러한 GPU(10)는 학습 모델 연산이 수행될 때 주어진 딥러닝 모델에 대한 이터레이션을 처리할 수 있으며, 딥러닝 작업에 필요한 전력을 소비할 수 있다.
GPU(10)의 딥러닝 작업에 따라 생성되는 이터레이션 처리 시간과 전력 소비량은 GPU(10)의 출력 샘플로서 활용될 수 있으며, 제1 GPU 서버(110-1)가 GPU(10)를 제어하기 위한 주파수 정보는 입력 샘플로서 활용될 수 있다. 즉, 입력 샘플은 GPU로 인가되는 값으로서 GPU의 주파수 정보를 포함할 수 있으며, 출력 샘플은 GPU의 학습 모델 연산을 위해 GPU로부터 제공되는 값으로서 GPU의 이터레이션 처리 시간과 전력 소비량을 포함할 수 있다. 이에 대해서는 후술하는 설명에서 보다 상세히 다루기로 한다.
전력 모델링부(20)는 본 발명의 실시예에서 「온라인 모델 추정부」로 명명될 수 있으며, 온라인 모델 추정부로서의 전력 모델링부(20)는 후술하는 전력 제어정보 연산부(120)의 주파수 설정값 결정을 위한 모델 계수를 설정할 수 있다. 예컨대, 전력 모델링부(20)는 딥러닝 작업에서 이터레이션 처리 시간 및 GPU(10)의 전력 소비량을 출력 샘플, GPU(10)의 코어 주파수 및 GPU(10)의 메모리 주파수를 입력 샘플로 각각 정의하여, 이터레이션 처리 시간 모델 계수와 전력 소비량 모델 계수를 각각 설정할 수 있다.
이러한 전력 모델링부(20)는 전력 제어정보 연산부(120)에서 결정되는 주파수 설정값과 입력 샘플을 기초로 모델 계수를 갱신할 수 있다. 전력 모델링부(20)는 주파수 설정값을 기반으로 재귀적 최소 제곱 회귀 방식을 적용하여 모델 계수를 갱신할 수 있다.
한편, 제1 GPU 서버(110-1)는 상술한 GPU(10)와 전력 모델링부(20) 외에, 도시 생략된 학습 출력 파서(training output parser) 및 전력 모니터링부를 더 포함할 수 있다. 이러한 학습 출력 파서와 전력 모니터링부에 대해서는 하기 도 7에서 상세히 설명하기로 한다.
전력 제어정보 연산부(120)는 제1 GPU 서버(110-1)로부터 모델 계수를 수신하여 GPU(10)의 주파수 설정값을 결정할 수 있다.
이러한 전력 제어정보 연산부(120)는 쿼드라틱 프로그래밍 최적화기(quadratic programming optimization solver)를 사용해서 주어진 서브-쿼드라틱 문제(sub QP problem)에 대한 최적해를 도출하는 역할을 한다.
GPU 클러스터 그룹(100-1~100/N) 각각에는 이러한 전력 제어정보 연산부(120)가 지역별로 각각 하나씩 배치되어 주파수 설정값을 결정할 수 있다. 예컨대, 전력 제어정보 연산부(120)는 GPU 클러스터(100-1) 내에 구비되는 GPU 서버(110-1)에서 보고하는 모델 계수를 모아서 GPU 서버(110-1)에 대한 모델 및 제어식을 구성할 수 있다.
이러한 전력 제어정보 연산부(120)는 GPU(10)의 전력 소비량이 전력 예산값을 초과하지 않으면서, 이터레이션 처리 시간과 이터레이션 처리 요구 시간 간의 갭을 최소화하기 위한 주파수 설정값을 결정할 수 있다.
코디네이터(200)는 GPU 클러스터 그룹(100-1~100-N)의 각각의 지역별 클러스터와 연결되며, GPU 클러스터 그룹(100-1~100-N) 각각에 포함된 전력 제어정보 연산부(120)와 반복적인 메시지 교환을 수행한다.
코디네이터(200)는 GPU 클러스터 그룹(100-1~100-N) 각각에 포함된 전력 제어정보 연산부(120)로부터 주파수 설정값을 수신함과 동시에, 기 설정된 전력 예산값을 수신할 수 있다. 여기서, 전력 예산값은 별도의 전력 공급 서버, GPU 클러스터 등을 통해 코디네이터(200)로 제공될 수 있으며, 전력 예산값을 제공하는 주체는 특별히 한정되지는 않는다.
코디네이터(200)는 이러한 주파수 설정값과 전력 예산값을 기초로 전력예산 분배를 위한 이중화 변수를 결정하고, 결정되는 이중화 변수를 전력 제어정보 연산부(120)로 전달할 수 있다. 코디네이터(200)는 전력 제어정보 연산부(120)와의 반복적인 메시지 교환을 통해 최적화된 이중화 변수를 점진적으로 갱신할 수 있다.
이와 같이 충분히 갱신된 이중화 변수가 전력 제어정보 연산부(120)로 전달되면, 전력 제어정보 연산부(120)는 갱신된 이중화 변수에 대응되는 최적의 주파수 설정값을 결정하여 GPU 서버 그룹(110-1~100-N)에게 전달할 수 있다.
결정된 주파수 설정값이 임의의 GPU 서버, 예컨대 제1 GPU 서버(100-1)로 전송되면, 제1 GPU 서버(100-1)는 해당 주파수 설정값을 통해 GPU(10)의 주파수, 예컨대 GPU(10)의 코어 주파수와 메모리 주파수를 조정할 수 있다.
도 3은 본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 방법을 설명하는 타임 차트를 예시한 도면이다.
도 3에 도시한 바와 같이, GPU 클러스터 단위의 GPU 서버(110)는 GPU(10)에서 학습 모델 연산이 수행되면 GPU(10)의 이터레이션 처리 시간과 전력 소비량을 측정하고, 측정되는 이터레이션 처리 시간과 전력 소비량을 기초로 모델 계수를 설정할 수 있다(S100). 모델 계수는 이터레이션 처리 시간 모델 계수와 전력 소비량 모델 계수를 포함할 수 있다.
이와 같이 GPU 서버(110)에서 설정되는 모델 계수는 GPU 클러스터 단위의 전력 제어정보 연산부(120)로 전송될 수 있다(S102).
전력 제어정보 연산부(120)는 이러한 모델 계수를 기초로 GPU(10)의 주파수 설정값을 결정하고, 결정되는 주파수 설정값을 코디네이터(200)로 전송할 수 있다(S104)(S106).
코디네이터(200)는 전력 제어정보 연산부(120)로부터 제공된 주파수 설정값과, 별도의 서버로부터 제공된 전력 예산값을 기초로 이중화 변수를 결정하고, 결정된 이중화 변수를 전력 제어정보 연산부(120)로 제공할 수 있다(S108)(S110). 이중화 변수는 전력 사용에 대한 비용을 묵시적으로 내포하여 GPU 클러스터 그룹(100-1~100-N)에서 필요로 하는 전력만을 소비할 수 있도록 유도한다.
이후, 전력 제어정보 연산부(120)는 코디네이터(200)로부터 제공된 이중화 변수를 기초로 주파수 설정값을 갱신할 수 있다(S112). 즉, 전력 제어정보 연산부(120)는 주어진 전력 예산값이 포함된 이중화 변수를 지속적으로 반영하여 GPU의 주파수를 갱신하기 위한 주파수 설정값을 결정한다.
갱신된 주파수 설정값은 GPU 서버(110)로 전송될 수 있다(S114).
결정된 주파수 설정값이 GPU 서버(100)로 전송되면, GPU 서버(100)는 해당 주파수 설정값을 통해 GPU(10)의 주파수, 예컨대 GPU(10)의 코어 주파수와 메모리 주파수를 조정할 수 있다(S116).
이와 같은 단계들은 GPU(10)의 이터레이션 처리 시간과 전력 소비량을 측정하는 최초 단계로 피드백하는 과정을 반복 수행할 수 있다.
도 4는 본 발명의 실시예에 따른 딥러닝 클러스트 기반의 GPU 서버(100)에서 GPU(10)의 이러한 코어 주파수와 메모리 주파수를 조정하는 경우를 예시적으로 설명하기 위한 구성도이다.
도 4에 도시한 바와 같이, 본 발명의 실시예에 따른 GPU 기반 클러스터의 실시간 분산 전력 제어 시스템은 GPU(10)의 코어 주파수와 메모리 주파수를 조정하여 GPU(10)의 클록 레이트(clock rate)와 GPU 메모리 컨트롤러의 액세스 레이트(access rate)를 결정할 수 있다.
GPU(10) 상에서 딥러닝 모델을 학습시키기 위해서는 먼저 스토리지(디스크, 1)에 저장된 입력 데이터를 미니 배치(mini-batch)의 형태로 GPU(10)의 GPU 글로벌 메모리(12)에 복사해야 한다. 미니 배치에 대한 학습이 완료된 후 모델 그레디언트(model gradient) 값이 GPU 글로벌 메모리(12)로부터 릴리즈 되어 메인 메모리(2)로 전달된다. 이러한 과정에서 서버의 CPU(도시 생략됨)와 GPU(10) 사이의 데이터 I/O 처리율(throughput)은 GPU(10)의 메모리 주파수에 의해 영향을 받는다.
딥러닝 학습을 위해 수행되는 피드포워드(feedforward)-백프로퍼게이션(backpropagation)은 행렬-벡터(matrix-vector) 및 행렬-행렬(matrix-matrix) 곱 연산을 필요로 한다. 이러한 연산은 단일 명령-다중 스레드(single instruction multiple thread, SIMT) 오퍼레이션의 형태로 분할되어 GPU의 각 SM 코어(14)에 전달된다. 이러한 과정에서 GPU(10)의 처리 속도는 GPU(10)의 코어 주파수에 의해 영향을 받는다.
이와 같이 본 발명에서 활용하는 GPU(10)의 코어 및 메모리 주파수 조정은 GPU(10) 상에서 실행되는 딥러닝 작업의 속도에 직접적인 영향을 미치며, 동시에 GPU(10)의 코어 및 메모리에서 발생하는 전력 소비량에도 영향을 미친다.
이에 대해, 아래 수학식들을 참고하여 보다 구체적으로 설명하기로 한다.
먼저, 제어 시점을 k라고 할 때, 지역 클러스터 i에 속한 임의의 GPU 서버 j에 설정된 주파수 벡터
Figure pat00001
는 다음 [수학식 1]과 같이 정의될 수 있다.
Figure pat00002
제어 시점 k에 지역 클러스터 i에 속한 임의의 GPU 서버 j 위에서 실행되는 딥러닝 작업으로 인해 GPU 장치에서 발생하는 전력 소비량을
Figure pat00003
라고 가정한다. 특정 GPU 서버 위에서 주어진 딥러닝 모델에 대한 이터레이션 하나를 처리하는 데 소요되는 시간을 이터레이션 시간(iteration time)이라고 정의한다. 이터레이션 시간은 딥러닝 작업 처리 성능을 나타내는 정량 지표로서 활용될 수 있다.
시점 k에 지역 클러스터 i에 속한 임의의 GPU 서버 j 위에서 실행되는 딥러닝 작업의 이터레이션 시간을
Figure pat00004
라고 가정한다. 설정된 주파수 벡터가
Figure pat00005
일 때 도출되는 전력 소비량
Figure pat00006
및 이터레이션 시간은 다음 [수학식 2] 및 [수학식 3]과 같이 설정될 수 있다.
Figure pat00007
Figure pat00008
[수학식 2]에서
Figure pat00009
,
Figure pat00010
,
Figure pat00011
는 각각 GPU 서버의 전력 모델과 관련된 계수들이며, [수학식 3]에서
Figure pat00012
,
Figure pat00013
,
Figure pat00014
는 딥러닝 작업의 이터레이션 시간 모델과 관련된 계수들이다. 이 계수들은 후술하는 도 6의 전력 모델링부(20)의 처리 과정을 통해 계산되고 갱신될 수 있다.
도 5는 다수의 에포크로 구성된 딥러닝 작업이 적재될 때 미리 정의된 작업 데드라인 이내에 처리되어야 하는 에포크 및 이터레이션의 개수를 예시적으로 설명하는 도면으로서, 클러스터를 구성하는 GPU 서버에 딥러닝 작업이 적재될 때 작업을 구성하는 에포크와 이터레이션을 나누어, 처리 완료된 에포크(completed epochs)와 처리 완료된 이터레이션(completed iteration)으로 구분한 다음, 주어진 작업 데드라인 이내에 처리 완료해야 하는 남은 에포크와 이터레이션을 나타내고 있다.
도 5에 도시한 바와 같이, 지역 클러스터 i에 속한 임의의 GPU 서버 j 위에서 실행되는 딥러닝 작업에 대한 데드라인을
Figure pat00015
라고 가정한다. 또한, T를 전체 제어 기간(control period), k를 시간에 대한 인덱스라고 가정한다. 본 발명의 실시예에서는 위의 가정을 기반으로 다음 [수학식 4]와 같이 이터레이션 처리 요구 시간(iteration time requirement)이라는 정량적인 지표를 정의할 수 있다.
Figure pat00016
[수학식 4]에서 이터레이션 처리 요구 시간
Figure pat00017
는 시간 단계 k에서의 딥러닝 작업에 대한 서브 데드라인(sub-deadline)을 나타낸다.
Figure pat00018
는 주어진 데드라인까지의 잔여 에포크 및 이터레이션 처리 여유 시간을 나타낸다.
Figure pat00019
는 딥러닝 작업의 총 에포크 개수를 나타낸다.
Figure pat00020
는 딥러닝 작업의 처리 완료된 에포크 개수를 나타낸다.
Figure pat00021
는 모든 에포크가 가지는 이터레이션의 총 개수를 나타낸다. (모든 에포크는 동일한 이터레이션 개수를 가진다).
Figure pat00022
는 현재 실행 중인 에포크에서 아직 처리되지 않고 남아있는 이터레이션 개수를 나타낸다.
만약, 현재 이터레이션 시간이 이터레이션 처리 요구 시간 보다 길다면(
Figure pat00023
), 이는 현재의 GPU 주파수가 그대로 유지될 경우에 딥러닝 작업의 데드라인이 위반될 수 있음을 의미한다. 반대로, 현재 이터레이션 시간이 이터레이션 처리 요구 시간보다 짧다면(
Figure pat00024
), 현재 GPU 주파수가 과도하게 높게 설정되었음을 의미한다.
이상적으로는 이터레이션 시간과 이터레이션 처리 요구 시간이 동일해야 한다(
Figure pat00025
). 그러므로, 본 발명에서 제안하는 GPU 클러스터 기반 지역별 분산 제어 시스템은, 주어진 전력 예산을 초과하지 않는 범위내에서 적재된 모든 딥러닝 작업에 대해서 이터레이션 시간과 이터레이션 처리 요구 시간 사이의 갭을 최소화하는데에 그 목적이 있다.
도 6은 단일 GPU 서버 관점에서 본 발명에서 제안하는 GPU 주파수-딥러닝 태스크 전력/성능 관계 기반 재귀적 최소 제곱 회귀 분석을 기초로 한 전력 모델링부(20)의 처리 과정을 예시적으로 설명하는 도면으로서, GPU 서버위에서 실행되는 딥러닝 작업에 대해 GPU 주파수 및 측정된 이터레이션 처리 시간과 전력 소비량 값을 수집하여 재귀적 최소 제곱 회귀 기반의 전력 모델링부(20)에 전달 후, GPU 전력/작업성능 모델 계수를 구하는 과정을 나타내고 있다.
도 6에 도시한 바와 같이, 전력 모델링부(20)의 입력 샘플 값은 GPU 코어 주파수와 메모리 주파수로 구성된 GPU 주파수 벡터
Figure pat00026
이며, 출력 샘플 값은 모니터링 된 GPU의 전력 소비량과 딥러닝 태스크의 이터레이션 시간으로 구성된
Figure pat00027
이다. 입력 샘플인 GPU 주파수 벡터
Figure pat00028
와 출력 샘플인
Figure pat00029
는 다음 [수학식 5] 및 [수학식 6]과 같이 각각 정의될 수 있다.
Figure pat00030
Figure pat00031
전력 모델링부(20)가 계산해야 하는 모델 계수는 전력 모델 계수와 이터레이션 시간 모델 계수로 구성된다. 전력 모델 계수
Figure pat00032
와 이터레이션 시간 모델 계수
Figure pat00033
는 다음 [수학식 7] 및 [수학식 8]과 같이 각각 정의될 수 있다.
Figure pat00034
Figure pat00035
연속해서 입력되는 입력 샘플과 출력 샘플을 기반으로 모델 계수를 도출하는 수식은 표준 재귀적 최소 제곱 회귀 분석의 수식을 활용하도록 한다.
도 7은 본 발명의 실시예에 따른 딥러닝 GPU 클러스터 기반 지역별 분산 제어 시스템의 전체 구조를 예시한 것으로, 도 1의 GPU 클러스터 기반 지역별 분산 제어 시스테메을 보다 구체적으로 설명하기 위한 도면이다.
도 7에 도시한 바와 같이, 본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 시스템은, 딥러닝 작업을 요청하는 딥러닝 서비스 사용자 단말(U), 지역별 GPU 클러스터 그룹(100), 지역별 GPU 클러스터 그룹(100) 내의 각각의 지역별 GPU 클러스터에 대응하며 최적의 GPU 주파수 조정값 도출을 통해 지역 클러스터의 실시간 전력 제어를 수행하는 전력 제어정보 연산부(120), 그리고, 전력 제어정보 연산부(120)에 연결되며, 전력 제어정보 연산부(120)로 이중화 변수를 전달하여 전체 제어 문제를 분할하는 코디네이터(200)를 포함할 수 있다.
지역별 GPU 클러스터 그룹(100) 마다 배치되는 GPU 서버 그룹(110) 각각은 할당된 딥러닝 작업을 수행하고, 딥러닝 작업 수행 결과를 모니터링하여 전력 제어정보 연산부(120)에게 보고하며, 전력 제어정보 연산부(120)로부터 GPU 주파수 조정값을 수신할 수 있다. 즉, 하나의 지역별 GPU 클러스터는 통상 수 대에서 수십 대 이상의 GPU 서버로 구성되어 있으며, 각각의 GPU 서버는 단일 혹은 2개 이상의 GPU를 포함하고 있다.
딥러닝 서비스 사용자 단말(U)의 요청에 의해서 데드라인이 정의된 딥러닝 작업이 GPU 서버(110)에 적재되면, 이터레이션 기반 딥 뉴럴 네트워크 모델 학습 프로세스가 활성화될 수 있다. 딥 뉴럴 네트워크 모델은 통상 확률적 그레디언트 디센트(stochastic gradient descent, 이하 SGD) 방식에 의해서 학습되며, 네트워크 모델 파라미터는 매 이터레이션마다 미니 배치라 부르는 서브 데이터 셋을 기반으로 반복적으로 업데이트 된다. SGD 방식에서 하나의 이터레이션은 딥 뉴럴 네트워크 모델 전체 층에 대한 한번의 피드포워드와 백프로퍼게이션 작업이 수행되는 것을 기준으로 한다.
모든 미니 배치에 대한 학습이 끝나면, 즉 전체 데이터에 대한 모든 이터레이션이 완료되면 하나의 에포크가 끝난것으로 간주한다. 만족할 만한 추정 정확도를 달성하기 위해 일반적으로 하나의 딥러닝 작업은 수백 내지 수천 개 이상의 에포크를 작업량으로 가지고 있다.
GPU 서버(110)는 GPU(10)의 딥러닝 작업 처리 결과를 파싱하는 학습 출력 파서(30)와, GPU(10)에서 발생하는 전력 소비량을 모니터링하는 전력 모니터링부(40)를 더 포함한다.
구체적으로, 학습 출력 파서(30)는 딥러닝 작업 처리 결과를 파싱하고, 전력 모니터링부(40)는 GPU 전력 소비량을 모니터링하는 역할을 한다. 구체적으로, 학습 출력 파서(30)는 GPU(10)의 이터레이션이 완료될 때의 이터레이션 처리 시간을 수집하고 수집되는 이터레이션 처리 시간을 전력 모델링부(20)로 전달하며, 전력 모니터링부(40)는 GPU(10)에서 발생하는 전력 소비량을 모니터링하고 모니터링되는 전력 소비량을 전력 모델링부(20)로 전달할 수 있다. 이들 학습 출력 파서(30)와 전력 모니터링부(40)는 주기적인 시간, 예를 들어 1초 내지 2초 간격으로 GPU(10)의 이터레이션 처리 시간 및 전력 소비량을 수집하여 샘플로서 활용할 수 있도록 한다.
따라서, 하나의 이터레이션이 완료되면 학습 출력 파서(30)에 의해 수집되는 이터레이션 시간이 전력 모델링부(20)로 전달될 수 있으며, 이와 동시에 GPU(10)에 종속적인 전력 모니터링부(40)를 통해 모니터링되는 GPU(10)의 전력 소비량이 전력 모델링부(20)로 전달될 수 있다.
현재 설정된 GPU(10)의 코어 주파수와 메모리 주파수에 대한 측정값을 연동하여 전력 모델링부(20)는 도 5에서 설명한 바와 같이 GPU(10)의 전력 소비량 및 이터레이션 처리 시간에 대한 모델 계수를 갱신한다. GPU(10)의 전력 소비량 및 이터레이션 처리 시간에 대한 모델 계수는 지역별 GPU 클러스터 그룹(100) 마다 배치된 전력 제어정보 연산부(120)로 전달된다.
전력 제어정보 연산부(120)는 경제적 모델 예측 기반 제어 이론을 바탕으로 각 딥러닝 태스크의 데드라인 위반도를 최소화할 수 있는 최적의 GPU 주파수 설정값을 찾는다. 이와 동시에 주어진 전력 예산값을 초과하지 않기 위해 전력 제어ㅈ정보 연산부(120)는 코디네이터(200)로부터 이중화 변수를 수신한다. 이중화 변수는 전력 사용에 대한 비용을 묵시적으로 내포하여 지역별 GPU 클러스터 그룹(100)에서 필요로 하는 전력만을 가져갈 수 있도록 유도한다.
전력 제어정보 연산부(120)는 이중화 변수, 수집된 모델 계수 및 딥러닝 작업의 데드라인을 종합적으로 고려한 다음, 쿼드라틱 프로그래밍 최적화 기법을 통해 각 GPU 서버(110)의 최적 제어 입력 값을 계산한다.
코디네이터(200)는 전력 제어정보 연산부(120)로부터 도출되는 중간 단계의 제어 최적해와 주어진 전력 예산값을 이용하여 적절한 이중화 변수를 결정한다. 코디네이터(200)는 전력 제어정보 연산부(120)와의 반복적인 인터랙션(interaction)을 통해서 이중화 변수를 갱신해 나가면서 근사 최적 이중화 변수를 찾는다.
충분히 근사된 최적 이중화 변수가 도출되면, 도출된 이중화 변수는 GPU 클러스터 그룹(100) 내의 임의 지역의 GPU 클러스터들과 각각 연결된 전력 제어정보 연산부(120)로 전달되며, 각각의 전력 제어정보 연산부(120)는 주어진 이중화 변수에 대응되는 최적 제어 해를 찾는다.
최적 제어 해에 의해서 도출된 최적 주파수 설정값은 지역별 GPU 클러스터 내의 GPU 서버(110)로 전달될 수 있으며, 이에 따라 GPU 서버(110)는 최적 GPU 주파수 설정값을 기초로 GPU(10)의 코어 주파수 및 GPU 메모리 주파수를 조정할 수 있다.
한편, 전술한 본 발명의 실시예에 따른 GPU 클러스터 기반 지역별 분산 제어 방법에 포함된 각각의 단계는, 이러한 단계를 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록매체에서 구현될 수 있다.
본 발명에 첨부된 각 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 기록매체에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 기록매체에 저장된 인스트럭션들은 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 균등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100-1~100-N : GPU 클러스터 그룹
110-1~110-N : GPU 서버 그룹
120 : 전력 제어정보 연산부
10 : GPU
20: 전력 모델링부
200: 코디네이터

Claims (21)

  1. GPU의 학습 모델 연산을 위한 출력 샘플을 기초로 설정되는 제1 모델 계수에 따라 상기 GPU의 입력 샘플을 조정하는 GPU 서버;
    상기 제1 모델 계수를 수신하여 상기 GPU의 제1 주파수 설정값을 결정하는 전력 제어정보 연산부; 및
    상기 제1 주파수 설정값과 기 설정된 전력 예산값을 수신하고, 상기 제1 주파수 설정값과 상기 전력 예산값을 기초로 이중화 변수(dual variable)를 결정하며, 결정되는 상기 이중화 변수를 상기 전력 제어정보 연산부로 전송하는 코디네이터(coordinator);를 포함하되,
    상기 전력 제어정보 연산부는 상기 이중화 변수를 기초로 상기 제1 주파수 설정값을 갱신한 제2 주파수 설정값을 결정하는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  2. 제 1 항에 있어서,
    상기 전력 제어정보 연산부는 상기 제2 주파수 설정값을 상기 GPU 서버로 전달하는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  3. 제 2 항에 있어서,
    상기 GPU 서버는 상기 제1 모델 계수를 설정하는 전력 모델링부를 포함하고,
    상기 전력 모델링부는 상기 제2 주파수 설정값과 상기 입력 샘플을 기초로 상기 제1 모델 계수를 갱신한 제2 모델 계수를 설정하는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  4. 제 3 항에 있어서,
    상기 GPU 서버는 상기 제2 모델 계수를 기초로 상기 입력 샘플을 갱신하는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  5. 제 3 항에 있어서,
    상기 입력 샘플은 상기 GPU의 주파수이고,
    상기 출력 샘플은 상기 GPU의 상기 학습 모델 연산에 대한 이터레이션(iteration) 처리 시간 및 전력 소비량인
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  6. 제 5 항에 있어서,
    상기 전력 제어정보 연산부는 상기 GPU의 전력 소비량이 상기 전력 예산값을 초과하지 않으면서, 상기 이터레이션 처리 시간과 이터레이션 처리 요구 시간 간의 갭(gap)을 최소화하기 위한 주파수 설정값을 상기 제1 주파수 설정값 또는 상기 제2 주파수 설정값으로 결정하는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  7. 제 5 항에 있어서,
    상기 GPU의 주파수는 코어 주파수 및 메모리 주파수 중 적어도 하나를 포함하는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  8. 제 5 항에 있어서,
    상기 제1 모델 계수는 상기 이터레이션 처리 시간을 상기 전력 모델링부에서 학습한 결과인 이터레이션 처리 시간 모델 계수와, 상기 전력 소비량을 상기 전력 모델링부에서 학습한 결과인 전력 소비량 모델 계수를 포함하는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  9. 제 3 항에 있어서,
    상기 GPU 서버는,
    상기 이터레이션 처리 시간을 수집하고, 상기 이터레이션 처리 시간을 상기 전력 모델링부로 전달하는 학습 출력 파서(training output parser)를 더 포함하는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  10. 제 3 항에 있어서,
    상기 GPU 서버는,
    상기 GPU에서 발생하는 전력 소비량을 모니터링하고, 상기 전력 소비량을 상기 전력 모델링부로 전달하는 전력 모니터링부를 더 포함하는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  11. 제 3 항에 있어서,
    상기 전력 모델링부는 상기 제2 주파수 설정값을 기반으로 재귀적 최소 제곱 회귀(recursive least square regression) 방식을 적용하여 상기 제2 모델 계수를 설정하는 것을 특징으로 하는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  12. 제 1 항에 있어서,
    상기 GPU는 상기 GPU 서버 내에 복수 개로 구비되고,
    상기 GPU 서버는 복수 개의 지역별 GPU 클러스터 각각마다 복수 개로 구비되는
    GPU 클러스터 기반 지역별 분산 제어 시스템.
  13. 지역별 GPU 클러스터 내에 포함된 GPU 서버의 GPU에서 학습 모델 연산이 수행되면 상기 GPU의 이터레이션 처리 시간과 전력 소비량을 측정하는 단계;
    상기 이터레이션 처리 시간과 상기 전력 소비량을 기초로 제1 모델 계수를 설정하는 단계;
    상기 제1 모델 계수에 따른 상기 GPU의 제1 주파수 설정값과 기 설정된 전력 예산값을 기초로 갱신된 제2 주파수 설정값을 수신하는 단계; 및
    상기 제2 주파수 설정값을 기초로 상기 GPU의 주파수를 조정하는 단계;를 포함하는
    GPU 서버의 GPU 클러스터 기반 지역별 분산 제어 방법.
  14. 제 13 항에 있어서,
    상기 조정하는 단계는,
    상기 제2 주파수 설정값과 상기 GPU의 현재 주파수 정보를 기초로 상기 제1 모델 계수를 갱신한 제2 모델 계수를 설정하는 단계를 포함하는
    GPU 서버의 GPU 클러스터 기반 지역별 분산 제어 방법.
  15. 제 13 항에 있어서,
    상기 조정하는 단계는,
    상기 GPU의 전력 소비량이 상기 전력 예산값을 초과하지 않으면서 상기 GPU의 학습 모델 연산에 대한 이터레이션 처리 시간과 이터레이션 처리 요구 시간 간의 갭이 최소화되도록 상기 GPU의 주파수를 조정하는 단계인
    GPU 서버의 GPU 클러스터 기반 지역별 분산 제어 방법.
  16. 지역별 GPU 클러스터 내에 포함된 GPU 서버로부터 GPU의 출력 샘플에 따른 제1 모델 계수를 수신하는 단계;
    상기 제1 모델 계수를 기초로 상기 GPU의 제1 주파수 설정값을 결정하는 단계;
    상기 제1 주파수 설정값을 코디네이터로 전송하는 단계;
    상기 제1 주파수 설정값과 기 설정된 전력 예산값에 따른 이중화 변수를 상기 코디네이터로부터 수신하는 단계;
    상기 이중화 변수를 기초로 상기 제1 주파수 설정값을 갱신한 제2 주파수 설정값을 결정하는 단계; 및
    상기 제2 주파수 설정값을 상기 GPU 서버로 전송하는 단계;를 포함하는
    GPU 클러스터 기반 지역별 분산 제어 방법.
  17. 제 16 항에 있어서,
    상기 GPU 서버에서, 상기 제2 주파수 설정값과 상기 GPU의 입력 샘플을 기초로 상기 제1 모델 계수를 갱신한 제2 모델 계수가 설정되도록 하는 단계를 더 포함하는
    GPU 클러스터 기반 지역별 분산 제어 방법.
  18. 제 17 항에 있어서,
    상기 입력 샘플은 상기 GPU의 주파수이고,
    상기 출력 샘플은 상기 GPU의 이터레이션 처리 시간 및 전력 소비량인
    GPU 클러스터 기반 지역별 분산 제어 방법.
  19. 제 18 항에 있어서,
    상기 전력 소비량이 상기 전력 예산값을 초과하지 않으면서, 상기 이터레이션 처리 시간과 이터레이션 처리 요구 시간 간의 갭을 최소화하기 위한 주파수 설정값을 상기 제1 주파수 설정값 또는 상기 제2 주파수 설정값으로 결정하는 단계를 더 포함하는
    GPU 클러스터 기반 지역별 분산 제어 방법.
  20. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
    상기 컴퓨터 프로그램은,
    GPU 클러스터 기반 지역별 분산 제어 장치에 의해 수행되는 지역별 분산 제어 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하고,
    상기 방법은,
    지역별 GPU 클러스터 내에 포함된 GPU 서버로부터 GPU의 출력 샘플에 따른 제1 모델 계수를 수신하는 단계;
    상기 제1 모델 계수를 기초로 상기 GPU의 제1 주파수 설정값을 결정하는 단계;
    상기 제1 주파수 설정값을 코디네이터로 전송하는 단계;
    상기 제1 주파수 설정값과 기 설정된 전력 예산값에 따른 이중화 변수를 상기 코디네이터로부터 수신하는 단계;
    상기 이중화 변수를 기초로 상기 제1 주파수 설정값을 갱신한 제2 주파수 설정값을 결정하는 단계; 및
    상기 제2 주파수 설정값을 상기 GPU 서버로 전송하는 단계;를 포함하는
    컴퓨터 판독 가능한 기록매체.
  21. 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은,
    GPU 클러스터 기반 지역별 분산 제어 장치에 의해 수행되는 지역별 분산 제어 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하고,
    상기 방법은,
    지역별 GPU 클러스터 내에 포함된 GPU 서버로부터 GPU의 출력 샘플에 따른 제1 모델 계수를 수신하는 단계;
    상기 제1 모델 계수를 기초로 상기 GPU의 제1 주파수 설정값을 결정하는 단계;
    상기 제1 주파수 설정값을 코디네이터로 전송하는 단계;
    상기 제1 주파수 설정값과 기 설정된 전력 예산값에 따른 이중화 변수를 상기 코디네이터로부터 수신하는 단계;
    상기 이중화 변수를 기초로 상기 제1 주파수 설정값을 갱신한 제2 주파수 설정값을 결정하는 단계; 및
    상기 제2 주파수 설정값을 상기 GPU 서버로 전송하는 단계;를 포함하는
    기록매체에 저장된 컴퓨터 프로그램.
KR1020220113662A 2021-10-08 2022-09-07 Gpu 클러스터 기반 지역별 분산 제어 시스템 및 방법, gpu 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램 및 gpu 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램이 저장된 컴퓨터 판독 가능한 기록매체 KR20230051064A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210134402 2021-10-08
KR1020210134402 2021-10-08

Publications (1)

Publication Number Publication Date
KR20230051064A true KR20230051064A (ko) 2023-04-17

Family

ID=86128019

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220113662A KR20230051064A (ko) 2021-10-08 2022-09-07 Gpu 클러스터 기반 지역별 분산 제어 시스템 및 방법, gpu 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램 및 gpu 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램이 저장된 컴퓨터 판독 가능한 기록매체

Country Status (1)

Country Link
KR (1) KR20230051064A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117196930A (zh) * 2023-11-06 2023-12-08 四川并济科技有限公司 基于gpu集群的高性能图像处理系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117196930A (zh) * 2023-11-06 2023-12-08 四川并济科技有限公司 基于gpu集群的高性能图像处理系统及方法
CN117196930B (zh) * 2023-11-06 2024-01-23 四川并济科技有限公司 基于gpu集群的高性能图像处理系统及方法

Similar Documents

Publication Publication Date Title
Van Albada et al. Performance comparison of the digital neuromorphic hardware SpiNNaker and the neural network simulation software NEST for a full-scale cortical microcircuit model
Tuli et al. COSCO: Container orchestration using co-simulation and gradient based optimization for fog computing environments
Zhang et al. Slaq: quality-driven scheduling for distributed machine learning
CN106776005B (zh) 一种面向容器化应用的资源管理系统及方法
Li et al. Strategies for energy-efficient resource management of hybrid programming models
Yeung et al. Horus: Interference-aware and prediction-based scheduling in deep learning systems
US9037880B2 (en) Method and system for automated application layer power management solution for serverside applications
Wang et al. Modular reinforcement learning for self-adaptive energy efficiency optimization in multicore system
JP6193393B2 (ja) 分散コンピューティングシステムのための電力の最適化
CN107003887A (zh) Cpu超载设置和云计算工作负荷调度机构
CN112685170B (zh) 备份策略的动态优化
CN107548490A (zh) 并行计算中的进度计
CN106648890A (zh) 一种能耗感知的云计算服务器资源在线管理方法和系统
CN109491760B (zh) 一种高效能数据中心云服务器资源自主管理方法
Tuli et al. MCDS: AI augmented workflow scheduling in mobile edge cloud computing systems
Rocha et al. Heats: Heterogeneity-and energy-aware task-based scheduling
US10054997B2 (en) Multivariable control for power-latency management to support optimization of data centers or other systems
Thonglek et al. Improving resource utilization in data centers using an LSTM-based prediction model
Li et al. Adaptive priority-based data placement and multi-task scheduling in geo-distributed cloud systems
Wang et al. Lube: Mitigating bottlenecks in wide area data analytics
KR20230051064A (ko) Gpu 클러스터 기반 지역별 분산 제어 시스템 및 방법, gpu 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램 및 gpu 클러스터 기반 지역별 분산 제어 방법을 수행하는 프로그램이 저장된 컴퓨터 판독 가능한 기록매체
Zhang et al. Fine-grained multi-query stream processing on integrated architectures
Ferreira da Silva et al. Accurately simulating energy consumption of I/O-intensive scientific workflows
Hussin et al. Efficient energy management using adaptive reinforcement learning-based scheduling in large-scale distributed systems
Zhang et al. Autrascale: an automated and transfer learning solution for streaming system auto-scaling