KR101755154B1 - 이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치 - Google Patents

이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치 Download PDF

Info

Publication number
KR101755154B1
KR101755154B1 KR1020160051782A KR20160051782A KR101755154B1 KR 101755154 B1 KR101755154 B1 KR 101755154B1 KR 1020160051782 A KR1020160051782 A KR 1020160051782A KR 20160051782 A KR20160051782 A KR 20160051782A KR 101755154 B1 KR101755154 B1 KR 101755154B1
Authority
KR
South Korea
Prior art keywords
kernel
sub
arithmetic processing
processing units
power
Prior art date
Application number
KR1020160051782A
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 KR1020160051782A priority Critical patent/KR101755154B1/ko
Application granted granted Critical
Publication of KR101755154B1 publication Critical patent/KR101755154B1/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치가 제공된다. 본 발명의 일 실시예에 따른 이종 연산 처리 장치에 대한 동적 작업을 할당하는 장치는 복수의 연산 처리 장치가 테스트 데이터를 각각 처리하도록 하는 서브 커널을 생성하고, 상기 복수의 연산 처리 장치가 상기 서브 커널을 각각 실행하는 소요 시간, 상기 복수의 연산 처리 장치로부터 획득한 현재 사용률 및 동작 주파수를 제공하는 동적 성능 프로파일러 및 상기 서브 커널을 실행하는 소요 시간, 현재 사용률 및 동작 주파수에 기초하여, 상기 복수의 연산 처리 장치에 대한 스케줄링 비용을 계산하고, 상기 계산된 스케줄링 비용에 따라서 상기 복수의 연산 처리 장치에 커널을 할당하는 실시간 에너지 프로파일러를 포함하는 것을 특징으로 한다.

Description

이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치{METHOD AND APPARATUS FOR POWER LOAD BALANCING FOR HETEROGENEOUS PROCESSORS}
본 발명은 이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치에 관한 것으로서, 더욱 상세하게는 실시간 에너지 프로파일링 기반의 이종 연산 처리 장치에 대한 동적 작업 할당 기술에 관한 것이다.
OpenCL과 같은 이기종 가속 장치를 위한 연산 프레임워크는 도 1에 도시된 바와 같이, 메모리 할당 및 초기화 과정, 연산 처리 장치로의 데이터 전송 과정, 병렬 처리하기 위한 작업(Kernel)을 실행하는 과정, 처리 결과를 호스트에서 사용 후 할당받은 메모리 공간을 해제하는 일련의 과정으로 동작한다.
이를 위해 프로그래머는 연산 처리를 위한 실행 환경 설정 및 병렬 처리를 관장하는 호스트 프로그램과 실제 연산 처리 장치에서 가속을 진행하기 위한 커널 프로그램을 작성하게 된다.
이러한 과정을 위해 각 프레임 워크마다 사용하는 Application Programming Interface(API)의 형태와 프로그래머가 조절할 수 있는 작업의 병렬화 단계의 차이는 있지만, 데이터를 전송하고 커널을 실행하는 처리 과정은 매우 유사하다.
이때 기존의 프레임워크들은 호스트 프로그램에서 선택한 연산 처리 장치에서만 작업이 할당되고 커널 프로그램의 실행이 종료되는 시점까지 실행 연산 처리 장치를 동적으로 변경할 수 없다.
즉, 종래의 병렬 연산 프레임워크들은 시스템 내부의 전력 소비 상태와 다양한 연산 처리 장치들의 실제 사용량에 대한 고려 없이 프로그래머가 선택한 연산 처리 장치에 일괄적으로 작업을 할당하고 있다.
이로 인해 프로그래머가 다양한 연산 처리 장치들의 특성을 고려한 효율적인 커널 프로그램을 작성하지 못한다면 시스템은 하드웨어 자원을 충분히 활용하지 못하게 되고, 비 효율적인 전력 관리 기법의 적용으로 인해 시스템 내부의 전력 소비가 급격히 증가하는 문제가 있다.
이러한 문제는 커널이 처리해야 하는 데이터의 크기가 증가하고 동시에 처리해야 할 작업의 수가 많아 질수록 전력 소비 증가에 민감한 모바일 기기에서는 더욱 큰 문제로 작용하게 된다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로, 각 연산 처리 장치의 사용률과 동작 상태에 따른 전력 소비 및 작업 처리 시간에 대한 프로파일링 결과를 기반으로 동적으로 작업을 할당하는 방안을 제공하고자 한다.
상기와 같은 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 이종 연산 처리 장치에 대한 동적 작업을 할당하는 장치는 복수의 연산 처리 장치가 테스트 데이터를 각각 처리하도록 하는 서브 커널을 생성하고, 상기 복수의 연산 처리 장치가 상기 서브 커널을 각각 실행하는 소요 시간, 상기 복수의 연산 처리 장치로부터 획득한 현재 사용률 및 동작 주파수를 제공하는 동적 성능 프로파일러 및 상기 서브 커널을 실행하는 소요 시간, 현재 사용률 및 동작 주파수에 기초하여, 상기 복수의 연산 처리 장치에 대한 스케줄링 비용을 계산하고, 상기 계산된 스케줄링 비용에 따라서 상기 복수의 연산 처리 장치에 커널을 할당하는 실시간 에너지 프로파일러를 포함하는 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 동적 작업 할당 장치가 이종 연산 처리 장치에 대한 동적 작업을 할당하는 방법은 (a) 복수의 연산 처리 장치가 테스트 데이터를 각각 처리하도록 하는 서브 커널을 생성하는 단계, (b) 상기 복수의 연산 처리 장치가 상기 서브 커널을 각각 실행하는 소요 시간, 상기 복수의 연산 처리 장치로부터 획득한 현재 사용률 및 동작 주파수를 제공하는 단계, (c) 상기 서브 커널을 실행하는 소요 시간, 현재 사용률 및 동작 주파수에 기초하여, 상기 복수의 연산 처리 장치에 대한 스케줄링 비용을 계산하는 단계 및 (d) 상기 계산된 스케줄링 비용에 따라서 상기 복수의 연산 처리 장치에 커널을 할당하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따르면, 시스템 전체의 전력 소비를 줄이면서도 서비스 품질(Quality of Service)을 유지할 수 있다.
본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
도 1은 종래의 이기종 연산 처리 장치에 대한 작업 할당 방법을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 동적 작업 할당 방법을 반영한 라이브러리의 구조를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 사용자 단말기의 구성을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 동적 할당 과정을 도시한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 전력 소비 테이블의 구조를 도시한 도면이다.
이하에서는 첨부한 도면을 참조하여 본 발명을 설명하기로 한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 따라서 여기에서 설명하는 실시예로 한정되는 것은 아니다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다.
또한 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 구비할 수 있다는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 동적 작업 할당 방법을 반영한 라이브러리의 구조를 도시한 도면이다.
본 발명의 일 실시예에 따른 동적 작업 할당은 모바일 플랫폼에서 라이브러리 형태로 배포됨으로써 수행될 수 있다.
도 2에 도시된 바와 같이, 연산 처리 장치(device) 제조사의 디바이스 드라이버와 OpenCL(Open Computing Language)이나 RenderScript와 같은 이종 연산 처리 장치를 위한 표준 병렬 연산 프레임워크 사이의 확장된 연산 라이브러리(Extended Computing Library) 형태로 제공될 수 있다.
본 발명의 일 실시예에 따른 확장된 연산 라이브러리(이하, ‘확장된 연산 라이브러리(ECL)’라 칭함)는, 해당되는 라이브러리에서 커널을 수행하는 연산 처리 장치의 동적 성능 측정 및 실시간 에너지 프로파일링 결과를 이용하여 커널을 연산 처리 장치에 할당함으로써, 시스템 전체의 전력 소비를 줄이면서도 서비스 품질(Quality of Service; QoS)을 유지하는 동적 스케줄링을 적용할 수 있다.
이를 위해, 확장된 연산 라이브러리(ECL)는 동적 성능 프로파일러(Dynamic Performance Profiler; DPP) 모듈 및 실시간 에너지 프로파일러(Online Energy Profiler; OEP) 모듈을 포함할 수 있으며, 이에 대한 상세한 설명은 도 3을 참조하여 후술하도록 한다.
참고로, 확장된 연산 라이브러리(ECL)는 스마트폰, 개인 정보 단말기(Personal Digital Assistants; PDA), 휴대용 멀티미디어 플레이어(Portable Multimedia Player; PMP), 태블릿 컴퓨터(Tablet Computer) 등의 이동 통신 단말기와, 손목과 같은 신체 일부에 착용하는 웨어러블 디바이스(Wearable Device), 그리고 노트북 컴퓨터, 데스크탑 컴퓨터 및 TV와 연결된 셋탑 박스 등을 포함하는 사용자 단말기에 설치될 수 있다.
물론, 확장된 연산 라이브러리(ECL)를 포함하는 별도의 장치가 사용자 단말기와 연결됨으로써, 확장된 연산 라이브러리(ECL)가 사용자 단말기에서 동작하도록 할 수도 있다.
이하에서는 사용자 단말기의 실시예로서 이동 통산 단말기를 사용하도록 하며, 확장된 연산 라이브러리(ECL)가 사용자 단말기에 설치되어 동작하는 경우를 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 사용자 단말기의 구성을 도시한 도면이다.
본 발명의 일 실시예에 따른 사용자 단말기(100)는 동적 성능 프로파일러(Dynamic Performance Profiler; DPP)(110), 실시간 에너지 프로파일러(Online Energy Profiler; OEP)(120), 메모리(130) 및 제어부(140)를 포함할 수 있다.
각 구성 요소를 설명하면, 동적 성능 프로파일러(110)는 사용자 단말기(100) 내에 포함된 복수의 연산 처리 장치, 예를 들어 CPU(Central Processing Unit), GPU(Graphics Processing Unit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 등의 동적 성능을 측정하기 위해서, 테스트 데이터(물론, 최소한의 데이터이다)를 처리하는 서브 커널(Sub?Kernel)을 생성하고, 각 연산 처리 장치가 서브 커널에서 테스트 데이터를 실행하는데 소요되는 시간(이하, ‘소요 시간’이라 칭함)을 획득할 수 있다.
이때, 동적 성능 프로파일러(110)는 상기 소요 시간뿐만 아니라, 각 연산 처리 장치로부터(더 상세하게는 ‘연산 처리 장치의 드라이버’로부터) 각 연산 처리 장치의 사용률(Utilization)과 동작 주파수(Frequency)에 대한 정보를 더 획득할 수 있다.
여기서, ‘사용률’은 각 연산 처리 장치가 상기 테스트 데이터를 실행하는데 소요되는 리소스의 사용 비율을 의미할 수 있다.
그리고, ‘동작 주파수’는 각 연산 처리 장치의 최대 동작 주파수를 의미할 수도 있으나, 사용자 단말기에서 수행되는 별도의 전력 관리 스케줄링에 따라 각 연산 처리 장치별로 설정되는 동작 주파수를 의미할 수도 있다.
이하에서는, 동작 주파수가 별도의 전력 관리 스케줄링에 따라 각 연산 처리 장치별로 설정되는 경우를 설명하도록 한다.
동적 성능 프로파일러(110)는 상기 테스트 데이터를 처리하는 서브 커널을 구동하기 위해 각 연산 처리 장치를 모두 정의하기 위한 가상 디바이스(Virtual Device) 객체와, 서브 커널을 구동하기 위한 테스트 데이터용 중간 버퍼(Hidden Buffer)를 생성할 수 있다.
이때, 동적 성능 프로파일러는 Context(다양한 연산 처리 장치를 정의하고 관리함)를 생성하는 시점에 가상 디바이스 객체를 생성할 수 있으며, 확장된 연산 라이브러리(ECL)가 로딩(loading)되는 커널의 실행 시점에 중간 버퍼를 생성할 수 있다.
한편, 실시간 에너지 프로파일러(120)는 동적 성능 프로파일러(110)에서 획득한 각 연산 처리 장치의 현재 사용률, 서브 커널 실행 소요 시간 및 동작 주파수에 따른 전력 소비 프로필을 생성할 수 있다.
이를 위해, 실시간 에너지 프로파일러(120)는 각 연산 처리 장치에 대한 전력 소비 테이블(Power Consumption Table)을 참조할 수 있다.
참고로, ‘전력 소비 테이블’은 벤더에서 제공되는 각 연산 처리 장치의 동작 주파수에 따른 Idle Power 및 Peak Power 정보와 상태에 따른 Leakage Power 정보를 저장할 수 있다.
전력 소비 테이블에 대해서는 도 5를 참조하여 후술하도록 한다.
실시간 에너지 프로파일러(120)는 동적 성능 프로파일러(110)에서 획득한 각 연산 처리 장치의 동작 주파수에 따라서, 전력 소비 테이블로부터 각 연산 처리 장치의 현재 동작 주파수와 매칭되는 Peak Power와 Idle Power의 차이인 Power Range를 추출할 수 있다.
이후, 실시간 에너지 프로파일러(120)는 추출된 Power Range를 기준으로 실시간 작업 할당에 따른 사용자 단말기(100)의 에너지 소모를 추정할 수 있다.
이때, 실시간 에너지 프로파일러(120)는 아래의 [수학식 1]을 이용하여 스케줄링 비용(Scheduling Cost) 값을 계산할 수 있다.
[수학식 1]
Scheduling cost = Power range of current frequency × Utilization × Execution time
실시간 에너지 프로파일러(120)는 계산된 스케줄링 비용에 따른 우선 순위 정보를 기록할 수 있으며, 우선 순위 정보에 따라서 스케줄링 비용이 낮은 연산 처리 장치에 커널을 우선적으로 할당할 수 있다.
한편, 메모리(130)는 본 발명의 일 실시예에 따른 이종 연산 처리 장치에 대한 동적 작업 할당이 수행되기 위해 필요한 다양한 알고리즘, 그 과정에서 파생된 다양한 데이터 등을 저장할 수 있다.
또한, 메모리(130)는 실시간 에너지 프로파일러(120)가 각 연산 처리 장치의 전력 소비 정보를 추출하는데 참고하는 전력 소비 테이블(Power Consumption Table)를 저장할 수 있다.
한편, 제어부(140)는 상기 동적 성능 프로파일러(110), 실시간 에너지 프로파일러(120) 및 메모리(130)를 제어할 수 있다.
참고로, 제어부(140)는 사용자 단말기(100) 내에 포함된 복수의 연산 처리 장치 중 어느 하나일 수 있다.
도 4는 본 발명의 일 실시예에 따른 동적 할당 과정을 도시한 흐름도이다.
참고로, 도 4에서 사용자 단말기(100)에는 확장된 연산 라이브러리(ECL)가 설치되어 있다.
사용자 단말기(100)는 Context를 생성하는 시점에 시스템 내부의 모든 연산 처리 장치들이 해당 작업을 동적 할당 받을 수 있도록 가상 디바이스를 생성한다(S401).
S401 후, 사용자 단말기(100)는 확장된 연산 라이브러리(ECL)가 로딩되는 커널 실행 시점에 서브 커널을 구동하기 위한 중간 버퍼를 생성한다(S402).
S402 후, 사용자 단말기(100)는 시스템 내의 모든 연산 처리 장치에 대하여 서브 커널을 구동시켜 현재 사용률, 서브 커널의 실행 소요 시간 및 동작 주파수에 대한 정보를 획득한다(S403).
S403 후, 사용자 단말기는 S403에서 획득된 각 연산 처리 장치의 현재 사용률, 서브 커널의 실행 소요 시간 및 동작 주파수에 기초하여 전력 소비 테이블에서 전력 소비 정보를 파악하고 스케줄링 비용 값을 계산한다(S404).
S404 후, 사용자 단말기는 각 연산 처리 장치의 스케줄링 비용에 기초하여 우선 순위 정보(스케줄링 비용이 낮은 순서로)를 기록하고, 우선 순위 정보에 따라서 각 연산 처리 장치에 커널을 할당한다(S405).
도 5는 본 발명의 일 실시예에 따른 전력 소비 테이블의 구조를 도시한 도면이다.
본 발명의 일 실시예에 따른 전력 소비 테이블은 벤더에서 제공되는 사용자 단말기의 각 연산 처리 장치(CPU 및 GPU)의 동작 주파수와 각 동작 주파수별 Idle Power 및 Peak power 정보, 그리고 Idle Power와 Peak Power의 차이인 Power Range 값을 포함할 수 있다.
이와 같은 전력 소비 테이블에 포함된 정보들은 클러스터별 전력 관리 기법 적용에 활용될 수 있다.
실시간 에너지 프로파일러(120)는 동적 성능 프로파일러(110)에서 측정된 각 연산 처리 장치의 현재 동작 주파수에 매칭되는 Peak power와 Idle Power의 차이인 Power Range를 기준으로 실시간 작업 할당에 따른 시스템의 에너지 소모를 추정할 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다.
그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100 : 사용자 단말기.
110 : 동적 성능 프로파일러
120 : 실시간 에너지 프로파일러
130 : 메모리
140 : 제어부

Claims (11)

  1. 이종 연산 처리 장치에 대한 동적 작업을 할당하는 장치에 있어서,
    복수의 연산 처리 장치가 테스트 데이터를 각각 처리하도록 하는 서브 커널을 생성하고, 상기 복수의 연산 처리 장치가 상기 서브 커널을 각각 실행하는데 소요되는 시간, 현재 사용률 및 동작 주파수를 획득하여 제공하는 동적 성능 프로파일러; 및
    상기 서브 커널을 실행하는데 소요되는 시간, 현재 사용률 및 동작 주파수에 기초하여, 상기 복수의 연산 처리 장치에 대한 각각의 스케줄링 비용을 계산하고, 상기 계산된 스케줄링 비용에 기초하여 설정된 우선 순위에 따라서 상기 복수의 연산 처리 장치에 커널을 할당하는 실시간 에너지 프로파일러
    를 포함하되,
    상기 테스트 데이터는 상기 서브 커널을 구동하기 위해 필요한 미리 정해진 단위 크기의 데이터인 것을 특징으로 하는 동적 작업 할당 장치.
  2. 제1 항에 있어서,
    상기 동적 성능 프로파일러는
    상기 서브 커널을 구동하기 위해 상기 복수의 연산 처리 장치를 정의하기 위한 가상 디바이스(Virtual Device) 객체와, 상기 서브 커널을 구동하기 위한 테스트 데이터용 중간 버퍼(Hidden Buffer)를 생성하는 것을 특징으로 하는 동적 작업 할당 장치.
  3. 제2 항에 있어서,
    상기 동적 성능 프로파일러는
    콘텍스트(context)를 생성하는 시점에 상기 가상 디바이스 객체를 생성하고,
    상기 서브 커널의 실행 시점에 상기 중간 버퍼를 생성하는 것을 특징으로 하는 동적 작업 할당 장치.
  4. 제1 항에 있어서,
    상기 실시간 에너지 프로파일러는
    상기 복수의 연산 처리 장치에 대하여 사전에 기록된 전력 소비 테이블을 참조하되,
    상기 전력 소비 테이블은
    상기 복수의 연산 처리 장치 각각에 대한 동작 주파수, 상기 동작 주파수와 매칭되는 최대 파워(Peak Power), 아이들 파워(Idle Power) 및 상기 최대 파워와 아이들 파워의 차이인 파워 범위(Power Range)를 포함하는 것을 특징으로 하는 동적 작업 할당 장치.
  5. 제4 항에 있어서,
    상기 실시간 에너지 프로파일러는
    상기 서브 커널을 실행하는데 소요되는 시간, 현재 사용률 및 상기 동작 주파수와 매칭되는 파워 범위에 기초하여 상기 스케줄링 비용을 계산하는 것을 특징으로 하는 동적 작업 할당 장치.
  6. 제5 항에 있어서,
    상기 스케줄링 비용은
    상기 서브 커널을 실행하는데 소요되는 시간, 현재 사용률 및 상기 동작 주파수와 매칭되는 파워 범위의 곱셈으로 계산되는 것을 특징으로 하는 동적 작업 할당 장치.
  7. 동적 작업 할당 장치가 이종 연산 처리 장치에 대한 동적 작업을 할당하는 방법에 있어서,
    (a) 복수의 연산 처리 장치가 테스트 데이터를 각각 처리하도록 하는 서브 커널을 생성하는 단계;
    (b) 상기 복수의 연산 처리 장치가 상기 서브 커널을 각각 실행하는데 소요되는 시간, 현재 사용률 및 동작 주파수를 획득하여 제공하는 단계;
    (c) 상기 서브 커널을 실행하는데 소요되는 시간, 현재 사용률 및 동작 주파수에 기초하여, 상기 복수의 연산 처리 장치에 대한 각각의 스케줄링 비용을 계산하는 단계; 및
    (d) 상기 계산된 스케줄링 비용에 기초하여 설정된 우선 순위에 따라서 상기 복수의 연산 처리 장치에 커널을 할당하는 단계
    를 포함하되,
    상기 테스트 데이터는 상기 서브 커널을 구동하기 위해 필요한 미리 정해진 단위 크기의 데이터인 것을 특징으로 하는 동적 작업 할당 방법.
  8. 제7 항에 있어서,
    상기 (a) 단계는
    상기 서브 커널을 구동하기 위해 상기 복수의 연산 처리 장치를 정의하기 위한 가상 디바이스(Virtual Device) 객체와, 상기 서브 커널을 구동하기 위한 테스트 데이터용 중간 버퍼(Hidden Buffer)를 생성하는 단계
    를 포함하는 것을 특징으로 하는 동적 작업 할당 방법.
  9. 제8 항에 있어서,
    상기 가상 디바이스 객체는 콘텍스트(context)를 생성하는 시점에 생성되고,
    상기 서브 커널의 실행 시점에 상기 중간 버퍼를 생성하는 것을 특징으로 하는 동적 작업 할당 방법.
  10. 제9 항에 있어서,
    상기 (c) 단계는
    상기 복수의 연산 처리 장치에 대하여 사전에 기록된 전력 소비 테이블을 참조하되,
    상기 전력 소비 테이블은
    상기 복수의 연산 처리 장치 각각에 대한 동작 주파수, 상기 동작 주파수와 매칭되는 최대 파워(Peak Power), 아이들 파워(Idle Power) 및 상기 최대 파워와 아이들 파워의 차이인 파워 범위(Power Range)를 포함하는 것을 특징으로 하는 동적 작업 할당 방법.
  11. 삭제
KR1020160051782A 2016-04-27 2016-04-27 이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치 KR101755154B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160051782A KR101755154B1 (ko) 2016-04-27 2016-04-27 이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160051782A KR101755154B1 (ko) 2016-04-27 2016-04-27 이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101755154B1 true KR101755154B1 (ko) 2017-07-19

Family

ID=59427527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160051782A KR101755154B1 (ko) 2016-04-27 2016-04-27 이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101755154B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101960609B1 (ko) * 2017-09-29 2019-07-15 건국대학교 산학협력단 Task Group 단위의 GPU 자원 관리 방법 및 장치
KR20210064044A (ko) * 2019-11-25 2021-06-02 울산과학기술원 모바일 단말기에서 인공 신경망 추론을 수행하기 위한 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101509938B1 (ko) * 2013-10-11 2015-04-08 고려대학교 산학협력단 태스크 스케줄링 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101509938B1 (ko) * 2013-10-11 2015-04-08 고려대학교 산학협력단 태스크 스케줄링 방법 및 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
안영호 외 1명. '모바일 멀티코어 시스템을 위한 동적 전력관리 프레임워크'. 전자공학회논문지 제47권 SD편 제7호, 2010.07, pp.52-60.
안영호 외 2명. '동적 전압 및 주파수 조정 기반 CPU 와 GPU 의 통합 전력관리 기법'. 한국통신학회 종합 학술 발표회 논문집(동계), 2015.01, pp.1073-1074.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101960609B1 (ko) * 2017-09-29 2019-07-15 건국대학교 산학협력단 Task Group 단위의 GPU 자원 관리 방법 및 장치
KR20210064044A (ko) * 2019-11-25 2021-06-02 울산과학기술원 모바일 단말기에서 인공 신경망 추론을 수행하기 위한 장치 및 방법
KR102422545B1 (ko) 2019-11-25 2022-07-20 울산과학기술원 모바일 단말기에서 인공 신경망 추론을 수행하기 위한 장치 및 방법

Similar Documents

Publication Publication Date Title
US8707314B2 (en) Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations
TWI479422B (zh) 電腦系統及其繪圖處理方法
US10191759B2 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
JP5782445B2 (ja) 物理コンピューティング・リソースの部分を論理パーティションに割り当てる方法
US8707300B2 (en) Workload interference estimation and performance optimization
US10621093B2 (en) Heterogeneous computing system configured to adaptively control cache coherency
US9009707B2 (en) Sharing reconfigurable computing devices between workloads
US9442696B1 (en) Interactive partitioning and mapping of an application across multiple heterogeneous computational devices from a co-simulation design environment
JP2012064206A (ja) 仮想グラフィックス処理ユニットの使用の最適化方法、装置及びプログラム
US9286199B2 (en) Modifying memory space allocation for inactive tasks
CN101551761A (zh) 一种异构多处理器中共享流内存的方法
TWI802800B (zh) 用以致能工作負載之靜態映射的亂序管線化執行之方法及設備
US9733982B2 (en) Information processing device and method for assigning task
RU2573733C1 (ru) Способ и устройство для регулировки канала i/о на виртуальной платформе
Cadambi et al. COSMIC: middleware for high performance and reliable multiprocessing on xeon phi coprocessors
CN111177984B (zh) 电子设计自动化中异构计算单元的资源利用
TW201716998A (zh) 系統單晶片中應用程式設定檔驅動之排程及組態
US9792209B2 (en) Method and apparatus for cache memory data processing
Cheng et al. Precise contention-aware performance prediction on virtualized multicore system
KR20100074920A (ko) 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
US20170286168A1 (en) Balancing thread groups
US10846138B2 (en) Allocating resources of a memory fabric
KR101755154B1 (ko) 이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치
US20150339145A1 (en) Virtual machine service system and virtual machine service providing method thereof
Massari et al. Extending a run-time resource management framework to support opencl and heterogeneous systems

Legal Events

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