KR102559658B1 - 스케줄링 방법 및 장치 - Google Patents

스케줄링 방법 및 장치 Download PDF

Info

Publication number
KR102559658B1
KR102559658B1 KR1020210071066A KR20210071066A KR102559658B1 KR 102559658 B1 KR102559658 B1 KR 102559658B1 KR 1020210071066 A KR1020210071066 A KR 1020210071066A KR 20210071066 A KR20210071066 A KR 20210071066A KR 102559658 B1 KR102559658 B1 KR 102559658B1
Authority
KR
South Korea
Prior art keywords
accelerator
processing time
accelerator node
determining
components
Prior art date
Application number
KR1020210071066A
Other languages
English (en)
Other versions
KR20220086449A (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 한국과학기술원
Publication of KR20220086449A publication Critical patent/KR20220086449A/ko
Application granted granted Critical
Publication of KR102559658B1 publication Critical patent/KR102559658B1/ko

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • 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)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Power Sources (AREA)
  • Feedback Control In General (AREA)

Abstract

스케줄링 방법 및 장치가 제공된다. 본 개시에 따른 스케줄링 방법은, 각 가속기 노드에 대하여 상기 딥 러닝 모델에 포함된 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하는 동작, 상기 최소 처리 시간에 기초하여 상기 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 동작, 상기 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하는 동작, 상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정하는 동작 및 상기 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 입력 데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 동작을 포함할 수 있다.

Description

