JP2014521167A - グラフィックス処理ユニットでの命令カリング - Google Patents
グラフィックス処理ユニットでの命令カリング Download PDFInfo
- Publication number
- JP2014521167A JP2014521167A JP2014520175A JP2014520175A JP2014521167A JP 2014521167 A JP2014521167 A JP 2014521167A JP 2014520175 A JP2014520175 A JP 2014520175A JP 2014520175 A JP2014520175 A JP 2014520175A JP 2014521167 A JP2014521167 A JP 2014521167A
- Authority
- JP
- Japan
- Prior art keywords
- work item
- values
- instructions
- gpu
- work
- 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
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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1] グラフィックス処理ユニット(GPU)を用いてデータを処理する方法であって、
前記GPUのシェーダプロセッサによって第1のワークアイテムを実行することであって、前記第1のワークアイテムは、入力データを処理するための1つ以上の命令を含むことと、
前記第1のワークアイテムの結果に基づいて1つ以上の値を生成することであって、前記1つ以上の値は、前記結果の1つ以上の特徴を表すことと、
前記1つ以上の値に基づいて第2のワークアイテムを実行すべきかどうかを決定することであって、前記第2のワークアイテムは、前記入力データを処理するための前記第1のワークアイテムの前記1つ以上の命令と別個である1つ以上の命令を含むことと、を備える、方法。
[C2] 前記第2のワークアイテムを前記決定に基づいて命令ストリームから取り除くことをさらに備えるC1に記載の方法。
[C3] 前記第2のワークアイテムを前記命令ストリームから取り除くことは、前記第2のワークアイテムが前記シェーダプロセッサによって実行されるようにスケジューリングする前に前記第2のワークアイテムを取り除くことをさらに備えるC2に記載の方法。
[C4] 前記第1のワークアイテムの前記結果に基づく前記1つ以上の値をバッファに格納することをさらに備えるC1に記載の方法。
[C5] 前記第2のワークアイテムを実行すべきかどうかを決定することは、前記バッファに格納された前記1つ以上の値を読み取ることをさらに備えるC4に記載の方法。
[C6] 前記GPUの前記シェーダプロセッサによって第3のワークアイテムを実行することであって、前記第3のワークアイテムは、前記入力データを処理するための1つ以上の命令を含むことと、
前記第3のワークアイテムの結果に基づいて1つ以上の値を生成することであって、前記1つ以上の値は、前記結果の1つ以上の特徴を表すことと、
前記第3のワークアイテムの前記結果に基づいて前記バッファに格納された前記1つ以上の値を更新することと、
前記1つ以上の値に基づいて第4のワークアイテムを実行すべきかどうかを決定することと、をさらに備えるC4に記載の方法。
[C7] 前記1つ以上の値は、前記第2のワークアイテムの結果が関係があるデータを含むかどうかを示し、前記第2のワークアイテムの前記結果が関係があるデータを含まない場合は前記第2のワークアイテムを実行しないことを決定するC1に記載の方法。
[C8] 前記第1のワークアイテムは、アプリケーションの第1のカーネルと関連付けられ、前記第2のワークアイテムは、前記アプリケーションの第2のカーネルと関連付けられ、前記第1のワークアイテム及び前記第2のワークアイテムは、前記入力データを処理するように構成されるC1に記載の方法。
[C9] 前記GPUの前記シェーダプロセッサによって第1のワークグループを実行することであって、前記第1のワークグループは、アプリケーションの第1のカーネルと関連付けられ、前記第1のワークグループは、入力データを処理するための前記第1のワークアイテムを含む複数の命令を備えることと、
前記第1のワークグループの結果に基づいて1つ以上の値を生成することであって、前記1つ以上の値は、前記結果の1つ以上の特徴を表すことと、
前記1つ以上の値に基づいて第2のワークグループを実行すべきかどうかを決定することであって、前記第2のワークグループは、前記アプリケーションの第2のカーネルと関連付けられ、前記第2のワークグループは、前記入力データを処理するための前記第2のワークアイテムを含む複数の命令を備えることと、をさらに備えるC1に記載の方法。
[C10] グラフィックス処理ユニット(GPU)を用いてデータを処理するための装置であって、
入力データを処理するための1つ以上の命令を含む第1のワークアイテムを実行し、及び前記第1の命令の結果に基づいて1つ以上の値を生成するように構成されたシェーダプロセッサであって、前記1つ以上の値は、前記結果の1つ以上の特徴を表すシェーダプロセッサと、
前記1つ以上の値に基づいて前記第1のワークアイテムの前記1つ以上の命令と別個である1つ以上の命令を含む第2のワークアイテムを実行すべきかどうかを決定するように構成されたカルモジュールと、を備える、装置。
[C11] 前記カルモジュールは、前記決定に基づいて前記第2のワークアイテムを命令ストリームから取り除くようにさらに構成されるC10に記載の装置。
[C12] 前記カルモジュールは、前記第2のワークアイテムが前記シェーダプロセッサによって実行されるようにスケジューリングする前に前記第2のワークアイテムを前記命令ストリームから取り除くようにさらに構成されるC11に記載の装置。
[C13] 前記第1のワークアイテムの前記結果に基づく前記1つ以上の値を格納するように構成されたカルバッファをさらに備えるC10に記載の装置
[C14] 前記カルモジュールは、前記カルバッファに格納された前記1つ以上の値を読み取ることによって前記第2のワークアイテムを実行すべきかどうかを決定するように構成されるC13に記載の装置。
[C15] 前記シェーダプロセッサは、第3のワークアイテムを実行し、前記第3のワークアイテムの結果に基づいて1つ以上の値を生成し、及び前記第3のワークアイテムの前記結果に基づいて前記カルバッファに格納された前記1つ以上の値を更新するようにさらに構成され、前記第3のワークアイテムは、前記入力データを処理するための1つ以上の命令を含み、前記1つ以上の値は、前記結果の1つ以上の特徴を表し、前記カルモジュールは、前記1つ以上の値に基づいて第4のワークアイテムを実行すべきかどうかを決定するようにさらに構成されるC13に記載の方法。
[C16] 前記1つ以上の値は、前記第2のワークアイテムの結果が関係があるデータを含むかどうかを示し、前記カルモジュールは、前記第2のワークアイテムの前記結果が関係があるデータを含まない場合は前記第2のワークアイテムを実行しないことを決定するように構成されるC10に記載の装置。
[C17] 前記第1のワークアイテムは、アプリケーションの第1のカーネルと関連付けられ、前記第2のワークアイテムは、前記アプリケーションの第2のカーネルと関連付けられ、前記第1のワークアイテム及び前記第2のワークアイテムは、前記入力データを処理するように構成されるC10に記載の装置。
[C18] 第1のカーネルと関連付けられた第1のワークグループをさらに備え、前記第1のワークグループは、前記第1のワークアイテムと、第2のカーネルと関連付けられた第2のワークグループとを含む複数の命令を備え、前記第2のワークグループは、前記第2のワークアイテムを含む複数の命令を備え、前記シェーダプロセッサは、前記第1のワークグループを実行し及び前記第1のワークグループの結果に基づいて1つ以上の値を生成するようにさらに構成され、前記1つ以上の値は、前記結果の1つ以上の特徴を表し、前記カルモジュールは、前記1つ以上の値に基づいて前記第2のワークグループを実行すべきかどうかを決定するようにさらに構成されるC10に記載の装置。
[C19] 前記シェーダプロセッサ及びカルモジュールは、ボータブルなコンピューティングデバイスに含められるC10に記載の装置。
[C20] 第1のワークアイテムを実行し、
前記第1のワークアイテムの結果に基づいて1つ以上の値を生成し、及び
前記1つ以上の値に基づいて第2のワークアイテムを実行すべきかどうかを決定することをコンピューティングデバイスの1つ以上のプログラミング可能なプロセッサに行わせるための命令を用いて符号化されたコンピュータによって読み取り可能な記憶媒体であって、前記第1のワークアイテムは、入力データを処理するための1つ以上の命令を含み、前記1つ以上の値は、前記結果の1つ以上の特徴を表し、前記第2のワークアイテムは、前記入力データを処理するための前記第1のワークアイテムと別個の1つ以上の命令を含む、コンピュータによって読み取り可能な記憶媒体。
[C21] 前記決定に基づいて前記第2のワークアイテムを命令ストリームから取り除くことを前記コンピューティングデバイスの1つ以上のプログラミング可能なプロセッサに行わせるための命令をさらに備えるC20に記載のコンピュータによって読み取り可能な記憶媒体。
[C22] 前記第2のワークアイテムを前記命令ストリームから取り除くことは、前記第2のワークアイテムが実行されるようにスケジューリングする前に前記第2のワークアイテムを取り除くことをさらに備えるC21に記載のコンピュータによって読み取り可能な記憶媒体。
[C23] 前記第1のワークアイテムの前記結果に基づく前記1つ以上の値をバッファに格納することを前記コンピューティングデバイスの1つ以上のプログラミング可能なプロセッサに行わせるための命令をさらに備えるC20に記載のコンピュータによって読み取り可能な記憶媒体。
[C24] 前記第2のワークアイテムを実行すべきかどうかを決定することは、前記バッファに格納された前記1つ以上の値を読み取ることをさらに備えるC23に記載のコンピュータによって読み取り可能な記憶媒体。
[C25] 第3の命令を実行し、
前記第3のワークアイテムの結果に基づいて1つ以上の値を生成し、
前記第3のワークアイテムの前記結果に基づいて前記バッファに格納された前記1つ以上の値を更新し、及び
前記1つ以上の値に基づいて第4のワークアイテムを実行すべきかどうかを決定することを前記コンピューティングデバイスの1つ以上のプログラミング可能なプロセッサに行わせるための命令をさらに備え、前記第3のワークアイテムは、入力データを処理するための1つ以上の命令を含み、前記1つ以上の値は、前記結果の1つ以上の特徴を表すC23に記載のコンピュータによって読み取り可能な記憶媒体。
[C26] 前記1つ以上の値は、前記第2のワークアイテムの結果が関係があるデータを含むかどうかを示し、前記第2のワークアイテムの前記結果が関係があるデータを含まない場合は前記第2のワークアイテムを実行しないことを決定するC20に記載のコンピュータによって読み取り可能な記憶媒体。
[C27] 前記第1のワークアイテムは、アプリケーションの第1のカーネルと関連付けられ、前記第2のワークアイテムは、前記アプリケーションの第2のカーネルと関連付けられ、前記第1のワークアイテム及び前記第2のワークアイテムは、前記入力データを処理するように構成されるC20に記載のコンピュータによって読み取り可能な記憶媒体。
[C28] 前記GPUの前記シェーダプロセッサによって第1のワークグループを実行し、
前記第1のワークグループの結果に基づいて1つ以上の値を生成し、及び
前記1つ以上の値に基づいて第2のワークグループを実行すべきかどうかを決定することを前記コンピューティングデバイスの1つ以上のプログラミング可能なプロセッサに行わせるための命令をさらに備え、前記第1のワークグループは、アプリケーションの第1のカーネルと関連付けられ、前記第1のワークグループは、入力データを処理するための前記第1のワークアイテムを含む複数の命令を備え、前記1つ以上の値は、前記結果の1つ以上の特徴を表し、前記第2のワークグループは、前記アプリケーションの第2のカーネルと関連付けられ、前記第2のワークグループは、前記入力データを処理するための前記第2のワークアイテムを含む複数の命令を備えるC27に記載のコンピュータによって読み取り可能な記憶媒体。
[C29] グラフィックス処理ユニット(GPU)を用いてデータを処理するための装置であって、
第1のワークアイテムを実行するための手段であって、前記第1のワークアイテムは、入力データを処理するための1つ以上の命令を含む手段と、
前記第1のワークアイテムの結果に基づいて1つ以上の値を生成するための手段であって、前記1つ以上の値は、前記結果の1つ以上の特徴を表す手段と、
前記1つ以上の値に基づいて第2のワークアイテムを実行すべきかどうかを決定するための手段であって、前記第2のワークアイテムは、前記入力データを処理するための前記第1のワークアイテムと別個の1つ以上の命令を含む手段と、を備える、装置。
[C30] 前記決定に基づいて前記第2のワークアイテムを命令ストリームから取り除くための手段をさらに備えるC29に記載の方法。
[C31] 前記第2のワークアイテムを前記命令ストリームから取り除くことは、前記第2のワークアイテムが実行されるようにスケジューリングする前に前記第2のワークアイテムを取り除くことをさらに備えるC30に記載の方法。
[C32] 前記第1のワークアイテムの前記結果に基づく前記1つ以上の値をバッファに格納するための手段をさらに備えるC29に記載の方法。
[C33] 前記第2のワークアイテムを実行すべきかどうかを決定することは、前記バッファに格納された前記1つ以上の値を読み取ることをさらに備えるC32に記載の方法。
[C34] 第3のワークアイテムを実行するための手段であって、前記第3のワークアイテムは、前記入力データを処理するための1つ以上の命令を含む手段と、
前記第3のワークアイテムの結果に基づいて1つ以上の値を生成するための手段であって、前記1つ以上の値は、前記結果の1つ以上の特徴を表す手段と、
前記第3のワークアイテムの前記結果に基づいて前記バッファに格納された前記1つ以上の値を更新するための手段と、
前記1つ以上の値に基づいて第4のワークアイテムを実行すべきかどうかを決定するための手段であって、前記第4のワークアイテムは、前記入力データを処理するための1つ以上の命令を含む手段と、をさらに備えるC32に記載の方法。
[C35] 前記1つ以上の値は、前記第2のワークアイテムの結果が関係があるデータを含むかどうかを示し、前記第2のワークアイテムの前記結果が関係があるデータを含まない場合は前記第2のワークアイテムを実行しないことを決定するC29に記載の方法。
[C36] 前記第1のワークアイテムは、アプリケーションの第1のカーネルと関連付けられ、前記第2のワークアイテムは、前記アプリケーションの第2のカーネルと関連付けられ、前記第1のワークアイテム及び前記第2のワークアイテムは、前記入力データを処理するように構成されるC29に記載の方法。
[C37] 前記GPUの前記シェーダプロセッサによって第1のワークグループを実行するための手段であって、前記第1のワークグループは、アプリケーションの第1のカーネルと関連付けられ、前記第1のワークグループは、入力データを処理するための前記第1のワークアイテムを含む複数の命令を備える手段と、
前記第1のワークグループの結果に基づいて1つ以上の値を生成するための手段であって、前記1つ以上の値は、前記結果の1つ以上の特徴を表す手段と、
前記1つ以上の値に基づいて第2のワークグループを実行すべきかどうかを決定するための手段であって、前記第2のワークグループは、前記アプリケーションの第2のカーネルと関連付けられ、前記第2のワークグループは、前記入力データを処理するための前記第2のワークアイテムを含む複数の命令を備える手段と、をさらに備えるC29に記載の方法。
Claims (37)
- グラフィックス処理ユニット(GPU)を用いてデータを処理する方法であって、
前記GPUのシェーダプロセッサによって第1のワークアイテムを実行することであって、前記第1のワークアイテムは、入力データを処理するための1つ以上の命令を含むことと、
前記第1のワークアイテムの結果に基づいて1つ以上の値を生成することであって、前記1つ以上の値は、前記結果の1つ以上の特徴を表すことと、
前記1つ以上の値に基づいて第2のワークアイテムを実行すべきかどうかを決定することであって、前記第2のワークアイテムは、前記入力データを処理するための前記第1のワークアイテムの前記1つ以上の命令と別個である1つ以上の命令を含むことと、を備える、方法。 - 前記第2のワークアイテムを前記決定に基づいて命令ストリームから取り除くことをさらに備える請求項1に記載の方法。
- 前記第2のワークアイテムを前記命令ストリームから取り除くことは、前記第2のワークアイテムが前記シェーダプロセッサによって実行されるようにスケジューリングする前に前記第2のワークアイテムを取り除くことをさらに備える請求項2に記載の方法。
- 前記第1のワークアイテムの前記結果に基づく前記1つ以上の値をバッファに格納することをさらに備える請求項1に記載の方法。
- 前記第2のワークアイテムを実行すべきかどうかを決定することは、前記バッファに格納された前記1つ以上の値を読み取ることをさらに備える請求項4に記載の方法。
- 前記GPUの前記シェーダプロセッサによって第3のワークアイテムを実行することであって、前記第3のワークアイテムは、前記入力データを処理するための1つ以上の命令を含むことと、
前記第3のワークアイテムの結果に基づいて1つ以上の値を生成することであって、前記1つ以上の値は、前記結果の1つ以上の特徴を表すことと、
前記第3のワークアイテムの前記結果に基づいて前記バッファに格納された前記1つ以上の値を更新することと、
前記1つ以上の値に基づいて第4のワークアイテムを実行すべきかどうかを決定することと、をさらに備える請求項4に記載の方法。 - 前記1つ以上の値は、前記第2のワークアイテムの結果が関係があるデータを含むかどうかを示し、前記第2のワークアイテムの前記結果が関係があるデータを含まない場合は前記第2のワークアイテムを実行しないことを決定する請求項1に記載の方法。
- 前記第1のワークアイテムは、アプリケーションの第1のカーネルと関連付けられ、前記第2のワークアイテムは、前記アプリケーションの第2のカーネルと関連付けられ、前記第1のワークアイテム及び前記第2のワークアイテムは、前記入力データを処理するように構成される請求項1に記載の方法。
- 前記GPUの前記シェーダプロセッサによって第1のワークグループを実行することであって、前記第1のワークグループは、アプリケーションの第1のカーネルと関連付けられ、前記第1のワークグループは、入力データを処理するための前記第1のワークアイテムを含む複数の命令を備えることと、
前記第1のワークグループの結果に基づいて1つ以上の値を生成することであって、前記1つ以上の値は、前記結果の1つ以上の特徴を表すことと、
前記1つ以上の値に基づいて第2のワークグループを実行すべきかどうかを決定することであって、前記第2のワークグループは、前記アプリケーションの第2のカーネルと関連付けられ、前記第2のワークグループは、前記入力データを処理するための前記第2のワークアイテムを含む複数の命令を備えることと、をさらに備える請求項1に記載の方法。 - グラフィックス処理ユニット(GPU)を用いてデータを処理するための装置であって、
入力データを処理するための1つ以上の命令を含む第1のワークアイテムを実行し、及び前記第1の命令の結果に基づいて1つ以上の値を生成するように構成されたシェーダプロセッサであって、前記1つ以上の値は、前記結果の1つ以上の特徴を表すシェーダプロセッサと、
前記1つ以上の値に基づいて前記第1のワークアイテムの前記1つ以上の命令と別個である1つ以上の命令を含む第2のワークアイテムを実行すべきかどうかを決定するように構成されたカルモジュールと、を備える、装置。 - 前記カルモジュールは、前記決定に基づいて前記第2のワークアイテムを命令ストリームから取り除くようにさらに構成される請求項10に記載の装置。
- 前記カルモジュールは、前記第2のワークアイテムが前記シェーダプロセッサによって実行されるようにスケジューリングする前に前記第2のワークアイテムを前記命令ストリームから取り除くようにさらに構成される請求項11に記載の装置。
- 前記第1のワークアイテムの前記結果に基づく前記1つ以上の値を格納するように構成されたカルバッファをさらに備える請求項10に記載の装置
- 前記カルモジュールは、前記カルバッファに格納された前記1つ以上の値を読み取ることによって前記第2のワークアイテムを実行すべきかどうかを決定するように構成される請求項13に記載の装置。
- 前記シェーダプロセッサは、第3のワークアイテムを実行し、前記第3のワークアイテムの結果に基づいて1つ以上の値を生成し、及び前記第3のワークアイテムの前記結果に基づいて前記カルバッファに格納された前記1つ以上の値を更新するようにさらに構成され、前記第3のワークアイテムは、前記入力データを処理するための1つ以上の命令を含み、前記1つ以上の値は、前記結果の1つ以上の特徴を表し、前記カルモジュールは、前記1つ以上の値に基づいて第4のワークアイテムを実行すべきかどうかを決定するようにさらに構成される請求項13に記載の方法。
- 前記1つ以上の値は、前記第2のワークアイテムの結果が関係があるデータを含むかどうかを示し、前記カルモジュールは、前記第2のワークアイテムの前記結果が関係があるデータを含まない場合は前記第2のワークアイテムを実行しないことを決定するように構成される請求項10に記載の装置。
- 前記第1のワークアイテムは、アプリケーションの第1のカーネルと関連付けられ、前記第2のワークアイテムは、前記アプリケーションの第2のカーネルと関連付けられ、前記第1のワークアイテム及び前記第2のワークアイテムは、前記入力データを処理するように構成される請求項10に記載の装置。
- 第1のカーネルと関連付けられた第1のワークグループをさらに備え、前記第1のワークグループは、前記第1のワークアイテムと、第2のカーネルと関連付けられた第2のワークグループとを含む複数の命令を備え、前記第2のワークグループは、前記第2のワークアイテムを含む複数の命令を備え、前記シェーダプロセッサは、前記第1のワークグループを実行し及び前記第1のワークグループの結果に基づいて1つ以上の値を生成するようにさらに構成され、前記1つ以上の値は、前記結果の1つ以上の特徴を表し、前記カルモジュールは、前記1つ以上の値に基づいて前記第2のワークグループを実行すべきかどうかを決定するようにさらに構成される請求項10に記載の装置。
- 前記シェーダプロセッサ及びカルモジュールは、ボータブルなコンピューティングデバイスに含められる請求項10に記載の装置。
- 第1のワークアイテムを実行し、
前記第1のワークアイテムの結果に基づいて1つ以上の値を生成し、及び
前記1つ以上の値に基づいて第2のワークアイテムを実行すべきかどうかを決定することをコンピューティングデバイスの1つ以上のプログラミング可能なプロセッサに行わせるための命令を用いて符号化されたコンピュータによって読み取り可能な記憶媒体であって、前記第1のワークアイテムは、入力データを処理するための1つ以上の命令を含み、前記1つ以上の値は、前記結果の1つ以上の特徴を表し、前記第2のワークアイテムは、前記入力データを処理するための前記第1のワークアイテムと別個の1つ以上の命令を含む、コンピュータによって読み取り可能な記憶媒体。 - 前記決定に基づいて前記第2のワークアイテムを命令ストリームから取り除くことを前記コンピューティングデバイスの1つ以上のプログラミング可能なプロセッサに行わせるための命令をさらに備える請求項20に記載のコンピュータによって読み取り可能な記憶媒体。
- 前記第2のワークアイテムを前記命令ストリームから取り除くことは、前記第2のワークアイテムが実行されるようにスケジューリングする前に前記第2のワークアイテムを取り除くことをさらに備える請求項21に記載のコンピュータによって読み取り可能な記憶媒体。
- 前記第1のワークアイテムの前記結果に基づく前記1つ以上の値をバッファに格納することを前記コンピューティングデバイスの1つ以上のプログラミング可能なプロセッサに行わせるための命令をさらに備える請求項20に記載のコンピュータによって読み取り可能な記憶媒体。
- 前記第2のワークアイテムを実行すべきかどうかを決定することは、前記バッファに格納された前記1つ以上の値を読み取ることをさらに備える請求項23に記載のコンピュータによって読み取り可能な記憶媒体。
- 第3の命令を実行し、
前記第3のワークアイテムの結果に基づいて1つ以上の値を生成し、
前記第3のワークアイテムの前記結果に基づいて前記バッファに格納された前記1つ以上の値を更新し、及び
前記1つ以上の値に基づいて第4のワークアイテムを実行すべきかどうかを決定することを前記コンピューティングデバイスの1つ以上のプログラミング可能なプロセッサに行わせるための命令をさらに備え、前記第3のワークアイテムは、入力データを処理するための1つ以上の命令を含み、前記1つ以上の値は、前記結果の1つ以上の特徴を表す請求項23に記載のコンピュータによって読み取り可能な記憶媒体。 - 前記1つ以上の値は、前記第2のワークアイテムの結果が関係があるデータを含むかどうかを示し、前記第2のワークアイテムの前記結果が関係があるデータを含まない場合は前記第2のワークアイテムを実行しないことを決定する請求項20に記載のコンピュータによって読み取り可能な記憶媒体。
- 前記第1のワークアイテムは、アプリケーションの第1のカーネルと関連付けられ、前記第2のワークアイテムは、前記アプリケーションの第2のカーネルと関連付けられ、前記第1のワークアイテム及び前記第2のワークアイテムは、前記入力データを処理するように構成される請求項20に記載のコンピュータによって読み取り可能な記憶媒体。
- 前記GPUの前記シェーダプロセッサによって第1のワークグループを実行し、
前記第1のワークグループの結果に基づいて1つ以上の値を生成し、及び
前記1つ以上の値に基づいて第2のワークグループを実行すべきかどうかを決定することを前記コンピューティングデバイスの1つ以上のプログラミング可能なプロセッサに行わせるための命令をさらに備え、前記第1のワークグループは、アプリケーションの第1のカーネルと関連付けられ、前記第1のワークグループは、入力データを処理するための前記第1のワークアイテムを含む複数の命令を備え、前記1つ以上の値は、前記結果の1つ以上の特徴を表し、前記第2のワークグループは、前記アプリケーションの第2のカーネルと関連付けられ、前記第2のワークグループは、前記入力データを処理するための前記第2のワークアイテムを含む複数の命令を備える請求項27に記載のコンピュータによって読み取り可能な記憶媒体。 - グラフィックス処理ユニット(GPU)を用いてデータを処理するための装置であって、
第1のワークアイテムを実行するための手段であって、前記第1のワークアイテムは、入力データを処理するための1つ以上の命令を含む手段と、
前記第1のワークアイテムの結果に基づいて1つ以上の値を生成するための手段であって、前記1つ以上の値は、前記結果の1つ以上の特徴を表す手段と、
前記1つ以上の値に基づいて第2のワークアイテムを実行すべきかどうかを決定するための手段であって、前記第2のワークアイテムは、前記入力データを処理するための前記第1のワークアイテムと別個の1つ以上の命令を含む手段と、を備える、装置。 - 前記決定に基づいて前記第2のワークアイテムを命令ストリームから取り除くための手段をさらに備える請求項29に記載の方法。
- 前記第2のワークアイテムを前記命令ストリームから取り除くことは、前記第2のワークアイテムが実行されるようにスケジューリングする前に前記第2のワークアイテムを取り除くことをさらに備える請求項30に記載の方法。
- 前記第1のワークアイテムの前記結果に基づく前記1つ以上の値をバッファに格納するための手段をさらに備える請求項29に記載の方法。
- 前記第2のワークアイテムを実行すべきかどうかを決定することは、前記バッファに格納された前記1つ以上の値を読み取ることをさらに備える請求項32に記載の方法。
- 第3のワークアイテムを実行するための手段であって、前記第3のワークアイテムは、前記入力データを処理するための1つ以上の命令を含む手段と、
前記第3のワークアイテムの結果に基づいて1つ以上の値を生成するための手段であって、前記1つ以上の値は、前記結果の1つ以上の特徴を表す手段と、
前記第3のワークアイテムの前記結果に基づいて前記バッファに格納された前記1つ以上の値を更新するための手段と、
前記1つ以上の値に基づいて第4のワークアイテムを実行すべきかどうかを決定するための手段であって、前記第4のワークアイテムは、前記入力データを処理するための1つ以上の命令を含む手段と、をさらに備える請求項32に記載の方法。 - 前記1つ以上の値は、前記第2のワークアイテムの結果が関係があるデータを含むかどうかを示し、前記第2のワークアイテムの前記結果が関係があるデータを含まない場合は前記第2のワークアイテムを実行しないことを決定する請求項29に記載の方法。
- 前記第1のワークアイテムは、アプリケーションの第1のカーネルと関連付けられ、前記第2のワークアイテムは、前記アプリケーションの第2のカーネルと関連付けられ、前記第1のワークアイテム及び前記第2のワークアイテムは、前記入力データを処理するように構成される請求項29に記載の方法。
- 前記GPUの前記シェーダプロセッサによって第1のワークグループを実行するための手段であって、前記第1のワークグループは、アプリケーションの第1のカーネルと関連付けられ、前記第1のワークグループは、入力データを処理するための前記第1のワークアイテムを含む複数の命令を備える手段と、
前記第1のワークグループの結果に基づいて1つ以上の値を生成するための手段であって、前記1つ以上の値は、前記結果の1つ以上の特徴を表す手段と、
前記1つ以上の値に基づいて第2のワークグループを実行すべきかどうかを決定するための手段であって、前記第2のワークグループは、前記アプリケーションの第2のカーネルと関連付けられ、前記第2のワークグループは、前記入力データを処理するための前記第2のワークアイテムを含む複数の命令を備える手段と、をさらに備える請求項29に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/181,233 | 2011-07-12 | ||
US13/181,233 US9195501B2 (en) | 2011-07-12 | 2011-07-12 | Instruction culling in graphics processing unit |
PCT/US2011/064600 WO2013009341A1 (en) | 2011-07-12 | 2011-12-13 | Instruction culling in graphics processing unit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014521167A true JP2014521167A (ja) | 2014-08-25 |
JP5778343B2 JP5778343B2 (ja) | 2015-09-16 |
Family
ID=45470699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014520175A Active JP5778343B2 (ja) | 2011-07-12 | 2011-12-13 | グラフィックス処理ユニットでの命令カリング |
Country Status (6)
Country | Link |
---|---|
US (1) | US9195501B2 (ja) |
EP (1) | EP2732370B1 (ja) |
JP (1) | JP5778343B2 (ja) |
KR (1) | KR101609079B1 (ja) |
CN (1) | CN103649917B (ja) |
WO (1) | WO2013009341A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9830163B2 (en) * | 2012-06-08 | 2017-11-28 | Advanced Micro Devices, Inc. | Control flow in a heterogeneous computer system |
US9286648B2 (en) * | 2012-08-03 | 2016-03-15 | Nadar Mariappan S | Zero communication block partitioning |
US9442706B2 (en) * | 2014-05-30 | 2016-09-13 | Apple Inc. | Combining compute tasks for a graphics processing unit |
KR102269271B1 (ko) * | 2014-09-12 | 2021-06-28 | 삼성전자주식회사 | 오픈 컴퓨팅 언어 기반의 애플리케이션 실행 방법 및 장치 |
US10796397B2 (en) * | 2015-06-12 | 2020-10-06 | Intel Corporation | Facilitating dynamic runtime transformation of graphics processing commands for improved graphics performance at computing devices |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
US20180115496A1 (en) * | 2016-10-21 | 2018-04-26 | Advanced Micro Devices, Inc. | Mechanisms to improve data locality for distributed gpus |
US10269167B1 (en) | 2018-05-21 | 2019-04-23 | Apple Inc. | Indirect command buffers for graphics processing |
US11789982B2 (en) * | 2020-09-23 | 2023-10-17 | Electronic Arts Inc. | Order independent data categorization, indication, and remediation across realtime datasets of live service environments |
KR20220102339A (ko) * | 2021-01-13 | 2022-07-20 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 커널 모듈 로딩 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007034723A (ja) * | 2005-07-27 | 2007-02-08 | Glory Ltd | 顔画像検出装置、顔画像検出方法および顔画像検出プログラム |
JP2009021964A (ja) * | 2007-07-13 | 2009-01-29 | Kao Corp | 画像合成装置、画像合成方法及び画像合成プログラム |
JP2010020755A (ja) * | 2008-04-08 | 2010-01-28 | Avid Technology Inc | 複数のハードウェア・ドメイン、データ・タイプ、およびフォーマットの処理を統合し抽象化するフレームワーク |
WO2011017026A1 (en) * | 2009-07-27 | 2011-02-10 | Advanced Micro Devices, Inc. | Mapping processing logic having data parallel threads across processors |
US20110063311A1 (en) * | 2009-09-10 | 2011-03-17 | Advanced Micro Devices, Inc. | Course Grain Command Buffer |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5793386A (en) | 1996-06-28 | 1998-08-11 | S3 Incorporated | Register set reordering for a graphics processor based upon the type of primitive to be rendered |
US6742111B2 (en) * | 1998-08-31 | 2004-05-25 | Stmicroelectronics, Inc. | Reservation stations to increase instruction level parallelism |
US7162716B2 (en) * | 2001-06-08 | 2007-01-09 | Nvidia Corporation | Software emulator for optimizing application-programmable vertex processing |
JP3612294B2 (ja) * | 2001-08-06 | 2005-01-19 | 松下電器産業株式会社 | デバッグ方法およびデバッグ装置 |
US7015913B1 (en) * | 2003-06-27 | 2006-03-21 | Nvidia Corporation | Method and apparatus for multithreaded processing of data in a programmable graphics processor |
US7239322B2 (en) * | 2003-09-29 | 2007-07-03 | Ati Technologies Inc | Multi-thread graphic processing system |
US7426724B2 (en) * | 2004-07-02 | 2008-09-16 | Nvidia Corporation | Optimized chaining of vertex and fragment programs |
US8624906B2 (en) | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US7765547B2 (en) * | 2004-11-24 | 2010-07-27 | Maxim Integrated Products, Inc. | Hardware multithreading systems with state registers having thread profiling data |
US7747993B2 (en) * | 2004-12-30 | 2010-06-29 | Michigan Technological University | Methods and systems for ordering instructions using future values |
US7324113B1 (en) | 2005-03-09 | 2008-01-29 | Nvidia Corporation | Perspective correction computation optimization |
US7528843B1 (en) * | 2005-08-05 | 2009-05-05 | Nvidia Corporation | Dynamic texture fetch cancellation |
US7577826B2 (en) * | 2006-01-30 | 2009-08-18 | Sony Computer Entertainment Inc. | Stall prediction thread management |
US8345053B2 (en) * | 2006-09-21 | 2013-01-01 | Qualcomm Incorporated | Graphics processors with parallel scheduling and execution of threads |
US20080084424A1 (en) * | 2006-10-09 | 2008-04-10 | Silicon Integrated Systems Corp. | Early retiring instruction mechanism, method for performing the same and pixel processing system thereof |
US7844105B2 (en) * | 2007-04-23 | 2010-11-30 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for determining objects poses from range images |
JP2009069921A (ja) * | 2007-09-11 | 2009-04-02 | Hitachi Ltd | マルチプロセッサシステム |
US8555266B2 (en) * | 2007-11-13 | 2013-10-08 | International Business Machines Corporation | Managing variable assignments in a program |
US8633936B2 (en) | 2008-04-21 | 2014-01-21 | Qualcomm Incorporated | Programmable streaming processor with mixed precision instruction execution |
US20110055838A1 (en) * | 2009-08-28 | 2011-03-03 | Moyes William A | Optimized thread scheduling via hardware performance monitoring |
US8854381B2 (en) * | 2009-09-03 | 2014-10-07 | Advanced Micro Devices, Inc. | Processing unit that enables asynchronous task dispatch |
US10360039B2 (en) * | 2009-09-28 | 2019-07-23 | Nvidia Corporation | Predicted instruction execution in parallel processors with reduced per-thread state information including choosing a minimum or maximum of two operands based on a predicate value |
US8761525B2 (en) * | 2009-11-20 | 2014-06-24 | Tripurari Singh | Method and system for compressive color image sampling and reconstruction |
WO2012003997A1 (en) * | 2010-07-09 | 2012-01-12 | Martin Vorbach | Data processing device and method |
US8583894B2 (en) * | 2010-09-09 | 2013-11-12 | Advanced Micro Devices | Hybrid prefetch method and apparatus |
US8549504B2 (en) * | 2010-09-25 | 2013-10-01 | Intel Corporation | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region |
US8782645B2 (en) * | 2011-05-11 | 2014-07-15 | Advanced Micro Devices, Inc. | Automatic load balancing for heterogeneous cores |
US8683468B2 (en) * | 2011-05-16 | 2014-03-25 | Advanced Micro Devices, Inc. | Automatic kernel migration for heterogeneous cores |
US9412193B2 (en) * | 2011-06-01 | 2016-08-09 | Apple Inc. | Run-time optimized shader program |
US20120331278A1 (en) * | 2011-06-23 | 2012-12-27 | Mauricio Breternitz | Branch removal by data shuffling |
US8756591B2 (en) * | 2011-10-03 | 2014-06-17 | International Business Machines Corporation | Generating compiled code that indicates register liveness |
US20140375658A1 (en) * | 2013-06-25 | 2014-12-25 | Ati Technologies Ulc | Processor Core to Graphics Processor Task Scheduling and Execution |
-
2011
- 2011-07-12 US US13/181,233 patent/US9195501B2/en active Active
- 2011-12-13 JP JP2014520175A patent/JP5778343B2/ja active Active
- 2011-12-13 WO PCT/US2011/064600 patent/WO2013009341A1/en active Application Filing
- 2011-12-13 KR KR1020147003584A patent/KR101609079B1/ko active IP Right Grant
- 2011-12-13 CN CN201180072234.1A patent/CN103649917B/zh active Active
- 2011-12-13 EP EP11807807.0A patent/EP2732370B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007034723A (ja) * | 2005-07-27 | 2007-02-08 | Glory Ltd | 顔画像検出装置、顔画像検出方法および顔画像検出プログラム |
JP2009021964A (ja) * | 2007-07-13 | 2009-01-29 | Kao Corp | 画像合成装置、画像合成方法及び画像合成プログラム |
JP2010020755A (ja) * | 2008-04-08 | 2010-01-28 | Avid Technology Inc | 複数のハードウェア・ドメイン、データ・タイプ、およびフォーマットの処理を統合し抽象化するフレームワーク |
WO2011017026A1 (en) * | 2009-07-27 | 2011-02-10 | Advanced Micro Devices, Inc. | Mapping processing logic having data parallel threads across processors |
US20110063311A1 (en) * | 2009-09-10 | 2011-03-17 | Advanced Micro Devices, Inc. | Course Grain Command Buffer |
Non-Patent Citations (1)
Title |
---|
JPN6015004943; Hisa Ando: "プロセッサを支える技術 -果てしなくスピードを追求する世界 初版" 第1版, 20110125, p.311-343, 株式会社技術評論社 * |
Also Published As
Publication number | Publication date |
---|---|
KR20140035522A (ko) | 2014-03-21 |
EP2732370A1 (en) | 2014-05-21 |
US9195501B2 (en) | 2015-11-24 |
CN103649917A (zh) | 2014-03-19 |
WO2013009341A1 (en) | 2013-01-17 |
JP5778343B2 (ja) | 2015-09-16 |
CN103649917B (zh) | 2018-05-29 |
KR101609079B1 (ko) | 2016-04-04 |
US20130016110A1 (en) | 2013-01-17 |
EP2732370B1 (en) | 2018-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5778343B2 (ja) | グラフィックス処理ユニットでの命令カリング | |
JP5752853B2 (ja) | グラフィックス処理ユニットにおけるメモリの共有 | |
KR101563098B1 (ko) | 커맨드 프로세서를 갖는 그래픽 프로세싱 유닛 | |
US9250697B2 (en) | Application programming interfaces for data parallel computing on multiple processors | |
US10089775B2 (en) | Automated graphics and compute tile interleave | |
JP6294565B2 (ja) | グラフィックス処理において使用するためのシェーダプログラム実行技法 | |
US9720726B2 (en) | Multi-dimensional thread grouping for multiple processors | |
US9411715B2 (en) | System, method, and computer program product for optimizing the management of thread stack memory | |
JP5960368B2 (ja) | ビジビリティ情報を用いたグラフィックスデータのレンダリング | |
EP2734923B1 (en) | Synchronization of shader operation | |
CN107851004B (zh) | 用于在图形处理单元gpu上执行指令的方法和装置 | |
US11094036B2 (en) | Task execution on a graphics processor using indirect argument buffers | |
KR20160123311A (ko) | 공유 데이터 채널들을 가지는 셰이더 파이프라인 | |
CN110832457A (zh) | 用于虚拟化加速处理装置的提前虚拟化上下文切换 | |
US9214008B2 (en) | Shader program attribute storage | |
US20220100543A1 (en) | Feedback mechanism for improved bandwidth and performance in virtual environment usecases | |
US20240095083A1 (en) | Parallel workload scheduling based on workload data coherence | |
US10943323B2 (en) | Data processing systems | |
EP3101650A1 (en) | Method and apparatus for performing interleaving |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150210 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150511 |
|
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: 20150609 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150708 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5778343 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |