JP6076908B2 - Cpuとgpuを使用する異種システムにおいて仮想化を用いたアプリケーションのコンパイル及び実行方法、及び装置 - Google Patents
Cpuとgpuを使用する異種システムにおいて仮想化を用いたアプリケーションのコンパイル及び実行方法、及び装置 Download PDFInfo
- Publication number
- JP6076908B2 JP6076908B2 JP2013531479A JP2013531479A JP6076908B2 JP 6076908 B2 JP6076908 B2 JP 6076908B2 JP 2013531479 A JP2013531479 A JP 2013531479A JP 2013531479 A JP2013531479 A JP 2013531479A JP 6076908 B2 JP6076908 B2 JP 6076908B2
- Authority
- JP
- Japan
- Prior art keywords
- gpu
- machine language
- executing
- cpu
- compiling
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 71
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 239000000306 component Substances 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/47—Retargetable compilers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/48—Incremental compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
720 コンパイラー
730 ハイブリッド仮想化ブロック
Claims (14)
- CPU(Central Processing Unit)とGPU(Graphic Processing Unit)を使用するシステムで、アプリケーションのコンパイル及び実行方法であって、
CPUソースコードとGPUソースコードを含むアプリケーションに対するコンパイル遂行要請を受信する段階と、
前記アプリケーションのコンパイルの時、前記CPUソースコードをCPU機械語にコンパイルし、前記GPUソースコードをGPU仮想命令語にコンパイルして、前記CPU機械語と前記GPU仮想命令語を含む実行ファイルを生成する段階と、
前記実行ファイルに対する実行要請を受信した時は、前記GPU仮想命令語をGPU機械語に変換(Translation)して前記実行ファイルを実行する段階を含み、
前記実行段階は、前記システムのオペレーティングシステム(OS)が前記実行ファイルを実行する段階と、
前記オペレーティングシステムが例外(exception)発生を感知したとき、少なくとも一つの仮想セクションを識別する段階と、
前記仮想セクションを識別する場合、前記GPU仮想命令語を前記GPU機械語に変換し、前記変換されたGPU機械語を前記GPUを介し、実行する段階を含み、
前記実行ファイルは、前記CPU実行時間及び前記GPU実行時間に関する情報を含む仮想セクションを含む
ことを特徴とするアプリケーションのコンパイル及び実行方法。 - 前記実行ファイルを生成する段階は、
前記CPU機械語と、前記GPU仮想命令語を含む少なくとも1つの仮想セクションを含む前記実行ファイルを生成する
ことを特徴とする、請求項1に記載のアプリケーションのコンパイル及び実行方法。 - 前記仮想セクションは、
前記仮想セクションを識別するウォーターマークを含む仮想セクションヘッダーと、前記CPU機械語と、前記GPU仮想命令語を含む
ことを特徴とする、請求項2に記載のアプリケーションのコンパイル及び実行方法。 - 前記実行する段階は、
前記システムのオペレーティングシステム(OS)が前記実行ファイルを実行する段階と、
前記オペレーティングシステムが例外(exception)発生感知の時、システム制御権をハイブリッド仮想化ブロックに伝達する段階と、
前記ハイブリッド仮想化ブロックが前記仮想セクションの識別の時、前記GPU仮想命令語を前記GPU機械語に変換し、前記システム制御権を前記オペレーティングシステムに伝達する段階と、
前記オペレーティングシステムが前記変換されたGPU機械語を前記GPUを通して実行する段階をさらに含む
ことを特徴とする、請求項2に記載のアプリケーションのコンパイル及び実行方法。 - 前記ハイブリッド仮想化ブロックはアプリケーション階層とハードウェア階層の間に位置する仮想化階層に位置する
ことを特徴とする、請求項4に記載のアプリケーションのコンパイル及び実行方法。 - 前記実行する段階の以後に、
前記変換されたGPU機械語を前記実行ファイルの内部に位置させる段階と、
前記GPU仮想命令語の実行の時、前記実行ファイルの内部に位置する変換されたGPU機械語を実行する段階をさらに含む
ことを特徴とする、請求項1に記載のアプリケーションのコンパイル及び実行方法。 - 前記GPU仮想命令語と前記GPU機械語は、共に機械語レベル(Machine Code Level)である
ことを特徴とする、請求項1に記載のアプリケーションのコンパイル及び実行方法。 - CPUソースコードとGPUソースコードを含むアプリケーションのコンパイル及び実行装置において、
CPUとGPUを含むハードウェアと、
前記CPUソースコードをCPU機械語にコンパイルし、前記GPUソースコードをGPU仮想命令語にコンパイルして、前記CPU機械語と前記GPU仮想命令語を含む実行ファイルを生成するコンパイラーと、
前記GPU仮想命令語をGPU機械語に変換(Translation)し、実行するハイブリッド仮想化ブロックと、
前記実行ファイルを実行し、例外(exception)発生を感知した時、システム制御権を前記ハイブリッド仮想化ブロックに伝達するオペレーティングシステム(Operating System 、OS)を含み、
前記実行ファイルは、前記CPU実行時間及び前記GPU実行時間に関する情報を含む仮想セクションを含む
ことを特徴とする、アプリケーションのコンパイル及び実行装置。 - 前記ハイブリッド仮想化ブロックはアプリケーション階層とハードウェア階層の間に位置する
ことを特徴とする、請求項8に記載のアプリケーションのコンパイル及び実行装置。 - 前記コンパイラーは、
前記CPU機械語と、前記GPU仮想命令語を含む少なくとも1つの仮想セクションを含む前記実行ファイルを生成する
ことを特徴とする、請求項8に記載のアプリケーションのコンパイル及び実行装置。 - 前記仮想セクションは、
前記仮想セクションを識別するウォーターマークを含む仮想セクションヘッダーと、前記CPU機械語と、前記GPU仮想命令語を含む
ことを特徴とする、請求項10に記載のアプリケーションのコンパイル及び実行装置。 - 前記ハイブリッド仮想化ブロックは、
前記仮想セクションの識別の時、前記GPU仮想命令語を前記GPU機械語に変換し、前記システム制御権を前記オペレーティングシステムに伝達する
ことを特徴とする、請求項8に記載のアプリケーションのコンパイル及び実行装置。 - 前記オペレーティングシステムは、
前記変換されたGPU機械語を前記実行ファイルの内部に位置させ、前記GPU仮想命令語の実行の時、前記実行ファイルの内部に位置する変換されたGPU機械語を実行する
ことを特徴とする、請求項8に記載のアプリケーションのコンパイル及び実行装置。 - 前記GPU仮想命令語と前記GPU機械語は共に機械語レベル(Machine Code Level)である
ことを特徴とする、請求項8に記載のアプリケーションのコンパイル及び実行装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100093327A KR20120031756A (ko) | 2010-09-27 | 2010-09-27 | Cpu와 gpu를 사용하는 이종 시스템에서 가상화를 이용한 어플리케이션 컴파일 및 실행 방법 및 장치 |
KR10-2010-0093327 | 2010-09-27 | ||
PCT/KR2011/007049 WO2012044016A1 (en) | 2010-09-27 | 2011-09-26 | Method and apparatus for compiling and executing an application using virtualization in a heterogeneous system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013543616A JP2013543616A (ja) | 2013-12-05 |
JP6076908B2 true JP6076908B2 (ja) | 2017-02-08 |
Family
ID=45870188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013531479A Expired - Fee Related JP6076908B2 (ja) | 2010-09-27 | 2011-09-26 | Cpuとgpuを使用する異種システムにおいて仮想化を用いたアプリケーションのコンパイル及び実行方法、及び装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9495720B2 (ja) |
EP (1) | EP2622465B1 (ja) |
JP (1) | JP6076908B2 (ja) |
KR (1) | KR20120031756A (ja) |
CN (1) | CN103124956B (ja) |
WO (1) | WO2012044016A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014038433A (ja) * | 2012-08-14 | 2014-02-27 | Nec Corp | 描画プログラム変換装置、情報処理装置、及び描画プログラム変換装置の制御方法、並びにコンピュータ・プログラム |
CN102981836B (zh) * | 2012-11-06 | 2015-08-12 | 无锡江南计算技术研究所 | 异构系统的编译方法和编译器 |
US9665921B2 (en) * | 2012-12-29 | 2017-05-30 | Futurewei Technologies, Inc. | Adaptive OpenGL 3D graphics in virtual desktop infrastructure |
US8966510B2 (en) * | 2013-02-04 | 2015-02-24 | International Business Machines Corporation | Kernel execution for hybrid systems |
CN104423994B (zh) * | 2013-09-03 | 2018-05-11 | 华为技术有限公司 | 一种代码生成方法、编译器、调度方法、装置及调度系统 |
US9971576B2 (en) * | 2013-11-20 | 2018-05-15 | Nvidia Corporation | Software development environment and method of compiling integrated source code |
US10241761B2 (en) * | 2014-12-29 | 2019-03-26 | Nvidia Corporation | System and method for compiler support for compile time customization of code |
CN107239315B (zh) | 2017-04-11 | 2019-11-15 | 赛灵思公司 | 面向神经网络异构计算平台的编程模型 |
US10657698B2 (en) * | 2017-06-22 | 2020-05-19 | Microsoft Technology Licensing, Llc | Texture value patch used in GPU-executed program sequence cross-compilation |
KR101889942B1 (ko) * | 2017-11-17 | 2018-08-20 | (주)위아데브 | 비디오 처리 유닛을 제어하는 장치 및 방법 |
US11900157B2 (en) * | 2018-09-19 | 2024-02-13 | Intel Corporation | Hybrid virtual GPU co-scheduling |
CN110443876A (zh) * | 2019-07-31 | 2019-11-12 | 新华三大数据技术有限公司 | 3d图像渲染方法及装置 |
WO2021140568A1 (ja) | 2020-01-07 | 2021-07-15 | 富士通株式会社 | 関数生成プログラム、関数生成方法、及び情報処理装置 |
US11755299B2 (en) * | 2021-06-23 | 2023-09-12 | Huawei Technologies Co., Ltd. | Method and apparatus for functional unit balancing at program compile time |
KR102405886B1 (ko) | 2022-03-17 | 2022-06-08 | 주식회사 넷아스 | 아키텍처 변경을 위한 소스 변환 솔루션 제공 장치 및 방법 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5794062A (en) | 1995-04-17 | 1998-08-11 | Ricoh Company Ltd. | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
US5933642A (en) * | 1995-04-17 | 1999-08-03 | Ricoh Corporation | Compiling system and method for reconfigurable computing |
US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US6980946B2 (en) * | 2001-03-15 | 2005-12-27 | Microsoft Corporation | Method for hybrid processing of software instructions of an emulated computer system |
US20050044301A1 (en) * | 2003-08-20 | 2005-02-24 | Vasilevsky Alexander David | Method and apparatus for providing virtual computing services |
US8429629B2 (en) * | 2005-11-30 | 2013-04-23 | Red Hat, Inc. | In-kernel virtual machine for low overhead startup and low resource usage |
US20080127142A1 (en) | 2006-11-28 | 2008-05-29 | Microsoft Corporation | Compiling executable code into a less-trusted address space |
US8321849B2 (en) * | 2007-01-26 | 2012-11-27 | Nvidia Corporation | Virtual architecture and instruction set for parallel thread computing |
US8561037B2 (en) * | 2007-08-29 | 2013-10-15 | Convey Computer | Compiler for generating an executable comprising instructions for a plurality of different instruction sets |
US8122229B2 (en) | 2007-09-12 | 2012-02-21 | Convey Computer | Dispatch mechanism for dispatching instructions from a host processor to a co-processor |
US8086822B2 (en) * | 2008-05-30 | 2011-12-27 | Vmware, Inc. | In-place shadow tables for virtualization |
US8436862B2 (en) | 2008-12-11 | 2013-05-07 | Nvidia Corporation | Method and system for enabling managed code-based application program to access graphics processing unit |
CN101599009A (zh) | 2009-04-30 | 2009-12-09 | 浪潮电子信息产业股份有限公司 | 一种异构多处理器上并行执行任务的方法 |
-
2010
- 2010-09-27 KR KR1020100093327A patent/KR20120031756A/ko not_active Application Discontinuation
-
2011
- 2011-09-26 CN CN201180046553.5A patent/CN103124956B/zh not_active Expired - Fee Related
- 2011-09-26 US US13/245,255 patent/US9495720B2/en not_active Expired - Fee Related
- 2011-09-26 EP EP11829522.9A patent/EP2622465B1/en not_active Not-in-force
- 2011-09-26 WO PCT/KR2011/007049 patent/WO2012044016A1/en active Application Filing
- 2011-09-26 JP JP2013531479A patent/JP6076908B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN103124956B (zh) | 2017-02-15 |
US20120075316A1 (en) | 2012-03-29 |
KR20120031756A (ko) | 2012-04-04 |
US9495720B2 (en) | 2016-11-15 |
EP2622465A1 (en) | 2013-08-07 |
WO2012044016A1 (en) | 2012-04-05 |
EP2622465B1 (en) | 2019-01-09 |
JP2013543616A (ja) | 2013-12-05 |
CN103124956A (zh) | 2013-05-29 |
EP2622465A4 (en) | 2017-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6076908B2 (ja) | Cpuとgpuを使用する異種システムにおいて仮想化を用いたアプリケーションのコンパイル及び実行方法、及び装置 | |
JP4514105B2 (ja) | 拡張ランタイムホスティング | |
US20060294498A1 (en) | Hot-swapping a dynamic code generator | |
EP2815313B1 (en) | Rasterization of compute shaders | |
WO2007083613A1 (ja) | プログラム処理装置、並列処理プログラム、プログラム処理方法、並列処理コンパイラ、並列処理コンパイラを格納した記録媒体およびマルチプロセッサシステム | |
JP2013533533A (ja) | コンピューティング・プラットフォーム内のワークロードの分配及び並列化 | |
WO2017074609A1 (en) | Graphical representation of data in a program code editor | |
KR20160054629A (ko) | 사용자 인터페이스들 및 입력 컨트롤들을 적응시키는 방법 | |
US20160246622A1 (en) | Method and system for implementing invocation stubs for the application programming interfaces embedding with function overload resolution for dynamic computer programming languages | |
TWI692692B (zh) | 用於元組圖形程式之子圖內最佳化之方法 | |
JP5178852B2 (ja) | 情報処理装置およびプログラム | |
CN117075909B (zh) | 用于实现并行编程的编译方法、电子设备和介质 | |
TW201913404A (zh) | 跨網路執行元組圖形程式之方法 | |
KR20170014613A (ko) | 전자 장치, 컴파일링 방법 및 컴퓨터 판독가능 기록매체 | |
CN111190585B (zh) | 基于字节码增强技术实现java模式匹配特性的方法 | |
US20080127034A1 (en) | Distributed resource understanding tool management | |
KR101632027B1 (ko) | 주석기반의 의사코드를 이용한 프로그램 변환 방법 및 그 방법을 구현하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 | |
JP2008305337A (ja) | プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム | |
CN111971655A (zh) | 用于超文本标记语言图形内容的本机运行时技术 | |
JP6264179B2 (ja) | コンパイル方法、コンパイル装置およびコンパイルプログラム | |
US20110099534A1 (en) | Information processing apparatus, execution program operation modification method, and recording medium | |
KR100727055B1 (ko) | 스크립트 언어를 이용한 게임 제작 시스템 및 게임 제작방법 | |
Fan et al. | Supporting asynchronization in OpenMP for event-driven programming | |
EP4206904A1 (en) | Code processing method and apparatus, and storage medium | |
TWI776338B (zh) | 應用於圖形處理器的編譯器及非暫態電腦可讀式儲存媒體 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140926 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20141226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160307 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160715 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161017 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170111 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6076908 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |