JP6374038B2 - ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム - Google Patents
ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム Download PDFInfo
- Publication number
- JP6374038B2 JP6374038B2 JP2016574095A JP2016574095A JP6374038B2 JP 6374038 B2 JP6374038 B2 JP 6374038B2 JP 2016574095 A JP2016574095 A JP 2016574095A JP 2016574095 A JP2016574095 A JP 2016574095A JP 6374038 B2 JP6374038 B2 JP 6374038B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- draw call
- shader
- draw
- signal indicating
- 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
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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/10—Intensity circuits
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/08—Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
Description
Process_Draw()
{
If DrawBegin() {
If DrawRequiresUAVCoherency() {
Wait on (PendingGOCounter==0);
}
If DrawOutputsUAV() {
Wait on (AllocateGroupID()!=NULL); // グループIDが利用可能になるまで待機する
CurrentGroupID=AllocateGroupID();
Push.GroupIDFIFO(CurrentGroupID);
}
}
For all PS threads in the CurrentDraw { // すなわち、in CurrentGrouplD
PendingFFTID[GroupID]++;
LaunchPSThread[FFTID];
}
If DrawEnd() {
PendingGOCounter++;
}
}
Process DecrementFFTIDCounter(GroupID) { // PSスレッド回収がこのプロセスを呼び出す
PendingFFTID[GroupID]--;
}
Process PostGONotification(GroupID) { // 最初のエントリのpendingFFTIDcounterが0になると、このプロセスがトリガされる
If (PendingFFTID[GoupIDFIFO.TopEntry]==0) AND (PendingGOCounter>0) {
PostGONotification();
}
}
Process DecrementPendingGOCounter() { // 下流からのGOアクノレッジメントの受信により呼び出される
PendingGOCounter--;
}
例1は、コンテンツを受信する無線機と、共有リソースと、前記共有リソースに関連付けられているソフトウェアモジュールを実行するホストプロセッサと、シェーダディスパッチモジュールと、を備えるシステムを含み得る。前記シェーダディスパッチモジュールは、前記ソフトウェアモジュールから、前記コンテンツに関連するドローコールが前記共有リソースにアクセスするかどうかを示す第1の信号と、前記ドローコールの境界に到達したかどうかを示す第2の信号と、前記ドローコールがコヒーレンシ要件を有するかどうかを示す第3の信号と、を含む複数の信号を受信するインタフェースを含み得る。前記シェーダディスパッチモジュールは、前記複数の信号に基づいて、シェーダインボケーションにおいて、前記ドローコールに対応するワークロードを選択的にディスパッチするドローコールマネージャをさらに含み得る。前記システムは、前記コンテンツを視覚的に提示するディスプレイをさらに備え得る。
本出願は、2014年6月26日に出願された米国特許出願第14/315597号に対する優先権の利益を主張する。
Claims (10)
- 視覚的コンテンツを出力するシステムであって、
コンテンツを受信する無線機と、
共有リソースと、
前記共有リソースに関連付けられているソフトウェアモジュールを実行するホストプロセッサと、
シェーダディスパッチモジュールであって、
前記ソフトウェアモジュールから、前記コンテンツに関連するドローコールが前記共有リソースにアクセスするかどうかを示す第1の信号と、前記ドローコールの境界に到達したかどうかを示す第2の信号と、前記ドローコールがコヒーレンシ要件を有するかどうかを示す第3の信号と、を含む複数の信号を受信するインタフェースと、
前記複数の信号に基づいて、シェーダインボケーションにおいて、前記ドローコールに対応するワークロードを選択的にディスパッチするドローコールマネージャと、
を含むシェーダディスパッチモジュールと、
前記コンテンツを視覚的に提示するディスプレイと、
を備えたシステム。 - 前記ドローコールマネージャは、
スレッドカウンタと、
前記ドローコールに関連付けられているスレッドグループ内のスレッドごとに前記スレッドカウンタをインクリメントするインクリメントユニットと、
前記スレッドグループ内のスレッドを前記シェーダインボケーションにディスパッチする起動ユニットと、
前記スレッドグループ内の各スレッドの回収に応じて、前記スレッドカウンタをデクリメントするデクリメントユニットと、
を含む、請求項1記載のシステム。 - シェーダディスパッチモジュールを動作させる方法であって、
共有リソースに関連付けられているソフトウェアモジュールから、ドローコールが前記共有リソースにアクセスするかどうかを示す第1の信号と、前記ドローコールの境界に到達したかどうかを示す第2の信号と、前記ドローコールがコヒーレンシ要件を有するかどうかを示す第3の信号と、を含む複数の信号を受信するステップと、
前記複数の信号に基づいて、シェーダインボケーションにおいて、前記ドローコールに対応するワークロードを選択的にディスパッチするステップと、
を含む方法。 - 前記ドローコールに関連付けられているスレッドグループ内のスレッドごとにスレッドカウンタをインクリメントするステップと、
前記スレッドグループ内のスレッドを前記シェーダインボケーションにディスパッチするステップと、
前記スレッドグループ内の各スレッドの回収に応じて、前記スレッドカウンタをデクリメントするステップと、
をさらに含む、請求項3記載の方法。 - コンピュータプログラムであって、前記コンピュータプログラムが、コンピューティングデバイスのシェーダディスパッチモジュールにより実行されたときに、前記コンピュータプログラムは、前記シェーダディスパッチモジュールに、
共有リソースに関連付けられているソフトウェアモジュールから、ドローコールが前記共有リソースにアクセスするかどうかを示す第1の信号と、前記ドローコールの境界に到達したかどうかを示す第2の信号と、前記ドローコールがコヒーレンシ要件を有するかどうかを示す第3の信号と、を含む複数の信号を受信するステップと、
前記複数の信号に基づいて、シェーダインボケーションにおいて、前記ドローコールに対応するワークロードを選択的にディスパッチするステップと、
を実行させる、コンピュータプログラム。 - 前記コンピュータプログラムが、前記シェーダディスパッチモジュールにより実行されたときに、前記コンピュータプログラムは、前記シェーダディスパッチモジュールに、
前記ドローコールに関連付けられているスレッドグループ内のスレッドごとにスレッドカウンタをインクリメントするステップと、
前記スレッドグループ内のスレッドを前記シェーダインボケーションにディスパッチするステップと、
前記スレッドグループ内の各スレッドの回収に応じて、前記スレッドカウンタをデクリメントするステップと、
を実行させる、請求項5記載のコンピュータプログラム。 - 共有リソースに関連付けられているソフトウェアモジュールから、ドローコールが前記共有リソースにアクセスするかどうかを示す第1の信号と、前記ドローコールの境界に到達したかどうかを示す第2の信号と、前記ドローコールがコヒーレンシ要件を有するかどうかを示す第3の信号と、を含む複数の信号を受信するインタフェースと、
前記複数の信号に基づいて、シェーダインボケーションにおいて、前記ドローコールに対応するワークロードを選択的にディスパッチするドローコールマネージャと、
を備えたシェーダディスパッチモジュール。 - 前記ドローコールマネージャは、
スレッドカウンタと、
前記ドローコールに関連付けられているスレッドグループ内のスレッドごとに前記スレッドカウンタをインクリメントするインクリメントユニットと、
前記スレッドグループ内のスレッドを前記シェーダインボケーションにディスパッチする起動ユニットと、
前記スレッドグループ内の各スレッドの回収に応じて、前記スレッドカウンタをデクリメントするデクリメントユニットと、
を含む、請求項7記載のシェーダディスパッチモジュール。 - 共有リソースに関連付けられているソフトウェアモジュールから、ドローコールが前記共有リソースにアクセスするかどうかを示す第1の信号と、前記ドローコールの境界に到達したかどうかを示す第2の信号と、前記ドローコールがコヒーレンシ要件を有するかどうかを示す第3の信号と、を含む複数の信号を受信する手段と、
前記複数の信号に基づいて、シェーダインボケーションにおいて、前記ドローコールに対応するワークロードを選択的にディスパッチする手段と、
を備えたシェーダディスパッチモジュール。 - 請求項5又は6記載のコンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/315,597 US9928564B2 (en) | 2014-06-26 | 2014-06-26 | Efficient hardware mechanism to ensure shared resource data coherency across draw calls |
US14/315,597 | 2014-06-26 | ||
PCT/US2015/034263 WO2015199941A1 (en) | 2014-06-26 | 2015-06-04 | Efficient hardware mechanism to ensure shared resource data coherency across draw calls |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017526045A JP2017526045A (ja) | 2017-09-07 |
JP6374038B2 true JP6374038B2 (ja) | 2018-08-15 |
Family
ID=54931073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016574095A Expired - Fee Related JP6374038B2 (ja) | 2014-06-26 | 2015-06-04 | ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム |
Country Status (7)
Country | Link |
---|---|
US (1) | US9928564B2 (ja) |
EP (1) | EP3161782A4 (ja) |
JP (1) | JP6374038B2 (ja) |
KR (1) | KR102266462B1 (ja) |
CN (1) | CN106462938B (ja) |
SG (1) | SG11201609130XA (ja) |
WO (1) | WO2015199941A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572399B2 (en) * | 2016-07-13 | 2020-02-25 | Qualcomm Incorporated | Memory request arbitration |
US10311626B2 (en) | 2016-10-19 | 2019-06-04 | Advanced Micro Devices, Inc. | System and method for identifying graphics workloads for dynamic allocation of resources among GPU shaders |
US10672175B2 (en) * | 2017-04-17 | 2020-06-02 | Intel Corporation | Order independent asynchronous compute and streaming for graphics |
US10878611B2 (en) | 2018-01-26 | 2020-12-29 | Nvidia Corporation | Techniques for pre-processing index buffers for a graphics processing pipeline |
US10909739B2 (en) * | 2018-01-26 | 2021-02-02 | Nvidia Corporation | Techniques for representing and processing geometry within an expanded graphics processing pipeline |
US10600229B2 (en) | 2018-01-26 | 2020-03-24 | Nvidia Corporation | Techniques for representing and processing geometry within a graphics processing pipeline |
US10916052B2 (en) | 2019-04-26 | 2021-02-09 | Intel Corporation | Dynamically enabling tiling in 3D workloads |
US11204801B2 (en) * | 2019-11-14 | 2021-12-21 | Intel Corporation | Method and apparatus for scheduling thread order to improve cache efficiency |
CN116188243A (zh) * | 2023-03-02 | 2023-05-30 | 格兰菲智能科技有限公司 | 图形绘制流水线管理方法和图形处理器 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3407358B2 (ja) * | 1993-11-05 | 2003-05-19 | 富士通株式会社 | バリア同期における非同期通信完了保証方法 |
US5434995A (en) * | 1993-12-10 | 1995-07-18 | Cray Research, Inc. | Barrier synchronization for distributed memory massively parallel processing systems |
JP2001051966A (ja) * | 1999-08-16 | 2001-02-23 | Nec Corp | ノード装置、並列処理システム、並列処理方法、および、並列処理プログラムを記録した記録媒体 |
US6697074B2 (en) * | 2000-11-28 | 2004-02-24 | Nintendo Co., Ltd. | Graphics system interface |
US7234144B2 (en) * | 2002-01-04 | 2007-06-19 | Microsoft Corporation | Methods and system for managing computational resources of a coprocessor in a computing system |
US7421694B2 (en) * | 2003-02-18 | 2008-09-02 | Microsoft Corporation | Systems and methods for enhancing performance of a coprocessor |
US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US7728841B1 (en) * | 2005-12-19 | 2010-06-01 | Nvidia Corporation | Coherent shader output for multiple targets |
US7877565B1 (en) * | 2006-01-31 | 2011-01-25 | Nvidia Corporation | Constant versioning for multi-threaded processing |
US7778800B2 (en) | 2006-08-01 | 2010-08-17 | Nvidia Corporation | Method and system for calculating performance parameters for a processor |
US9024957B1 (en) * | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US8698087B2 (en) * | 2008-11-03 | 2014-04-15 | The Trustees Of The University Of Pennsylvania | Limited angle tomography with time-of-flight PET |
US8624907B2 (en) * | 2009-06-26 | 2014-01-07 | Intel Corporation | Graphics analysis techniques |
US8581916B2 (en) * | 2009-06-26 | 2013-11-12 | Intel Corporation | Graphics analysis techniques |
US9324175B2 (en) * | 2009-09-11 | 2016-04-26 | Nvidia Corporation | Memory coherency in graphics command streams and shaders |
US9349154B2 (en) | 2010-04-05 | 2016-05-24 | Nvidia Corporation | Bindless texture and image API |
US9804995B2 (en) * | 2011-01-14 | 2017-10-31 | Qualcomm Incorporated | Computational resource pipelining in general purpose graphics processing unit |
US8752018B2 (en) * | 2011-06-21 | 2014-06-10 | Nvidia Corporation | Emitting coherent output from multiple threads for printf |
JP5751181B2 (ja) * | 2012-01-24 | 2015-07-22 | 富士通セミコンダクター株式会社 | 命令制御回路、プロセッサ、及び命令制御方法 |
KR20130123645A (ko) | 2012-05-03 | 2013-11-13 | 삼성전자주식회사 | 그래픽 처리 장치를 위한 동적 로드 밸런싱 장치 및 방법 |
US8928679B2 (en) | 2012-09-14 | 2015-01-06 | Advanced Micro Devices, Inc. | Work distribution for higher primitive rates |
US9292414B2 (en) * | 2012-11-26 | 2016-03-22 | Nvidia Corporation | System, method, and computer program product for debugging graphics programs locally utilizing a system with a single GPU |
US9489763B2 (en) | 2012-12-18 | 2016-11-08 | Nvidia Corporation | Techniques for setting up and executing draw calls |
US9582848B2 (en) * | 2012-12-28 | 2017-02-28 | Apple Inc. | Sprite Graphics rendering system |
GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
CN103679789B (zh) * | 2013-12-09 | 2017-01-18 | 北京大学 | 基于数据流图的并行绘制与可视化方法及系统 |
-
2014
- 2014-06-26 US US14/315,597 patent/US9928564B2/en active Active
-
2015
- 2015-06-04 EP EP15811368.8A patent/EP3161782A4/en not_active Withdrawn
- 2015-06-04 JP JP2016574095A patent/JP6374038B2/ja not_active Expired - Fee Related
- 2015-06-04 CN CN201580027624.5A patent/CN106462938B/zh not_active Expired - Fee Related
- 2015-06-04 WO PCT/US2015/034263 patent/WO2015199941A1/en active Application Filing
- 2015-06-04 KR KR1020167032964A patent/KR102266462B1/ko active IP Right Grant
- 2015-06-04 SG SG11201609130XA patent/SG11201609130XA/en unknown
Also Published As
Publication number | Publication date |
---|---|
US9928564B2 (en) | 2018-03-27 |
CN106462938A (zh) | 2017-02-22 |
US20150379661A1 (en) | 2015-12-31 |
JP2017526045A (ja) | 2017-09-07 |
WO2015199941A1 (en) | 2015-12-30 |
SG11201609130XA (en) | 2016-11-29 |
KR102266462B1 (ko) | 2021-06-17 |
CN106462938B (zh) | 2020-02-21 |
EP3161782A1 (en) | 2017-05-03 |
EP3161782A4 (en) | 2018-01-17 |
KR20170005023A (ko) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6374038B2 (ja) | ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム | |
TWI639973B (zh) | 動態再平衡圖型處理器資源的方法、裝置與系統 | |
TWI546737B (zh) | 用於程序先佔之系統、方法、設備以及電腦可讀儲存媒體 | |
US20140007111A1 (en) | Systems, methods, and computer program products for preemption of threads at a synchronization barrier | |
TWI535277B (zh) | 用於深度緩衝之方法、設備及系統 | |
JP6182225B2 (ja) | カラーバッファ圧縮 | |
TWI615807B (zh) | 用於記錄在輸入幾何物件粒度上的可視度測試之結果的方法、設備及系統 | |
US20080088636A1 (en) | System and method for the display and control of virtual environments in a single pipe graphics memory controller hub using picture-in-picture | |
JP5908957B2 (ja) | ショートループアトミックアクセス | |
JP6419856B2 (ja) | 非特権アプリケーションによるグラフィクスワークロード・サブミッション | |
US9563561B2 (en) | Initiation of cache flushes and invalidations on graphics processors | |
US9984430B2 (en) | Ordering threads as groups in a multi-threaded, multi-core graphics compute system | |
JP6484898B2 (ja) | デプスオフセット圧縮 | |
US9823927B2 (en) | Range selection for data parallel programming environments | |
JP2015508528A (ja) | パイプライン化された画像処理シーケンサ | |
JP5955915B2 (ja) | グラフィック処理アーキテクチャにおけるポストシンクロナイゼーションオペレーションとしてのアトミックオペレーションのサポート | |
TW201602961A (zh) | 用以延遲著色之串流壓縮去鋸齒方法 | |
JP5968463B2 (ja) | データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング | |
TWI610178B (zh) | 共享函數多埠rom系統及裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180306 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180601 |
|
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: 20180619 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180718 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6374038 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |