KR102516412B1 - 기계학습 추론을 위한 gpu 클럭 조절 방법 및 장치 - Google Patents

기계학습 추론을 위한 gpu 클럭 조절 방법 및 장치 Download PDF

Info

Publication number
KR102516412B1
KR102516412B1 KR1020220005427A KR20220005427A KR102516412B1 KR 102516412 B1 KR102516412 B1 KR 102516412B1 KR 1020220005427 A KR1020220005427 A KR 1020220005427A KR 20220005427 A KR20220005427 A KR 20220005427A KR 102516412 B1 KR102516412 B1 KR 102516412B1
Authority
KR
South Korea
Prior art keywords
inference
request
gpu
clock
gpu clock
Prior art date
Application number
KR1020220005427A
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 KR1020220005427A priority Critical patent/KR102516412B1/ko
Application granted granted Critical
Publication of KR102516412B1 publication Critical patent/KR102516412B1/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/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법은, 요청 큐 삽입 단계에 있어서, 추론 요청을 입력 받고 요청 큐에 삽입하기 전에 현재 큐의 길이를 확인하는 단계; 상기 확인된 큐의 길이를 사용하여 상기 입력된 추론 요청의 추론 시간을 계산하는 단계; 상기 계산된 추론 시간에 기반하여 상기 입력된 추론 요청의 목표 GPU 클럭을 산출하는 단계; 상기 입력된 추론 요청의 목표 GPU 클럭과 현재 동작하는 GPU 클럭을 비교하여 더 큰 값으로 GPU 클럭을 설정하는 단계; 및 상기 설정한 GPU 클럭에 대한 정보를 상기 입력된 추론 요청과 함께 상기 요청 큐에 삽입하는 단계;를 포함하는 요청 큐 삽입 단계; 및 요청 큐 삭제 단계에 있어서, 상기 요청 큐에서 가장 앞의 추론 요청을 꺼내서 처리하는 단계; 상기 가장 앞의 추론 요청이 제거된 요청 큐에 저장된 모든 추론 요청 각각의 목표 GPU 클럭을 탐색하여 가장 큰 클럭 값을 획득하는 단계; 및 상기 획득한 클럭 값과 현재 동작하는 GPU 클럭을 비교하여 더 작은 값으로 GPU 클럭을 설정하는 단계;를 포함하는 요청 큐 삭제 단계;를 포함하는 것을 특징으로 한다. 이에 따라, 본 발명의 일 실시 예에서는, 추론 요청을 처리하기 전 지연시간 위반을 판단 가능하고 추론 요청이 급증하는 경우에도 대응이 가능하며 GPU의 에너지 효율을 제고할 수 있다.

Description

기계학습 추론을 위한 GPU 클럭 조절 방법 및 장치{GPU clock control method and device for machine learning}
본 발명은 기계학습 추론을 위한 GPU 클럭 조절 방법 및 장치에 관한 것으로, 보다 구체적으로는 요청 큐 삽입 및 삭제 단계를 통해 요청 큐 길이 기반으로 GPU 클럭을 조절하는 기계학습 추론을 위한 GPU 클럭 조절 방법 및 장치에 관한 것이다.
기계학습 즉, 머신러닝에 있어서 추론(Inference)은 학습 단계에 이은 두 번째 단계에 해당한다. 학습 단계에서는 알고리즘이 새로운 모델을 생성하거나 또는 사전에 학습된 모델을 특정 애플리케이션에 맞게 변형하고 모델이 파라미터들을 학습하도록 한다. 추론 단계에서는 학습된 파라미터에 기반해서 새로운 데이터에 대한 예측이나 판단을 한다.
CPU는 AI에 전통적으로 사용되고 있다. CPU는 범용적으로 사용되도록 설계되었으나, 모델 생성이나 추론에 사용되는 집중적인 연산을 처리하기에는 부족할 수 있다. 비디오 게임 업계에서 탄생하여 대량의 데이터셋을 처리할 수 있도록 설계된 GPU는 머신러닝에 잘 부합하는 측면이 있다. GPU는 CPU에 비해서 칩 당 더 많은 프로세싱 유닛을 사용하고, 쓰루풋(Throughput)이 더 높고, 더 높은 병렬 프로세싱 성능을 제공한다. 이에 따라, 처리 시간을 크게 단축할 수 있다.
GPU의 동적 전압 및 주파수 스케일링(DVFS: Dynamic Voltage and Frequency Scaling)은 GPU의 에너지 소비 관리에 일반적으로 사용되는 기법이다. GPU를 사용해 처리되는 애플리케이션들은 종류에 따라 가진 제약 조건이 다르고, 에너지 소비량을 최적화하는 GPU 클럭도 다르다. 기존의 GPU는 하드웨어에서 제공하는 단순한 형태의 DVFS를 사용한다. GPU의 활용률(Utilization)이 임계점을 넘어가게 되면 GPU 클럭을 상승시키도록 동작하는 바, 추론 요청의 지연시간을 반영하지 못한 채 코어 활용률을 기반으로 동작하며, 불필요하게 높은 GPU 성능으로 인하여 GPU의 에너지 소비량이 증가하게 된다.
추론 요청을 실행시키고 측정된 지연시간을 통하여 GPU 클럭의 변경 여부를 결정하는 방식의, 추론 성능과 GPU 전력 소비량 간의 균형을 맞추는 기법이 알려져 있다. 그러나 해당 기법으로는 추론 요청을 처리하기 전 지연시간 위반을 판단할 수 없으며 이에 따라 추론 요청이 급증하는 경우 대응할 수 없다는 문제가 존재한다.
본 발명은 상술한 바와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 추론 요청이 급증하는 경우에도 대응이 가능하도록 요청 큐 삽입 및 삭제 단계를 통해 요청 큐 길이 기반으로 GPU 클럭을 조절하는 기계학습 추론을 위한 GPU 클럭 조절 방법 및 장치를 제공하는 것이다.
본 발명의 제1 특징에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법은, 요청 큐 삽입 단계에 있어서, 추론 요청을 입력 받고 요청 큐에 삽입하기 전에 현재 큐의 길이를 확인하는 단계; 상기 확인된 큐의 길이를 사용하여 상기 입력된 추론 요청의 추론 시간을 계산하는 단계; 상기 계산된 추론 시간에 기반하여 상기 입력된 추론 요청의 목표 GPU 클럭을 산출하는 단계; 상기 입력된 추론 요청의 목표 GPU 클럭과 현재 동작하는 GPU 클럭을 비교하여 더 큰 값으로 GPU 클럭을 설정하는 단계; 및 상기 설정한 GPU 클럭에 대한 정보를 상기 입력된 추론 요청과 함께 상기 요청 큐에 삽입하는 단계;를 포함하는 요청 큐 삽입 단계; 및 요청 큐 삭제 단계에 있어서, 상기 요청 큐에서 가장 앞의 추론 요청을 꺼내서 처리하는 단계; 상기 가장 앞의 추론 요청이 제거된 요청 큐에 저장된 모든 추론 요청 각각의 목표 GPU 클럭을 탐색하여 가장 큰 클럭 값을 획득하는 단계; 및 상기 획득한 클럭 값과 현재 동작하는 GPU 클럭을 비교하여 더 작은 값으로 GPU 클럭을 설정하는 단계;를 포함하는 요청 큐 삭제 단계;를 포함하는 것을 특징으로 한다.
본 발명의 제2 특징에 따른 기계학습 추론을 위한 GPU 클럭 조절 장치는, 사용자와 데이터를 송수신하는 송수신부; GPU 클럭 정보가 저장되는 메모리; 상기 메모리와 접속되는 적어도 하나의 프로세서; 및 입출력부를 포함하고, 상기 적어도 하나의 프로세서는, 요청 큐 삽입 동작 및 요청 큐 삭제 동작을 수행하되, 상기 요청 큐 삽입 동작은, 추론 요청을 입력 받고 요청 큐에 삽입하기 전에 현재 큐의 길이를 확인하는 동작; 상기 확인된 큐의 길이를 사용하여 상기 입력된 추론 요청의 추론 시간을 계산하는 동작; 상기 계산된 추론 시간에 기반하여 상기 입력된 추론 요청의 목표 GPU 클럭을 산출하는 동작; 상기 입력된 추론 요청의 목표 GPU 클럭과 현재 동작하는 GPU 클럭을 비교하여 더 큰 값으로 GPU 클럭을 설정하는 동작; 및 상기 설정한 GPU 클럭에 대한 정보를 상기 입력된 추론 요청과 함께 상기 요청 큐에 삽입하는 동작을 포함하고, 상기 요청 큐 삭제 동작은, 상기 요청 큐에서 가장 앞의 추론 요청을 꺼내서 처리하는 동작; 상기 가장 앞의 추론 요청이 제거된 요청 큐에 저장된 모든 추론 요청 각각의 목표 GPU 클럭을 탐색하여 가장 큰 클럭 값을 획득하는 동작; 및 상기 획득한 클럭 값과 현재 동작하는 GPU 클럭을 비교하여 더 작은 값으로 GPU 클럭을 설정하는 동작을 포함하는 것을 특징으로 한다.
본 발명의 제3 특징에 따른 기계학습 추론을 위한 GPU 클럭 조절을 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지털 처리 장치에 의해 판독될 수 있는 기록매체는, 본 발명의 제1 특징에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 것을 특징으로 한다.
본 발명의 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법 및 장치는 다음과 같은 효과를 제공한다.
요청 큐 삽입 단계에서 추론 요청 큐의 길이 변화를 고려하여 GPU 클럭을 설정함으로써 추론 요청을 처리하기 전 지연시간 위반을 판단 가능하고 추론 요청이 급증하는 경우에도 대응이 가능하다.
요청 큐 삭제 단계에서 지연시간을 준수하면서 추론 요청을 처리할 수 있는 최저 GPU 클럭을 설정함으로써 GPU의 에너지 효율을 제고할 수 있다.
처리 시간이 임박한 추론 요청에 대한 처리 중 지연시간 위반이 판단되어 클럭이 도중에 변경되는 경우가 발생하지 않도록 할 수 있어 에너지 효율 측면에서 유리하다.
또한, 클럭을 최적으로 변경 시 사전에 정의된 클럭 간격에 맞춘 변경 뿐 아니라 지연시간을 위반하지 않고 추론 요청을 처리할 수 있는 최적의 클럭으로 변경을 할 수 있어 기계학습 모델에 따라 유동성 있게 최적 GPU 클럭 설정이 가능하다.
도 1은 본 발명의 일 실시 예에 따른 사용자와 추론 서비스를 처리하는 추론 서버와의 관계를 개념적으로 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법을 도시한 플로우차트이다.
도 3은 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 장치를 도시한 블록도이다.
도 4는 본 발명의 일 실시 예에 따른 새로운 요청이 요청 큐로 삽입되는 모습을 개념적으로 도시한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법과 종래의 기법을 비교 설명하기 위해 도시한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법을 수식을 사용하여 나타낸 순서도이다.
도 7은 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법을 추론 서버에 적용하여 기계학습 모델 별로 추론 요청의 99% 지연시간을 측정한 결과를 도시한 그래프이다.
도 8은 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법을 추론 서버에 적용하여 기계학습 모델 별로 GPU 에너지 효율성을 측정한 결과를 도시한 그래프이다.
이하, 본 발명에 대해서 실시예 및 도면을 참조하여 구체적으로 설명한다. 그러나, 이하의 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 일 실시 예에 따른 사용자와 추론 서비스를 처리하는 추론 서버와의 관계를 개념적으로 도시한 도면이다.
추론 서비스와 관련된 시스템은 추론 서비스의 사용자 및 추론 서비스를 처리하는 추론 서버(Inference server)를 포함한다. 사용자는 추론 요청을 추론 서버로 보내고 추론 서버는 수신한 추론 요청들을 요청 큐(Request queue)에 모아둔다. 추론 요청의 처리는 요청 큐에 들어온 순서대로 이루어지며 요청 큐에서 하나씩 꺼내어 GPU에서 추론 연산을 수행한다. 참고로, 요청 큐는 요청 대기열과 용어 상의 차이는 있으나 본 명세서 전체에서 동일한 의미로 사용되었다.
도 2는 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법을 도시한 플로우차트이다.
본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법(200)은, 요청 큐 삽입 단계(200a)에 있어서, 추론 요청을 입력 받고 요청 큐에 삽입하기 전에 현재 큐의 길이를 확인하는 단계(210); 상기 확인된 큐의 길이를 사용하여 상기 입력된 추론 요청의 추론 시간을 계산하는 단계(220); 상기 산출된 추론 시간에 기반하여 상기 입력된 추론 요청의 목표 GPU 클럭을 산출하는 단계(230); 상기 입력된 추론 요청의 목표 GPU 클럭과 현재 동작하는 GPU 클럭을 비교하여 더 큰 값으로 GPU 클럭을 설정하는 단계(240); 및 상기 설정한 GPU 클럭에 대한 정보를 상기 입력된 추론 요청과 함께 상기 요청 큐에 삽입하는 단계(250);를 포함하는 요청 큐 삽입 단계(200a); 및 요청 큐 삭제 단계(200b)에 있어서, 상기 요청 큐에서 가장 앞의 추론 요청을 꺼내서 처리하는 단계(260); 상기 가장 앞의 추론 요청이 제거된 요청 큐에 저장된 모든 추론 요청 각각의 목표 GPU 클럭을 탐색하여 가장 큰 클럭 값을 획득하는 단계(270); 및 상기 획득한 클럭 값과 현재 동작하는 GPU 클럭을 비교하여 더 작은 값으로 GPU 클럭을 설정하는 단계(280);를 포함하는 요청 큐 삭제 단계(200b);를 포함하는 것을 특징으로 한다.
다수의 사용자가 추론 요청을 추론 서버로 전달하면 요청 큐에 모아두고 GPU로 하나씩 전달하여 추론 요청을 처리하게 된다. 추론 요청의 처리를 위한 GPU 클럭 설정 시 지연시간 위반 여부 및 에너지 효율성을 고려해야 한다.
이에 따른 GPU 코어의 클럭 조절 방법은 크게 두 단계로 구성될 수 있다. 요청 큐 삽입 단계와 요청 큐 삭제 단계로서, 요청 큐 삽입 단계는 추론 서버에 추론 요청이 입력되었을 때 큐에 삽입하기 전에 일련의 과정을 진행하여 GPU 클럭을 조절하며, 요청 큐 삭제 단계는 요청 큐에서 추론 요청을 꺼내어 일련의 과정을 진행하여 GPU 클럭을 조절하게 된다.
일단, 요청 큐 삽입 단계는 다음과 같이 진행된다.
도 4는 본 발명의 일 실시 예에 따른 새로운 요청이 요청 큐로 삽입되는 모습을 개념적으로 도시한 도면이다.
새로운 추론 요청(10)이 추론 서버에 입력되면 요청 큐(30)에 삽입하기 전에 현재 상태의 큐의 길이(L)를 확인한다.
추론 서비스의 서비스 수준 협약(SLA: Service Level Agreement)에 정의된 목표 지연시간을 현재 요청 큐 길이에 1을 더한 값으로 나눈 시간을 계산한다. 여기서, 목표 지연시간은 마지막 추론 요청이 처리되기까지 필요한 시간에 해당하고 따라서, 요청 큐에 있는 추론 요청들이 모두 처리되기까지 필요한 시간에 입력된 추론 요청의 GPU 추론 시간이 더해진 시간이 된다.
상술한 바와 같이, 요청 큐의 길이를 기반으로 추론 요청의 추론 시간을 계산할 수 있게 되고, 계산한 추론 시간 즉, 추론 요청의 처리 시간을 만족시킬 수 있는 목표 GPU 클럭을 산출할 수 있다. 이 경우, 모든 GPU 클럭에 대해서 추론 시간을 측정한 데이터를 사용한다.
요청 큐 삽입 단계의 목표 GPU 클럭 산출은 계산된 추론 시간에 대한 추론 시간-GPU 클럭 변환 함수(T2C)를 통하여 산출이 이루어진다.
즉, Ctar = T2C(Ttar)이고, 여기서 Ctar는 목표 GPU 클럭, Ttar는 목표 추론 시간을 의미한다.
입력된 추론 요청에 대하여 산출된 목표 GPU 클럭과 현재 동작하는 GPU 클럭을 비교하여 더 큰 값으로 GPU 클럭을 설정하고, 설정한 GPU 클럭에 대한 정보를 입력된 추론 요청과 함께 요청 큐에 삽입하게 된다.
도 6은 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법을 수식을 사용하여 나타낸 순서도이다.
도 6을 참조하면, 도 6의 좌측 순서도가 요청 큐 삽입 단계에 대해 수식을 사용하여 나타낸 것에 해당한다. 새로운 추론 요청이 입력되는 단계마다 도 6의 좌측 순서도와 같은 일련의 과정이 실행될 수 있다. 여기서, Q는 추론 요청 큐, TSLA는 SLA 지연 시간, Ttar는 목표 추론 시간, Ctar는 목표 GPU 클럭, Ccur는 현재 GPU 클럭, T2C는 추론 시간-GPU 클럭 변환 함수를 의미한다.
요청 큐 삭제 단계는 다음과 같이 진행된다.
도 5는 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법과 종래의 기법을 비교 설명하기 위해 도시한 도면으로서, 일단 도 5 (a)의 상단을 참조한다.
요청 큐(30)의 가장 앞에 있는 추론 요청(20)을 꺼내서 해당 추론 요청을 GPU가 처리한다. 이 경우, 현재 GPU 클럭은 해당 추론 요청의 목표 GPU 클럭 이상, 즉, 목표 GPU 클럭 값보다 같거나 높게 된다.
추론 요청이 처리된 이후, 현재 GPU 클럭 수준을 유지해야 하는지 결정한다. 큐에 저장된 모든 추론 요청의 목표 GPU 클럭을 탐색하여 가장 큰 클럭 값을 찾는다.
상기 획득한 가장 큰 클럭 값과 현재 GPU 클럭을 비교하여 더 낮은 GPU 클럭으로 현재의 GPU 클럭을 설정한다.
다시 도 6을 참조하면, 도 6의 우측 순서도가 요청 큐 삭제 단계에 대해 수식을 사용하여 나타낸 것에 해당한다. 개별 추론 요청이 처리되는 단계마다 도 6의 우측 순서도와 같은 일련의 과정이 실행될 수 있다. 상술한 바와 같이, 여기서, Q는 추론 요청 큐, TSLA는 SLA 지연 시간, Ttar는 목표 추론 시간, Ctar는 목표 GPU 클럭, Ccur는 현재 GPU 클럭, T2C는 추론 시간-GPU 클럭 변환 함수를 의미한다.
정리하면, 요청 큐 삽입 단계에서는 요청 큐의 길이가 길어짐에 따라 각각의 요청의 지연시간을 위반하지 않도록 하는 GPU 클럭으로 설정하게 되고, 추론 요청이 입력될 때마다 목표 GPU 클럭을 산출하여 현재 GPU 클럭보다 높은 경우에 클럭이 새롭게 설정되므로 GPU 클럭은 증가하는 방향으로 동작하게 된다.
또한, 요청 큐 삭제 단계에서는 현재 설정된 GPU 클럭 값이 불필요하게 높다고 판단되면 곧바로 현재 설정된 GPU 클럭을 낮추는 방향으로 동작하게 된다.
도 5 (a)를 다시 참조하면, 본 발명의 일 실시 예에 있어서, 처리 시간이 임박한 추론 요청(20)의 처리 도중에 클럭이 변경되지 않는 효과가 달성될 수 있다. 종래 기술은 큐에 삽입된 추론 요청을 하나씩 꺼내어 처리하는 도중에 작업의 남은 시간을 확인하고 작업완료 시점이 SLA 지연시간을 넘길 것으로 판단되면 클럭을 조절하여 처리 시간이 임박한 추론 요청(20)의 경우 처리 도중 클럭이 변경(22,24)될 수 있었다. 이와 대비하여 본 발명은 요청 큐 삽입 시 및 요청 큐 삭제 시 클럭이 변경됨을 확인할 수 있다.
도 5 (b)를 참조하면, 본 발명의 일 실시 예에 있어서, 현재 설정된 GPU 클럭(50)을 최적으로 변경 시 사전에 정의된 클럭 간격에 맞춘 변경 뿐 아니라 지연시간을 위반하지 않고 추론 요청을 처리할 수 있는 최적의 클럭으로 변경을 할 수 있어 기계학습 모델에 따라 유동성 있게 최적 GPU 클럭 설정이 가능하다. 이와 대비하여 종래 발명은 일 예로 도 5 (b)와 같이 100MHz 간격, 혹은 사전에 정의된 클럭 간격에 맞추는 방식으로 조절될 수 있었다.
도 3은 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 장치를 도시한 블록도이다.
기계학습 추론을 위한 GPU 클럭 조절 장치(100)는 메모리(110), 프로세서(120), 입출력부(130), 및 통신부(140)를 포함할 수 있다. 메모리(110)는 기계학습 추론을 위한 GPU 클럭 조절 장치(100)에 의해 사용되거나 그에 의해 출력되는 정보를 저장하기 위한 상기 장치(100)에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(110)에는 기계학습 추론을 위한 GPU 클럭 조절 방법(200)를 위한 프로그램 코드가 저장될 수 있다.
프로세서(120)는 기본적인 산술, 로직 및 기계학습 추론을 위한 GPU 클럭 조절 방법 (200)에 관한 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(110) 또는 통신부(140)에 의해 프로세서(120)로 제공될 수 있다. 예를 들어 프로세서(120)는 메모리(110)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. 프로세서(120)는 목표 추론 시간 계산 및 목표 GPU 클럭 산출을 위한 프로그램 코드를 실행하도록 구성될 수 있다. 이러한 프로그램 코드는 메모리(110)와 같은 기록 장치에 저장될 수 있다.
입출력부(130)는 사용자로부터 정보를 입력 받는 장치 및 정보를 출력하는 디스플레이일 수 있다. 예를 들어 입력 장치는 마이크(microphone), 키보드(keyboard) 또는 마우스(mouse) 등의 장치를, 출력 장치는 디스플레이(display), 스피커(speaker) 등의 장치를 포함할 수 있다. 통신부(140)는 네트워크를 통해 기계학습 추론을 위한 GPU 클럭 조절 장치(100)가 기계학습 추론 서비스의 사용자와 통신하기 위한 기능을 제공할 수 있다.
또한, 다른 실시 예들에서 기계학습 추론을 위한 GPU 클럭 조절 장치(100)는 도 3의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들에 대한 명확한 도시는 생략하도록 한다. 예를 들어, 기계학습 추론을 위한 GPU 클럭 조절 장치(100)는 상술한 입출력 장치들 중 적어도 일부를 포함하도록 구현되거나 또는 네트워크 인터페이스 등의 인터페이스(interface), 트랜시버(transceiver), 데이터베이스(database) 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
도 7 및 도 8은 본 발명의 일 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법을 추론 서버에 적용하여 기계학습 모델 별로, 추론 요청의 99% 지연시간을 측정한 결과 및 GPU 에너지 효율성을 측정한 결과를 각각 도시한 그래프들이다.
실험을 위해, 서로 다른 아키텍처(architecture)를 가지는 세 개의 GPU를 사용하는 환경에서 초당 추론 요청의 수를 증가시키면서 요청의 99% 지연시간과 GPU의 에너지 효율성을 측정하였다. 비교군으로는 GPU의 기본 클럭 관리기법을 사용하는 환경을 설정하였다. 추론 서비스에 사용할 모델로는 이미지 분류 모델을 사용하였으며 그 중에서도 Inception-v3, ResNet50, ResNet152, VGG19를 사용하였다. 참고로, ResNet152의 실험 결과는 도 7 및 도 8의 그래프에 포함되지 않았다. 실험의 기준으로서 지연시간 200ms 내에 99%의 추론 요청들이 처리되도록 SLA 지연시간을 설정하였다. 참고로 상기 설정한 지연시간은 에너지 효율성을 향상시킬 수 있는 적정한 수치에 해당한다.
실험 결과로, 실험에 사용한 이미지 분류 모델의 종류와 상관없이 설정한 SLA 지연시간이 만족되는 목표를 달성하였다. 도 7을 참조하면, 초당 요청의 수가 증가하더라도 실험 설정 SLA 지연시간인 200ms 내에 처리되는 것을 확인할 수 있으며, 이는 본 발명의 GPU 클럭 조절 방법을 모든 모델에 대하여 적용하고 있기 때문으로 분석할 수 있다. 도 8을 참조하면, 기본 클럭 관리기법보다 실험에 사용된 모델들 모두 에너지 효율이 높으며, 초당 처리하는 추론 요청의 개수가 같은 경우 GPU의 에너지 효율성은 최대 2배 향상되었음을 확인할 수 있다.
이와 같이, 본 발명의 실시 예에 따른 기계학습 추론을 위한 GPU 클럭 조절 방법은 요청 큐 삽입 단계에서 추론 요청 큐의 길이 변화를 고려하여 GPU 클럭을 설정하고, 요청 큐 삭제 단계에서 지연시간을 준수하면서 추론 요청을 처리할 수 있는 최저 GPU 클럭을 설정함으로써, 추론 요청을 처리하기 전 지연시간 위반을 판단 가능하고 추론 요청이 급증하는 경우에도 대응이 가능하며 GPU의 에너지 효율을 제고할 수 있다.
한편, 본 발명의 실시예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
다양한 변형예가 본 발명의 범위를 벗어남이 없이 본 명세서에 기술되고 예시된 구성 및 방법으로 만들어질 수 있으므로, 상기 상세한 설명에 포함되거나 첨부 도면에 도시된 모든 사항은 예시적인 것으로 본 발명을 제한하기 위한 것이 아니다. 따라서, 본 발명의 범위는 상술한 예시적인 실시예에 의해 제한되지 않으며, 이하의 청구 범위 및 그 균등물에 따라서만 정해져야 한다.
10: 새로운 추론 요청 20: 처리 임박 추론 요청
30: 요청 큐 50: 현재 GPU 클럭
100: GPU 클럭 조절 장치 110: 메모리
120: 프로세서 130: 입출력부
140: 통신부

Claims (11)

  1. 기계학습 추론을 위한 GPU 클럭 조절 방법에 있어서,
    요청 큐 삽입 단계에 있어서,
    추론 요청을 입력 받고 요청 큐에 삽입하기 전에 현재 큐의 길이를 확인하는 단계;
    상기 확인된 큐의 길이를 사용하여 상기 입력된 추론 요청의 추론 시간을 계산하는 단계;
    상기 계산된 추론 시간에 기반하여 상기 입력된 추론 요청의 목표 GPU 클럭을 산출하는 단계;
    상기 입력된 추론 요청의 목표 GPU 클럭과 현재 동작하는 GPU 클럭을 비교하여 더 큰 값으로 GPU 클럭을 설정하는 단계; 및
    상기 설정한 GPU 클럭에 대한 정보를 상기 입력된 추론 요청과 함께 상기 요청 큐에 삽입하는 단계;
    를 포함하는 요청 큐 삽입 단계; 및
    요청 큐 삭제 단계에 있어서,
    상기 요청 큐에서 가장 앞의 추론 요청을 꺼내서 처리하는 단계;
    상기 가장 앞의 추론 요청이 제거된 요청 큐에 저장된 모든 추론 요청 각각의 목표 GPU 클럭을 탐색하여 가장 큰 클럭 값을 획득하는 단계; 및
    상기 획득한 클럭 값과 현재 동작하는 GPU 클럭을 비교하여 더 작은 값으로 GPU 클럭을 설정하는 단계;
    를 포함하는 요청 큐 삭제 단계;
    를 포함하는, GPU 클럭 조절 방법.
  2. 제1항에 있어서,
    상기 요청 큐 삽입 단계의 상기 추론 시간 계산은 추론 서비스의 서비스 수준 협약(SLA)에 정의된 목표 지연시간을 상기 확인된 큐의 길이에 1을 더한 값으로 제산하는 것을 특징으로 하는 GPU 클럭 조절 방법.
  3. 제2항에 있어서,
    상기 목표 지연시간은 상기 요청 큐에 있는 추론 요청들이 모두 처리되기까지 필요한 시간에 상기 입력된 추론 요청의 GPU 추론 시간을 가산하는 것을 특징으로 하는 GPU 클럭 조절 방법.
  4. 제1항에 있어서,
    상기 요청 큐 삽입 단계의 상기 목표 GPU 클럭 산출은 상기 계산된 추론 시간에 대한 GPU 클럭 변환 함수를 통하여 산출이 이루어지는 것을 특징으로 하는 GPU 클럭 조절 방법.
  5. 제1항에 있어서,
    상기 추론 요청은 상기 요청 큐에 삽입된 순서대로 처리가 되는 것을 특징으로 하는 GPU 클럭 조절 방법.
  6. 기계학습 추론을 위한 GPU 클럭 조절 장치에 있어서,
    사용자와 데이터를 송수신하는 통신부;
    GPU 클럭 정보가 저장되는 메모리;
    상기 메모리와 접속되는 적어도 하나의 프로세서; 및 입출력부를 포함하고,
    상기 적어도 하나의 프로세서는,
    요청 큐 삽입 동작 및 요청 큐 삭제 동작을 수행하되,
    상기 요청 큐 삽입 동작은, 추론 요청을 입력 받고 요청 큐에 삽입하기 전에 현재 큐의 길이를 확인하는 동작; 상기 확인된 큐의 길이를 사용하여 상기 입력된 추론 요청의 추론 시간을 계산하는 동작; 상기 계산된 추론 시간에 기반하여 상기 입력된 추론 요청의 목표 GPU 클럭을 산출하는 동작; 상기 입력된 추론 요청의 목표 GPU 클럭과 현재 동작하는 GPU 클럭을 비교하여 더 큰 값으로 GPU 클럭을 설정하는 동작; 및 상기 설정한 GPU 클럭에 대한 정보를 상기 입력된 추론 요청과 함께 상기 요청 큐에 삽입하는 동작을 포함하고,
    상기 요청 큐 삭제 동작은, 상기 요청 큐에서 가장 앞의 추론 요청을 꺼내서 처리하는 동작; 상기 가장 앞의 추론 요청이 제거된 요청 큐에 저장된 모든 추론 요청 각각의 목표 GPU 클럭을 탐색하여 가장 큰 클럭 값을 획득하는 동작; 및 상기 획득한 클럭 값과 현재 동작하는 GPU 클럭을 비교하여 더 작은 값으로 GPU 클럭을 설정하는 동작을 포함하는 것을 특징으로 하는 GPU 클럭 조절 장치.
  7. 제6항에 있어서,
    상기 요청 큐 삽입 동작의 상기 추론 시간 계산은 추론 서비스의 서비스 수준 협약(SLA)에 정의된 목표 지연시간을 상기 확인된 큐의 길이에 1을 더한 값으로 제산하는 것을 특징으로 하는 GPU 클럭 조절 장치.
  8. 제7항에 있어서,
    상기 목표 지연시간은 상기 요청 큐에 있는 추론 요청들이 모두 처리되기까지 필요한 시간에 상기 입력된 추론 요청의 GPU 추론 시간을 가산하는 것을 특징으로 하는 GPU 클럭 조절 장치.
  9. 제6항에 있어서,
    상기 요청 큐 삽입 동작의 상기 목표 GPU 클럭 산출은 상기 계산된 추론 시간에 대한 GPU 클럭 변환 함수를 통하여 산출이 이루어지는 것을 특징으로 하는 GPU 클럭 조절 장치.
  10. 제6항에 있어서,
    상기 추론 요청은 상기 요청 큐에 삽입된 순서대로 처리가 되는 것을 특징으로 하는 GPU 클럭 조절 장치.
  11. 기계학습 추론을 위한 GPU 클럭 조절을 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 디지털 처리 장치에 의해 판독될 수 있는 기록매체로서,
    제1항 내지 제5항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
KR1020220005427A 2022-01-13 2022-01-13 기계학습 추론을 위한 gpu 클럭 조절 방법 및 장치 KR102516412B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220005427A KR102516412B1 (ko) 2022-01-13 2022-01-13 기계학습 추론을 위한 gpu 클럭 조절 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220005427A KR102516412B1 (ko) 2022-01-13 2022-01-13 기계학습 추론을 위한 gpu 클럭 조절 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102516412B1 true KR102516412B1 (ko) 2023-03-31

Family

ID=86005646

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220005427A KR102516412B1 (ko) 2022-01-13 2022-01-13 기계학습 추론을 위한 gpu 클럭 조절 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102516412B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117349032A (zh) * 2023-12-05 2024-01-05 城云科技(中国)有限公司 一种提高大语言模型吞吐量的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006259812A (ja) * 2005-03-15 2006-09-28 Hitachi Ltd 動的キュー負荷分散方法、システム及びプログラム
KR20180093084A (ko) * 2016-02-03 2018-08-20 퀄컴 인코포레이티드 프로세싱 유닛을 위한 프레임 기반 클럭 레이트 조정
KR20190109408A (ko) * 2017-01-26 2019-09-25 에이티아이 테크놀로지스 유엘씨 적응적 전력 제어 루프
KR20210055408A (ko) * 2019-11-07 2021-05-17 주식회사 파두 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
KR20210078260A (ko) * 2019-12-18 2021-06-28 고려대학교 산학협력단 기계학습 알고리즘 기반 최적의 cpu 주파수 예측 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006259812A (ja) * 2005-03-15 2006-09-28 Hitachi Ltd 動的キュー負荷分散方法、システム及びプログラム
KR20180093084A (ko) * 2016-02-03 2018-08-20 퀄컴 인코포레이티드 프로세싱 유닛을 위한 프레임 기반 클럭 레이트 조정
KR20190109408A (ko) * 2017-01-26 2019-09-25 에이티아이 테크놀로지스 유엘씨 적응적 전력 제어 루프
KR20210055408A (ko) * 2019-11-07 2021-05-17 주식회사 파두 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
KR20210078260A (ko) * 2019-12-18 2021-06-28 고려대학교 산학협력단 기계학습 알고리즘 기반 최적의 cpu 주파수 예측 장치

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Nvidia deep learning triton inference server documentation", 2021, [online] Available: https://docs.nvidia.com/deeplearning/triton-inference-server/. *
C. Olston, N. Fiedel, K. Gorovoy, J. Harmsen, L. Lao, F. Li, et al., "Tensorflow-serving: Flexible highperformance ml serving", 2017. *
S. M. Nabavinejad, H. Hafez-Kolahi and S. Reda, "Coordinated dvfs and precision control for deep neural networks", IEEE Computer Architecture Letters, vol. 18, no. 2, pp. 136-140, 2019. *
X. Mei, L. S. Yung, K. Zhao and X. Chu, "A measurement study of gpu dvfs on energy conservation", Proceedings of the Workshop on Power-Aware Computing and Systems, pp. 1-5, 2013. *
Z. Tang, Y. Wang, Q. Wang and X. Chu, "The impact of gpu dvfs on the energy and performance of deep learning: An empirical study", Proceedings of the Tenth ACM International Conference on Future Energ *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117349032A (zh) * 2023-12-05 2024-01-05 城云科技(中国)有限公司 一种提高大语言模型吞吐量的方法及装置
CN117349032B (zh) * 2023-12-05 2024-02-20 城云科技(中国)有限公司 一种提高大语言模型吞吐量的方法及装置

