JP6280581B2 - 計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有 - Google Patents
計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有 Download PDFInfo
- Publication number
- JP6280581B2 JP6280581B2 JP2016047076A JP2016047076A JP6280581B2 JP 6280581 B2 JP6280581 B2 JP 6280581B2 JP 2016047076 A JP2016047076 A JP 2016047076A JP 2016047076 A JP2016047076 A JP 2016047076A JP 6280581 B2 JP6280581 B2 JP 6280581B2
- Authority
- JP
- Japan
- Prior art keywords
- gpu
- cpu
- shared
- virtual
- virtual table
- 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.)
- Active
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Description
計算プラットフォームにおける方法であって、
複数のバーチャル関数を含む共有オブジェクトを生成するステップと、
前記共有オブジェクトを共有バーチャルメモリに格納するステップと、
第1プロセッサと第2プロセッサとの間で前記複数のバーチャル関数の少なくとも1つを共有するステップと、
を有し、
前記計算プラットフォームは、前記第1プロセッサと前記第2プロセッサとを含み、
前記第1プロセッサと前記第2プロセッサとはヘテロジニアスプロセッサである方法に関する。
実行されることに応答して、
複数のバーチャル関数を含む共有オブジェクトを生成するステップと、
前記共有オブジェクトを共有バーチャルメモリに格納するステップと、
第1プロセッサと第2プロセッサとの間で前記複数のバーチャル関数の少なくとも1つを共有するステップと、
をプロセッサに実行させる複数の命令を有するマシーン可読記憶媒体であって、
前記計算プラットフォームは、前記第1プロセッサと前記第2プロセッサとを有し、
前記第1プロセッサと前記第2プロセッサとは、ヘテロジニアスプロセッサであるマシーン可読記憶媒体に関する。
第1コンパイラに接続される第1プロセッサと、第2コンパイラに接続される第2プロセッサとを有する複数のヘテロジニアスプロセッサを有する装置であって、
前記第1コンパイラは、前記第1プロセッサに割り当てられた第1バーチャルメンバ関数と、前記第2プロセッサに割り当てられた第2バーチャルメンバ関数とを含む共有オブジェクトを生成し、
前記第1プロセッサは、複数のバーチャル関数を含む共有オブジェクトを生成し、前記共有オブジェクトを共有バーチャルメモリに格納し、前記複数のバーチャル関数の少なくとも1つを第2プロセッサと共有する装置に関する。
Call[eax,vfunc] #vfuncはバーチャル関数テーブルにおけるバーチャル関数インデックスである
CPUサイドにおいて、上記コードはバーチャル関数のCPUの実装をコールし、GPUサイドでは、上記コードはバーチャル関数のGPU実装をコールしてもよい。このようなアプローチは、クラスに対するデータ共有及びバーチャル関数共有を可能にする。
110 CPU
180 GPU
900 コンピュータシステム
Claims (27)
- CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)の組み合わせと、
前記CPU及び前記GPUの双方にアクセス可能な共有バーチャルメモリを提供する手段と、
複数のバーチャル関数を含む共有オブジェクトを前記共有バーチャルメモリに記憶する手段と、
前記CPUと前記GPUとの間で前記複数のバーチャル関数の少なくとも1つを共有する手段と、
を有するプラットフォーム。 - 前記共有オブジェクトは更に、非バーチャル関数又はバーチャル関数テーブルを指し示すためのバーチャルテーブルポインタの少なくとも1つを有する、請求項1記載のプラットフォーム。
- 前記共有オブジェクトは、CPUサイドバーチャルテーブルポインタを有する、請求項1記載のプラットフォーム。
- 前記GPUは、前記CPUサイドバーチャルテーブルポインタを用いてGPUサイドバーチャルテーブルを決定する、請求項3記載のプラットフォーム。
- 前記プラットフォームは、前記GPUが、前記CPUサイドバーチャルテーブルポインタを用いて、GPUサイドバーチャルテーブルを決定する際に用いられるGPUテーブルを備えるものであり、
前記GPUテーブルは、クラス名、CPUサイドバーチャルテーブルアドレス及びGPUサイドバーチャルテーブルアドレスを有する、請求項4記載のプラットフォーム。 - 前記プラットフォームは更に、
前記共有バーチャルメモリ内に共有非コヒーラント領域を生成する手段と、
CPUサイドバーチャルテーブル及びGPUサイドバーチャルテーブルを前記共有バーチャルメモリにコピーする手段と、
を有し、
前記CPUサイドバーチャルテーブル及び前記GPUサイドバーチャルテーブルは、前記共有バーチャルメモリにおいて同一のアドレスを有する、請求項1記載のプラットフォーム。 - バーチャル関数を共有する方法であって、
共有バーチャルメモリを共有物理メモリにマッピングするステップであって、前記共有バーチャルメモリ及び前記共有物理メモリは、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)の双方にアクセス可能である、マッピングするステップと、
複数のバーチャル関数を含む共有オブジェクトを前記共有バーチャルメモリに記憶するステップと、
前記CPUと前記GPUとの間で前記複数のバーチャル関数の少なくとも1つを共有するステップと、
を有する方法。 - 前記共有オブジェクトは更に、非バーチャル関数を有する、請求項7記載の方法。
- 前記共有オブジェクトは、CPUサイドバーチャルテーブルポインタを有する、請求項7記載の方法。
- 前記GPUが、前記CPUサイドバーチャルテーブルポインタを用いて、GPUサイドバーチャルテーブルを決定するステップを更に有する、請求項9記載の方法。
- 前記CPUサイドバーチャルテーブルポインタを用いて、GPUサイドバーチャルテーブルを決定する際に用いられるGPUテーブルは、クラス名、CPUサイドバーチャルテーブルアドレス及びGPUサイドバーチャルテーブルアドレスを有する、請求項10記載の方法。
- 前記CPUサイドバーチャルテーブルポインタを用いて、GPUサイドバーチャルテーブルを決定する際に用いられるGPUテーブルは、動的にリンク付けされたライブラリ又は静的にリンク付けされたライブラリの少なくとも1つをサポートする、請求項10記載の方法。
- 前記共有バーチャルメモリ内に共有非コヒーラント領域を生成するステップと、
CPUサイドバーチャルテーブル及びGPUサイドバーチャルテーブルを前記共有バーチャルメモリにコピーするステップと、
を更に有し、
前記CPUサイドバーチャルテーブル及び前記GPUサイドバーチャルテーブルは、前記共有バーチャルメモリにおいて同一のアドレスを有する、請求項7記載の方法。 - 共有バーチャルメモリを共有物理メモリにマッピングするステップであって、前記共有バーチャルメモリ及び前記共有物理メモリは、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)の双方にアクセス可能である、マッピングするステップと、
複数のバーチャル関数を含む共有オブジェクトを前記共有バーチャルメモリに記憶するステップと、
前記CPUと前記GPUとの間で前記複数のバーチャル関数の少なくとも1つを共有するステップと、
を計算装置に実行させるためのプログラム。 - 前記共有オブジェクトは更に、非バーチャル関数を有する、請求項14記載のプログラム。
- 前記共有オブジェクトは、CPUサイドバーチャルテーブルポインタを有する、請求項14記載のプログラム。
- 前記GPUが、前記CPUサイドバーチャルテーブルポインタを用いて、GPUサイドバーチャルテーブルを決定するステップを更に実行させる、請求項16記載のプログラム。
- 前記CPUサイドバーチャルテーブルポインタを用いて、GPUサイドバーチャルテーブルを決定する際に用いられるGPUテーブルは、クラス名、CPUサイドバーチャルテーブルアドレス及びGPUサイドバーチャルテーブルアドレスを有する、請求項17記載のプログラム。
- 前記CPUサイドバーチャルテーブルポインタを用いて、GPUサイドバーチャルテーブルを決定する際に用いられるGPUテーブルは、動的にリンク付けされたライブラリ又は静的にリンク付けされたライブラリの少なくとも1つをサポートする、請求項17記載のプログラム。
- 前記共有バーチャルメモリ内に共有非コヒーラント領域を生成するステップと、
CPUサイドバーチャルテーブル及びGPUサイドバーチャルテーブルを前記共有バーチャルメモリにコピーするステップと、
を前記計算装置に更に実行させ、
前記CPUサイドバーチャルテーブル及び前記GPUサイドバーチャルテーブルは、前記共有バーチャルメモリにおいて同一のアドレスを有する、請求項14記載のプログラム。 - CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)の組み合わせと、
GPUプライベートメモリスペース及びCPUプライベートメモリスペースによりサポートされ、前記GPU及び前記CPUの双方にアクセス可能な共有バーチャルメモリと、
を有するプラットフォームであって、
前記プラットフォームは、
複数のバーチャル関数を含む共有オブジェクトを前記共有バーチャルメモリに記憶し、
前記CPUと前記GPUとの間で前記複数のバーチャル関数の少なくとも1つを共有するプラットフォーム。 - 前記CPUと前記GPUとの間で前記複数のバーチャル関数を共有するプラットフォームは、前記CPUと前記GPUとの間の双方向通信を有する、請求項21記載のプラットフォーム。
- 前記共有オブジェクトは更に、非バーチャル関数を有する、請求項21記載のプラットフォーム。
- 前記共有オブジェクトは、CPUサイドバーチャルテーブルを有し、
前記GPUは、前記CPUサイドバーチャルテーブルを指し示すためのCPUサイドバーチャルテーブルポインタを用いて、GPUサイドバーチャルテーブルを決定する、請求項21記載のプラットフォーム。 - 前記プラットフォームは更に、前記共有バーチャルメモリ内に非コヒーラント領域を生成し、CPUサイドバーチャルテーブル及びGPUサイドバーチャルテーブルを前記共有バーチャルメモリにコピーし、
前記CPUサイドバーチャルテーブル及び前記GPUサイドバーチャルテーブルは、前記共有バーチャルメモリにおいて同一のアドレスを有する、請求項21記載のプラットフォーム。 - 前記プラットフォームは更に、前記同一のアドレスを指し示すようにバーチャルテーブルポインタを修正し、
前記CPUサイドバーチャルテーブルは、CPUサイド関数ポインタを有し、
前記GPUサイドバーチャルテーブルは、前記CPUサイド関数ポインタと異なるGPUサイド関数ポインタを有する、請求項25記載のプラットフォーム。 - 請求項14乃至20何れか一項記載のプログラムを記憶するためのコンピュータ可読記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016047076A JP6280581B2 (ja) | 2016-03-10 | 2016-03-10 | 計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016047076A JP6280581B2 (ja) | 2016-03-10 | 2016-03-10 | 計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014216090A Division JP5902273B2 (ja) | 2014-10-23 | 2014-10-23 | 計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016157445A JP2016157445A (ja) | 2016-09-01 |
JP6280581B2 true JP6280581B2 (ja) | 2018-02-14 |
Family
ID=56826246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016047076A Active JP6280581B2 (ja) | 2016-03-10 | 2016-03-10 | 計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6280581B2 (ja) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6184740A (ja) * | 1984-10-03 | 1986-04-30 | Hitachi Ltd | 汎用オブジエクトコ−ド生成方式 |
JPH10207709A (ja) * | 1997-01-20 | 1998-08-07 | Meidensha Corp | オブジェクトの共有方法 |
JPH10320203A (ja) * | 1997-05-22 | 1998-12-04 | Meidensha Corp | 共有メモリシステム |
US6049668A (en) * | 1998-04-13 | 2000-04-11 | Intel Corporation | Method and apparatus for supporting multiple processor-specific code segments in a single executable |
US20070283336A1 (en) * | 2006-06-01 | 2007-12-06 | Michael Karl Gschwind | System and method for just-in-time compilation in a heterogeneous processing environment |
JP5151559B2 (ja) * | 2008-02-29 | 2013-02-27 | 富士通株式会社 | プログラム実行システム |
US8531471B2 (en) * | 2008-11-13 | 2013-09-10 | Intel Corporation | Shared virtual memory |
US8307350B2 (en) * | 2009-01-14 | 2012-11-06 | Microsoft Corporation | Multi level virtual function tables |
-
2016
- 2016-03-10 JP JP2016047076A patent/JP6280581B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016157445A (ja) | 2016-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5639274B2 (ja) | 計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有 | |
US8719839B2 (en) | Two way communication support for heterogenous processors of a computer platform | |
US11175896B2 (en) | Handling value types | |
EP2950206B1 (en) | Extracting source code | |
US9830176B2 (en) | Methods, systems, and media for binary compatible graphics support in mobile operating systems | |
US20110153957A1 (en) | Sharing virtual memory-based multi-version data between the heterogenous processors of a computer platform | |
US10496433B2 (en) | Modification of context saving functions | |
WO2019076442A1 (en) | COMPUTER SYSTEM FOR ACCESSING A UNIFIED MEMORY | |
JP6280581B2 (ja) | 計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有 | |
JP5902273B2 (ja) | 計算プラットフォームのヘテロジニアスプロセッサの間で共有されるバーチャルメモリにおけるバーチャル機能の共有 | |
Szabó et al. | Real-time rendering with OpenGL and Vulkan in C# | |
CN104536740B (zh) | 计算平台的异质处理器之间的共享虚拟存储器中的虚函数共享 | |
Phung et al. | Accelerating Function-Centric Applications by Discovering, Distributing, and Retaining Reusable Context in Workflow Systems | |
Goyal et al. | Function Overloading and Default Arguments | |
Ciocarlie et al. | Considerations regarding the implementation of the ESPL programming language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170704 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171004 |
|
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: 20171121 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20171211 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180119 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6280581 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |