WO2016195225A1 - Mobile device to which dvfs technique for gpgpu application is applied - Google Patents

Mobile device to which dvfs technique for gpgpu application is applied Download PDF

Info

Publication number
WO2016195225A1
WO2016195225A1 PCT/KR2016/003450 KR2016003450W WO2016195225A1 WO 2016195225 A1 WO2016195225 A1 WO 2016195225A1 KR 2016003450 W KR2016003450 W KR 2016003450W WO 2016195225 A1 WO2016195225 A1 WO 2016195225A1
Authority
WO
WIPO (PCT)
Prior art keywords
dynamic frequency
value
application
interval
gpgpu
Prior art date
Application number
PCT/KR2016/003450
Other languages
French (fr)
Korean (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 WO2016195225A1 publication Critical patent/WO2016195225A1/en

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

Abstract

A mobile device for a GPGPU application is provided. The mobile device enables: a graphic section for performing only a graphic operation and a GPGPU section for performing a graphic operation or a computing operation to be divided such that respective dynamic frequencies can be variably set, in an interval-based DVFS technique; a weighted value to be variably defined in a threshold value for changing a dynamic frequency value on the basis of a previous use thereof; an interval gap to be adaptively changed according to an application use time; and a multilevel dynamic frequency value to be preset so as to variably adjust a change in size of an increase or a decrease of the dynamic frequency value at once, thereby having results of high performance and energy consumption efficiency compared with a conventional DVFS technique.

Description

GPGPU 어플리케이션을 위한 DVFS 기법이 적용된 모바일 디바이스Mobile Devices with DVFS Techniques for GPGPU Applications
모바일 디바이스에 연관되며, 보다 구체적으로는 GPGPU 어플리케이션을 위한 DVFS 기법이 적용된 모바일 디바이스에 연관된다.It relates to mobile devices, and more specifically to mobile devices to which DVFS techniques for GPGPU applications are applied.
GPU (Graphics Processing Units)는 대용량의 그래픽 데이터를 고속으로 처리하기 위한 장치로서, 최근 고해상도의 디스플레이 장치가 개발되면서 하드웨어적으로 높은 사양의 GPU가 개발되었다. 이에 따라, 기존에 CPU가 전통적으로 취급했던 응용 프로그램들의 계산을 GPU가 처리할 수 있게 되었으며, 일반적인 컴퓨팅 작업을 수행하는 것을 GPGPU(General Purpose computation on Graphics Processing Unit)라 한다.GPU (Graphics Processing Units) is a device for processing a large amount of graphics data at high speed. With the development of high resolution display devices, GPUs with high hardware specifications have been developed. As a result, the GPU can handle calculations of applications that the CPU has traditionally handled, and performing general computing tasks is called a general purpose computation on graphics processing unit (GPGPU).
한편, 모바일 디바이스는 배터리 환경의 제한적인 특성 때문에 에너지 소비의 효율에 대한 근본적인 문제점을 가지고 있으므로 GPU가 내장된 모바일 디바이스에서 GPGPU 어플리케이션을 에너지 효율적으로 실행하기 위한 다양한 소프트웨어 기법들이 소개되고 있으며, DVFS(Dynamic Voltage and Frequency Scaling) 기법은 그 중 하나이다. 구체적으로 인터벌 기반 DVFS 기법은 각 인터벌마다 예상 사용량을 예측하고, 필요한 예측 사용량만큼 동적 주파수를 조절하는 기법이다. 그러나 실제 어플리케이션의 사용량을 정확하게 예측하는 것은 한계가 있어 그래픽 어플리케이션과는 다른 GPGPU 어플리케이션만의 특성을 반영하고 있지 못한 문제점이 있다.On the other hand, mobile devices have a fundamental problem with the efficiency of energy consumption due to the limited nature of the battery environment, so a variety of software techniques for energy-efficient GPGPU application execution on mobile devices with GPUs are introduced. Voltage and Frequency Scaling) is one of them. In detail, the interval-based DVFS technique predicts the expected usage amount at each interval and adjusts the dynamic frequency by the required prediction usage amount. However, there is a limitation in accurately predicting the usage of real applications, which does not reflect the characteristics of GPGPU applications different from graphic applications.
일측에 따르면, 하나 이상의 커널 프로그램 중 GPGPU 어플리케이션의 실행에 따라 동작되는 제1 커널 프로그램의 호출 여부를 판단하는 구간 판단부; 및 제1 시간 구간 동안 그래픽 어플리케이션이 실행되는 경우 제1 동적 주파수를 설정하고, GPGPU 어플리케이션이 실행되는 경우 제2 동적 주파수를 설정하는 주파수 설정부를 포함하는 모바일 디바이스가 제공된다.According to one side, the section determination unit for determining whether to call the first kernel program operating in accordance with the execution of the GPGPU application of one or more kernel programs; And a frequency setting unit configured to set a first dynamic frequency when the graphic application is executed during the first time interval, and set a second dynamic frequency when the GPGPU application is executed.
일실시예에서, 상기 커널 프로그램은 OpenCL 커널이고, 상기 제1 커널 프로그램은 clEnqueue를 접두어로 포함할 수 있다.In one embodiment, the kernel program is an OpenCL kernel, and the first kernel program may include a clEnqueue as a prefix.
일실시예에서, 상기 주파수 설정부는, 미리 설정된 최대 주파수 값으로 상기 제2 동적 주파수를 설정할 수 있고, 상기 최대 동적 주파수 값은 복수 개의 단계 값으로 미리 설정되며, 상기 실행된 GPGPU 어플리케이션의 과거 사용량에 기초하여 상기 복수 개의 단계 중 가장 근접한 값으로 제2 동적 주파수 값을 갱신할 수 있다. 상기 일실시예에서, 제1 시간 구간 동안 GPGPU 어플리케이션이 실행되는 시간에 따른 가중치가 반영된 문턱 값을 설정하여, 상기 문턱 값을 기준으로 제2 동적 주파수 값을 갱신할 수 있다.In an embodiment, the frequency setting unit may set the second dynamic frequency to a preset maximum frequency value, wherein the maximum dynamic frequency value is preset to a plurality of step values and is based on past usage of the executed GPGPU application. The second dynamic frequency value may be updated based on the nearest value among the plurality of steps. In one embodiment, the threshold value reflecting the weight of the GPGPU application during the first time interval is set to update the second dynamic frequency value based on the threshold value.
일실시예에서, 상기 주파수 설정부는, 상기 그래픽 어플리케이션의 과거 사용량을 기준으로 예측된 사용량에 따라 결정된 동적 주파수 값을 제1 동적 주파수 값으로 설정할 수 있다. 상기 일실시예에서, 상기 제1 시간 구간 동안 그래픽 어플리케이션이 실행되는 시간에 따른 가중치가 반영된 문턱 값을 설정하여, 상기 문턱 값을 기준으로 제1 동적 주파수 값을 갱신할 수 있다.In one embodiment, the frequency setting unit may set the dynamic frequency value determined according to the usage amount predicted based on the past usage amount of the graphic application as the first dynamic frequency value. In an example embodiment, a threshold value reflecting a weight based on a time at which a graphic application is executed during the first time interval may be set to update a first dynamic frequency value based on the threshold value.
일실시예에서, 과거 어플리케이션의 실행 시간에 기초하여 상기 제1 시간 구간의 간격을 갱신할 수 있으며, 상기 과거 어플리케이션의 실행 시간에 대한 표준 편차 값을 기준으로 상기 제1 시간 구간의 간격을 갱신할 수 있다.In an embodiment, the interval of the first time interval may be updated based on the execution time of the past application, and the interval of the first time interval may be updated based on a standard deviation value with respect to the execution time of the past application. Can be.
다른 일측에 따르면, 컴퓨터 판독 가능 기록매체에 저장되어, 컴퓨팅 장치가 동적 주파수 값에 따라 GPU가 동작되도록 하는 프로그램에 있어서, 하나 이상의 커널 프로그램 중 GPGPU 어플리케이션의 실행에 따라 동작되는 제1 커널 프로그램의 호출 여부를 판단하는 명령어 세트; 및 제1 시간 구간 동안 그래픽 어플리케이션이 실행되는 경우 제1 동적 주파수를 설정하고, GPGPU 어플리케이션이 실행되는 경우 제2 동적 주파수를 설정하는 명령어 세트를 포함하는 기록매체에 저장된 프로그램이 제공된다.According to another aspect, a program stored in a computer-readable recording medium, the computing device to cause the GPU to operate in accordance with the dynamic frequency value, the call of the first kernel program of the one or more kernel programs operated in accordance with the execution of the GPGPU application An instruction set for determining whether or not; And a command set for setting a first dynamic frequency when the graphic application is executed during the first time interval and for setting a second dynamic frequency when the GPGPU application is executed.
도 1은 일실시예에 따른 모바일 디바이스의 블록도이다.1 is a block diagram of a mobile device according to an embodiment.
도 2는 DVFS 이벤트 수에 대한 GPU 이용량과 동적 주파수 값을 나타낸 그래프이다.2 is a graph showing GPU utilization and dynamic frequency values for the number of DVFS events.
도 3은 일실시예에 따른 모바일 디바이스에서 동적 주파수를 설정하는 과정을 나타낸 흐름도이다.3 is a flowchart illustrating a process of setting a dynamic frequency in a mobile device according to an embodiment.
도 4는 일실시예에 따른 모바일 디바이스에서 제1 동적 주파수를 설정하는 과정을 나타낸 흐름도이다.4 is a flowchart illustrating a process of setting a first dynamic frequency in a mobile device according to an embodiment.
도 5는 다른 일실시예에 따라 DVFS 이벤트 기반 동적 주파수를 설정하는 알고리즘이다.5 is an algorithm for setting a DVFS event based dynamic frequency according to another embodiment.
도 6은 8개의 모바일 어플리케이션에 대하여 일실시예에 따른 동적 주파수 설정 방법을 실시한 에너지 효율 그래프이다.FIG. 6 is a graph illustrating energy efficiency according to an embodiment of a method for setting a dynamic frequency for eight mobile applications. Referring to FIG.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 권리범위가 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the present invention is not limited or limited by these embodiments. Like reference numerals in the drawings denote like elements.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적으로 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안되며, 실시예들을 설명하기 위한 예시적인 용어로 이해되어야 한다.The terminology used in the following description has been chosen to be generally universal in the art to which it relates, although other terms may exist depending on the development and / or change in technology, conventions, and preferences of those skilled in the art. Therefore, the terms used in the following description should not be understood as limiting the technical idea, but should be understood as exemplary terms for describing the embodiments.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.In addition, in certain cases, there is a term arbitrarily selected by the applicant, and in this case, the meaning thereof will be described in detail in the corresponding description. Therefore, the terms used in the following description should be understood based on the meanings of the terms and the contents throughout the specification, rather than simply the names of the terms.
도 1은 일실시예에 따른 모바일 디바이스의 블록도이다. 모바일 디바이스(100)는 구간 판단부(110) 및 주파수 설정부(120)를 포함하며, 구간 판단부(110)에 의해 그래픽 어플리케이션 실행 구간(이하, "그래픽 구간"이라 함)인지, GPGPU 어플리케이션 실행 구간(이하, "GPGPU 구간"이라 함)인지 판단할 수 있고, 상기 판단 결과에 따라 주파수 설정부(120)는 제1 동적 주파수 또는 제2 동적 주파수를 설정한다.1 is a block diagram of a mobile device according to an embodiment. The mobile device 100 includes a section determination unit 110 and a frequency setting unit 120, and whether the graphics application execution section (hereinafter referred to as "graphic section") by the section determination unit 110, GPGPU application execution It may be determined whether the interval (hereinafter referred to as "GPGPU interval"), and the frequency setting unit 120 sets the first dynamic frequency or the second dynamic frequency according to the determination result.
모바일 디바이스는 휴대할 수 있는 특성 때문에 배터리 환경이 제한적인 특징을 가진다. 따라서, 비교적 긴 시간 동안 배터리를 사용하기 위해서 모바일 디바이스는 최대 퍼포먼트를 내는 반면 에너지 소비를 줄여야 하는 근본적인 문제점을 가진다. 이러한 기술적 목적을 달성하기 위해 다양한 기술들이 있으며, 동적 전압 및 주파수 설정 방법(dynamic voltage and frequency scaling; DVFS)은 그 중 하나이다. 하기의 수학식 1은 에너지와 전압, 주파수 등의 상관관계를 나타내는 식이다.Mobile devices have a limited battery environment because of their portability. Thus, in order to use the battery for a relatively long time, the mobile device has a fundamental problem of reducing energy consumption while providing maximum performance. There are various techniques to achieve this technical purpose, and dynamic voltage and frequency scaling (DVFS) is one of them. Equation 1 below is an expression representing the correlation between energy, voltage, frequency and the like.
Figure PCTKR2016003450-appb-I000001
Figure PCTKR2016003450-appb-I000001
수학식 1에서, E 는 소비 에너지, P 는 소비 전력, c 는 모바일 디바이스 안의 CPU나 GPU에 따른 상수 값, F 는 동작 주파수, V 는 동작 주파수에 따라 요구되는 전압, t 는 F 와 V 값이 유지되는 동안의 시간 구간을 나타낸다.In Equation 1, E is energy consumption, P is power consumption, c is a constant value according to the CPU or GPU in the mobile device, F is the operating frequency, V is the required voltage according to the operating frequency, t is the value of F and V It represents the time interval while being maintained.
전압 V 는 주파수 F 값에 대하여 직접적으로 비례하는 것은 아니지만, 주파수 값이 높아질수록 요구되는 전압 값 역시 디바이스의 안정적인 동작을 위해서 높아지게 된다. 따라서, 주파수가 증가하면 소비되는 전력 및 에너지 역시 상당하게 증가하므로 소비되는 에너지를 최소화하기 위해서는 주파수를 효율적으로 조절하는 것이 필요하다는 것을 알 수 있다.The voltage V is not directly proportional to the frequency F value, but as the frequency value increases, the required voltage value also increases for stable device operation. Therefore, as the frequency is increased, the power and energy consumed are also significantly increased, so it can be seen that it is necessary to efficiently adjust the frequency in order to minimize the energy consumed.
인터벌 기반 DVFS 기법은 일정한 시간 구간을 인터벌로 정의하고, 각 인터벌마다 다음 인터벌에 대한 GPU 사용량을 예측하여 적절하게 동적 주파수 값을 설정한다.The interval-based DVFS technique defines a constant time interval as an interval, and sets the dynamic frequency value appropriately by predicting GPU usage for the next interval for each interval.
도 2는 DVFS 이벤트 수에 대한 GPU 이용량과 동적 주파수 값을 나타낸 그래프로서, 구체적으로 기존의 인터벌 기반 DVFS 기법에 따라 DVFS 이벤트 수에 대한 GPU 이용량 및 동적 주파수 값을 측정한 예시 그래프이다.FIG. 2 is a graph illustrating GPU usage and dynamic frequency values for DVFS event numbers, and specifically, an example graph of measuring GPU usage and dynamic frequency values for DVFS event numbers according to an existing interval-based DVFS technique.
그래프 측정 환경을 설명하면, 인터벌의 수 n 은 1이고, 인터벌 기반 DVFS 기법이 내장된 안드로이드 XU 3 기반에서 SmallptGPU 어플리케이션을 실행하는 동안 30 번의 DVFS 이벤트에 대하여 GPU 이용량 및 동적 주파수 값을 측정한 것이다. 도 2에 적용된 인터벌 기반 DVFS 기법은 아래 수학식 2와 같이 나타낼 수 있다.In the graph measurement environment, the number of intervals n is 1, and the GPU utilization and dynamic frequency values are measured for 30 DVFS events while running the SmallptGPU application on Android XU 3 based on the interval-based DVFS technique. . The interval-based DVFS technique applied to FIG. 2 may be represented by Equation 2 below.
Figure PCTKR2016003450-appb-I000002
Figure PCTKR2016003450-appb-I000002
수학식 2에서 Fi는 현재 동적 주파수 값을 나타내고, Ui는 다음 인터벌에 대한 예측 이용량을 나타낸다. 동적 주파수 설정을 위한 최소 문턱값 HD는 60으로 최대 문턱값 HU는 85로 설정하였다. 따라서, 도 2의 실험에서는 예측 이용량 Ui가 최소 문턱값 HD보다 작은 경우 현재 동적 주파수 값보다 하나 큰 값인 Fi k + 1으로 다음 동적 주파수 값 Fi +1 값을 설정한다. 예측 이용량 Ui가 최대 문턱값 HU보다 큰 경우 현재 동적 주파수 값보다 하나 작은 값인 Fi k - 1으로 다음 동적 주파수 값 Fi +1 값을 설정한다.In Equation 2, F i represents the current dynamic frequency value, and U i represents the predicted usage amount for the next interval. The minimum threshold H D is set to 60 and the maximum threshold H U is set to 85 for dynamic frequency setting. Therefore, in the experiment of FIG. 2, when the predicted usage amount U i is smaller than the minimum threshold value H D , the next dynamic frequency value F i +1 is set to F i k + 1 , which is one greater than the current dynamic frequency value. When the predicted usage amount U i is larger than the maximum threshold value H U , the next dynamic frequency value F i +1 is set to F i k 1 , which is one smaller than the current dynamic frequency value.
그 결과, 인터벌 마다 GPU 이용량을 측정한 결과 도 2와 같이 이용량은 일정한 값으로 유지되는 것이 아니라 실행되고 있는 어플리케이션에 따라 다양한 값을 가지며, 이용량이 증가 또는 감소를 반복하여 나타나고 있는 것을 알 수 있다. 이에 따라 인터벌 기반의 DVFS는 과거 사용량을 분석하여 다음 인터벌 구간에 대한 사용량을 예측하기 때문에 과거 사용량이 많은 경우 다음 인터벌 구간에서 동적 주파수 값을 증가시킬 수 있고, 반대로 과거 사용량이 작은 경우 다음 인터벌 구간에서 동적 주파수 값을 감소 시킬 수 있다. 그러므로 도 2에서는 실선으로 표시된 이용량 곡선에 대하여 시간적으로 후행하여 점선으로 표시된 동적 주파수 값이 따라 증가하거나 감소하는 것을 알 수 있으며, 시간차를 가지며 증가 또는 감소를 따라가기 때문에 요구되는 이용량에 적절하게 동적 주파수 값이 설정되었다고 보기 어렵다. 그리고, GPU 이용량은 최소 30% 사용량에서 최대 100% 사용량의 결과를 보여주고 있으나, 동적 주파수 값은 최소 30%에서 최대 50%까지만 값이 변화되는 것을 알 수 있다. 이것 역시 GPU 이용량에 적절하게 동적 주파수 값의 크기가 능동적으로 변화하지 못하고 있는 것을 알 수 있다.As a result, as a result of measuring the GPU usage for each interval, as shown in FIG. 2, the usage amount is not maintained at a constant value but has various values according to the running application, and the usage amount is repeatedly increased or decreased. have. Accordingly, interval-based DVFS analyzes past usage to predict usage for the next interval, so if the past usage is high, the dynamic frequency value can be increased in the next interval. The dynamic frequency value can be reduced. Therefore, in FIG. 2, it can be seen that the dynamic frequency value indicated by the dotted line increases or decreases in time with respect to the utilization curve indicated by the solid line. It is hard to say that a dynamic frequency value has been set. In addition, the GPU usage shows the result of the minimum 30% usage to the maximum 100% usage, but the dynamic frequency value can be seen that the value changes only from the minimum 30% to the maximum 50%. This also shows that the size of the dynamic frequency value does not change actively according to the GPU usage.
이와 같은 결과는, 기존의 인터벌 기반 DVFS 기법이 이용량 예측에 대하여 한계점을 갖고, 능동적으로 동적 주파수 값을 조절하지 못하고 있는 문제점을 나타낸다고 볼 수 있다. 그러므로 일실시예에 따른 모바일 디바이스(100)에서는 인터벌 기반 DVFS 기법을 적용하되, GPGPU 어플리케이션의 특성을 반영하기 위해 그래픽 구간(그래픽 어플리케이션 실행 구간)과 GPGPU 구간(GPGPU 어플리케이션 실행 구간)으로 구분하여 동적 주파수 설정을 달리하고, 능동적으로 동적 주파수 값을 설정할 수 있도록 할 수 있다.These results indicate that the existing interval-based DVFS technique has a limitation in utilization prediction and does not actively adjust the dynamic frequency value. Therefore, in the mobile device 100 according to an embodiment, the interval-based DVFS technique is applied, and the dynamic frequency is divided into a graphic section (graphic application execution section) and a GPGPU section (GPGPU application execution section) to reflect the characteristics of the GPGPU application. It is possible to change the setting and to actively set the dynamic frequency value.
다시 도 1로 돌아가서, 구간 판단부(110)는 하나 이상의 커널 프로그램 중 GPGPU 어플리케이션의 실행에 따라 동작되는 제1 커널 프로그램의 호출 여부를 판단할 수 있다. 모바일 디바이스에 적용된 운영체제 (예를 들어, 안드로이드 등) 에서는 OpenCL 등을 통하여 다수의 장치들을 활용할 수 있는데, OpenCL은 GPU, 디지털 처리기 등을 활용할 수 있는 플랫폼 독립적인 프로그래밍 프래임워크이다. 구체적으로 OpenCL의 플랫폼 모델과 프로그래밍 모델을 이용하여 GPU를 제어할 수 있다. GPGPU 구간은 OpenCL에서 clEnqueue- 을 접두사로 포함하는 함수가 호출될 때 실행되는 특징을 가진다. 예를 들어, clEnqueueNDRangeKernel, clEnqueueTask, clEnqueueNativeKernel 함수가 있다. 구간 판단부(110)는 OpenCL 커널 중 clEnqueue- 을 접두사로 포함하는 함수가 호출될 때 GPGPU 어플리케이션이 실행되었다고 판단할 수 있다. 반면에 구간 판단부(110)는 OpenCL 커널 중 clEnqueue- 을 접두사로 포함하는 함수가 종료되거나 처음부터 호출되지 않았을 때에는 그래픽 어플리케이션이 실행되었다고 판단할 수 있다.1, the interval determination unit 110 may determine whether the first kernel program operated according to the execution of the GPGPU application among the one or more kernel programs is called. Operating systems (eg, Android, etc.) applied to mobile devices can utilize multiple devices through OpenCL. OpenCL is a platform-independent programming framework that can utilize GPUs and digital processors. Specifically, the GPU can be controlled using the platform model and programming model of OpenCL. The GPGPU interval is characterized by being executed when a function is invoked with a prefix of clEnqueue- in OpenCL. For example, the clEnqueueNDRangeKernel, clEnqueueTask, and clEnqueueNativeKernel functions. The interval determination unit 110 may determine that the GPGPU application is executed when a function including clEnqueue- as a prefix of the OpenCL kernel is called. On the other hand, the interval determination unit 110 may determine that the graphic application is executed when the function including the prefix of clEnqueue- in the OpenCL kernel is terminated or is not called from the beginning.
일실시예에서 구간 판단부(110)에 의해 GPGPU 구간을 특정하는 것은, GPGPU 구간에서는 그래픽 작업뿐만 아니라, 일반적인 컴퓨팅 작업도 함께 실행되기 때문에 그래픽 작업만 수행하는 그래픽 구간과 달리 동적 주파수 설정을 다르게 해줄 필요가 있기 때문이다.In one embodiment, specifying the GPGPU section by the section determination unit 110, in addition to the graphic task in the GPGPU section, since general computing tasks are executed together, unlike the graphic section performing only the graphic task, the dynamic frequency setting may be different. Because there is a need.
주파수 설정부(120)은 제1 시간 구간 동안 그래픽 어플리케이션이 실행되는 경우 제1 동적 주파수를 설정하고, GPGPU 어플리케이션이 실행되는 경우 제2 동적 주파수를 설정할 수 있다. 제1 시간 구간이란, 인터벌 기반 DVFS 기법에서 각 인터벌을 지칭할 수 있다. 따라서 실시자에 의해 적절히 선택된 인터벌이 제1 시간 구간이 될 수 있다. 제1 동적 주파수와 제2 동적 주파수는 서로 다른 동적 주파수를 뜻하지만 경우에 따라서 동일한 값으로 설정될 수도 있다. 따라서 주파수 설정부(120)는 구간 판단부(110)의 판단 결과에 따라 각기 다른 값으로 동적 주파수를 적응적으로 설정할 수 있는 것이다.The frequency setting unit 120 may set a first dynamic frequency when the graphic application is executed during the first time interval, and set a second dynamic frequency when the GPGPU application is executed. The first time interval may refer to each interval in the interval based DVFS technique. Therefore, the interval appropriately selected by the operator may be the first time interval. The first dynamic frequency and the second dynamic frequency mean different dynamic frequencies, but may be set to the same value in some cases. Accordingly, the frequency setting unit 120 may adaptively set the dynamic frequency to different values according to the determination result of the section determination unit 110.
일실시예에서, 주파수 설정부(120)는 GPGPU 어플리케이션 실행구간에 대하여 미리 설정된 최대 동적 주파수 값으로 제2 동적 주파수를 설정할 수 있다. 구체적으로 호출된 커널 프로그램에 따라 해당 GPGPU 어플리케이션이 무엇인지 알 수 있으므로, 각 GPGPU 어플리케이션에 필요한 GPU 사용량에 기초하여 최대 동적 주파수 값을 테이블로 미리 설정하여 둘 수 있다. 이때 최대 값을 기준으로 동적 주파수 값을 설정하는 것은 그래픽 작업만 수행하는 그래픽 구간과 달리 GPGPU 구간은 컴퓨팅 작업을 포함하기 때문에 그래픽 작업만 수행하는 것보다 더 많은 전력 및 에너지가 필요하기 때문이다. 다만, 각 GPGPU 어플리케이션 마다 필요한 최대 동적 주파수 값이 달라질 수 있기 때문에 실시자는 해당 모바일 디바이스에서 실행될 수 있는 GPGPU 어플리케이션의 종류에 따라 최대 동적 주파수 값을 미리 설정하여 둘 수 있다.In one embodiment, the frequency setting unit 120 may set the second dynamic frequency to the maximum dynamic frequency value preset for the GPGPU application execution interval. Specifically, since the corresponding kernel program may know what the corresponding GPGPU application is, the maximum dynamic frequency value may be preset in a table based on the GPU usage required for each GPGPU application. In this case, the setting of the dynamic frequency value based on the maximum value is because, unlike the graphic section that performs only the graphic work, the GPGPU section includes computing work and thus requires more power and energy than performing the graphic work only. However, since the required maximum dynamic frequency value may vary for each GPGPU application, the implementer may preset the maximum dynamic frequency value according to the type of GPGPU application that may be executed in the mobile device.
일실시예에서, GPGPU 어플리케이션 실행구간에 대한 제2 동적 주파수 설정을 위한 최대 동적 주파수 값은 상수 값이 아닌 복수 개의 단계 값으로 정의될 수 있다. 특히, 현재 실행된 GPGPU 어플리케이션의 과거 사용량에 기초하여 복수 개의 단계 중 가장 근접한 값으로 제2 동적 주파수 값을 갱신할 수 있다. 예를 들어, 도 2의 경우 동적 주파수 값은 최소 30%에서 최대 50% 사이의 값으로만 설정될 수 있었으나 이와 달리 주파수 설정부(120)는 하기 표 1과 같이 복수 개의 단계 값으로 동적 주파수 값을 설정해 놓고 GPGPU 어플리케이션의 과거 사용량에 따라 가장 근접한 값을 선택하여 설정할 수 있다.In one embodiment, the maximum dynamic frequency value for the second dynamic frequency setting for the GPGPU application execution interval may be defined as a plurality of step values rather than a constant value. In particular, the second dynamic frequency value may be updated to the nearest value among the plurality of steps based on the past usage of the currently executed GPGPU application. For example, in FIG. 2, the dynamic frequency value may be set only between a minimum of 30% and a maximum of 50%. However, the frequency setting unit 120 may have a dynamic frequency value as a plurality of step values as shown in Table 1 below. You can set this to select the closest value based on past usage of the GPGPU application.
Figure PCTKR2016003450-appb-I000003
Figure PCTKR2016003450-appb-I000003
하기의 수학식 3은 멀티 레벨 주파수 설정을 수식으로 표현한 것이다. Equation 3 below represents a multi-level frequency setting by an equation.
Figure PCTKR2016003450-appb-I000004
Figure PCTKR2016003450-appb-I000004
수학식 3에서 Fi는 i 인터벌 구간에 대한 과거 동적 주파수 값이고, fj는 이용가능한 동적 주파수 값 중의 하나이다. 예측 사용량 Ui가 최대 문턱값 HU보다 큰 경우 이용 가능한 fj 중 가장 작은 값으로 다음 동적 주파수 값 Fi +1을 설정할 수 있다. 그리고 예측 사용량 Ui가 최소 문턱값 HD보다 작은 경우 이용 가능한 fj 중 가장 큰 값으로 다음 동적 주파수 값 Fi +1을 설정할 수 있다.In Equation 3, F i is a past dynamic frequency value for the i interval interval, f j is one of the available dynamic frequency values. When the predicted usage amount U i is larger than the maximum threshold value H U , the next dynamic frequency value F i +1 may be set as the smallest value of f j available. When the predicted usage U i is smaller than the minimum threshold H D , the next dynamic frequency value F i +1 may be set as the largest value of f j available.
문턱값과 관련하여, 일실시예에 따른 모바일 디바이스(100)는 각 실행구간에 따른 가중치가 반영된 문턱값을 이용할 수 있다.In relation to the threshold value, the mobile device 100 according to an embodiment may use a threshold value in which weights of respective execution sections are reflected.
주파수 설정부(120)는 제1 동적 주파수 값 또는 제2 동적 주파수 값을 설정할 수 있는데, 제1 시간 구간 동안 그래픽 어플리케이션이 실행되는 시간에 따른 가중치가 반영된 문턱값을 설정하고, 해당 문턱값을 기준으로 제1 동적 주파수 값을 갱신할 수 있다. 나아가, 제1 시간 구간 동안 GPGPU 어플리케이션이 실행되는 시간에 따른 가중치가 반영된 문턱값을 설정하고, 해당 문턱값을 기준으로 제2 동적 주파수 값을 갱신할 수 있다. 이와 같이 문턱값을 구분하여 정의하는 것은 하나의 문턱값(또는 최소 문턱값-최대 문턱값 세트)을 그래픽 작업만 수행하는 그래픽 어플리케이션 실행구간과 그래픽 작업과 함께 컴퓨터 작업도 수행하는 GPGPU 어플리케이션 실행구간에 모두 적용하는 것은 각 실행 구간의 특성을 적절히 반영할 수 없기 때문이다. 하기의 수학식 4는 각 인터벌 구간에 대하여 문턱값 H를 정상 구간과 GPGPU 구간으로 나누어 정의하는 것을 나타낸 수식이다.The frequency setting unit 120 may set a first dynamic frequency value or a second dynamic frequency value. The threshold setting unit 120 may set a threshold value reflecting a weight according to the time that the graphic application is executed during the first time interval, and based on the threshold value. It is possible to update the first dynamic frequency value with. In addition, a threshold value reflecting a weight based on a time when the GPGPU application is executed during the first time interval may be set, and the second dynamic frequency value may be updated based on the threshold value. These thresholds are defined in the graphics application execution section that executes only one graphics task (or minimum threshold-maximum threshold set), and in the GPGPU application execution section that also performs computer tasks. This is because the characteristics of each execution section cannot be properly reflected. Equation 4 below is a formula showing that the threshold value H is divided into a normal interval and a GPGPU interval for each interval interval.
Figure PCTKR2016003450-appb-I000005
Figure PCTKR2016003450-appb-I000005
수학식 4에서, H는 새로운 문턱값을 나타내고, Hg는 그래픽 어플리케이션 실행 구간인 그래픽 구간에 대한 문턱값, Hc는 GPGPU 어플리케이션 실행구간에 대한 문턱값이다. Ti는 i번째 인터벌 구간의 시간 간격을 나타내고, gi는 그래픽 작업을 수행하는 시간 간격, ci는 컴퓨팅 작업을 수행하는 시간 간격을 나타낸다.In Equation 4, H represents a new threshold value, H g is a threshold value for the graphics section, which is a graphics application execution section, and H c is a threshold value for the GPGPU application execution section. T i represents a time interval of the i-th interval interval, g i represents a time interval for performing a graphics task, c i represents a time interval for performing a computing task.
그래픽 작업이 수행되는 시간에 따라 정상 구간에 대한 문턱값에 가중치를 부여하고, 컴퓨팅 작업이 수행되는 시간에 따라 GPGPU 구간에 대한 문턱값에 가중치를 부여함으로써 각 인터벌 마다 다른 가중치 값을 정의하여 사용할 수 있다.By weighting the threshold value for the normal interval according to the time when the graphic operation is performed, and by weighting the threshold value for the GPGPU interval according to the time during which the computing operation is performed, a different weight value can be defined and used for each interval. have.
일실시예에서, DVFS는 동일한 시간 간격을 정의하여 인터벌로 사용할 수 있고, 이와 달리 인터벌 간격을 사용 패턴에 따라 적응적으로 조절하여 달리 정의할 수 있다. 구체적으로, 주파수 설정부(120)는 과거 어플리케이션의 실행 시간에 기초하여 제1 시간 구간 즉, 인터벌의 간격을 갱신할 수 있다. 동일한 어플리케이션이 실행되는 동안이라면 동적 주파수 값이 동일하게 설정될 확률이 높기 때문이다. 반면에 하나의 인터벌 내에 두 개 이상의 어플리케이션이 실행되는 경우 동적 주파수 설정이 한번만 수행되기 때문에 적절하게 어플리케이션에 필요한 주파수 값을 설정할 수 없게 되기 때문이다.In one embodiment, the DVFS may define the same time interval and use the interval. Alternatively, the DVFS may be defined differently by adaptively adjusting the interval interval according to the usage pattern. In detail, the frequency setting unit 120 may update the first time interval, that is, the interval of the interval, based on the execution time of the past application. If the same application is running, there is a high probability that the dynamic frequency values will be set equal. On the other hand, when two or more applications are executed within one interval, the dynamic frequency setting is performed only once, and thus the frequency value required for the application cannot be set properly.
상기 실시예에서, 과거 어플리케이션의 실행 시간에 대한 표준 편차 값을 이용하여 인터벌 간격을 갱신할 수 있다. 이를 수식으로 나타낸 것이 하기의 수학식 5이다.In the above embodiment, the interval may be updated using a standard deviation value with respect to the execution time of the past application. This is represented by the following equation (5).
Figure PCTKR2016003450-appb-I000006
Figure PCTKR2016003450-appb-I000006
수학식 5에서 Ti는 i번 째 인터벌 시간 구간을 나타내고, T는 디폴트 값으로 설정된 인터벌 시간 구간, σ는 매 DVFS 이벤트에 대한 표준 편차를 계산한 값이고, k는 상수 값이다.In Equation 5, T i denotes the i-th interval time interval, T denotes an interval time interval set as a default value, σ is a value for calculating a standard deviation for every DVFS event, and k is a constant value.
도 3은 일실시예에 따른 모바일 디바이스에서 동적 주파수를 설정하는 과정을 나타낸 흐름도이다. 각 인터벌 구간마다 도 2의 동적 주파수 설정 과정이 반복되어 실시될 수 있다. 특정 인터벌이 시작되면, 구간 판단부(110)에 의해 제1 커널 프로그램이 호출되었는지 판단할 수 있다(301단계). 제1 커널 프로그램이 호출된 경우(301단계-예) 주파수 설정부(120)는 GPGPU 어플리케이션이 실행된 것으로 보고, 제2 동적 주파수 값을 다음 인터벌에 대한 동적 주파수 값으로 설정할 수 있다(302단계). 반대로 제1 커널 프로그램이 호출되지 않은 경우(301단계 -아니오) 주파수 설정부(120)는 그래픽 어플리케이션이 실행된 것으로 보고, 제1 동적 주파수 값을 다음 인터벌에 대한 동적 주파수 값으로 설정할 수 있다(303단계).3 is a flowchart illustrating a process of setting a dynamic frequency in a mobile device according to an embodiment. The dynamic frequency setting process of FIG. 2 may be repeated for each interval section. When the specific interval starts, the interval determination unit 110 may determine whether the first kernel program is called (step 301). When the first kernel program is called (step 301-example), the frequency setting unit 120 may determine that the GPGPU application is executed, and set the second dynamic frequency value as the dynamic frequency value for the next interval (step 302). . On the contrary, when the first kernel program is not called (step 301-no), the frequency setting unit 120 may determine that the graphic application is executed and set the first dynamic frequency value as the dynamic frequency value for the next interval (303). step).
도 4는 일실시예에 따른 모바일 디바이스에서 제1 동적 주파수를 설정하는 과정을 나타낸 흐름도이다. 일실시예에 따라, 주파수 설정부(120)는 그래픽 어플리케이션의 과거 사용량을 기준으로 예측된 사용량에 따라 결정된 동적 주파수 값을 이용하여 제1 동적 주파수 값을 설정할 수 있다. 이때 제1 동적 주파수를 적응적으로 조정하기 위해 두 개의 문턱값을 이용하여 예측 사용량을 판단할 수 있다. 최대 문턱값보다 예측 사용량이 더 큰 경우 현재 설정된 동적 주파수 값을 증가시킬 수 있고, 반대로 최소 문턱값보다 예측 사용량이 더 작은 경우 현재 설정된 동적 주파수 값을 감소 시킬 수 있다. 그리고, 예측 사용량이 최소 문턱값 이상이고, 최대 문턱값 이하인 경우 현재의 동적 주파수 값을 그대로 유지할 수 있다.4 is a flowchart illustrating a process of setting a first dynamic frequency in a mobile device according to an embodiment. According to an embodiment, the frequency setting unit 120 may set the first dynamic frequency value by using the dynamic frequency value determined according to the usage amount predicted based on the past usage amount of the graphic application. In this case, in order to adaptively adjust the first dynamic frequency, the predicted usage amount may be determined using two threshold values. If the predicted usage is larger than the maximum threshold, the currently set dynamic frequency value may be increased. On the contrary, if the predicted usage is smaller than the minimum threshold, the currently set dynamic frequency value may be decreased. If the predicted usage amount is greater than or equal to the minimum threshold and less than or equal to the maximum threshold, the current dynamic frequency value may be maintained as it is.
도 4를 참조하면, 구간 판단부(110)에 의해 그래픽 어플리케이션 실행구간으로 판단된 경우, 주파수 설정부(120)는 제1 동적 주파수 값을 설정하기 위해 도 4의 과정을 수행할 수 있다. 다음 시간구간 즉, 다음 인터벌에 대한 GPU 사용량을 예측할 수 있다(401단계). 예측의 근거로 과거 GPU 사용량을 이용할 수 있으며, 보다 구체적으로는 현재 실행된 그래픽 어플리케이션의 종류에 대한 과거 GPU 사용량을 참고하여 예측 사용량을 결정할 수 있다. 사용량이 예측되면, 예측 사용량과 최대 문턱값을 비교하여(402단계) 예측 사용량이 최대 문턱값보다 큰 경우(402단계-예) 다음 인터벌에 고 주파수가 요구되는 상황으로 현재 설정된 동적 주파수 값을 증가시킬 수 있다(403단계). 반면에 예측 사용량이 최대 문턱값보다 작거나 같은 경우(402단계-아니오) 예측 사용량이 최소 문턱값을 비교한다(404단계). 예측 사용량이 최소 문턱값보다 작은 경우(404단계-예) 다음 인터벌에 저 주파수만으로 그래픽 작업이 충분히 수행될 수 있는 상황으로 현재 설정된 동적 주파수 값을 감소시킬 수 있다(405단계. 그리고, 다음으로 예측 사용량이 최소 문턱값보다 크거나 작은 경우(404단계-아니오) 현재 GPU 이용량과 예측 사용량이 비슷한 경우의 상황으로 현재 동적 주파수 값을 유지할 수 있다.Referring to FIG. 4, when it is determined that the graphic application is executed by the interval determination unit 110, the frequency setting unit 120 may perform the process of FIG. 4 to set the first dynamic frequency value. In operation 401, the GPU usage may be predicted for the next time interval, that is, the next interval. Historical GPU usage may be used as a basis for prediction, and more specifically, prediction usage may be determined by referring to the past GPU usage of the type of graphics application currently executed. When the usage is predicted, the predicted usage is compared with the maximum threshold (step 402), and when the predicted usage is greater than the maximum threshold (step 402-yes), the currently set dynamic frequency value is increased in a situation where a high frequency is required for the next interval. In operation 403, On the other hand, if the predicted usage is less than or equal to the maximum threshold (step 402-no), the predicted usage is compared with the minimum threshold (step 404). When the predicted usage amount is smaller than the minimum threshold (step 404-example), the currently set dynamic frequency value can be decreased in a situation where the graphic work can be sufficiently performed at a low frequency in the next interval (step 405. Then, the prediction is next). If the usage is greater or less than the minimum threshold (step 404-no), the current dynamic frequency value can be maintained in a situation where the current GPU usage and the predicted usage are similar.
도 5는 다른 일실시예에 따라 DVFS 이벤트 기반 동적 주파수를 설정하는 알고리즘이다. 다른 일실시예에 따른 인터벌 기반 DVFS는 소프트웨어만을 변경하여 에너지 소비를 개선할 수 있으므로 컴퓨터 프로그램 형태의 실시가 가능하다. 도 5는 다른 일실시예에 대한 알고리즘을 나타낸 것으로, 컴퓨터 프로그램의 함수로 구현할 수 있다. 먼저, 함수 HANDLE_DVFS_EVENT는 컴퓨팅 작업이 실행되는 경우(GPGPU 어플리케이션의 실행구간 - 일실시예에서 설명한 구간 판단부에 의해 판단될 수 있음)에 대하여 가중치가 부여된 문턱값을 설정하고(3-4 lines), 과거 사용에 따라 인터벌 간격을 적응적으로 조절하고(6-8 lines), 동적 주파수 값을 능동적으로 조절하기 위해 미리 정의된 멀티 레벨의 동적 주파수 값으로 동적 주파수 값을 설정하는 과정(10-33 lines)을 포함한다. 도 5의 알고리즘은 다른 일실시예에 포함되는 구성들을 개괄적으로 표현한 것으로, 실제 컴퓨터 프로그래밍 방식에 따라 다른 방식으로 구체화될 수 있다.5 is an algorithm for setting a DVFS event based dynamic frequency according to another embodiment. In another embodiment, the interval-based DVFS can be implemented in the form of a computer program since only the software can be modified to improve energy consumption. 5 shows an algorithm for another embodiment, which may be implemented as a function of a computer program. First, the function HANDLE_DVFS_EVENT sets a weighted threshold for the case where the computing task is executed (the execution interval of the GPGPU application-which can be determined by the interval determination unit described in one embodiment) (3-4 lines). The process of adaptively adjusting interval intervals according to past use (6-8 lines) and setting dynamic frequency values to predefined multi-level dynamic frequency values to actively adjust dynamic frequency values (10-33). lines). The algorithm of FIG. 5 is an overview of components included in another embodiment, and may be embodied in other ways according to actual computer programming.
도 6은 8개의 모바일 어플리케이션에 대하여 일실시예에 따른 동적 주파수 설정 방법을 실시한 에너지 효율 그래프이다. 상술한 실시예들에서 DVFS 기법을 다양한 방법으로 개선시킨 각 구성 및 이들의 조합에 대하여 에너지 소비의 효율이 얼마나 개선되는지 실험한 예이다. 먼저, 아래 표 2에서는 기존 DVFS 기법의 성능 및 에너지 효율을 1로 보았을 때의 상술한 실시예들의 각 구성(또는 특징)의 성능 및 에너지 효율의 결과를 나타낸 것이다.FIG. 6 is a graph illustrating energy efficiency according to an embodiment of a method for setting a dynamic frequency for eight mobile applications. Referring to FIG. In the above embodiments, it is an example of how the efficiency of energy consumption is improved for each configuration and combinations thereof in which the DVFS technique is improved in various ways. First, Table 2 below shows the results of the performance and energy efficiency of each component (or feature) of the above-described embodiments when the performance and energy efficiency of the existing DVFS technique are regarded as 1.
Figure PCTKR2016003450-appb-I000007
Figure PCTKR2016003450-appb-I000007
DPI는 일실시예에서, 구간 판단부에 의해 그래픽 어플리케이션이 실행되는 그래픽 구간과 GPGPU 어플리케이션이 실행되는 GPGPU 구간으로 구분하여 동적 주파수 설정을 달리하는 구성을 적용한 DVFS 기법에 대한 성능을 나타낸다. 다음으로 WT는 하나의 문턱값을 사용하는 DVFS 기법을 개선하여 과거 사용에 따라 그래픽 작업을 수행하는 시간 또는 컴퓨팅 작업을 수행하는 시간에 따른 가중치를 반영한 문턱값을 사용하는 구성을 적용한 DVFS 기법에 대한 성능을 나타낸다. AIA는 동일한 간격을 인터벌로 사용하는 DVFS 기법을 개선하여 일실시예에서, 과거 사용에 따라 표준 편차 값을 기초로 적응적으로 인터벌 구간의 시간 간격을 갱신하는 구성을 적용한 DVFS 기법에 대한 성능을 나타낸다. MFA는 도 2와 같이 하나의 문턱값 세트를 이용하여 동적 주파수를 변경하는 기존의 DVFS 기법을 개선하여 멀티 레벨의 동적 주파수 값을 정의하여 능동적으로 동적 주파수 값을 변경하는 구성을 적용한 DVFS 기법에 대한 성능을 나타낸다. GPGPU-Perf는 도 5에서 설명한 다른 일실시예에 따른 알고리즘 즉, DPI, WT, AIA, MFA 구성을 모두 적용한 DVFS 기법에 대한 성능을 나타낸다.In one embodiment, the DPI indicates the performance of the DVFS technique using a configuration in which a dynamic frequency setting is divided by dividing the graphics section into a graphics section in which the graphics application is executed and the GPGPU section in which the GPGPU application is executed. Next, WT improves on the DVFS technique with a single threshold, which is based on the DVFS technique with a configuration that uses a threshold that reflects the weight of the graphics operation or the computing time according to the past use. Performance. The AIA improves the DVFS technique using the same interval as the interval, and in one embodiment, represents the performance of the DVFS technique with the configuration that updates the time interval of the interval interval adaptively based on the standard deviation value according to the past use. . As shown in FIG. 2, MFA improves on the existing DVFS technique that changes a dynamic frequency using a single set of thresholds, and defines a multi-level dynamic frequency value to actively change the dynamic frequency value. Performance. GPGPU-Perf shows the performance of the DVFS technique to which the algorithm, that is, DPI, WT, AIA, and MFA configuration are applied, according to another embodiment described with reference to FIG. 5.
표 2의 결과를 보면, 실시예들에서 상술한 각 구성에 따라 성능이 향상되거나 에너지 효율이 높아지는 것을 알 수 있다. 특히, GPGPU-Pref의 경우 2배의 성능 향상이 있었으나 에너지 소비는 151% 만큼 증가시킨 결과를 얻을 수 있었다. 표 2의 결과를 보다 자세히 도시한 것이 도 6으로써, 모바일 디바이스에서 대표적으로 사용되는 SmallptGPU, myocyte, bfs, cfd, gaussian_elim, lud, nw, pathfinder의 8개의 모바일 어플리케이션에 대하여 표 2의 각 항들을 적용한 성능 및 에너지 소비 효율 향상을 나타낸 막대 그래프이다. 기존의 DVFS 기법의 성능 및 에너지 소비 효율의 값을 1로 기준할 때 도 6에서는 각 모바일 어플리케이션의 성능 및 에너지 소비 효율이 대체적으로 1보다 높은 값을 가지고 있음을 알 수 있다. 모바일 어플리케이션마다 편차가 있지만, 전체적으로 1(도 6에서 가로로 굵게 표시된 선)보다 높은 값을 가지고 있음으로써 모바일 디바이스에서 상술한 실시예들의 효과를 확인할 수 있다.Looking at the results of Table 2, it can be seen that the performance is improved or the energy efficiency is increased according to each configuration described above in the embodiments. In particular, the GPGPU-Pref showed a 2x performance improvement, but the energy consumption was increased by 151%. Figure 6 shows the results of Table 2 in more detail, applying the terms of Table 2 to the eight mobile applications of SmallptGPU, myocyte, bfs, cfd, gaussian_elim, lud, nw, and pathfinder that are typically used in mobile devices. Bar graph showing performance and energy consumption efficiency improvements. When the value of the performance and energy consumption efficiency of the conventional DVFS scheme is based on 1, it can be seen from FIG. 6 that the performance and energy consumption efficiency of each mobile application are generally higher than 1. Although there is a variation in each mobile application, it is possible to confirm the effect of the above-described embodiments in the mobile device by having a value higher than 1 (line bold horizontally in FIG. 6) as a whole.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs). Can be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of explanation, one processing device may be described as being used, but one of ordinary skill in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
  이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.