Similar Documents

Publication Publication Date Title
US11531926B2 (en) Method and apparatus for generating machine learning model by using distributed computing framework
US7353214B2 (en) Outlier determination rule generation device and outlier detection device, and outlier determination rule generation method and outlier detection method thereof
US20230281445A1 (en) Population based training of neural networks
US20200219028A1 (en) Systems, methods, and media for distributing database queries across a metered virtual network
CN110289994B (zh) 一种集群容量调整方法及装置
EP3557418B1 (en) Resource management of resource-controlled system
US11934486B2 (en) Systems and methods for data stream using synthetic data
US20120221373A1 (en) Estimating Business Service Responsiveness
JP2008305402A (ja) 代表的なトレースを得るための命令を識別する方法、コンピュータ・プログラム及びシステム
US20220156633A1 (en) System and method for adaptive compression in federated learning
KR102516412B1 (ko) 기계학습 추론을 위한 gpu 클럭 조절 방법 및 장치
CN109407997B (zh) 一种数据处理方法、装置、设备及可读存储介质
Bergsma et al. Generating complex, realistic cloud workloads using recurrent neural networks
CN111311286A (zh) 一种智能客服数据处理方法、装置及计算设备、存储介质
CN115016891A (zh) 热迁移结果预测方法、热迁移方法、电子设备及存储介质
CN111385601B (zh) 一种视频审核的方法、系统及设备
Denninnart et al. Efficient task pruning mechanism to improve robustness of heterogeneous computing systems
US20210110287A1 (en) Causal Reasoning and Counterfactual Probabilistic Programming Framework Using Approximate Inference
Sagaama et al. Automatic parameter tuning for big data pipelines with deep reinforcement learning
WO2021097494A2 (en) Distributed training of multi-modal machine learning models
CN113762972A (zh) 数据存储控制方法及装置、电子设备、存储介质
CN108156514B (zh) 媒体文件的播放方法、装置及存储介质
Jeong et al. A pre-scheduling mechanism for multimedia presentation synchronization
Wang et al. An efficient bandwidth-adaptive gradient compression algorithm for distributed training of deep neural networks
CN110765345A (zh) 搜索方法、装置以及设备

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant