JP6419856B2 - 非特権アプリケーションによるグラフィクスワークロード・サブミッション - Google Patents
非特権アプリケーションによるグラフィクスワークロード・サブミッション Download PDFInfo
- Publication number
- JP6419856B2 JP6419856B2 JP2016572728A JP2016572728A JP6419856B2 JP 6419856 B2 JP6419856 B2 JP 6419856B2 JP 2016572728 A JP2016572728 A JP 2016572728A JP 2016572728 A JP2016572728 A JP 2016572728A JP 6419856 B2 JP6419856 B2 JP 6419856B2
- Authority
- JP
- Japan
- Prior art keywords
- submission
- commands
- controller
- workload
- graphics
- 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
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
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
- Power Sources (AREA)
- Advance Control (AREA)
Description
本出願は、2014年6月26日に出願された米国特許出願第14/315,626号の優先権を主張する。
例えば3次元(3D)レンダリング及びメディアプレーヤアプリケーションのようなグラフィクス関連アプリケーションは、グラフィック処理ユニット(GPU)リソースへの直接アクセスを提供する特権(privilege)を有していないことがある。したがって、相対的に非特権の(例えばシステムレベル特権を持っていない)「リング3」保護レベルに存在する所与のグラフィクスアプリケーションは、グラフィクスユーザモード・ドライバ(UMD)をロードする可能性があり、このグラフィクスユーザモード・ドライバ(UMD)は、(例えばシステムレベル特権を有する)「リング0」保護レベルに存在するオペレーティングシステム(OS)及び/又はカーネルモード・ドライバ(KMD)へワークロードをサブミット(提示)(submit)する。OSは、例えばページングのようなメモリ操作を管理し、KMDは、例えばGPUコマンドバッファ及びハードウェアレジスタに、サブミットされたワークロードに対応するコマンドを追加(populate)することがあり、GPUは、これらのコマンドを使用してワークロードを実行し得る。OS及びKMDによるワークロードの中間処理は、中央処理ユニット(CPU)にオーバヘッドを与え、処理遅延を増大させる可能性がある。そのような処理遅延は、性能、消費電力及び/又はバッテリ寿命に悪影響を及ぼす可能性がある。
例1は、グラフィクスワークロードを管理するためのシステムを含み、当該システムは、グラフィクスハードウェアコンポーネントと、システムレベル特権を持っていないアプリケーションを実行するホストプロセッサと、アプリケーションによるワークロード・サブミッションの通知を発行するメモリデバイスと、コントローラを備える。コントローラは、ワークロード・サブミッションの通知を受け取る通知モジュールと、実行のためにグラフィクスハードウェアコンポーネントへのワークロード・サブミッションの転送をスケジュールするスケジューラとを含み得る。
Claims (26)
- グラフィクスワークロードを管理するためのシステムであって:
グラフィクスハードウェアコンポーネントと;
システムレベル特権を持っていないアプリケーションを実行するホストプロセッサと;
前記アプリケーションによるワークロード・サブミッションの通知を発行するメモリデバイスと;
前記ワークロード・サブミッションの通知を受け取る通知モジュール、及び
実行のために前記グラフィクスハードウェアコンポーネントへの前記ワークロード・サブミッションの転送をスケジュールするスケジューラ、
を含むコントローラと;
を備え、前記スケジューラは、前記ワークロード・サブミッションを解析して1つ以上のコマンドを取得するパーサを含み、前記ワークロード・サブミッションを解析することは、1つ以上の信頼できないアプリケーションが特権コマンドを前記グラフィクスハードウェアコンポーネントにサブミットすることを防ぐことを含む、システム。 - 前記転送は、前記ホストプロセッサに関連付けられるオペレーティングシステムをバイパスする、
請求項1に記載のシステム。 - 前記転送は、前記グラフィクスハードウェアコンポーネントに関連付けられるカーネルモード・ドライバをバイパスする、
請求項1に記載のシステム。 - 前記通知は割込みである、
請求項1に記載のシステム。 - 前記スケジューラは、
前記アプリケーションに関連付けられるワークキューから前記ワークロード・サブミッションを取り出す、取出しコンポーネントと、
前記1つ以上のコマンドを、前記グラフィクスハードウェアコンポーネントに関連付けられるサブミッションキューに追加する、エンキューコンポーネントと、
グラフィクスサブミッションポリシーに従って、前記サブミッションキューから前記グラフィクスハードウェアコンポーネントへ前記1つ以上のコマンドを転送する、デキューコンポーネントと、
を含む、請求項1乃至3のいずれか一項に記載のシステム。 - 前記パーサは、前記1つ以上のコマンドのうちの少なくとも1つを修正し、前記1つ以上のコマンドに少なくとも1つのコマンドを追加し、前記1つ以上のコマンドに優先順位を付ける、
請求項5に記載のシステム。 - コントローラを動作させる方法であって:
前記コントローラにおいて、システムレベル特権を持っていないアプリケーションによるワークロード・サブミッションの通知を受け取るステップと;
前記ワークロード・サブミッションを解析して1つ以上のコマンドを取得するステップであって、前記ワークロード・サブミッションを解析することは、1つ以上の信頼できないアプリケーションが特権コマンドをグラフィクスハードウェアコンポーネントにサブミットすることを防ぐことを含む、ステップと;
前記コントローラを使用して、実行のために前記グラフィクスハードウェアコンポーネントへの前記ワークロード・サブミッションの転送をスケジュールするステップと;
を備え、前記コントローラはシステムレベル特権を有する、
方法。 - 前記転送は、オペレーティングシステムをバイパスする、
請求項7に記載の方法。 - 前記転送は、前記グラフィクスハードウェアコンポーネントに関連付けられるカーネルモード・ドライバをバイパスする、
請求項7に記載の方法。 - 前記通知は割込みである、
請求項7に記載の方法。 - 前記コントローラを使用して、前記転送をスケジュールするステップは、
前記アプリケーションに関連付けられるワークキューから前記ワークロード・サブミッションを取り出すステップと、
前記1つ以上のコマンドを、前記グラフィクスハードウェアコンポーネントに関連付けられるサブミッションキューに追加するステップと、
グラフィクスサブミッションポリシーに従って、前記サブミッションキューから前記グラフィクスハードウェアコンポーネントへ前記1つ以上のコマンドを転送するステップと、
を含む、請求項7乃至10のいずれか一項に記載の方法。 - 前記ワークロード・サブミッションを解析することは、
前記1つ以上のコマンドのうちの少なくとも1つを修正するステップと、
前記1つ以上のコマンドに少なくとも1つのコマンドを追加するステップと、
前記1つ以上のコマンドに優先順位を付けるステップと、
を含む、請求項11に記載の方法。 - グラフィクスワークロードを管理するコントローラであって:
システムレベル特権を持っていないアプリケーションによるワークロード・サブミッションの通知を受け取る通知モジュールと;
前記ワークロード・サブミッションを解析して1つ以上のコマンドを取得するパーサであって、前記ワークロード・サブミッションを解析することは、1つ以上の信頼できないアプリケーションが特権コマンドをグラフィクスハードウェアコンポーネントにサブミットすることを防ぐことを含む、パーサと;
実行のために前記グラフィクスハードウェアコンポーネントへの前記ワークロード・サブミッションの転送をスケジュールするスケジューラであって、システムレベル特権を有するスケジューラと;
を備える、コントローラ。 - 前記転送は、オペレーティングシステムをバイパスする、
請求項13に記載のコントローラ。 - 前記転送は、前記グラフィクスハードウェアコンポーネントに関連付けられるカーネルモード・ドライバをバイパスする、
請求項13に記載のコントローラ。 - 前記通知は割込みである、
請求項13に記載のコントローラ。 - 前記スケジューラは、
前記アプリケーションに関連付けられるワークキューから前記ワークロード・サブミッションを取り出す、取出しコンポーネントと、
前記1つ以上のコマンドを、前記グラフィクスハードウェアコンポーネントに関連付けられるサブミッションキューに追加する、エンキューコンポーネントと、
グラフィクスサブミッションポリシーに従って、前記サブミッションキューから前記グラフィクスハードウェアコンポーネントへ前記1つ以上のコマンドを転送する、デキューコンポーネントと、
を含む、請求項13乃至16のいずれか一項に記載のコントローラ。 - 前記パーサは、前記1つ以上のコマンドのうちの少なくとも1つを修正し、前記1つ以上のコマンドに少なくとも1つのコマンドを追加し、前記1つ以上のコマンドに優先順位を付ける、
請求項17に記載のコントローラ。 - コントローラによって実行されると、該コントローラに、
システムレベル特権を持っていないアプリケーションによるワークロード・サブミッションの通知を受け取らせ、
前記ワークロード・サブミッションを解析させて1つ以上のコマンドを取得させることであって、前記ワークロード・サブミッションの解析は、1つ以上の信頼できないアプリケーションが特権コマンドをグラフィクスハードウェアコンポーネントにサブミットすることを防ぐことを含むことと;
実行のために前記グラフィクスハードウェアコンポーネントへの前記ワークロード・サブミッションの転送をスケジュールさせ、
前記コントローラがシステムレベル特権を有する、
コンピュータプログラム。 - 前記転送は、オペレーティングシステムをバイパスする、
請求項19に記載のコンピュータプログラム。 - 前記転送は、前記グラフィクスハードウェアコンポーネントに関連付けられるカーネルモード・ドライバをバイパスする、
請求項19に記載のコンピュータプログラム。 - 前記通知は割込みである、
請求項19に記載のコンピュータプログラム。 - 実行されると、前記コントローラに、
前記アプリケーションに関連付けられるワークキューから前記ワークロード・サブミッションを取り出させ、
前記1つ以上のコマンドを、前記グラフィクスハードウェアコンポーネントに関連付けられるサブミッションキューに追加させ、
グラフィクスサブミッションポリシーに従って、前記サブミッションキューから前記グラフィクスハードウェアコンポーネントへ前記1つ以上のコマンドを転送させる、
請求項19乃至22のいずれか一項に記載のコンピュータプログラム。 - 実行されると、前記コントローラに、
前記1つ以上のコマンドのうちの少なくとも1つを修正させ、
前記1つ以上のコマンドに少なくとも1つのコマンドを追加させ、
前記1つ以上のコマンドに優先順位を付けさせる、
請求項23に記載のコンピュータプログラム。 - グラフィクスワークロードを管理するコントローラであって:
当該コントローラにおいて、システムレベル特権を持っていないアプリケーションによるワークロード・サブミッションの通知を受け取るための手段と;
前記ワークロード・サブミッションを解析して1つ以上のコマンドを取得するための手段であって、前記ワークロード・サブミッションを解析することは、1つ以上の信頼できないアプリケーションが特権コマンドをグラフィクスハードウェアコンポーネントにサブミットすることを防ぐことを含む、手段と;
当該コントローラを使用して、実行のために前記グラフィクスハードウェアコンポーネントへの前記ワークロード・サブミッションの転送をスケジュールするための手段と;
を備え、当該コントローラはシステムレベル特権を有する、
コントローラ。 - 請求項19乃至24のいずれか一項に記載のコンピュータプログラムを記憶する、少なくとも1つのコンピュータ読取可能記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/315,626 | 2014-06-26 | ||
US14/315,626 US9773292B2 (en) | 2014-06-26 | 2014-06-26 | Graphics workload submissions by unprivileged applications |
PCT/US2015/034890 WO2015199971A1 (en) | 2014-06-26 | 2015-06-09 | Graphics workload submissions by unprivileged applications |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017526998A JP2017526998A (ja) | 2017-09-14 |
JP6419856B2 true JP6419856B2 (ja) | 2018-11-07 |
Family
ID=54931074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016572728A Active JP6419856B2 (ja) | 2014-06-26 | 2015-06-09 | 非特権アプリケーションによるグラフィクスワークロード・サブミッション |
Country Status (7)
Country | Link |
---|---|
US (1) | US9773292B2 (ja) |
EP (1) | EP3161759A4 (ja) |
JP (1) | JP6419856B2 (ja) |
KR (1) | KR102223446B1 (ja) |
CN (1) | CN106605243A (ja) |
SG (1) | SG11201609203VA (ja) |
WO (1) | WO2015199971A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10410311B2 (en) * | 2016-03-07 | 2019-09-10 | Intel Corporation | Method and apparatus for efficient submission of workload to a high performance graphics sub-system |
US10613972B2 (en) * | 2017-12-29 | 2020-04-07 | Intel Corporation | Dynamic configuration of caches in a multi-context supported graphics processor |
US10424043B1 (en) * | 2018-07-02 | 2019-09-24 | Intel Corporation | Efficiently enqueuing workloads from user mode to hardware across privilege domains |
US11863469B2 (en) * | 2020-05-06 | 2024-01-02 | International Business Machines Corporation | Utilizing coherently attached interfaces in a network stack framework |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6070219A (en) * | 1996-10-09 | 2000-05-30 | Intel Corporation | Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller |
US5861893A (en) * | 1997-05-27 | 1999-01-19 | Intel Corporation | System and method for graphics data concurrency and coherency |
US7421694B2 (en) | 2003-02-18 | 2008-09-02 | Microsoft Corporation | Systems and methods for enhancing performance of a coprocessor |
US8478907B1 (en) * | 2004-10-19 | 2013-07-02 | Broadcom Corporation | Network interface device serving multiple host operating systems |
US8274518B2 (en) | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US7613898B2 (en) * | 2006-01-17 | 2009-11-03 | Globalfoundries Inc. | Virtualizing an IOMMU |
US20090160867A1 (en) | 2007-12-19 | 2009-06-25 | Advance Micro Devices, Inc. | Autonomous Context Scheduler For Graphics Processing Units |
US8780122B2 (en) | 2009-09-16 | 2014-07-15 | Nvidia Corporation | Techniques for transferring graphics data from system memory to a discrete GPU |
US9582919B2 (en) * | 2009-10-09 | 2017-02-28 | Microsoft Technology Licensing, Llc | Automatic run-time identification of textures |
US8872823B2 (en) * | 2009-10-09 | 2014-10-28 | Microsoft Corporation | Automatic real-time shader modification for texture fetch instrumentation |
US8086765B2 (en) * | 2010-04-29 | 2011-12-27 | Hewlett-Packard Development Company, L.P. | Direct I/O device access by a virtual machine with memory managed using memory disaggregation |
US9176794B2 (en) * | 2010-12-13 | 2015-11-03 | Advanced Micro Devices, Inc. | Graphics compute process scheduling |
US9176795B2 (en) * | 2010-12-13 | 2015-11-03 | Advanced Micro Devices, Inc. | Graphics processing dispatch from user mode |
US9294869B2 (en) * | 2013-03-13 | 2016-03-22 | Aliphcom | Methods, systems and apparatus to affect RF transmission from a non-linked wireless client |
US9146785B2 (en) * | 2011-09-14 | 2015-09-29 | Microsoft Technology Licensing, Llc | Application acceleration in a virtualized environment |
US8578129B2 (en) * | 2011-12-14 | 2013-11-05 | Advanced Micro Devices, Inc. | Infrastructure support for accelerated processing device memory paging without operating system integration |
US9099051B2 (en) * | 2012-03-02 | 2015-08-04 | Ati Technologies Ulc | GPU display abstraction and emulation in a virtualization system |
US9304813B2 (en) | 2012-07-18 | 2016-04-05 | Intel Corporation | CPU independent graphics scheduler for performing scheduling operations for graphics hardware |
US9979438B2 (en) * | 2013-06-07 | 2018-05-22 | Apple Inc. | Controlling a media device using a mobile device |
-
2014
- 2014-06-26 US US14/315,626 patent/US9773292B2/en not_active Expired - Fee Related
-
2015
- 2015-06-09 KR KR1020167032922A patent/KR102223446B1/ko active IP Right Grant
- 2015-06-09 EP EP15812826.4A patent/EP3161759A4/en not_active Withdrawn
- 2015-06-09 JP JP2016572728A patent/JP6419856B2/ja active Active
- 2015-06-09 CN CN201580027664.XA patent/CN106605243A/zh active Pending
- 2015-06-09 SG SG11201609203VA patent/SG11201609203VA/en unknown
- 2015-06-09 WO PCT/US2015/034890 patent/WO2015199971A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20150379662A1 (en) | 2015-12-31 |
EP3161759A4 (en) | 2018-03-21 |
KR20160148638A (ko) | 2016-12-26 |
JP2017526998A (ja) | 2017-09-14 |
KR102223446B1 (ko) | 2021-03-04 |
US9773292B2 (en) | 2017-09-26 |
EP3161759A1 (en) | 2017-05-03 |
SG11201609203VA (en) | 2016-12-29 |
CN106605243A (zh) | 2017-04-26 |
WO2015199971A1 (en) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9633230B2 (en) | Hardware assist for privilege access violation checks | |
KR101666416B1 (ko) | 우선순위 기반의 컨텍스트 선점 | |
KR102266462B1 (ko) | 드로우 콜에 걸쳐 공유 리소스 데이터 일관성을 보장하는 효율적인 하드웨어 메커니즘 | |
US20140026137A1 (en) | Performing scheduling operations for graphics hardware | |
US9396513B2 (en) | Using group page fault descriptors to handle context switches and process terminations in graphics processors | |
JP6419856B2 (ja) | 非特権アプリケーションによるグラフィクスワークロード・サブミッション | |
TWI546665B (zh) | 用於圖形處理單元的記憶體映射技術 | |
JP5908957B2 (ja) | ショートループアトミックアクセス | |
US9563561B2 (en) | Initiation of cache flushes and invalidations on graphics processors | |
US9823927B2 (en) | Range selection for data parallel programming environments | |
JP5955915B2 (ja) | グラフィック処理アーキテクチャにおけるポストシンクロナイゼーションオペレーションとしてのアトミックオペレーションのサポート | |
TW201602961A (zh) | 用以延遲著色之串流壓縮去鋸齒方法 | |
JP5968463B2 (ja) | データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング | |
WO2023173315A1 (en) | Methods, system, and apparatus to select among image sensors based on device orientation | |
TWI610178B (zh) | 共享函數多埠rom系統及裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180406 |
|
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: 20180911 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181010 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6419856 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 |