스케줄링 방법 및 장치{SCHEDULING METHOD AND APPARATUS THEREOF}
본 개시는 스케줄링 방법 및 장치에 관한 것이다.
고성능 컴퓨팅 환경은 대규모 데이터에 대한 복잡도 높은 처리를 가능하게 하는 컴퓨팅 환경으로 최근에는 대규모 딥러닝 처리를 위해서 GPU와 FPGA와 같은 가속기를 지원하는 클러스터가 활용되고 있다. 기존에는 동종 컴퓨팅 환경(Homogeneous Computing Environment)의 클러스터가 주로 활용되었으나, GPU 및 FPGA와 같은 이종 가속기를 적용한 이종 컴퓨팅 환경의 클러스터(Heterogeneous Computing Environment)의 활용이 증가하고 있다.
이종 가속기 지원 고성능 컴퓨팅 환경이란, CPU뿐만 아니라 GPU 및 FPGA와 같은 딥러닝 모델 처리에 적합한 가속기로 구성된 클러스터 환경을 의미한다. 딥러닝 모델은 데이터 분석에 혁신적인 정확도를 보이는 대신 높은 복잡도를 갖기 때문에 CPU 수준의 범용적인 컴퓨팅 성능으로는 처리 속도가 느려, 빠른 처리를 위해 FPGA, GPU와 같은 이종 가속기를 사용하는 것이 일반적이다.
스케줄링 기술이란 주어진 작업을 주어진 컴퓨팅 환경에서 어떻게 처리할 것인가를 특정 목표에 따라 미리 계획하고 실행하는 기술이다, 고정적인 환경에서 고정적인 스케줄이 사용되기도 하나, 보통 적용되는 시스템 환경은 동적으로 변하기 때문에 그에 맞게 적응적인 스케줄링을 적용하는 것이 효과적이다. 이와 같은 적응적인 스케줄링은 주어진 처리 제한 시간을 만족시키면서 처리 비용을 최소화하는 데 목적을 둔다.
본 개시의 일부 실시예는, 이종 가속기를 지원하는 고성능 컴퓨팅 환경을 고려하여, 가속기 노드의 컴퓨팅 자원에 각 내부 컴포넌트 처리 작업을 순차적으로 분배함으로써 딥 러닝 모델에 대한 다수의 요청을 가속 처리하는 스케줄링 방법 및 장치를 제공하는 것을 목적으로 한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면은, 각 가속기 노드에 대하여 딥 러닝 모델에 포함된 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하는 동작, 상기 최소 처리 시간에 기초하여 상기 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 동작, 상기 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하는 동작, 상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정하는 동작 및 상기 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 입력 데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 동작을 포함하는 스케줄링 방법을 제공할 수 있다.
상기 각 가속기 노드에 대하여 상기 딥 러닝 모델에 포함된 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하는 동작은, 상기 각 가속기 노드에 포함된 복수의 가속기가 각 컴포넌트를 처리하는 데 걸리는 시간이 각 가속기 별로 서로 동일하도록 상기 각 컴포넌트에 대한 가속기 별 처리 시간을 결정하는 동작, 상기 각 컴포넌트에 대한 가속기 별 처리 시간을 각 컴포넌트에 대한 최소 처리 시간으로 결정하는 동작, 상기 각 컴포넌트에 대한 최소 처리 시간을 모두 합하여 상기 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간으로 결정하는 동작을 포함할 수 있다.
상기 각 컴포넌트에 대한 가속기 별 처리 시간은 데이터 처리 시간을 포함하며, 입력 데이터 전송시간 및 출력 데이터 전송시간 중 적어도 하나를 포함할 수 있다.
상기 최소 처리 시간에 기초하여 상기 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 동작은, 상기 각 가속기 노드에 포함된 CPU의 유효전력과 유휴전력, 상기 CPU의 전처리 시간 및 상기 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간에 기초하여 상기 각 가속기 노드에 포함된 CPU의 소비 에너지를 결정하는 동작, 및 상기 각 가속기 노드에 포함된 각 가속기의 유효전력과 유휴전력, 상기 각 컴포넌트에 대한 가속기 별 처리 시간에 기초하여 상기 각 가속기 노드에 포함된 복수의 가속기의 소비 에너지를 결정하는 동작을 포함할 수 있다.
상기 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 입력 데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 동작은, 상기 기 설정된 처리 제한 시간 이내에 상기 입력 데이터를 모두 처리할 수 있도록 상기 각 가속기 노드 중 에너지 비용 효율이 낮은 가속기 노드부터 순차적으로 선택하는 것일 수 있다.
또한, 본 개시의 제2 측면은, 메모리 및 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는 각 가속기 노드에 대하여 딥 러닝 모델에 포함된 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하고, 상기 최소 처리 시간에 기초하여 상기 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하고, 상기 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하고, 상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정하고, 상기 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 입력 데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 스케줄링 장치를 제공할 수 있다.
너지를 결정하는 동작, 상기 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하는 동작, 상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정하는 동작 및 상기 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 입력 데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 동작을 포함하는 스케줄링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체
또한, 본 개시의 제3 측면은, 각 가속기 노드에 대하여 상기 딥 러닝 모델에 포함된 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하는 동작, 상기 최소 처리 시간에 기초하여 상기 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 동작, 상기 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하는 동작, 상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정하는 동작, 및 상기 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 입력 데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 동작을 포함하는 스케줄링 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체를 제공할 수 있다.
또한, 본 개시의 제4 측면은, 각 가속기 노드에 대하여 상기 딥 러닝 모델에 포함된 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하는 동작, 상기 최소 처리 시간에 기초하여 상기 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 동작, 상기 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하는 동작, 상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정하는 동작, 및 상기 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 입력 데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 동작을 포함하는 스케줄링 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램을 제공할 수 있다.
본 개시에 의하면, 이종 가속기를 지원하는 고성능 컴퓨팅 환경을 고려하여, 가속기 노드의 컴퓨팅 자원에 각 내부 컴포넌트 처리 작업을 순차적으로 분배함으로써 딥 러닝 모델에 대한 다수의 요청을 가속 처리하는 스케줄링 방법 및 장치를 제공할 수 있는 효과가 있다.
도 1은 일부 실시예에 따른 스케줄링 장치가 입력 데이터를 각 가속기 노드에 할당하는 방법을 나타내는 개념도이다.
도 2는 일부 실시예에 따른 스케줄링 방법을 나타내는 흐름도이다.
도 3은 일부 실시예에 따른 가속기 노드가 딥러닝 모델에 포함된 컴포넌트를 처리하는 속도 및 시간을 나타내는 도면이다.
도 4는 일부 실시예에 따른 가속기 노드가 딥러닝 모델에 포함된 컴포넌트를 처리하는 데 소비되는 소비 에너지를 나타내는 도면이다.
도 5는 일부 실시예에 따른 스케줄링 장치의 구성을 나타내는 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 일부 실시예에 따른 스케줄링 장치가 입력 데이터를 각 가속기 노드에 할당하는 방법을 나타내는 개념도이다.
도 1을 참조하면, 일부 실시예에 따른 딥러닝 모델에 대한 각 요청은 입력 데이터로 주어지고, 스케줄링 장치(10)는 복수의 요청에 대한 총 입력 데이터 D를 딥 러닝 모델에서 처리하기 위해 M개의 가속기 노드 [S1,…,Si,…,SM]로 구성되는 이종 가속기 클러스터(12)를 사용할 수 있다.
이종 가속기 클러스터(12)에 포함된 각 가속기 노드는 적어도 하나의 가속기를 포함할 수 있다. 일부 실시예에 따른 스케줄링 장치(10)는 총 입력 데이터 D를 각 가속기 노드에 할당하기 위해 가속기 노드 할당 전략 X=[x1,…,xi,…,xM]를 사용할 수 있다. 이때 xi={0,1}는 가속기 노드 Si에 대한 데이터 할당 여부를 나타낸다. 가속기 노드 할당 전략 X에 따라, 각 가속기 노드에 할당 데이터 [D1,…,Di,…,DM]가 할당될 수 있다.
일부 실시예에 따른 딥러닝 모델은 복수의 컴포넌트 [DL1,…,DLk,…,DLK]로 구성될 수 있다. 딥러닝 모델의 실행 전에 이루어지는 전처리 작업인 0번째 컴포넌트 DL0는 각 가속기 노드의 CPU에서 처리될 수 있다. 이후 딥러닝 모델을 구성하는 복수의 컴포넌트는 각 가속기 노드에서 순차적으로 처리될 수 있다.
가속기 노드 Si에 주어진 할당 데이터 Di는 컴포넌트 DL0에 입력된다. 본 개시에서 컴포넌트 DLk의 입력 데이터는 Dk i, 출력 데이터는 D^k i로 정의되며, 컴포넌트 DL0에 입력되는 Di는 D0 i로 표시할 수 있다. 할당 데이터 Di와 딥 러닝 모델의 구조가 정해지면 Dk i/D^k i는 고정값을 가진다.
본 개시에서, 가속기 노드 Si의 할당 데이터 Di 처리 시간 pti를 다음의 식으로 정의할 수 있다.
[수학식 1]
수학식 1에서 pt0 i는 i번째 가속기 노드인 가속기 노드 Si의 CPU에서 D0 i에 대한 딥러닝 모델의 전처리에 걸리는 시간이며, ptK i는 i번째 가속기 노드인 가속기 노드 Si의 k번째 가속기에서 Dk i에 대한 딥러닝 모델의 컴포넌트 DLk를 처리하는 데 걸리는 시간이다.
도 2는 일부 실시예에 따른 스케줄링 방법을 나타내는 흐름도이다.
도 2를 참조하면, 단계 S201에서 스케줄링 장치(10)는 각 가속기 노드에 대하여 딥 러닝 모델에 포함된 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정할 수 있다.
일부 실시예에 따르면, 스케줄링 장치(10)는 각 가속기 노드에 포함된 복수의 가속기가 각 컴포넌트를 처리하는 데 걸리는 시간이 각 가속기 별로 서로 동일하도록 컴포넌트에 대한 가속기 별 처리 시간을 결정할 수 있다. 이때 스케줄링 장치(10)는 각 컴포넌트에 대한 가속기 별 처리 시간을 각 컴포넌트에 대한 최소 처리 시간으로 결정할 수 있다.
각 컴포넌트에 대한 최소 처리 시간이 결정되면, 스케줄링 장치(10)는 각 컴포넌트에 대한 최소 처리 시간을 모두 합하여, 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간으로 결정할 수 있다.
일부 실시예에 따른 스케줄링 장치(10)가 각 가속기 노드에 대하여 딥 러닝 모델에 포함된 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하는 구체적인 방법은 도 3을 통해 후술한다.
복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간이 결정되면, 단계 S202에서 스케줄링 장치(10)는 최소 처리 시간에 기초하여 각 가속기 노드에서 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정할 수 있다.
일부 실시예에 따르면, 스케줄링 장치(10)는 각 가속기 노드에 포함된 CPU의 유효전력과 유휴전력, CPU의 전처리 시간 및 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간에 기초하여 각 가속기 노드의 CPU에서 소비되는 소비 에너지를 결정할 수 있다.
이와 유사하게, 스케줄링 장치(10)는 각 가속기 노드에 포함된 각 가속기의 유효전력과 유휴전력, 각 컴포넌트에 대한 가속기 별 처리 시간에 기초하여 각 가속기 노드에 포함된 복수의 가속기에서 소비되는 소비 에너지를 결정할 수 있다.
CPU에서 소비되는 소비 에너지 및 복수의 가속기에서 소비되는 소비 에너지가 결정되면, 스케줄링 장치(10)는 CPU에서 소비되는 소비 에너지 및 복수의 가속기에서 소비되는 소비 에너지를 모두 합하여 각 가속기 노드에서 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정할 수 있다.
일부 실시예에 따른 스케줄링 장치(10)가 최소 처리 시간에 기초하여 각 가속기 노드에서 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 방법은 도 4를 통해 후술한다.
각 가속기 노드에서 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지가 결정되면, 단계 S203에서 스케줄링 장치(10)는 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정할 수 있다.
각 가속기 노드에서 처리할 수 있는 최대 할당 데이터가 결정되면, 단계 S204에서 스케줄링 장치(10)는 소비 에너지 및 최대 할당 데이터에 기초하여 각 가속기 노드의 에너지 비용 효율을 결정할 수 있다.
각 가속기 노드의 에너지 비용 효율이 결정되면, 단계 S205에서 스케줄링 장치(10)는 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 각 가속기 노드 중 입력 데이터를 할당할 적어도 하나의 가속기 노드를 선택할 수 있다.
일부 실시예에 따르면, 스케줄링 장치(10)는 기 설정된 처리 제한 시간 이내에 입력 데이터를 모두 처리할 수 있도록 각 가속기 노드 중 에너지 비용 효율이 낮은 가속기 노드부터 순차적으로 선택할 수 있다.
도 3은 일부 실시예에 따른 가속기 노드가 딥러닝 모델에 포함된 컴포넌트를 처리하는 속도 및 시간을 나타내는 도면이다.
할당 데이터 Di를 입력받은 가속기 노드 Si는 딥러닝 모델에 포함된 복수의 컴포넌트를 순차적으로 처리한다. 스케줄링 장치(10)는 컴포넌트 DLk의 처리에 주어지는 Dk i를 Ni 개의 가속기에서 처리하기 위해 분배한다. 본 개시에서 가속기 노드 Si에서 Ni 개의 가속기에 분배되는 데이터를 [Dk i,1,…,Dk i,j,…,Dk i,Ni]로 표기한다. 이때, = 를 만족한다.
본 개시에서 Ni 개의 가속기의 복수의 컴포넌트 (DL1 내지 DLK)에 대한 처리 속도(Throughput)는 [THk i,1,…,THk i,j,…,THk i,Ni]로 표기한다. 이때, Ni 개의 가속기가 각각 할당받은 데이터 [Dk i,1,…,Dk i,j,…,Dk i,Ni]를 처리하는 시간 [clk i,1,…,clk i,j,…,clk i,Ni]은 다음과 같이 계산될 수 있다.
[수학식 2]
[],
전술한 것과 같이, ptK i는 i번째 가속기 노드인 가속기 노드 Si의 k번째 가속기에서 Dk i에 대한 딥러닝 모델의 컴포넌트 DLk를 처리하는 데 걸리는 시간이다. 이때 ptK i는 세부적으로 다음의 수학식과 같이 계산될 수 있다.
[수학식 3]
수학식 3에 따르면, 가속기 노드 Si에서 컴포넌트 DLk에 대한 입력 데이터 Dk i를 처리하는 경우, 처리 시간은 입력 데이터 전송시간 tik i, 데이터 처리 시간 clk i 및 출력 데이터 전송시간 tok i의 합으로 정의된다.
가속기 노드 Si의 메인 메모리(Main Memory)와 가속기의 글로벌 메모리(global Memory) 사이의 PCI express 대역폭 BWpci은 각 가속기의 처리량과 비교하여 상당히 높다고 가정하면, 입력 데이터 Dk i와 컴포넌트 DLk에 대한 가속기 노드 Si의 ptK i는 다음의 수학식과 같이 clk i로 근사할 수 있다.
[수학식 4]
각 가속기가 분배받은 데이터 [Dk i,1,…,Dk i,j,…,Dk i,Ni]를 모두 처리한 이후에 출력 데이터 전송이 이루어지므로, 데이터 처리 시간 clk i는 각 가속기의 처리 시간 clk i,j 중 가장 큰 값으로 결정될 수 있다. 일부 실시예에 따르면, 분배받은 데이터 [Dk i,1,…,Dk i,j,…,Dk i,Ni]에 대한 각 가속기의 처리 시간이 서로 동일할 때, 최소 수행시간 ptK *i가 달성될 수 있다.
입력 데이터 Dk i와 컴포넌트 DLk에 대한 가속기 노드 Si의 최소 수행시간 ptK *i는 다음의 수학식과 같이 유도될 수 있다.
[수학식 5]
도 4는 일부 실시예에 따른 가속기 노드가 딥러닝 모델에 포함된 컴포넌트를 처리하는 데 소비되는 소비 에너지를 나타내는 도면이다.
가속기 노드 Si가 딥러닝 모델의 복수의 컴포넌트를 처리하는 데 소비하는 소비 에너지 Ei는 CPU 유효 소비 에너지(Active Energy), CPU 유휴 소비 에너지(Idle Energy) 및 GPU 유효 소비 에너지의 합(GPU 유휴 소비 에너지는 상대적으로 적어 무시할 수 있음)으로, 다음의 수학식과 같이 계산될 수 있다.
[수학식 6]
수학식 6에서 Pact i,0는 가속기 노드 Si에서 전처리(즉, 입력 이미지 배칭 및 디코딩)를 수행하기 위한 CPU의 유효 전력이고, Pidl i,0는 가속기 노드 Si에서 전처리 이외의 동작에 대한 유휴 CPU 전력이며, Pk,act i,j≠0는 가속기 노드 Si에서 컴포넌트 DLk를 처리하기 위한 j번째 가속기의 유효 전력이다.
pt0 i는 가속기 노드 Si에서 전처리를 수행하는데 걸리는 CPU의 전처리 시간이고, ptk i는 가속기 노드 Si에서 컴포넌트 DLk를 처리하는 데 걸리는 총 처리 시간이며, clk i,j는 가속기 노드 Si에서 컴포넌트 DLk를 처리하는 데 걸리는 j번째 가속기의 처리 시간이다.
본 개시의 스케줄링 장치(10)의 목표는 총 입력 데이터 D에 대한 딥러닝 모델의 처리에 있어서 서비스 수준 목표를 만족시키면서 최소한의 에너지 비용을 달성하는 것이다. 일부 실시예에 따른 스케줄링 장치(10)는 서비스 수준 목표를 처리 제한 시간(Deadline)으로 정의하며, 본 개시에서는 LInf로 표기한다.
가속기 노드 Si가 처리 제한 시간 LInf 이내에 처리할 수 있는 최대 데이터량을 갖는 할당 데이터 Di를 다음과 같이 계산할 수 있다.
[수학식 7]
수학식 7에서 Di=D0 i 이고, 딥러닝 모델의 컴포넌트 DLk에 대한 입력 Dk i는 딥러닝 모델의 고정된 구조 상 입력 데이터 당 컴포넌트 DLk의 단위 데이터량인 σk를 사용하여 Dk ik*Di로 표현할 수 있다.
일부 다른 실시예에 따른 스케줄링 장치는 위해 가속기 노드 할당 전략 X=[x1,…,xi,…,xM]을 결정하기 위해, 최적화 문제(Optimal Problem) 방식에 기초하여 결정 변수를 X로 설정한 다음과 같은 목적 함수를 사용할 수 있다.
[수학식 8]
다만, 상기 목적 함수의 사용은 NP-hard(Non-deterministic Polynomial-time hard)에 관한 문제점이 존재할 수 있어, 일부 실시예에 따른 스케줄링 장치(10)는 차선의 솔루션을 찾는 휴리스틱 알고리즘을 사용하여 가속기 노드 할당 전략 X=[x1,…,xi,…,xM]의 결정에 사용되는 계산 복잡성을 줄일 수 있다.
휴리스틱 알고리즘을 사용하는 스케줄링 장치(10)는 모든 가속기 노드에 대한 에너지 비용 효율을 다음과 같이 계산할 수 있다.
[수학식 9]
, where
수학식 9에서 할당 데이터 Di는, 수학식 7을 통해 전술한 것과 같이, 가속기 노드 Si가 처리 제한 시간 LInf 이내에 처리할 수 있는 최대 데이터량으로 이루어질 수 있다. 가속기 노드 Si가 딥러닝 모델의 복수의 컴포넌트를 처리하는 데 소비하는 소비 에너지 Ei와 할당 데이터 Di의 비율은 가속기 노드 Si의 에너지 비용 효율에 해당한다.
일부 실시예에 따른 스케줄링 장치(10)는 기 설정된 처리 제한 시간 이내에 입력 데이터를 모두 처리할 수 있는 조건 하에, 이종 가속기 클러스터(12)에 포함된 각 가속기 노드 중 에너지 비용 효율이 낮은 가속기 노드부터 적어도 하나의 가속기 노드를 순차적으로 선택할 수 있다. 이때, 스케줄링 장치(10)는 선택된 가속기 노드에만 입력 데이터를 할당하여, 딥 러닝 모델에 대한 다수의 요청을 가속 처리할 수 있다.
도 5는 일부 실시예에 따른 스케줄링 장치의 구성을 나타내는 블록도이다.
도 5를 참조하면, 일부 실시예에 따른 스케줄링 장치(10)는 메모리(101) 및 프로세서(103)를 포함할 수 있다.
메모리(101)는 스케줄링 장치(10)의 동작을 제어하기 위한 프로그램을 저장할 수 있다. 메모리(101)는 스케줄링 장치(10)의 동작을 제어하기 위한 적어도 하나의 인스트럭션을 포함할 수 있다. 메모리(101)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류될 수 있다.
일부 실시예에 따른 메모리(101)는 딥러닝 모델, 가속기 노드 할당 전략, 입력 데이터 및 할당 데이터에 관한 정보를 저장할 수 있다.
메모리(101)는, 예를 들어, 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있으나, 이에 제한되지 않는다.
프로세서(103)는 메모리(101)에 저장된 프로그램들을 실행하여 스케줄링 장치(10)의 전반적인 동작을 제어할 수 있다.
일부 실시예에 따른 프로세서(103)는 각 가속기 노드에 대하여 딥 러닝 모델에 포함된 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정할 수 있다.
일부 실시예에 따른 프로세서(103)는 각 가속기 노드에 포함된 복수의 가속기가 각 컴포넌트를 처리하는 데 걸리는 시간이 각 가속기 별로 서로 동일하도록 각 컴포넌트에 대한 가속기 별 처리 시간을 결정할 수 있다. 프로세서(103)는 각 컴포넌트에 대한 가속기 별 처리 시간을 각 컴포넌트에 대한 최소 처리 시간으로 결정하고, 각 컴포넌트에 대한 최소 처리 시간을 모두 합하여 상기 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간으로 결정할 수 있다.
일부 실시예에 따른 프로세서(103)는 최소 처리 시간에 기초하여 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정할 수 있다.
일부 실시예에 따른 프로세서(103)는 각 가속기 노드에 포함된 CPU의 유효전력과 유휴전력, CPU의 전처리 시간 및 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간에 기초하여 각 가속기 노드에 포함된 CPU의 소비 에너지를 결정할 수 있다. 프로세서(103)는 각 가속기 노드에 포함된 각 가속기의 유효전력과 유휴전력, 각 컴포넌트에 대한 가속기 별 처리 시간에 기초하여 각 가속기 노드에 포함된 복수의 가속기의 소비 에너지를 결정할 수 있다. 프로세서(103)는 각 가속기 노드에 포함된 CPU의 소비 에너지와 복수의 가속기의 소비 에너지를 합하여, 각 가속기 노드에서 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정할 수 있다.
일부 실시예에 따른 프로세서(103)는 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하고, 상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정할 수 있다.
일부 실시예에 따른 프로세서(103)는 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 각 가속기 노드 중 입력 데이터를 할당할 적어도 하나의 가속기 노드를 선택할 수 있다.
일부 실시예에 따른 프로세서(103)는 기 설정된 처리 제한 시간 이내에 상기 입력 데이터를 모두 처리할 수 있도록 각 가속기 노드 중 에너지 비용 효율이 낮은 가속기 노드부터 순차적으로 선택하여, 각 가속기 노드 중 입력 데이터를 할당할 적어도 하나의 가속기 노드를 선택할 수 있다.
일부 실시예에 따른 프로세서(103)는, 예를 들어, 인공지능 연산을 수행할 수 있다. 프로세서(103)는, 예를 들어, CPU(Central Processing Unit), GPU(Graphics Processing Unit), NPU(Neural Processing Unit), FPGA(Field Programmable Gate Array), ASIC(application specific integrated circuit) 중 어느 하나일 수 있으나, 이에 제한되지 않는다.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다.
또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술 분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.
10: 스케줄링 장치
12: 이종 가속기 클러스터

Claims (12)

  1. 스케줄링 장치에 의해 각각이 복수의 컴포넌트로 구성된 딥 러닝 모델을 포함하는 복수의 가속기 노드에 입력데이터를 분배하는 스케줄링 방법에 있어서,
    각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하는 동작;
    상기 최소 처리 시간에 기초하여 상기 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 동작;
    상기 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하는 동작;
    상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정하는 동작: 및
    상기 각 가속기 노드의 상기 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 상기 입력데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 동작;을 포함하는 스케줄링 방법.
  2. 제1항에 있어서,
    상기 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하는 동작은,
    상기 각 가속기 노드에 포함된 복수의 가속기 각각이 각 컴포넌트를 처리하는 데 걸리는 시간이 서로 동일하도록 상기 각 컴포넌트에 대한 가속기 별 처리 시간을 결정하는 동작; 및
    상기 각 컴포넌트에 대한 가속기 별 처리 시간을 상기 각 컴포넌트에 대한 최소 처리 시간으로 결정하는 동작: 및
    상기 각 컴포넌트의 최소 처리 시간을 모두 합하여 상기 최소 처리 시간으로 결정하는 동작;을 포함하는 스케줄링 방법.
  3. 제2항에 있어서,
    상기 각 컴포넌트에 대한 상기 가속기 별 처리 시간은,
    데이터 처리 시간, 입력 데이터 전송시간 및 출력 데이터 전송시간 중 적어도 하나를 포함하는 스케줄링 방법.
  4. 제2항에 있어서,
    상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 동작은,
    상기 각 가속기 노드에 포함된 CPU의 유효전력과 유휴전력, 상기 CPU의 전처리 시간 및 상기 최소 처리 시간에 기초하여 상기 CPU의 소비 에너지를 결정하는 동작; 및
    상기 각 가속기 노드의 상기 각 가속기 별 유효전력과 유휴전력, 상기 각 가속기 별 처리 시간에 기초하여 상기 복수의 가속기의 소비 에너지를 결정하는 동작;을 포함하는 스케줄링 방법.
  5. 제1항에 있어서,
    상기 입력데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 동작은,
    상기 기 설정된 처리 제한 시간 이내에 상기 입력데이터를 모두 처리할 수 있도록 상기 각 가속기 노드 중 상기 에너지 비용 효율이 낮은 가속기 노드부터 순차적으로 선택하는 것인 스케줄링 방법.
  6. 각각이 복수의 컴포넌트로 구성된 딥 러닝 모델을 포함하는 복수의 가속기 노드에 입력데이터를 분배하는 스케줄링 장치에 있어서,
    메모리; 및
    적어도 하나의 프로세서;를 포함하며,
    상기 적어도 하나의 프로세서는
    각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하고, 상기 최소 처리 시간에 기초하여 상기 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하고, 상기 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하고, 상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정하고, 상기 각 가속기 노드의 상기 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 상기 입력데이터를 할당할 적어도 하나의 가속기 노드를 선택하는, 스케줄링 장치.
  7. 제6항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 각 가속기 노드에 포함된 복수의 가속기 각각이 각 컴포넌트를 처리하는 데 걸리는 시간이 서로 동일하도록 상기 각 컴포넌트에 대한 가속기 별 처리 시간을 결정하고, 상기 각 컴포넌트에 대한 가속기 별 처리 시간을 상기 각 컴포넌트에 대한 최소 처리 시간으로 결정하고, 상기 각 컴포넌트의 최소 처리 시간을 모두 합하여 상기 최소 처리 시간으로 결정하는 스케줄링 장치.
  8. 제7항에 있어서,
    상기 각 컴포넌트에 대한 상기 가속기 별 처리 시간은,
    데이터 처리 시간, 입력 데이터 전송시간 및 출력 데이터 전송시간 중 적어도 하나를 포함하는 스케줄링 장치.
  9. 제7항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 각 가속기 노드에 포함된 CPU의 유효전력과 유휴전력, 상기 CPU의 전처리 시간 및 상기 최소 처리 시간에 기초하여 상기 CPU의 소비 에너지를 결정하고, 상기 각 가속기 노드의 상기 각 가속기 별 유효전력과 유휴전력, 상기 각 가속기 별 처리 시간에 기초하여 상기 복수의 가속기의 소비 에너지를 결정하여, 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 스케줄링 장치.
  10. 제6항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 기 설정된 처리 제한 시간 이내에 상기 입력데이터를 모두 처리할 수 있도록 상기 각 가속기 노드 중 상기 에너지 비용 효율이 낮은 가속기 노드부터 순차적으로 선택하여, 상기 각 가속기 노드 중 상기 입력데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 스케줄링 장치.
  11. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능한 기록매체로서,
    상기 컴퓨터 프로그램은,
    각각이 복수의 컴포넌트로 구성된 딥 러닝 모델을 포함하는 복수의 가속기 노드 각각에서 상기 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하는 동작;
    상기 최소 처리 시간에 기초하여 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 동작;
    상기 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하는 동작;
    상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정하는 동작: 및
    상기 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 입력데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 동작을 포함하는 스케줄링 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능한 기록매체.
  12. 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은,
    각각이 복수의 컴포넌트로 구성된 딥 러닝 모델을 포함하는 복수의 가속기 노드 각각에서 상기 복수의 컴포넌트를 처리하는 데 걸리는 최소 처리 시간을 결정하는 동작;
    상기 최소 처리 시간에 기초하여 각 가속기 노드에서 상기 복수의 컴포넌트를 처리하는 데 소비되는 소비 에너지를 결정하는 동작;
    상기 최소 처리 시간 및 기 설정된 처리 제한 시간에 기초하여 상기 각 가속기 노드에서 처리할 수 있는 최대 할당 데이터를 결정하는 동작;
    상기 소비 에너지 및 상기 최대 할당 데이터에 기초하여 상기 각 가속기 노드의 에너지 비용 효율을 결정하는 동작: 및
    상기 각 가속기 노드의 에너지 비용 효율을 서로 비교하여 상기 각 가속기 노드 중 입력데이터를 할당할 적어도 하나의 가속기 노드를 선택하는 동작을 포함하는 스케줄링 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램.
KR1020210071066A 2020-12-16 2021-06-01 스케줄링 방법 및 장치 KR102559658B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200176644 2020-12-16
KR20200176644 2020-12-16

Publications (2)

Publication Number Publication Date
KR20220086449A KR20220086449A (ko) 2022-06-23
KR102559658B1 true KR102559658B1 (ko) 2023-07-26

Family

ID=82222111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210071066A KR102559658B1 (ko) 2020-12-16 2021-06-01 스케줄링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102559658B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140530A (ja) 2012-01-06 2013-07-18 Internatl Business Mach Corp <Ibm> 分散計算方法、プログラム、ホストコンピュータおよび分散計算システム(アクセラレータ装置を用いた分散並列計算)
WO2018158819A1 (ja) 2017-02-28 2018-09-07 株式会社日立製作所 分散データベースシステム及び分散データベースシステムのリソース管理方法
JP2019082819A (ja) 2017-10-30 2019-05-30 株式会社日立製作所 アクセラレータ部の利用に対する課金を支援するシステム及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101861742B1 (ko) * 2011-08-30 2018-05-30 삼성전자주식회사 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법
US20160378551A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Adaptive hardware acceleration based on runtime power efficiency determinations
KR20200096102A (ko) * 2019-02-01 2020-08-11 엘지전자 주식회사 연산 모델의 병렬적 처리

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140530A (ja) 2012-01-06 2013-07-18 Internatl Business Mach Corp <Ibm> 分散計算方法、プログラム、ホストコンピュータおよび分散計算システム(アクセラレータ装置を用いた分散並列計算)
WO2018158819A1 (ja) 2017-02-28 2018-09-07 株式会社日立製作所 分散データベースシステム及び分散データベースシステムのリソース管理方法
JP2019082819A (ja) 2017-10-30 2019-05-30 株式会社日立製作所 アクセラレータ部の利用に対する課金を支援するシステム及び方法

Also Published As

Publication number Publication date
KR20220086449A (ko) 2022-06-23

Similar Documents

Publication Publication Date Title
US11989647B2 (en) Self-learning scheduler for application orchestration on shared compute cluster
CN110737529B (zh) 一种面向短时多变大数据作业集群调度自适应性配置方法
US20200249998A1 (en) Scheduling computation graph heterogeneous computer system
Kang et al. Lalarand: Flexible layer-by-layer cpu/gpu scheduling for real-time dnn tasks
US20210382754A1 (en) Serverless computing architecture for artificial intelligence workloads on edge for dynamic reconfiguration of workloads and enhanced resource utilization
US11609792B2 (en) Maximizing resource utilization of neural network computing system
CN112328380A (zh) 一种基于异构计算的任务调度方法及装置
CN110717574B (zh) 一种神经网络运行方法、装置及异构智能芯片
CN108205469B (zh) 一种基于MapReduce的资源分配方法及服务器
CN111104211A (zh) 基于任务依赖的计算卸载方法、系统、设备及介质
CN112764893B (zh) 数据处理方法和数据处理系统
US11875426B2 (en) Graph sampling and random walk acceleration method and system on GPU
Gandomi et al. HybSMRP: a hybrid scheduling algorithm in Hadoop MapReduce framework
US20210319298A1 (en) Compute-based subgraph partitioning of deep learning models for framework integration
CN109634714B (zh) 一种智能调度的方法及装置
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
KR102559658B1 (ko) 스케줄링 방법 및 장치
Raj et al. Survey on variants of heuristic algorithms for scheduling workflow of tasks
Zhao et al. Reliable DNN partitioning for UAV swarm
CN110415162B (zh) 大数据中面向异构融合处理器的自适应图划分方法
Oh et al. Energy-efficient task partitioning for CNN-based object detection in heterogeneous computing environment
CN112598112A (zh) 一种基于图神经网络的资源调度方法
Hassan et al. A survey about efficient job scheduling strategies in cloud and large scale environments
CN116188239B (zh) 多请求并发的gpu图随机游走优化实现方法及系统
Ma et al. A parallel multi-swarm particle swarm optimization algorithm based on CUDA streams

Legal Events

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