JP2024545660A - In-line interruption of acceleration processing units - Google Patents
In-line interruption of acceleration processing units Download PDFInfo
- Publication number
- JP2024545660A JP2024545660A JP2024535496A JP2024535496A JP2024545660A JP 2024545660 A JP2024545660 A JP 2024545660A JP 2024535496 A JP2024535496 A JP 2024535496A JP 2024535496 A JP2024535496 A JP 2024535496A JP 2024545660 A JP2024545660 A JP 2024545660A
- Authority
- JP
- Japan
- Prior art keywords
- command
- apu
- received
- packet
- execution
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
Abstract
加速処理ユニット(APU)のインライン中断のための方法及びシステムが開示される。技術は、動作モード及びAPUによって実行されるコマンドを含むパケットを受信することと、動作モードが中断開始モードである場合に、以前のパケットで受信したコマンドの実行を中断することと、APUが、受信したパケット内のコマンドを実行することと、を含む。中断されたコマンドの実行は、次に受信したパケットにおける動作モードが中断終了モードである場合に再開される。
【選択図】図3
A method and system for in-line suspend of an accelerated processing unit (APU) is disclosed. The technique includes receiving a packet containing an operational mode and a command to be executed by the APU, suspending execution of the command received in the previous packet if the operational mode is a suspend start mode, and the APU executing the command in the received packet. Execution of the suspended command is resumed if the operational mode in the next received packet is a suspend end mode.
[Selected figure] Figure 3
Description
(関連出願の相互参照)
本願は、2021年12月28日に出願された米国特許出願第17/564,049号の利益を主張するものであり、その内容は、参照により本明細書に組み込まれる。
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Patent Application No. 17/564,049, filed December 28, 2021, the contents of which are incorporated herein by reference.
限られた時間内に大量のデータを処理することを必要とするプロセッサは、1つ以上の加速処理ユニット(accelerated processing units、APU)を利用することができる。APUを使用する場合、従来、プロセッサは、APUによって実行されるコマンドを送信すること、及び、APUからコマンド完了肯定応答(command completion acknowledgments)を受信することを含む、APUの動作を制御している。通常、APUのコンピューティングリソースは、1つ以上のプロセッサ上で実行される複数のアプリケーションによって共有される。アプリケーションが高い優先度で集中的なワークロードの実行を必要とする場合、アプリケーションがAPUの計算リソースをその独占的使用のために確保することを可能にする機能は貴重である。しかしながら、別のワークロードを優先してAPUの現在のワークロードを中断し、次いで再開することは、通常、APUとプロセッサとの間の通信を必要とするプロセッサの関与を必要とする。プロセッサとAPUとの間のそのような往復通信は、APUによるワークロード実行時間の予測可能性を損なう。 Processors that need to process large amounts of data within a limited time can utilize one or more accelerated processing units (APUs). When using an APU, traditionally the processor controls the operation of the APU, including sending commands to be executed by the APU and receiving command completion acknowledgments from the APU. Typically, the computing resources of the APU are shared by multiple applications running on one or more processors. When an application requires the execution of an intensive workload with high priority, the ability to allow the application to reserve the computing resources of the APU for its exclusive use is valuable. However, suspending the current workload of the APU in favor of another workload and then resuming it requires the involvement of the processor, which typically requires communication between the APU and the processor. Such back-and-forth communication between the processor and the APU reduces the predictability of the workload execution time by the APU.
添付の図面と共に例として与えられる以下の説明から、より詳細な理解を得ることができる。 A more detailed understanding can be had from the following description, given by way of example in conjunction with the accompanying drawings, in which:
APUのインライン中断(inline suspension)のためのシステム及び方法が開示される。プロセッサによってAPUにパケットで送信されたコマンドでそれぞれの動作モードをインラインすることによって、APUによって処理されているワークロードの中断、次いで再開をトリガするための技術が開示される。このようにしてAPUを中断及び再開する能力は、プロセッサの関与なしにAPUのコンピューティングリソースを排他的に利用するための高い優先度及び集中的なワークロードを可能にし、ひいては予測可能なワークロード実行時間を可能にする。 A system and method for inline suspension of an APU is disclosed. Techniques are disclosed for triggering the suspension and then resumption of a workload being processed by an APU by inlining the respective operating modes with commands sent in packets by the processor to the APU. The ability to suspend and resume an APU in this manner allows high priority and intensive workloads to exclusively utilize the computing resources of the APU without processor involvement, thus allowing predictable workload execution times.
本願において開示される態様は、APUのインライン中断のための方法を説明する。この方法は、APUによって実行される動作モード及びコマンドを含むパケットを受信することと、動作モードが中断開始モード(suspension initiation mode)であることに応じて、前のパケット内で受信されたコマンドの実行を中断することと、APUによって、受信されたパケット内のコマンドを実行することと、を含む。方法は、動作モードが中断終了モードであることに応じて、中断されたコマンドの実行を再開することを更に含む。 Aspects disclosed herein describe a method for in-line suspension of an APU. The method includes receiving a packet including an operational mode and a command to be executed by the APU, suspending execution of the command received in the previous packet in response to the operational mode being a suspension initiation mode, and executing, by the APU, the command in the received packet. The method further includes resuming execution of the suspended command in response to the operational mode being a suspension termination mode.
また、本願に開示される態様は、APUのインライン中断のためのシステムを説明する。システムは、少なくとも1つのプロセッサと、命令を記憶するメモリと、を備える。命令は、少なくとも1つのプロセッサによって実行されると、システムに、動作モード及びAPUによって実行されるコマンドを含むパケットを受信させ、動作モードが中断開始モードであることに応じて、前のパケット内で受信されたコマンドの実行を中断し、APUによって、受信されたパケット内のコマンドを実行させる。更に、命令は、システムに、動作モードが中断終了モードであることに応じて、中断されたコマンドの実行を再開させる。 Aspects disclosed herein also describe a system for in-line interruption of an APU. The system includes at least one processor and a memory that stores instructions. The instructions, when executed by the at least one processor, cause the system to receive a packet including an operating mode and a command to be executed by the APU, and, in response to the operating mode being an interrupt start mode, interrupt execution of the command received in the previous packet, and cause the APU to execute the command in the received packet. The instructions further cause the system to resume execution of the interrupted command in response to the operating mode being an interrupt end mode.
更に、本願に開示される態様は、動作モード及びAPUによって実行されるコマンドを含むパケットを受信することと、動作モードが中断開始モードであることに応じて、前のパケット内で受信されたコマンドの実行を中断することと、APUによって、受信されたパケット内のコマンドを実行することと、が可能なAPUのインライン中断を実行するように適合されたAPUを記述するハードウェア記述言語命令を含む非一時的なコンピュータ可読記憶媒体を記載する方法は、動作モードが中断終了モードであることに応じて、中断されたコマンドの実行を再開することを更に含む。 Additionally, aspects disclosed herein include a method for describing a non-transitory computer-readable storage medium including hardware description language instructions describing an APU adapted to perform an in-line suspend of the APU capable of receiving a packet including an operating mode and a command to be executed by the APU, suspending execution of the command received in the previous packet in response to the operating mode being a suspend start mode, and executing, by the APU, the command in the received packet, further including resuming execution of the suspended command in response to the operating mode being a suspend end mode.
図1Aは、本開示の1つ以上の特徴を実装することができる例示的なデバイス100Aのブロック図である。デバイス100Aは、例えば、コンピュータ、ゲーミングデバイス、ハンドヘルドデバイス、セットトップボックス、テレビ、携帯電話、又は、タブレットコンピュータであり得る。デバイス100Aは、プロセッサ102、APU106、メモリ104、ストレージ116、入力デバイス108、及び、出力デバイス110を含む。また、デバイス100Aは、入力ドライバ112及び出力ドライバ114を含み得る。一態様では、デバイス100Aは、図1Aに示されていない追加の構成要素を含み得る。
1A is a block diagram of an
プロセッサ102は、中央処理ユニット(CPU)又はCPUの1つ以上のコアを含むことができる。APU106は、高度並列処理ユニット、グラフィックス処理ユニット(GPU)、又は、それらの組み合わせを表すことができる。プロセッサ102及びAPU106は、同じダイ上又は別のダイ上に位置し得る。メモリ104は、プロセッサ102と同じダイ上に位置し得るか、又は、プロセッサ102とは別に位置し得る。メモリ104は、揮発性又は不揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、キャッシュ、又は、これらの組み合わせ)を含むことができる。
The
ストレージ116は、固定又はリムーバブルストレージ(例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、フラッシュドライブ)を含むことができる。入力デバイス108は、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロフォン、加速度計、ジャイロスコープ、生体認証スキャナ、又は、ネットワーク接続(例えば、無線IEEE802信号の受信のための無線ローカルエリアネットワークカード)等の1つ以上の入力デバイスを表すことができる。出力デバイス110は、ディスプレイ、スピーカ、プリンタ、触覚フィードバックデバイス、1つ以上の光、アンテナ、又は、ネットワーク接続(例えば、無線IEEE802信号の送信のための無線ローカルエリアネットワークカード)等の1つ以上の出力デバイスを表すことができる。
入力ドライバ112は、プロセッサ102及び入力デバイス108と通信し、入力デバイス108からプロセッサ102への入力の受信を容易にする。出力ドライバ114は、プロセッサ102及び出力デバイス110と通信し、プロセッサ102から出力デバイス110への出力の送信を容易にする。一態様では、入力ドライバ112及び出力ドライバ114は、オプションの構成要素であり、デバイス100Aは、入力ドライバ112及び出力ドライバ114が存在しない場合に、同じ方式で動作することができる。
The
APU106は、プロセッサ102から計算コマンド及びグラフィックスレンダリングコマンドを受け入れて、それらの計算及びグラフィックスレンダリングコマンドを処理し、及び/又は、ディスプレイ(出力デバイス110)に出力を提供するように構成され得る。以下で更に詳細に説明するように、APU106は、例えば、単一命令複数データ(SIMD)パラダイムに従って計算を実行するように構成された1つ以上の並列処理ユニットを含むことができる。したがって、様々な機能が、本明細書では、APU106によって又はAPU106と併せて実行されるものとして説明されているが、様々な代替例では、APU106によって実行されるものとして説明される機能は、ホストプロセッサ(例えば、プロセッサ102)によってドライブされず、例えば、グラフィカル出力をディスプレイに提供するように構成することができる同様の能力を有する他のコンピューティングデバイスによって追加的又は代替的に実行され得る。処理システムがSIMDパラダイムに従って処理タスクを実行することができるかどうかにかかわらず、処理システムは、本明細書で説明される機能を実行するように構成され得る。
The APU 106 may be configured to accept computational and graphics rendering commands from the
図1Bは、本開示の1つ以上の特徴を実装することができる図1Aのデバイスによって使用可能な加速システムを示す例示的なシステム100Bのブロック図である。図1Bは、APU106上での処理タスクの実行を更に詳細に示す。プロセッサ102は、メモリ104内で、プロセッサ102による実行のための1つ以上のモジュールを維持することができる。モジュールは、オペレーティングシステム120、ドライバ122、及び、アプリケーション126を含む。これらのモジュールは、プロセッサ102及びAPU106の動作の様々な特徴を制御することができる。例えば、オペレーティングシステム120は、システムコール、すなわち、アプリケーションプログラミングインターフェース(API)を提供することができ、これは、アプリケーション126によって採用され、ハードウェアと直接インターフェースすることができる。ドライバ122は、例えば、プロセッサ102上で実行されるアプリケーション126にAPIを提供して、APU106の様々な機能にアクセスすることによって、APU106の動作を制御することができる。
FIG. 1B is a block diagram of an
APU106は、並列処理又は逐次処理の何れか、及び、順序処理又は非順序処理の何れかを含む、グラフィックス動作及び非グラフィックス動作に関連するコマンドを実行することができる。APU106は、プロセッサ102から受信したコマンドに基づいて、ピクセル及び/又は幾何学計算を処理する動作(例えば、ディスプレイ(出力デバイス110)への画像のレンダリング)等のグラフィックスパイプライン動作を実行するために使用することができる。また、APU106は、プロセッサ102から受信したコマンドに基づいて、多次元データ、物理シミュレーション、計算流体力学、又は、他の計算タスクの処理に関連する動作等のように、グラフィックス動作に関連しない処理動作を実行することができる。代替的な実施形態では、APU106は、信号処理動作を実行することができ(例えば、APU106は、デジタル信号プロセッサ又はDSPにおいて具現化され得る)、ビットストリームによって構成されたフィールドプログラマブルゲートアレイ(FPGA)の使用を通じて加速動作を実行することができ、ニューラル処理ユニット(又はNPU)の使用を通じてニューラル処理動作を実行することができ、又は、プロセッサ102よりもむしろ加速処理ユニット(APU)の使用を通じてより効率的に実行され得る他の動作を実行することができる。
APU 106 can execute commands related to graphics and non-graphics operations, including either parallel or sequential processing, and either sequential or non-sequential processing. APU 106 can be used to perform graphics pipeline operations, such as operations that process pixels and/or geometry calculations (e.g., rendering an image to a display (output device 110)) based on commands received from
APU106は、ワークグループプロセッサ(WGP)132.1~132.Mを含むことができ、各WGP、例えば132.1は、SIMDパラダイムに従って並列の方式で動作を実行することができる1つ以上のSIMDユニット、例えば138.1.1~138.1.Nを有することができる。SIMDパラダイムは、複数の処理要素が単一のプログラム制御フローユニット及びプログラムカウンタを共有し、これにより、同じプログラムを、異なるデータで実行することができるものである。一例では、各SIMDユニット、例えば138.1.1は、64のレーン(すなわち、スレッド)を実行することができ、各レーンは、SIMDユニット内の他のレーンと同時に同じ命令を実行するが、その命令を異なるデータで実行する。レーンは、全てのレーンが所定の命令を実行する必要がない場合等に、予測でオフに切り替えることができる。また、予測は、分岐制御フローを有するプログラムを実行するために使用することができる。具体的には、条件付き分岐(又は制御フローが個々のレーンによって実行される計算に基づいている他の命令)を有するプログラムについては、現在実行されていない制御フローパスに対応するレーンの予測及び異なる制御フローパスの直列実行が、任意の制御フローを可能にする。一態様では、WGP132.1~132.Mの各々は、ローカルキャッシュを有することができる。別の態様では、複数のWGPがキャッシュを共有することができる。 APU 106 may include workgroup processors (WGPs) 132.1-132.M, where each WGP, e.g., 132.1, may have one or more SIMD units, e.g., 138.1.1-138.1.N, that may execute operations in a parallel fashion according to the SIMD paradigm. The SIMD paradigm is one in which multiple processing elements share a single program control flow unit and program counter, thereby allowing the same program to be executed on different data. In one example, each SIMD unit, e.g., 138.1.1, may execute 64 lanes (i.e., threads), each lane executing the same instruction simultaneously with other lanes in the SIMD unit, but executing the instruction on different data. Lanes may be switched off with prediction, such as when not all lanes need to execute a given instruction. Prediction may also be used to execute programs with branching control flow. Specifically, for programs with conditional branches (or other instructions where control flow is based on calculations performed by individual lanes), prediction of lanes corresponding to currently not executed control flow paths and serial execution of different control flow paths allows arbitrary control flow. In one aspect, each of WGPs 132.1-132.M may have a local cache. In another aspect, multiple WGPs may share a cache.
WGP、例えば132.1内の実行の基本的単位は、ワークアイテムである。通常は、各ワークアイテムは、特定のレーンにおいて並列に実行され得るプログラムの単一のインスタンシエイションを表す。ワークアイテムは、単一のSIMD、例えば138.1.1上の「ウェーブフロント(wavefront)」(又は「ウェーブ(wave)」)として同時に実行され得る。1つ以上のウェーブは、ワークグループで実行されてもよく、各ウェーブは、同じプログラムを実行するように指定されたワークアイテムの集合体を含む。ワークグループは、ワークグループを構成するウェーブの各々を実行することによって実行される。また、ウェーブは、単一のSIMDユニット上で逐次実行され得るか、又は、異なるSIMDユニット138.1.1~138.1.N上で部分的に若しくは完全に並列に実行され得る。したがって、ウェーブは、単一のSIMDユニット、例えば、138.1.1上で同時に実行することができるワークアイテムの集合と考えることができる。したがって、プロセッサ102から受信されたコマンドが、プログラムが単一のSIMDユニット上で同時に実行させることができない程度に特定のプログラムが並列化されるべきであることを示す場合、そのプログラムは、2つ以上のSIMDユニット(例えば、138.1.1~138.1.N)上に並列化されるか、同じSIMDユニット(例えば、138.1.1)上で直列化されるか、又は、必要に応じて並列化と直列化との両方がされ得るウェーブに分けることができる。スケジューラ136は、異なるWGP132.1~132.M及びそれらのそれぞれのSIMDユニット上で様々なウェーブを開始することに関連する動作を実行するように構成され得る。
The basic unit of execution within a WGP, e.g., 132.1, is the work item. Typically, each work item represents a single instantiation of a program that can be executed in parallel on a particular lane. Work items can be executed simultaneously as a "wavefront" (or "wave") on a single SIMD, e.g., 138.1.1. One or more waves may be executed in a workgroup, each wave including a collection of work items designated to execute the same program. A workgroup is executed by executing each of the waves that make up the workgroup. Also, waves can be executed sequentially on a single SIMD unit, or partially or fully in parallel on different SIMD units 138.1.1-138.1.N. Thus, a wave can be thought of as a collection of work items that can be executed simultaneously on a single SIMD unit, e.g., 138.1.1. Thus, if commands received from
WGP132.1~132.Mによって与えられる並列性は、例えば、ピクセル値に対する動作(例えば、フィルタ動作)、幾何学的データに対する動作(例えば、頂点変換)、及び、他のグラフィックス関連動作等のグラフィックス関連動作に好適である。例えば、プロセッサ102上で実行されるアプリケーション126は、APU106によって実行される計算を伴うことができる。アプリケーション126は、ドライバ122によって提供されるAPIを使用して、処理コマンドをAPU106に発行することができる。次いで、処理コマンドは、スケジューラ136に提供される。スケジューラ136は、処理コマンドを、並列実行のためにWGP132.1~132.Mに割り当てられる計算タスクに変換する。例えば、スケジューラ136は、データ(例えば、画像の1024ピクセル)に対して実行されるべき命令を含む処理コマンドを受信し得る。それに応じて、スケジューラ136は、データをグループ(例えば、各グループが64ピクセルの処理に必要なデータを含む)に分割し、1つ以上のWGPにおいてウェーブを開始することができ、各ウェーブは、データのグループ及びデータに対して実行する命令に関連付けられる。例えば、スケジューラ136は、1つ以上のWGP132のSIMD138において実行される16個のウェーブ(例えば、各々が64ピクセルの処理を担う)を開始することができる。
The parallelism provided by WGPs 132.1-132.M is well suited for graphics-related operations such as, for example, operations on pixel values (e.g., filter operations), operations on geometric data (e.g., vertex transformations), and other graphics-related operations. For example, an
図2は、本開示の1つ以上の特徴を実装することができるAPUのインライン中断を示す例示的なシステム200の機能ブロック図である。システム200は、プロセッサ210(例えば、図1Aのプロセッサ102)、APU215(例えば、図1BのAPU106)、及び、メモリ220(例えば、図1Aのメモリ104)を含む。APU215は、コマンドプロセッサ250と、シェーダスケジューラ230と、WGP240.1~240.N(例えば、図1BのWGP132)を有するシェーダ240と、を含む。メモリ220は、それぞれメモリインターフェース222及び224を介して、プロセッサ210及びコマンドプロセッサ250によってアクセス可能である。プロセッサ210は、ユーザアプリケーション212及びドライバ214等のソフトウェアモジュールを実行するように構成され、それを介してアプリケーション212はコマンドプロセッサ250とインターフェースすることができる。したがって、コンピュータゲーム又はシミュレータ等のアプリケーション212は、ドライバ214によって提供されるアプリケーションプログラミングインターフェース(API)を使用して、シェーダ240によって実行されるべき計算タスクを指定するコマンドをコマンドプロセッサ250に送ることができる。そのようなコマンドは、以下で更に説明するように、パケットフォーマットに従ってパケット内で配信される。
2 is a functional block diagram of an
コマンドプロセッサ250は、プロセッサ210上で動作するソフトウェアモジュールと、シェーダ240等のAPU215の実行(又は処理)エンジンとの間のインターフェースを提供するように構成されている。コマンドプロセッサ250は、フェッチャ255、ドアベル260、グラフィックスコマンドプロセッサ270、計算コマンドプロセッサ280、及び、キューマネージャ290等の機能構成要素を含むことができる。上述したように、ユーザアプリケーション212は、ドライバ214を介して、コマンドプロセッサ250に配信されるコマンドのパケットを生成することができる。配信の1つの機構は、(メモリインターフェース222を介して)メモリ220内のアプリケーション関連キューにこれらのパケットを記憶し、次いで、1つ以上の新しいパケットがメモリ内のそのキュー内で利用可能であることをコマンドプロセッサのドアベル260に信号を送ることによるものであり得る。そのような信号の受信に応じて、ドアベルは、フェッチャ255による1つ以上の新しいパケットの読み取りをトリガするように構成されている。次いで、フェッチャ255は、(メモリインターフェース224を介して)メモリ220内のキューからパケットを読み取り、読み取られたパケットを先入れ先出し(FIFO)順序でパケットキュー257、258内にプッシュする。描画(グラフィックス)コマンドを含むパケットはキュー257に記憶され、ディスパッチ計算コマンドを含むパケットはキュー258に記憶される。グラフィックスコマンドプロセッサ270及び計算コマンドプロセッサ280は、パケットが到着すると、それぞれキュー257及び258からパケットをポップアウトするように構成されている。複数のアプリケーション212(例えば、ホスト210上で同時に実行される)がそれぞれのパケットを生成する場合、各アプリケーションに関連付けられたパケットは、メモリ内のそれぞれのキューに記憶されてもよく、フェッチャ255は、メモリ220内の各キューからパケットを読み出し、読み出したパケットをそれぞれのパケットキュー257、258にプッシュするように構成されている。
The
一態様では、パケットフォーマットは、パケットヘッダと、1つ以上のコマンドと、を含み得る。本明細書で開示するように、パケットヘッダは、パススルーモード、中断開始モード、及び、中断終了モードを含む動作モードを符号化する。パススルー動作モードでは、コマンドプロセッサ250は、通常の動作状態で動作する。すなわち、新たに到着したコマンドは、現在利用可能なコンピューティングリソースによって処理される。例えば、全てのWGP240.1~240.Nが、以前に受信されたコマンドに関連付けられたウェーブの処理に関与している場合、新たに到着したコマンドは、WGPのうち1つ以上が利用可能になるまで待たなければならない。対照的に、中断開始動作モードでは、コマンドプロセッサ250は、現在処理されているウェーブの実行を中断し、全てのWGPを、新たに到着したコマンドに関連付けられたウェーブの実行に利用可能にするように構成されている。この動作モードは、中断終了動作モードが有効になるまで保持され、有効になった時点で、中断されたウェーブの実行が再開(復元)され、コマンドプロセッサ250が通常の動作状態の下で再び動作するように戻る。これらの3つの動作モードが処理され得る方法は、以下に更に開示される。
In one aspect, the packet format may include a packet header and one or more commands. As disclosed herein, the packet header encodes an operating mode, including a pass-through mode, a pause start mode, and a pause end mode. In the pass-through operating mode, the
ヘッダ内にパススルー動作モードを符号化するパケットが受信されると、コマンドプロセッサ250はパケットのコマンドを復号する。パケット内のコマンドは、APU215の構成要素に関連付けられた状態又は制御レジスタを設定するために使用されるコマンドであってもよい。また、パケット内のコマンドは、同期動作に使用されるコマンドであってもよい。パケット内のかなりの数のコマンドは、描画(グラフィックス)コマンド及び計算ディスパッチコマンド等のような、シェーダ240に向けられた計算タスクに関係し得る。したがって、コマンドプロセッサ250は、コマンドを復号する場合、コマンドに作用し得る(例えば、コマンドに従って状態レジスタを設定する)か、又は、コマンドを宛先構成要素に送信して、それに作用し得る。描画(グラフィックス)コマンド又は計算ディスパッチコマンドは、それぞれグラフィックスコマンドプロセッサ270又は計算コマンドプロセッサ280によって処理される。これらのプロセッサ270、280は、それぞれのコマンドをシェーダコマンドに変換する。キューマネージャ290は、これらのシェーダコマンドをそれぞれのキューに記憶し、これらのキューをシェーダスケジューラ230に供給される実行パイプに接続する。シェーダスケジューラ230は、利用可能なWGP240.1~240.Nにシェーダコマンドを割り当てる。
When a packet encoding the pass-through mode of operation in its header is received, the
したがって、パススルー動作モードでは、コマンドは、現在利用可能なコンピューティングリソースに基づいてコマンドプロセッサ250によって処理され、すなわち、これらのコマンドによって規定される計算タスクは、シェーダ240の現在利用可能なWGPにスケジュールされる(230)。しかしながら、そのヘッダ中に動作の中断開始モードを符号化するパケットが受信される場合、コマンドプロセッサ250は、パケット内のコマンドが処理される前に、シェーダ240のWGP240.1~240.N上で現在処理されているウェーブの中断動作を開始する。同様に、中断終了動作モードをそのヘッダ内に符号化するパケットが受信されると、パケット内のコマンドが処理され、次いで、コマンドプロセッサ250は、中断されたウェーブを再開(復元)してそれらの処理を継続することによって中断を終了する。中断段階(すなわち、中断開始モードを符号化するパケットで始まり、中断終了モードを符号化するパケットで終わる段階)中に受信されるコマンドは、APUの全てのコンピューティングリソースを利用可能であり、したがって、シェーダ240の全てのWGP240.1~240.N上で排他的にスケジュールすることができる。次いで、中断段階中に、APUは、パケットを生成したアプリケーション(本明細書で開示される態様によれば、中断モードを開始したアプリケーション)に関連付けられたメモリ220内のキューからフェッチされたパケット内のコマンドを排他的に処理する。APUは、中断段階が終了するまで、他のアプリケーションに関連付けられたメモリ220内のキューに記憶されたパケットを供給しない(例えば、フェッチしない)。
Thus, in the pass-through mode of operation, commands are processed by the
したがって、上述したように、中断開始モードがパケットのヘッダから復号されると、中断動作がトリガされる。すなわち、コマンドプロセッサ250は、シェーダスケジューラ230に供給する実行パイプへの任意の新しいキューの接続を停止するようにキューマネージャ290に信号を送る。更に、キューマネージャ290は、実行パイプに現在接続されている任意のキューをオフに切り替える、休止する又は停止するように信号を送られる。一態様では、パケットのヘッダ中の情報に基づいて、中断は、現在動作しているウェーブを中断することによって、そのようなウェーブを排出させることによって、又は、それらの組合せによって実行され得る。中断動作が完了すると、全てのシェーダリソースが利用可能になり、シェーダのWGPは使用されておらず、したがって、中断段階中に受信されたコマンドによって規定される計算タスクでスケジュールされるように利用可能である。中断段階は、後続のパケットのヘッダから中断終了モードが復号されるまで継続する。このとき、上述したように、中断ウェーブが再開(復元)される。
Thus, as described above, when the pause start mode is decoded from the header of the packet, a pause operation is triggered. That is, the
現在実行中のウェーブを中断することは、計算ウェーブ保存復元(CWSR)手順と呼ばれる手順によって使用することができ、それを通してウェーブを中断し復元することができる。CWSR手順では、コマンドプロセッサ250は、ウェーブを現在実行しているシェーダ240.1~240.Nに、それらの状態をメモリに保存し、それら自体を実行から除去するように命令する。次いで、コマンドプロセッサ250は、ハードウェアマシンをトリガして、ウェーブリプレイリストをメモリ内のスタックに保存する。ウェーブを再開(復元)するために、コマンドプロセッサ250は、スタックをハードウェア実行ユニットにプッシュバックし、次いで、再生されたウェーブは、それらの状態を復元し、それらが以前に停止した場所で動作を再開する。
Aborting a currently executing wave can be used by a procedure called the Compute Wave Save and Restore (CWSR) procedure, through which a wave can be suspended and restored. In the CWSR procedure, the
図3は、本開示の1つ以上の特徴が実装され得るAPU215のインライン中断のための例示的な方法300のフローチャートである。通常の動作中、プロセッサ210は、計算タスクに関連付けられたコマンドを、1つ以上のパケットを介してAPU215に送信する。したがって、方法300は、ステップ310において、パケットを受信することから始まる。ステップ320において、受信されたパケットのヘッダは、動作モードを決定するために復号される。決定された動作モードが中断開始モードでない場合、ステップ340において、受信されたパケット内のコマンドは、APU215の現在利用可能なコンピューティングリソースに基づいて実行される。したがって、受信されたパケット内のコマンドに関連付けられたウェーブは、WGP240.1~240.Nを、以前に受信されたパケットから受信されたコマンドに関連付けられた他の(現在実行中の)ウェーブと共有しなければならない場合がある。しかしながら、動作モードが中断開始モードであると決定された場合、ステップ330において、シェーダ処理は中断される。すなわち、シェーダ240の全てのコンピューティングリソースを利用可能にするために、WGP240.1~240.N内で現在実行中のウェーブが中断される。中断が完了すると、ステップ340で、受信されたパケット内のコマンドは、シェーダ240によって排他的に実行される。ステップ350において、動作モードが中断終了モードであると決定された場合、ステップ360において、中断されたウェーブが再開(復元)される。中断されたウェーブが再開(復元)されると(360)、(ステップ330とステップ360との間に続く)中断段階が終了する。すなわち、後続のパケット内のコマンドは、別の中断段階を再びトリガする中断開始動作モードを符号化するパケットが受信されるまで、再開(復元)されたウェーブとコンピューティングリソースを共有しながら実行される。
3 is a flow chart of an
一態様では、動作モードは、例えば、1つ以上のパケットで受信されたコマンドの処理に関連するイベントに基づいて、APU215によって変更され得る。モードは、(通常の動作状態の間の)パススルー動作モードから中断開始動作モードに変更されて、中断段階における動作をもたらすことができる。代替的に、モードは、(中断段階での動作中の)パススルー動作モードから中断終了動作モードに変更されて、中断段階での動作を停止してもよい。例えば、グラフィックスコマンドプロセッサ270又は計算コマンドプロセッサ280によるコマンドの処理中に(又はこれらの処理されたコマンドに関連付けられたシェーダコマンドを実行するウェーブの処理中に)、これらのコマンドの全て又はサブセットの実行のために全てのコンピューティングリソースを引き継ぐことを要求するイベントが発生し得る。そのような状況では、コマンドプロセッサ250は、APUの全てのコンピューティングリソースをこのコマンドサブセットの実行専用にするために、動作モードをパススルーモードから中断開始モードに変更することを決定することができる。このコマンドサブセットの実行の終了時に、コマンドプロセッサ250は、動作モードを中断終了モードに変更し、通常の動作状態に戻ることができる。代替的に、中断段階の下でコマンドを処理している間に、中断段階を終了することを要求するイベントが発生する可能性があり、その場合、コマンドプロセッサ250は、動作モードを中断終了モードに変更することができる。
In one aspect, the operating mode may be changed by
本明細書の開示に基づいて、多くの変形が可能であることを理解されたい。特徴及び要素が特定の組み合わせで上述されているが、各特徴又は要素は、他の特徴及び要素を用いずに単独で、又は、他の特徴及び要素を用いて若しくは用いずに様々な組み合わせで使用することができる。 It should be understood that many variations are possible based on the disclosure herein. Although features and elements are described above in particular combinations, each feature or element can be used alone without other features and elements, or in various combinations with or without other features and elements.
提供される方法は、汎用コンピュータ、プロセッサ又はプロセッサコアにおいて実施することができる。好適なプロセッサとしては、例として、汎用プロセッサ、専用プロセッサ、従来型プロセッサ、デジタル信号プロセッサ(DSP)、複数のマイクロプロセッサ、DSPコアと関連付けられた1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、任意の他のタイプの集積回路(IC)、及び/又は、状態マシンが挙げられる。そのようなプロセッサは、処理されたハードウェア記述言語(hardware description language、HDL)命令及びネットリストを含む他の中間データ(コンピュータ可読媒体に記憶させることが可能な命令等)の結果を使用して製造プロセスを構成することによって製造することができる。そのような処理の結果はマスクワークとすることができ、次いで、このマスクワークを半導体製造プロセスにおいて使用して、実施形態の態様を実装するプロセッサを製造する。 The provided methods can be implemented in a general purpose computer, processor, or processor core. Suitable processors include, by way of example, general purpose processors, special purpose processors, conventional processors, digital signal processors (DSPs), multiple microprocessors, one or more microprocessors associated with a DSP core, controllers, microcontrollers, application specific integrated circuits (ASICs), field programmable gate array (FPGA) circuits, any other type of integrated circuit (IC), and/or state machines. Such processors can be manufactured by configuring a manufacturing process using the results of processed hardware description language (HDL) instructions and other intermediate data, including netlists (such as instructions that can be stored on a computer readable medium). The results of such processing can be a mask work, which is then used in a semiconductor manufacturing process to manufacture a processor implementing aspects of the embodiments.
本明細書に提供される方法又はフローチャートは、汎用コンピュータ又はプロセッサによる実行のために非一時的なコンピュータ可読記憶媒体に組み込まれるコンピュータプログラム、ソフトウェア又はファームウェアにおいて実装することができる。非一時的なコンピュータ可読記憶媒体の例としては、読み取り専用メモリ(read only memory、ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及びリムーバブルディスク等の磁気媒体、磁気光学媒体、並びに、CD-ROMディスク及びデジタル多用途ディスク(digital versatile disk、DVD)等の光学媒体が挙げられる。 The methods or flow charts provided herein may be implemented in a computer program, software, or firmware embodied in a non-transitory computer-readable storage medium for execution by a general purpose computer or processor. Examples of non-transitory computer-readable storage media include read only memory (ROM), random access memory (RAM), registers, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks and digital versatile disks (DVDs).
Claims (25)
動作モードと前記APUが実行するコマンドとを含むパケットを受信することと、
前記動作モードが中断開始モードであることに応じて、以前のパケットにおいて受信したコマンドの実行を中断することと、
前記APUが、受信したパケット内のコマンドを実行することと、を含む、
方法。 1. A method for in-line interruption of an accelerated processing unit (APU), comprising:
receiving a packet containing an operating mode and a command for the APU to execute;
suspending execution of a command received in a previous packet in response to the operational mode being a suspend-start mode;
and the APU executing a command in the received packet.
method.
請求項1の方法。 resuming execution of the interrupted command in response to the operational mode being an interrupt-and-terminate mode.
2. The method of claim 1.
それぞれの実行パイプからキューを切断することであって、前記キューは、前記以前のパケットにおいて受信したコマンドに関連付けられたシェーダコマンドを含む、ことを含む、
請求項1の方法。 Aborting execution of a command received in the previous packet comprises:
disconnecting a queue from each execution pipe, the queue including shader commands associated with commands received in the previous packet;
2. The method of claim 1.
受信したパケットに含まれる情報に基づいて、前記APUによって現在実行されているウェーブを中断することであって、前記ウェーブは、前記以前のパケットにおいて受信したコマンドに関連付けられたシェーダコマンドを実行する、ことを含む、
請求項1の方法。 Aborting execution of a command received in the previous packet comprises:
and suspending a wave currently being executed by the APU based on information contained in a received packet, the wave executing a shader command associated with a command received in the previous packet.
2. The method of claim 1.
前記以前のパケットにおいて受信したコマンドに関連するウェーブを中断するために、コンピュートウェーブセーブ復元(CWSR)手順を採用することを含む、
請求項1の方法。 Aborting execution of a command received in the previous packet comprises:
employing a Compute Wave Save Restore (CWSR) procedure to abort a wave associated with the command received in the previous packet;
2. The method of claim 1.
受信したパケットに含まれる情報に基づいて、前記APUによって現在実行されているウェーブを排出することであって、前記ウェーブは、前記以前のパケットにおいて受信したコマンドに関連付けられたシェーダコマンドを実行する、ことを含む、
請求項1の方法。 Aborting execution of a command received in the previous packet comprises:
Draining a wave currently being executed by the APU based on information contained in a received packet, the wave executing a shader command associated with a command received in the previous packet.
2. The method of claim 1.
請求項1の方法。 The operational mode is changed by the APU based on an event associated with processing a command in a received packet or a previously received packet.
2. The method of claim 1.
請求項1の方法。 The APU is one of a graphics processing unit, a digital signal processor, a field programmable gate array processor, or a neural processing unit.
2. The method of claim 1.
請求項1の方法。 said executing being performed by an execution engine of said APU;
2. The method of claim 1.
請求項8の方法。 the execution engine is a shader;
9. The method of claim 8.
請求項1の方法。 a received packet is fetched by the APU from a queue in memory, the queue being associated with an application that generated the received packet;
2. The method of claim 1.
少なくとも1つのプロセッサと、
命令を記憶するメモリと、を備え、
前記命令は、前記少なくとも1つのプロセッサによって実行されると、
動作モードと前記APUが実行するコマンドとを含むパケットを受信することと、
前記動作モードが中断開始モードであることに応じて、以前のパケットにおいて受信したコマンドの実行を中断することと、
前記APUが、受信したパケット内のコマンドを実行することと、
を前記システムに行わせる、
システム。 1. A system for in-line interruption of an APU, comprising:
At least one processor;
A memory for storing instructions,
The instructions, when executed by the at least one processor,
receiving a packet containing an operating mode and a command for the APU to execute;
suspending execution of a command received in a previous packet in response to the operational mode being a suspend-start mode;
the APU executing a command in the received packet;
causing the system to
system.
前記動作モードが中断終了モードであることに応じて、中断されたコマンドの実行を再開することを前記システムに行わせる、
請求項12のシステム。 The instruction:
in response to the operating mode being a suspend-end mode, causing the system to resume execution of the suspended command;
The system of claim 12.
それぞれの実行パイプからキューを切断することであって、前記キューは、前記以前のパケットにおいて受信したコマンドに関連付けられたシェーダコマンドを含む、ことを含む、
請求項12のシステム。 Aborting execution of a command received in the previous packet comprises:
disconnecting a queue from each execution pipe, the queue including shader commands associated with commands received in the previous packet;
The system of claim 12.
受信したパケットに含まれる情報に基づいて、前記APUによって現在実行されているウェーブを中断することであって、前記ウェーブは、前記以前のパケットにおいて受信したコマンドに関連付けられたシェーダコマンドを実行する、ことを含む、
請求項12のシステム。 Aborting execution of a command received in the previous packet comprises:
and suspending a wave currently being executed by the APU based on information contained in a received packet, the wave executing a shader command associated with a command received in the previous packet.
The system of claim 12.
前記以前のパケットにおいて受信したコマンドに関連するウェーブを中断するために、コンピュートウェーブセーブ復元(CWSR)手順を採用することを含む、
請求項12のシステム。 Aborting execution of a command received in the previous packet comprises:
employing a Compute Wave Save Restore (CWSR) procedure to abort a wave associated with the command received in the previous packet;
The system of claim 12.
受信したパケットに含まれる情報に基づいて、前記APUによって現在実行されているウェーブを排出することであって、前記ウェーブは、前記以前のパケットにおいて受信したコマンドに関連付けられたシェーダコマンドを実行する、ことを含む、
請求項12のシステム。 Aborting execution of a command received in the previous packet comprises:
Draining a wave currently being executed by the APU based on information contained in a received packet, the wave executing a shader command associated with a command received in the previous packet.
The system of claim 12.
請求項12のシステム。 The operational mode is changed by the APU based on an event associated with processing a command in a received packet or a previously received packet.
The system of claim 12.
前記APUは、
動作モードと前記APUが実行するコマンドとを含むパケットを受信することと、
前記動作モードが中断開始モードであることに応じて、以前のパケットにおいて受信したコマンドの実行を中断することと、
前記APUが、受信したパケット内のコマンドを実行することと、
を行うことが可能である、
コンピュータ可読記憶媒体。 1. A computer-readable storage medium comprising hardware description language instructions describing an accelerated processing unit (APU) configured to perform an in-line interruption of the APU, the computer-readable storage medium comprising:
The APU is
receiving a packet containing an operating mode and a command for the APU to execute;
suspending execution of a command received in a previous packet in response to the operational mode being a suspend-start mode;
the APU executing a command in the received packet;
It is possible to
A computer-readable storage medium.
前記動作モードが中断終了モードであることに応じて、中断されたコマンドの実行を再開することが可能である、
請求項19のコンピュータ可読記憶媒体の命令。 The APU is
In response to the operation mode being a suspend-end mode, execution of the suspended command can be resumed.
20. The computer readable storage medium of claim 19.
それぞれの実行パイプからキューを切断することであって、前記キューは、前記以前のパケットにおいて受信したコマンドに関連付けられたシェーダコマンドを含む、ことを含む、
請求項19のコンピュータ可読記憶媒体の命令。 Aborting execution of a command received in the previous packet comprises:
disconnecting a queue from each execution pipe, the queue including shader commands associated with commands received in the previous packet;
20. The computer readable storage medium of claim 19.
受信したパケットに含まれる情報に基づいて、前記APUによって現在実行されているウェーブを中断することであって、前記ウェーブは、前記以前のパケットにおいて受信したコマンドに関連付けられたシェーダコマンドを実行する、ことを含む、
請求項19のコンピュータ可読記憶媒体の命令。 Aborting execution of a command received in the previous packet comprises:
and suspending a wave currently being executed by the APU based on information contained in a received packet, the wave executing a shader command associated with a command received in the previous packet.
20. The computer readable storage medium of claim 19.
前記以前のパケットにおいて受信したコマンドに関連するウェーブを中断するために、コンピュートウェーブセーブ復元(CWSR)手順を採用することを含む、
請求項19のコンピュータ可読記憶媒体の命令。 Aborting execution of a command received in the previous packet comprises:
employing a Compute Wave Save Restore (CWSR) procedure to abort a wave associated with the command received in the previous packet;
20. The computer readable storage medium of claim 19.
受信したパケットに含まれる情報に基づいて、前記APUによって現在実行されているウェーブを排出することであって、前記ウェーブは、前記以前のパケットにおいて受信したコマンドに関連付けられたシェーダコマンドを実行する、ことを含む、
請求項19のコンピュータ可読記憶媒体の命令。 Aborting execution of a command received in the previous packet comprises:
Draining a wave currently being executed by the APU based on information contained in a received packet, the wave executing a shader command associated with a command received in the previous packet.
20. The computer readable storage medium of claim 19.
請求項19のコンピュータ可読記憶媒体の命令。 The operational mode is changed by the APU based on an event associated with processing a command in a received packet or a previously received packet.
20. The computer readable storage medium of claim 19.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/564,049 US12056787B2 (en) | 2021-12-28 | 2021-12-28 | Inline suspension of an accelerated processing unit |
| US17/564,049 | 2021-12-28 | ||
| PCT/US2022/050491 WO2023129301A1 (en) | 2021-12-28 | 2022-11-18 | Inline suspension of an accelerated processing unit |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2024545660A true JP2024545660A (en) | 2024-12-10 |
Family
ID=86896827
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024535496A Pending JP2024545660A (en) | 2021-12-28 | 2022-11-18 | In-line interruption of acceleration processing units |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US12056787B2 (en) |
| EP (1) | EP4457616A1 (en) |
| JP (1) | JP2024545660A (en) |
| KR (1) | KR20240124330A (en) |
| CN (1) | CN118475915A (en) |
| WO (1) | WO2023129301A1 (en) |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7054802B2 (en) | 2000-10-20 | 2006-05-30 | Quickturn Design Systems, Inc. | Hardware-assisted design verification system using a packet-based protocol logic synthesized for efficient data loading and unloading |
| US8131921B2 (en) | 2008-09-17 | 2012-03-06 | Intel Corporation | Command suspension in response, at least in part, to detected acceleration and/or orientation change |
| US9519943B2 (en) * | 2010-12-07 | 2016-12-13 | Advanced Micro Devices, Inc. | Priority-based command execution |
| US9299121B2 (en) * | 2010-12-15 | 2016-03-29 | Advanced Micro Devices, Inc. | Preemptive context switching |
| US10002021B2 (en) * | 2012-07-20 | 2018-06-19 | Qualcomm Incorporated | Deferred preemption techniques for scheduling graphics processing unit command streams |
| US10134103B2 (en) * | 2015-10-23 | 2018-11-20 | Qualcomm Incorporated | GPU operation algorithm selection based on command stream marker |
| CN109254826B (en) | 2017-07-12 | 2024-02-06 | 超威半导体公司 | Suspension detection for virtualized acceleration processing device |
| US10824467B2 (en) | 2018-08-07 | 2020-11-03 | Arm Limited | Data processing system with protected mode of operation for processing protected content |
| US10963299B2 (en) | 2018-09-18 | 2021-03-30 | Advanced Micro Devices, Inc. | Hardware accelerated dynamic work creation on a graphics processing unit |
| US11830101B2 (en) * | 2020-07-17 | 2023-11-28 | Arm Limited | Graphics processors |
-
2021
- 2021-12-28 US US17/564,049 patent/US12056787B2/en active Active
-
2022
- 2022-11-18 JP JP2024535496A patent/JP2024545660A/en active Pending
- 2022-11-18 WO PCT/US2022/050491 patent/WO2023129301A1/en not_active Ceased
- 2022-11-18 KR KR1020247022917A patent/KR20240124330A/en active Pending
- 2022-11-18 EP EP22917158.2A patent/EP4457616A1/en active Pending
- 2022-11-18 CN CN202280086626.1A patent/CN118475915A/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| US12056787B2 (en) | 2024-08-06 |
| KR20240124330A (en) | 2024-08-16 |
| WO2023129301A1 (en) | 2023-07-06 |
| EP4457616A1 (en) | 2024-11-06 |
| CN118475915A (en) | 2024-08-09 |
| US20230206379A1 (en) | 2023-06-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20250191111A1 (en) | Reconfigurable virtual graphics and compute processor pipeline | |
| KR101786768B1 (en) | Graphics compute process scheduling | |
| US8963933B2 (en) | Method for urgency-based preemption of a process | |
| KR101788267B1 (en) | Optimizing communication of system call requests | |
| KR101961396B1 (en) | Dynamic work partitioning on heterogeneous processing devices | |
| EP3646177B1 (en) | Early virtualization context switch for virtualized accelerated processing device | |
| KR101786767B1 (en) | Graphics processing dispatch from user mode | |
| US10242420B2 (en) | Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta | |
| JP2010050970A (en) | Device and method of communicating between central processing unit and graphics processing unit | |
| JP2024511765A (en) | Multi-accelerator computation dispatch | |
| US9122522B2 (en) | Software mechanisms for managing task scheduling on an accelerated processing device (APD) | |
| US8933942B2 (en) | Partitioning resources of a processor | |
| WO2012082777A1 (en) | Managed task scheduling on an accelerated processing device (apd) | |
| JP2014503898A (en) | Method and system for synchronous operation of processing equipment | |
| US20130135327A1 (en) | Saving and Restoring Non-Shader State Using a Command Processor | |
| JP2024541294A (en) | Reducing Latency in Highly Scalable HPC Applications Through Accelerator-Resident Runtime Management - Patent application | |
| US10255104B2 (en) | System call queue between visible and invisible computing devices | |
| JP2024545660A (en) | In-line interruption of acceleration processing units | |
| US9015719B2 (en) | Scheduling of tasks to be performed by a non-coherent device | |
| JP2024501454A (en) | Compressed command packets for high throughput and low overhead kernel launches | |
| US20130155079A1 (en) | Saving and Restoring Shader Context State | |
| US20240362092A1 (en) | Offloading network communication operation synchronizations to accelerator streams | |
| US20120194528A1 (en) | Method and System for Context Switching |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20251113 |