Claims (15)

  1. 하나 이상의 커널 프로그램 중 GPGPU 어플리케이션의 실행에 따라 동작되는 제1 커널 프로그램의 호출 여부를 판단하는 구간 판단부; 및An interval determination unit determining whether a first kernel program, which is operated according to the execution of the GPGPU application, from among one or more kernel programs; And
    제1 시간 구간 동안 그래픽 어플리케이션이 실행되는 경우 제1 동적 주파수를 설정하고, GPGPU 어플리케이션이 실행되는 경우 제2 동적 주파수를 설정하는 주파수 설정부;A frequency setting unit configured to set a first dynamic frequency when the graphic application is executed during the first time interval and set a second dynamic frequency when the GPGPU application is executed;
    를 포함하는 모바일 디바이스.Mobile device comprising a.
  2. 제1항에 있어서,The method of claim 1,
    상기 커널 프로그램은 OpenCL 커널이고, 상기 제1 커널 프로그램은 clEnqueue를 접두어로 포함하는 것인 모바일 디바이스.And the kernel program is an OpenCL kernel and the first kernel program includes a clEnqueue as a prefix.
  3. 제1항에 있어서,The method of claim 1,
    상기 주파수 설정부는,The frequency setting unit,
    미리 설정된 최대 주파수 값으로 상기 제2 동적 주파수를 설정하는 것을 특징으로 하는 모바일 디바이스.And setting the second dynamic frequency to a preset maximum frequency value.
  4. 제3항에 있어서,The method of claim 3,
    상기 최대 동적 주파수 값은 복수 개의 단계 값으로 미리 설정되며, 상기 실행된 GPGPU 어플리케이션의 과거 사용량에 기초하여 상기 복수 개의 단계 중 가장 근접한 값으로 제2 동적 주파수 값을 갱신하는 것을 특징으로 하는 모바일 디바이스.And wherein the maximum dynamic frequency value is preset to a plurality of step values, and updates a second dynamic frequency value to the closest of the plurality of steps based on past usage of the executed GPGPU application.
  5. 제3항에 있어서,The method of claim 3,
    상기 제1 시간 구간 동안 GPGPU 어플리케이션이 실행되는 시간에 따른 가중치가 반영된 문턱 값을 설정하여, 상기 문턱 값을 기준으로 제2 동적 주파수 값을 갱신하는 것을 특징으로 하는 모바일 디바이스.And setting a threshold value reflecting a weight value corresponding to a time when a GPGPU application is executed during the first time interval, and updating a second dynamic frequency value based on the threshold value.
  6. 제1항에 있어서,The method of claim 1,
    상기 주파수 설정부는,The frequency setting unit,
    상기 그래픽 어플리케이션의 과거 사용량을 기준으로 예측된 사용량에 따라 결정된 동적 주파수 값을 제1 동적 주파수 값으로 설정하는 모바일 디바이스.And setting the dynamic frequency value determined as the first dynamic frequency value according to the predicted usage amount based on the past usage amount of the graphic application.
  7. 제6항에 있어서,The method of claim 6,
    상기 제1 시간 구간 동안 그래픽 어플리케이션이 실행되는 시간에 따른 가중치가 반영된 문턱 값을 설정하여, 상기 문턱 값을 기준으로 제1 동적 주파수 값을 갱신하는 것을 특징으로 하는 모바일 디바이스.And setting a threshold value reflecting a weight value corresponding to a time at which a graphic application is executed during the first time interval, and updating a first dynamic frequency value based on the threshold value.
  8. 제1항에 있어서,The method of claim 1,
    과거 어플리케이션의 실행 시간에 기초하여 상기 제1 시간 구간의 간격을 갱신하는 것을 특징으로 하는 모바일 디바이스.And updating the interval of the first time interval based on the execution time of the past application.
  9. 제7항에 있어서,The method of claim 7, wherein
    상기 과거 어플리케이션의 실행 시간에 대한 표준 편차 값을 기준으로 상기 제1 시간 구간의 간격을 갱신하는 것을 특징으로 하는 모바일 디바이스.And updating the interval of the first time interval based on a standard deviation value with respect to the execution time of the past application.
  10. 컴퓨터 판독 가능 기록매체에 저장되어, 컴퓨팅 장치가 동적 주파수 값에 따라 GPU가 동작되도록 하는 프로그램에 있어서,A program stored in a computer readable recording medium for causing a computing device to operate a GPU in accordance with a dynamic frequency value,
    하나 이상의 커널 프로그램 중 GPGPU 어플리케이션의 실행에 따라 동작되는 제1 커널 프로그램의 호출 여부를 판단하는 명령어 세트; 및An instruction set for determining whether to call a first kernel program operated according to execution of a GPGPU application among one or more kernel programs; And
    제1 시간 구간 동안 그래픽 어플리케이션이 실행되는 경우 제1 동적 주파수를 설정하고, GPGPU 어플리케이션이 실행되는 경우 제2 동적 주파수를 설정하는 명령어 세트Instruction set to set the first dynamic frequency when the graphics application is executed during the first time interval and the second dynamic frequency when the GPGPU application is executed
    를 포함하는 기록매체에 저장된 프로그램.Program stored in the recording medium comprising a.
  11. 제10항에 있어서,The method of claim 10,
    상기 커널 프로그램은 OpenCL 커널이고, 상기 제1 커널 프로그램은 clEnqueue를 접두어로 포함하는 것인 기록매체에 저장된 프로그램.Wherein the kernel program is an OpenCL kernel and the first kernel program includes a clEnqueue as a prefix.
  12. 제10항에 있어서,The method of claim 10,
    상기 제1 동적 주파수 또는 상기 제2 동적 주파수를 설정하는 명령어 세트는,The instruction set for setting the first dynamic frequency or the second dynamic frequency may include:
    상기 그래픽 어플리케이션의 과거 사용량을 기준으로 예측된 사용량에 따라 결정된 동적 주파수 값을 제1 동적 주파수 값으로 설정하거나, 미리 설정된 최대 주파수 값으로 상기 제2 동적 주파수를 설정하는 기록매체에 저장된 프로그램.And a dynamic frequency value determined according to the predicted usage amount based on past usage of the graphic application as a first dynamic frequency value or setting the second dynamic frequency to a preset maximum frequency value.
  13. 제12항에 있어서,The method of claim 12,
    상기 최대 동적 주파수 값은 복수 개의 단계 값으로 미리 설정되며, 상기 실행된 GPGPU 어플리케이션의 과거 사용량에 기초하여 상기 복수 개의 단계 중 가장 근접한 값으로 제2 동적 주파수 값을 갱신하는 기록매체에 저장된 프로그램.The maximum dynamic frequency value is preset in a plurality of step values, and stored in the recording medium to update the second dynamic frequency value to the nearest value of the plurality of steps based on the past usage of the executed GPGPU application.
  14. 제10항에 있어서,The method of claim 10,
    상기 제1 시간 구간 동안 그래픽 어플리케이션이 실행되는 시간 및 GPGPU 어플리케이션이 실행되는 시간에 따른 가중치가 반영된 두 개의 문턱 값을 설정하고, 각각의 문턱 값을 기준으로 제1 동적 주파수 또는 제2 동적 주파수 값을 갱신하는 기록매체에 저장된 프로그램.During the first time interval, two threshold values reflecting weights according to the time when the graphic application is executed and the time when the GPGPU application is executed are set, and the first dynamic frequency or the second dynamic frequency value is set based on the respective threshold values. The program stored in the recording medium to be updated.
  15. 제10항에 있어서,The method of claim 10,
    과거 어플리케이션의 실행 시간에 대한 표준 편차 값을 기준으로 상기 제1 시간 구간의 간격을 갱신하는 기록매체에 저장된 프로그램.The program stored in the recording medium for updating the interval of the first time interval based on the standard deviation value of the execution time of the past application.
PCT/KR2016/003450 2015-05-29 2016-04-04 Mobile device to which dvfs technique for gpgpu application is applied WO2016195225A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2015-0076329 2015-05-29
KR20150076329 2015-05-29

Publications (1)

Publication Number Publication Date
WO2016195225A1 true WO2016195225A1 (en) 2016-12-08

Family

ID=57440624

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/003450 WO2016195225A1 (en) 2015-05-29 2016-04-04 Mobile device to which dvfs technique for gpgpu application is applied

Country Status (1)

Country Link
WO (1) WO2016195225A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110308784A (en) * 2019-04-30 2019-10-08 东莞恒创智能科技有限公司 CPU, GPU based on Nvidia TX2 combine frequency modulation energy-saving optimization method
US11442522B2 (en) 2019-08-21 2022-09-13 Samsung Electronics Co., Ltd. Method of controlling performance boosting of semiconductor device based on at least user input and feedback from previous boosting policies and semiconductor device performing the method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101183845B1 (en) * 2007-10-11 2012-09-18 퀄컴 인코포레이티드 Demand-based power control in a graphics processing unit
KR20140088691A (en) * 2013-01-03 2014-07-11 삼성전자주식회사 System on chip performing dynamic voltage and frequency scaling policies and method using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101183845B1 (en) * 2007-10-11 2012-09-18 퀄컴 인코포레이티드 Demand-based power control in a graphics processing unit
KR20140088691A (en) * 2013-01-03 2014-07-11 삼성전자주식회사 System on chip performing dynamic voltage and frequency scaling policies and method using the same

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KIM, YOUNG J. ET AL., GPGPU-PERF: EFFICIENT, INTERVAL-BASED DVFS ALGORITHM FOR MOBILE GPGPU APPLICATIONS''., vol. 31, no. 6-8, 30 April 2015 (2015-04-30), Berlin Heidelberg, pages 1045 - 1054, XP055334953 *
LEE, YEON HEE ET AL.: "Parallel Intersection Detection Algorithm using CUDA''.", THE HCI SOCIETY OF KOREA , HCI KOREA CONFERENCE, 2008, pages 451 - 455 *
YI, SAEHANSEUL ET AL.: "Fast and Energy-efficient Local Binary Pattern based Face Recognition using OpenCL on Embedded CPUs''.", JOURNAL OF KOREAN INSTITUTE OF INFORMATION SCIENTISTS AND ENGINEERS: COMPUTER SYSTEMS AND THEORY, vol. 40, no. 6, December 2013 (2013-12-01), pages 257 - 265 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110308784A (en) * 2019-04-30 2019-10-08 东莞恒创智能科技有限公司 CPU, GPU based on Nvidia TX2 combine frequency modulation energy-saving optimization method
US11442522B2 (en) 2019-08-21 2022-09-13 Samsung Electronics Co., Ltd. Method of controlling performance boosting of semiconductor device based on at least user input and feedback from previous boosting policies and semiconductor device performing the method

Similar Documents

Publication Publication Date Title
JP6898496B2 (en) Computation graph processing
US9965309B2 (en) Virtual machine placement
US9477532B1 (en) Graph-data partitioning for workload-balanced distributed computation with cost estimation functions
US10908965B2 (en) Method, apparatus, and computer program product for processing computing task
US20190146842A1 (en) Method and Apparatus for Allocating Computing Resources of Processor
Kang et al. Lalarand: Flexible layer-by-layer cpu/gpu scheduling for real-time dnn tasks
WO2013025081A1 (en) Terminal and method for executing application in same
US20090300399A1 (en) Profiling power consumption of a plurality of compute nodes while processing an application
CN110941325B (en) Frequency modulation method and device of processor and computing equipment
RU2573733C1 (en) Method and apparatus for adjusting i/o channel on virtual platform
EP2798570A1 (en) Multi-level cpu high current protection
US9471387B2 (en) Scheduling in job execution
KR20100074920A (en) Apparatus and method for load balancing in multi-core system
US9542295B2 (en) Method to apply perturbation for resource bottleneck detection and capacity planning
WO2016195225A1 (en) Mobile device to which dvfs technique for gpgpu application is applied
CN105242954A (en) Mapping method between virtual CPUs (Central Processing Unit) and physical CPUs, and electronic equipment
KR20130080663A (en) Method and apparatus for graphic processing using multi-threading
CN111859775A (en) Software and hardware co-design for accelerating deep learning inference
CN103262039A (en) Methods and systems for synchronous operation of a processing device
JP2011141703A (en) System, method and program for arranging resource
Biswas et al. Portable parallel programming for the dynamic load balancing of unstructured grid applications
CN112000611A (en) Graph data dividing method, graph data processing method and electronic equipment
Hu et al. An improved heterogeneous dynamic list schedule algorithm
Huang et al. Performance optimization of High-Performance LINPACK based on GPU-centric model on heterogeneous systems
KR102020726B1 (en) Apparatus and method for optimizing checkpoint interval

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16803580

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16803580

Country of ref document: EP

Kind code of ref document: A1