JP2021533455A - 仮想化用のgpuタスクコンテナとしてのvmid - Google Patents
仮想化用のgpuタスクコンテナとしてのvmid Download PDFInfo
- Publication number
- JP2021533455A JP2021533455A JP2021505214A JP2021505214A JP2021533455A JP 2021533455 A JP2021533455 A JP 2021533455A JP 2021505214 A JP2021505214 A JP 2021505214A JP 2021505214 A JP2021505214 A JP 2021505214A JP 2021533455 A JP2021533455 A JP 2021533455A
- Authority
- JP
- Japan
- Prior art keywords
- task
- processor
- container
- identifies
- mapping
- 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.)
- Granted
Links
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
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 Security & Cryptography (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
一般的な計算にグラフィックスプロセッシングユニット(GPU)を使用する要望は、現代のGPUの単位電力当たりの性能及びコストのために、より一般的になっている。GPUの計算能力は、対応する中央演算処理装置(CPU)プラットフォームの計算能力を超える速度で成長してきた。この成長は、モバイルコンピューティング市場(例えば、ノートパソコン、モバイルスマートフォン、タブレット)及びそれをサポートするサーバ/エンタープライズシステムの急激な拡大と相まって、所望のユーザエクスペリエンスと整合性のある品質を達成するために使用されてきた。結果として、データ並列コンテンツを伴うワークロードを実行するためにCPUとGPUを組み合わせて使用することが、ボリュームテクノロジーになりつつある。
Claims (20)
- システムであって、
複数のタスクのプログラム命令を記憶するメモリであって、前記複数のタスクは第1のタスクを含むメモリと、
前記メモリに接続されたプロセッサと、を備え、
前記プロセッサは、
前記第1のタスク及び1つ以上の他のタスクを同時に実行することと、
第1の操作に対応する前記第1のタスクの1つ以上の命令を検出したことに応じて、
前記第1のタスクを一意に識別する第1の識別子(ID)であって、前記第1のタスクのソース階層を識別しない第1のIDを受信することと、
前記第1のIDを、前記第1のタスクの前記ソース階層を識別する第2のIDにマッピングすることと、
前記第1のタスクを識別するために前記第2のIDを使用して第1のデータ構造へのアクセスを実行することによって、前記第1の操作を完了することと、
を行うように構成されている、
システム。 - 前記プロセッサは、前記第1のIDを前記第2のID及び第3のIDにマッピングするためのマッピングテーブルにアクセスする、
請求項1のシステム。 - 前記第2のIDは、第1のアプリケーションを識別し、前記第3のIDは、第1のオペレーティングシステム(OS)を識別し、前記第1のアプリケーション及び前記第1のOSは、前記第1のタスクの前記ソース階層を表す、
請求項2のシステム。 - 前記プロセッサは、
前記第1のタスクと同時に、前記第1のタスクとは異なるオペレーティングシステムの一部である第2のタスクを実行することと、
第2の操作に対応する前記第2のタスクの1つ以上の命令を検出したことに応じて、
前記第2のタスクを一意に識別する第4のIDであって、前記第1のタスクのソース階層を識別しない第4のIDを受信することと、
前記第4のIDを、第5のID及び第6のIDにマッピングすることと、
前記第2のIDと同じである前記第5のIDと、前記第3のIDとは異なる前記第6のIDと、を用いて前記第1のデータ構造へのアクセスを実行することによって、前記第1の操作を完了することと、
を行うように構成されている、
請求項3のシステム。 - 前記第1の操作は、メモリアクセス操作であり、前記第1のデータ構造は、ページテーブルのセットである、
請求項1のシステム。 - 前記プロセッサは、
前記プロセッサと前記プロセッサの外部の各構成要素との間の各境界でマッピングテーブルを維持することと、
前記第2のIDを取得するために、前記第1のIDを用いて前記マッピングテーブルにアクセスすることと、
を行うように構成されている、
請求項1のシステム。 - 前記第1のIDは、コンテナIDであり、前記プロセッサは、第1のコンテナIDを有するタスクが第2のコンテナIDを有するタスクのデータにアクセスするのを抑制するように構成されている、
請求項1のシステム。 - 方法であって、
第1のタスク及び1つ以上の他のタスクを同時に実行することと、
第1の操作に対応する前記第1のタスクの1つ以上の命令を検出したことに応じて、
前記第1のタスクを一意に識別する第1の識別子(ID)であって、前記第1のタスクのソース階層を識別しない第1のIDを受信することと、
前記第1のIDを、前記第1のタスクのソース階層を識別する第2のIDにマッピングすることと、
前記第1のタスクを識別するために前記第2のIDを使用して第1のデータ構造へのアクセスを実行することによって、前記第1の操作を完了することと、を含む、
方法。 - 前記第1のIDを前記第2のID及び第3のIDにマッピングするためのマッピングテーブルにアクセスすることを含む、
請求項8の方法。 - 前記第2のIDは、第1のアプリケーションを識別し、前記第3のIDは、第1のオペレーティングシステム(OS)を識別し、前記第1のアプリケーション及び前記第1のOSは、前記第1のタスクの前記ソース階層を表す、
請求項9の方法。 - 前記第1のタスクと同時に、前記第1のタスクとは異なるオペレーティングシステムの一部である第2のタスクを実行することと、
第2の操作に対応する前記第2のタスクの1つ以上の命令を検出したことに応じて、
前記第2のタスクを一意に識別する第4のIDであって、前記第1のタスクのソース階層を識別しない第4のIDを受信することと、
前記第4のIDを、第5のID及び第6のIDにマッピングすることと、
前記第2のIDと同じである前記第5のIDと、前記第3のIDとは異なる前記第6のIDと、を用いて前記第1のデータ構造へのアクセスを実行することによって、前記第1の操作を完了することと、を含む、
請求項10の方法。 - 前記第1の操作は、メモリアクセス操作であり、前記第1のデータ構造は、ページテーブルのセットである、
請求項8の方法。 - 前記プロセッサは、
前記プロセッサと前記プロセッサの外部の各構成要素との間の各境界でマッピングテーブルを維持することと、
前記第2のIDを取得するために、前記第1のIDを用いて前記マッピングテーブルにアクセスすることと、
を行うように構成されている、
請求項8の方法。 - 前記第1のIDは、コンテナIDであり、前記方法は、第1のコンテナIDを有するタスクが第2のコンテナIDを有するタスクのデータにアクセスするのを抑制することを含む、
請求項8の方法。 - プロセッサであって、
スケジューラユニットと、
複数の計算ユニットと、を備え、
前記プロセッサは、
第1のタスク及び1つ以上の他のタスクを、前記複数の計算ユニット上で同時に実行するようにスケジューリングすることと、
第1の操作に対応する前記第1のタスクの1つ以上の命令を検出したことに応じて、
前記第1のタスクを一意に識別する第1の識別子(ID)であって、前記第1のタスクのソース階層を識別しない第1のIDを受信することと、
前記第1のIDを、前記第1のタスクの前記ソース階層を識別する第2のIDにマッピングすることと、
前記第1のタスクを識別するために前記第2のIDを使用して第1のデータ構造へのアクセスを実行することによって、前記第1の操作を完了することと、
を行うように構成されている、
プロセッサ。 - 前記プロセッサは、前記第1のIDを前記第2のID及び第3のIDにマッピングするためのマッピングテーブルにアクセスする、
請求項15のプロセッサ。 - 前記第2のIDは、第1のアプリケーションを識別し、前記第3のIDは、第1のオペレーティングシステム(OS)を識別し、前記第1のアプリケーション及び前記第1のOSは、前記第1のタスクの前記ソース階層を表す、
請求項16のプロセッサ。 - 前記プロセッサは、
前記第1のタスクと同時に、前記第1のタスクとは異なるオペレーティングシステムの一部である第2のタスクを実行することと、
第2の操作に対応する前記第2のタスクの1つ以上の命令を検出したことに応じて、
前記第2のタスクを一意に識別する第4のIDであって、前記第1のタスクのソース階層を識別しない第4のIDを受信することと、
前記第4のIDを、第5のID及び第6のIDにマッピングすることと、
前記第2のIDと同じである前記第5のIDと、前記第3のIDとは異なる前記第6のIDと、を用いて前記第1のデータ構造へのアクセスを実行することによって、前記第1の操作を完了することと、
を行うように構成されている、
請求項17のプロセッサ。 - 前記第1のIDは、コンテナIDであり、前記プロセッサは、第1のコンテナIDを有するタスクが第2のコンテナIDを有するタスクのデータにアクセスするのを抑制するように構成されている、
請求項15のプロセッサ。 - 前記プロセッサは、
前記プロセッサと前記プロセッサの外部の各構成要素との間の各境界でマッピングテーブルを維持することと、
前記第2のIDを取得するために、前記第1のIDを用いて前記マッピングテーブルにアクセスすることと、
を行うように構成されている、
請求項15のプロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/050,948 | 2018-07-31 | ||
US16/050,948 US10725822B2 (en) | 2018-07-31 | 2018-07-31 | VMID as a GPU task container for virtualization |
PCT/US2019/039257 WO2020027951A1 (en) | 2018-07-31 | 2019-06-26 | Vmid as a gpu task container for virtualization |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021533455A true JP2021533455A (ja) | 2021-12-02 |
JP7123235B2 JP7123235B2 (ja) | 2022-08-22 |
Family
ID=67297335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021505214A Active JP7123235B2 (ja) | 2018-07-31 | 2019-06-26 | 仮想化用のgpuタスクコンテナとしてのvmid |
Country Status (6)
Country | Link |
---|---|
US (3) | US10725822B2 (ja) |
EP (1) | EP3830702A1 (ja) |
JP (1) | JP7123235B2 (ja) |
KR (1) | KR102540754B1 (ja) |
CN (1) | CN112368688A (ja) |
WO (1) | WO2020027951A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10460513B2 (en) | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
US10725822B2 (en) | 2018-07-31 | 2020-07-28 | Advanced Micro Devices, Inc. | VMID as a GPU task container for virtualization |
US10942775B2 (en) * | 2019-03-01 | 2021-03-09 | International Business Machines Corporation | Modified central serialization of requests in multiprocessor systems |
US11663141B2 (en) | 2019-10-11 | 2023-05-30 | Texas Instruments Incorporated | Non-stalling, non-blocking translation lookaside buffer invalidation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000347940A (ja) * | 1999-06-08 | 2000-12-15 | Matsushita Electric Ind Co Ltd | メモリ管理装置 |
US20160092677A1 (en) * | 2014-09-30 | 2016-03-31 | Amazon Technologies, Inc. | Allocation of shared system resources |
JP2016527652A (ja) * | 2014-07-21 | 2016-09-08 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | 多数の異なるアドレス空間をサポートするプロセッサにおける効率的なアドレス変換キャッシング |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507638B2 (en) | 2011-11-08 | 2016-11-29 | Nvidia Corporation | Compute work distribution reference counters |
US10037228B2 (en) * | 2012-10-25 | 2018-07-31 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
CN103049334B (zh) * | 2012-12-14 | 2015-09-30 | 华为技术有限公司 | 一种任务处理的方法和虚拟机 |
US9256623B2 (en) | 2013-05-08 | 2016-02-09 | Nvidia Corporation | System, method, and computer program product for scheduling tasks associated with continuation thread blocks |
GB2545170B (en) * | 2015-12-02 | 2020-01-08 | Imagination Tech Ltd | GPU virtualisation |
US10365974B2 (en) * | 2016-09-16 | 2019-07-30 | Hewlett Packard Enterprise Development Lp | Acquisition of object names for portion index objects |
GB2563588B (en) * | 2017-06-16 | 2019-06-26 | Imagination Tech Ltd | Scheduling tasks |
US10725822B2 (en) | 2018-07-31 | 2020-07-28 | Advanced Micro Devices, Inc. | VMID as a GPU task container for virtualization |
-
2018
- 2018-07-31 US US16/050,948 patent/US10725822B2/en active Active
-
2019
- 2019-06-26 KR KR1020217002976A patent/KR102540754B1/ko active IP Right Grant
- 2019-06-26 WO PCT/US2019/039257 patent/WO2020027951A1/en unknown
- 2019-06-26 CN CN201980044142.9A patent/CN112368688A/zh active Pending
- 2019-06-26 EP EP19740187.0A patent/EP3830702A1/en active Pending
- 2019-06-26 JP JP2021505214A patent/JP7123235B2/ja active Active
-
2020
- 2020-07-24 US US16/938,381 patent/US11467870B2/en active Active
-
2022
- 2022-10-07 US US18/045,128 patent/US20230055695A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000347940A (ja) * | 1999-06-08 | 2000-12-15 | Matsushita Electric Ind Co Ltd | メモリ管理装置 |
JP2016527652A (ja) * | 2014-07-21 | 2016-09-08 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | 多数の異なるアドレス空間をサポートするプロセッサにおける効率的なアドレス変換キャッシング |
US20160092677A1 (en) * | 2014-09-30 | 2016-03-31 | Amazon Technologies, Inc. | Allocation of shared system resources |
Also Published As
Publication number | Publication date |
---|---|
KR20210024636A (ko) | 2021-03-05 |
CN112368688A (zh) | 2021-02-12 |
US20200042348A1 (en) | 2020-02-06 |
US20230055695A1 (en) | 2023-02-23 |
JP7123235B2 (ja) | 2022-08-22 |
KR102540754B1 (ko) | 2023-06-08 |
WO2020027951A1 (en) | 2020-02-06 |
EP3830702A1 (en) | 2021-06-09 |
US11467870B2 (en) | 2022-10-11 |
US10725822B2 (en) | 2020-07-28 |
US20210011760A1 (en) | 2021-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7123235B2 (ja) | 仮想化用のgpuタスクコンテナとしてのvmid | |
US10037228B2 (en) | Efficient memory virtualization in multi-threaded processing units | |
US10169091B2 (en) | Efficient memory virtualization in multi-threaded processing units | |
US10310973B2 (en) | Efficient memory virtualization in multi-threaded processing units | |
US9436504B2 (en) | Techniques for managing the execution order of multiple nested tasks executing on a parallel processor | |
JP5583180B2 (ja) | 仮想gpu | |
JP5170782B2 (ja) | ヘテロジニアス処理ユニットのための集中デバイス仮想化レイヤ | |
US11741019B2 (en) | Memory pools in a memory model for a unified computing system | |
US11327900B2 (en) | Securing memory accesses in a virtualized environment | |
TWI488118B (zh) | 處理系統中動態產生任務的傳訊、排序和執行 | |
US9626216B2 (en) | Graphics processing unit sharing between many applications | |
TW201337750A (zh) | 多層指令快取預先擷取 | |
KR101900436B1 (ko) | 결합된 cpu/gpu 아키텍처 시스템에서의 디바이스의 발견 및 토폴로지 보고 | |
US11934867B2 (en) | Techniques for divergent thread group execution scheduling | |
US11625279B2 (en) | Read-write page replication for multiple compute units | |
TW201351276A (zh) | 計算工作的排程和執行 | |
US11132146B2 (en) | Technique for efficiently allowing simultaneous access to resources in a computing system | |
TW201342229A (zh) | 分散操作的批次重播 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210322 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220322 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220627 |
|
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: 20220712 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220809 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7123235 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |