Program execution on heterogeneous platform

US11243816B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11243816-B2
Application numberUS-201515300541-A
CountryUS
Kind codeB2
Filing dateMar 30, 2015
Priority dateMar 30, 2014
Publication dateFeb 8, 2022
Grant dateFeb 8, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A computer-implemented method comprises obtaining an intermediate computer code object including a set of instructions corresponding to a task to be performed. The intermediate computer code object—being machine independent—further includes for each of the at least one set of instructions one or more metadata descriptors representative of at least a complexity measure of the task to be performed. The method also comprises executing the intermediate computer code object on a computing platform comprising at least two different execution units having a different memory with a different memory location. This executing comprises selecting for each of the at least one set of instructions a target execution unit from the plurality of execution units. This selecting takes the one or more metadata descriptors and a decision rule into account, wherein the decision rule relates the plurality of complexity measures to a performance characteristic of the plurality of execution units.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer-implemented method comprising: obtaining an intermediate computer code object comprising at least one set of instructions corresponding to a task to be performed, the intermediate computer code object further comprising for each of said at least one set of instructions one or more of metadata descriptors representative of at least a complexity measure of said task to be performed, said intermediate computer code object being machine-independent, and said complexity measure being at least based on an analysis of the intermediate computer code, and executing at run-time said intermediate computer code object on a computing platform comprising at least two different execution units having a memory with a different memory location, said executing at run-time comprising selecting for each of said at least one set of instructions a target execution unit from said plurality of execution units and executing said intermediate computer code object on said selected execution unit, said selecting taking into account the one or more of metadata descriptors and a decision rule relating said at least a complexity measure to a performance characteristic of the plurality of execution units, said executing the intermediate computer code object comprising translating each of the at least one set of instructions to a machine level format executable by the corresponding target execution unit, wherein said at least one complexity measure is included in a plurality of complexity measures comprising mutually independent measures, relating to different aspects of computational complexity of said at least one set of instructions, wherein the decision rule is adapted for predicting which of the plurality of execution units will perform best at performing the task encoded by said at least one set of instructions and wherein the decision rule is partitioning a joint space spanned by the plurality of complexity measures and the at least one runtime parameter into regions of dominant performance for subsets of the plurality of execution units, wherein the at least one runtime parameter indicates dimensions along which said at least one set of instructions operates. 2. The computer-implemented method according to claim 1 , wherein the at least two different execution units are a central processing unit (CPU) and a graphical processing unit (GPU). 3. The computer-implemented method according to claim 1 , wherein the at least two different execution units are graphical processing units (GPUs) having a memory with a different memory location. 4. The computer-implemented method according to claim 1 , wherein said at least a complexity measure is obtained by at least analyzing the intermediate computer code object. 5. The computer-implemented method according to claim 1 , wherein said one or more metadata descriptors are representative of said at least a complexity measure of said task to be performed. 6. The computer-implemented method according to claim 1 , wherein said intermediate computer code object is obtained in an execution unit independent intermediate format. 7. The computer-implemented method according to claim 1 , in which executing the intermediate computer code object comprises determining whether a first set of said at least one set of instructions and a second set of said at least one set of instructions can be executed concurrently. 8. The computer-implemented method according to claim 1 , in which executing the intermediate computer code object comprises providing automated memory allocation to provide data for being processed by the execution of each of said at least one set of instructions to the corresponding target execution unit. 9. The computer-implemented method according to claim 1 , in which obtaining the intermediate computer code object comprises compiling the intermediate computer code object from a computer program code specified in accordance to a high-level programming language specification and/or in which obtaining the intermediate computer code object further comprises for each of said at least one set of instructions determining the one or more of metadata descriptors representative of said at least a complexity measure. 10. The computer-implemented method according to claim 1 , wherein the one or more metadata descriptors are one or more parameters determinable at compiler level and expressing a complexity of a kernel function of the intermediate computer code object. 11. The computer-implemented method according to claim 1 , wherein said selecting also takes into account one or more of a code length, a product of data dimensions, a product of GPU block dimensions, a total number of GPU blocks, a number of assigned CPU threads, a memory transfer time, a GPU occupancy, a size or load of CPU and GPU command queues or an overall load of CPU and GPU queues. 12. A non-transitory data carrier comprising a set of instructions for, when executed on a computer, executing intermediate computer code object on a computing platform comprising at least two different execution units having a memory with different memory location according to a method according to claim 1 . 13. A computer-implemented method according to claim 1 , wherein the metadata descriptors comprise structured variables. 14. A first computer program product for executing an intermediate computer code object, the first computer program product comprising: an input component configured for obtaining an intermediate computer code object comprising at least one set of instructions corresponding to a task to be performed, the intermediate computer code object further comprising for each of said at least one set of instructions one or more of metadata descriptors representative of a corresponding plurality of complexity measures of said task to be performed, said intermediate computer code object being machine-independent, and said complexity measure being at least based on an analysis of the intermediate computer code, and a run-time component configured for executing said intermediate computer code object on a computing platform comprising at least two different execution units having a memory with a different memory location, wherein the run-time component comprises a selection unit for selecting for each of said at least one set of instructions a target execution unit from said at least two execution units, said selecting taking into account the one or more of metadata descriptors and a decision rule relating said plurality of complexity measures to a performance characteristic of the at least two different execution units, and said run-time component is programmed for translating each of the at least one set of instructions to a machine level format executable by the corresponding target execution unit and for executing said intermediate computer code object on said selected execution unit, wherein said at least one complexity measure is included in a plurality of complexity measures comprising at least mutually independent measures, relating to different aspects of computational complexity of said at least one set of instructions, wherein the decision rule is adapted for predicting which of the plurality of execution units will perform best at performing the task encoded by said at least one set of instructions and wherein the decision rule is partitioning a joint space spanned by the plurality of complexity measures and the at least one runtime parameter into regions of dominant performance for subsets of the plurality of execution units, wherein the at least one runtime parameter indicates dimensions along which said at least one set of instruction operates.

Assignees

Inventors

Classifications

  • Runtime code conversion or optimisation · CPC title

  • G06F9/5044Primary

    considering hardware capabilities · CPC title

  • Encoding · CPC title

  • considering the load · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11243816B2 cover?
A computer-implemented method comprises obtaining an intermediate computer code object including a set of instructions corresponding to a task to be performed. The intermediate computer code object—being machine independent—further includes for each of the at least one set of instructions one or more metadata descriptors representative of at least a complexity measure of the task to be performe…
Who is the assignee on this patent?
Univ Gent, Imec Vzw, Univ
What technology area does this patent fall under?
Primary CPC classification G06F9/5044. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 08 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).