# US 2017/0255877 A1 · Heterogeneous computing method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0255877 A1
- Document ID: US20170255877A1
- Status: Published application
- Kind: A1
- Application number: 15/167,861
- Filed: 2016-05-27
- Published: 2017-09-07
- Earliest claimed: 2016-03-02
- Assignees: Electronics and Telecommunications Research Institute
- Applicants: Electronics and Telecommunications Research Institute
- Inventors: Hyunwoo CHO; Do Hyung KIM; Cheol RYU; Seok Jin YOON; Jae Ho LEE; Hyung-Seok LEE; Kyung Hee LEE
- Web page: https://patentgrep.com/patent/US20170255877A1

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06N 20/00: Machine learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

There is provided a heterogeneous computing method. A heterogeneous computing method includes performing offline learning on an algorithm using compilations and runtimes of application programs, executing a first application program in a mobile device, distributing a workload to a central processing unit (CPU) and a graphic processing unit (GPU) in the first application program, using the algorithm, performing online learning to reset the workload distributed to the CPU and GPU in the first application program, and resetting the workload distributed to the CPU and GPU in the first application program, corresponding to a result of the online learning.

## Claims

### Claim 1

A heterogeneous computing method comprising:
performing offline learning on an algorithm using compilations and runtimes of application programs;
executing a first application program in a mobile device;
distributing a workload to a central processing unit (CPU) and a graphic processing unit (GPU) in the first application program, using the algorithm;
performing online learning to reset the workload distributed to the CPU and GPU in the first application program; and
resetting the workload distributed to the CPU and GPU in the first application program, corresponding to a result of the online learning.

### Claim 2 (depends on 1)

The heterogeneous computing method of claim 1, wherein the application programs and the first application program are written with a web computing language (WebCL).

### Claim 3 (depends on 1)

The heterogeneous computing method of claim 1, further comprising: after the online learning is ended,
ending a current routine of the first application program and returning a state value;
setting a start point of the first application program using the ended current routine and the state value;
distributing a workload to the CPU and GPU, corresponding to the online learning; and
executing the first application program from the start point.

### Claim 4 (depends on 1)

The heterogeneous computing method of claim 1, wherein the online learning is performed at a background.

### Claim 5 (depends on 1)

The heterogeneous computing method of claim 1, wherein the performing of the offline learning includes:
extracting a feature value from each of the compilations of the application programs;
analyzing the runtimes of the application programs while changing a workload ratio of the CPU and GPU; and
performing learning of the algorithm, corresponding to the extracted feature value and a result obtained by analyzing the runtimes.

### Claim 6 (depends on 5)

The heterogeneous computing method of claim 5, wherein the feature value includes at least one of a number of times of memory access, a number of floating point operations, a number of times of data transition between the CPU and GPU, and a size of a repeating loop.

### Claim 7 (depends on 1)

The heterogeneous computing method of claim 1, wherein the algorithm distributes a workload to the CPU and GPU using a feature value extracted from a compilation of the first application program.

### Claim 8 (depends on 7)

The heterogeneous computing method of claim 7, wherein the feature value includes at least one of a number of times of memory access, a number of floating point operations, a number of times of data transition between the CPU and GPU, and a size of a repeating loop.

### Claim 9 (depends on 1)

The heterogeneous computing method of claim 1, wherein the performing of the online learning includes:
a first process of determining whether performance is in a saturation state while changing the number of work items per core;
a second process of, when the performance is improved in the first process, repeating the first process while changing the workload ratio of the CPU and the GPU; and
a third process of, when the performance is not improved in the first process, ending the online learning.

### Claim 10 (depends on 9)

The heterogeneous computing method of claim 9, wherein the point of time when it is determined that the performance has been in the saturation state is a point of time when the execution time of the first application program is shortened within a preset critical time when the number of work items per core is increased.

### Claim 11 (depends on 9)

The heterogeneous computing method of claim 9, wherein the number of work items assigned per core is linearly increased.

### Claim 12 (depends on 9)

The heterogeneous computing method of claim 9, wherein the number of work items assigned per core is exponentially increased.

### Claim 13 (depends on 9)

The heterogeneous computing method of claim 9, wherein the performance is determined using the execution speed of the first application program.
