JP6219445B2 - 中央処理ユニット及び画像処理ユニットの同期機構 - Google Patents

中央処理ユニット及び画像処理ユニットの同期機構 Download PDF

Info

Publication number
JP6219445B2
JP6219445B2 JP2016090769A JP2016090769A JP6219445B2 JP 6219445 B2 JP6219445 B2 JP 6219445B2 JP 2016090769 A JP2016090769 A JP 2016090769A JP 2016090769 A JP2016090769 A JP 2016090769A JP 6219445 B2 JP6219445 B2 JP 6219445B2
Authority
JP
Japan
Prior art keywords
thread
gpu
host cpu
access
data
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
Application number
JP2016090769A
Other languages
English (en)
Other versions
JP2016173836A5 (ja
JP2016173836A (ja
Inventor
ギンスブルグ,ボリス
ナタンゾン,エスフィルシュ
オサドチー,イリヤ
ザック,ヨアヴ
Original Assignee
インテル コーポレイション
インテル コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2016173836A publication Critical patent/JP2016173836A/ja
Publication of JP2016173836A5 publication Critical patent/JP2016173836A5/ja
Application granted granted Critical
Publication of JP6219445B2 publication Critical patent/JP6219445B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory 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)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Advance Control (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Multi Processors (AREA)
  • Digital Computer Display Output (AREA)

Description

本発明は概して汎用処理装置及び画像処理装置を持つ電子計算機に関する。
汎用処理ユニット上又は中央処理ユニット(CPU)上で作動しているユーザーアプリケーションによって使用される記憶装置(memory)及び画像処理ユニット(GPU)によって使用される記憶装置は、典型的に別個のものとされる。画像処理ユニットドライバーは、画像処理ユニット上での処理のために使用者スペースからドライバ記憶装置へデータをコピーする。共有仮想記憶装置モデルにおいて、データは画像処理ユニットへコピーされず、代わりに、それは画像処理ユニットと中央処理ユニットの間で共有される。
一般に、マルチスレッドアプリケーションにおいて、共有されたデータはミューテックス(相互排除、mutexes)と呼ばれるロックによって保護される。共有データにアクセスする必要があるそれぞれのスレッドは、他のスレッドがそのミューテックスにアクセスすることを阻止するため、第一にそれぞれの対応するミューテックスをロックしなければならない。このロックは、ロック上での“スピニング”を通じて行うことができるが、この技術は消費電力及び性能の点から効率的ではない。
中央処理ユニットを最適化するため、オペレーティングシステムは、ミューテックスが取得可能となるまでスレッドが休眠状態になることを許可するシステムコールを与え、次にミューテックスがロック解除されたときに他のスレッドに通知する。しかし、この機構は、中央処理装置のコア上で作動するスレッドにのみ機能する。
図1は本発明の一つの実施形態の模式図である。 図2は本発明の一つの実施形態によるスレッド及びメモリのモデルの拡大である。 図3は本発明の一つの実施形態によるページフォールト対処のためのフローチャートである。 図4は一つの実施形態のシステム図である。
一つの実施形態において、画像処理装置上で作動しているそれぞれのスレッド群のために、中央処理装置上で作動する補助的なシャドウスレッドが生み出されてもよい。画像処理ユニット上で作動しているスレッドがミューテックスをロックする必要があるとき、そのスレッドが他のタスクから解放されるまで待機する必要があるならば、画像処理ユニットは中央処理ユニット上のシャドウスレッドへの要求を送信する。中央処理ユニット上のシャドウスレッドは、オペレーティングシステムへ呼び出された対応するシステムを発する。オペレーティングシステムがシャドウスレッドにロックを与えた場合に、シャドウスレッドは画像処理ユニット上のスレッドに通知を送信する。
本出願において「画像処理ユニット」の語句が用いられているが、画像処理ユニットは単独の集積回路でもよく、また、そうでなくともよいことが理解されるべきである。本発明は画像処理ユニット及び中央処理ユニットが一つの集積回路に統合されている状況に適用可能である。本明細書において使用される、処理装置又は処理ユニットは処理装置(processor)、制御装置(controller)又は副処理装置(coprocessor)であってもよい。
図1を参照すると、ホスト/中央処理ユニット16は、処理装置を基礎とするシステム10内の画像処理ユニット18と通信する。ホスト/中央処理ユニット16は、ハードウェア組込み型のデバイス又は携帯型のデバイスを含む、如何なる処理装置を基礎とするシステムの一部であってもよい。いくつかの例に言及するならば、携帯型のデバイスの例は携帯電話、ラップトップコンピュータ、タブレットコンピュータ、及び携帯型インターネットデバイスを含む。ホスト/中央処理ユニット16は、シャドウスレッド22に制御情報を与えるユーザーアプリケーション20を含む。シャドウスレッド22は、次いで同期信号と制御信号の同期を画像処理ユニットドライバー26と通信する。シャドウスレッド22はまた、ホストオペレーティングシステム24と通信する。
図1に示されるように、ユーザーレベル12はシャドウスレッド22及びユーザーアプリケーション20を含む。一方、カーネルレベル14はホストオペレーティングシステム24、及び画像処理ユニットドライバー26を含む。画像処理ユニットドライバー26は、中央処理ユニット16内にあるが、画像処理ユニットのドライバである。
画像処理ユニット18は、ユーザーレベル12において、gスレッド(gthread)28を有する。gスレッド28は、オペレーティングシステム(pOS)30に制御メッセージ及び同期メッセージを送信し、オペレーティングシステム30からメッセージを受信する。gスレッドは画像処理ユニット上で作動するユーザーコードであり、中央処理ユニット上で作動している親スレッドと仮想記憶装置を共有する。オペレーティングシステム30は、画像処理ユニット上で作動する比較的小さなオペレーティングシステムでよく、画像処理ユニットのエクセプション(例外)に関与している。オペレーティングシステム30は、一つの例として、ホストオペレーティングシステム24よりも小さい。
ユーザーアプリケーション20は、中央処理ユニット16上で作動するあらゆるユーザープロセスである。ユーザーアプリケーション20は画像処理ユニット18上にスレッドを発生させる。
拡張スレッドライブラリ(eXtended Threaded Library)又はXTLは画像処理ユニット上のユーザースレッドを作り出し、管理するための拡張機能である。このライブラリは、それぞれのgスレッドのためのシャドウスレッドを作り出し、かつ、同期のためのライブラリ機能を持つ。
ユーザーアプリケーションは、従来のマルチスレッドモデルの拡張機能(例えば、「xthread_create(thread, attr, gpu_worker,arg)」)を使用して画像処理ユニットに計算を負荷させる(offload)。
画像処理ユニット上で作り出されたgスレッド又はワーカースレッドは、親スレッドと仮想記憶装置を共有する。それは、全ての標準的なプロセス間の同期機構、例えばミューテックス(Mutex)及びセマフォ(semaphore)における通常のスレッドと同じ様に振る舞う。同時に、新たなシャドウスレッドがホスト/中央処理ユニット16上に作り出される。このシャドウスレッドは、例外処理ユニットのためのプロキシとして、及び中央処理ユニット上のスレッドと画像処理ユニット上のスレッドの同期ためのプロキシとして働く。
いくつかの実施形態において、親スレッド、ホストシャドウスレッド及び画像処理ユニットのワーカースレッドは、図2に示されるように仮想記憶装置を共有する。ホスト/中央処理ユニット16は、シャドウスレッド22のために「xthread_create()」を作り出す親スレッド32を有する。シャドウスレッド22は、処理アドレス空間36内の専用アドレス空間であるシャドウスタックに接続する。親スレッド32もまた、記憶装置記述子34、及び処理アドレス空間36内の専用アドレス空間であるメイン(主)スタックに接続する。記憶装置記述子34もまた、gスレッドワーカー28と交信してもよい。gスレッドワーカー28は、処理アドレス空間36内のgスレッドコードにも、共有されたデータセクション及び専用のgスレッドスタックにも接続することができる。上段に記載された要素は処理モデル38に対応し、下段に記載された要素は記憶装置モデルに対応する。
図3を参照して、同期アルゴリズムはハードウェア、ソフトウェア及び/又はファームウェア内に実装されてもよい。ソフトウェアの実施形態において、アルゴリズムは、一時的でない、コンピュータが読み込み可能な媒体例えば光学的、半導体又は磁気的記憶装置に保存された、コンピュータで実行可能な命令として実装されてもよい。図3において、ホストオペレーティングシステム24、シャドウスレッド22、中央処理ユニット16のドライバ26、及びオペレーティングシステム30及び画像処理ユニット18のリング3 57が複数の平行かつ鉛直な流路(flow paths)として示されている。それらの間の相互作用は、概して水平な矢印によって指し示されている。
続いて図3において、カラム57のブロック60に指し示されているように、一つの実施形態において、リング3で、gスレッド28は短い時間区分のスピニングによってユーザースペースからミューテックスを取得することを試みる。ひし形61で決定されるようにミューテックスが正常に取得された場合、ブロック62に示されるようにプログラムは継続する。ミューテックスが既に他のスレッドによってロックされたためにミューテックスが取得されなかった場合、オペレーティングシステム30への信号(“SYSCALL”)が「取得(ACQUIRE)」操作コードと共に生成される。
オペレーティングシステム30において、信号(SYSCALL)は受信される。オペレーティングシステム30は、パスホストコマンド(PassHostCommand)と呼ばれるメッセージをドライバに送信する。ブロック50に示されるように、パスホストコマンドは「SYSCALL」の操作コード及び「アドレス+オペレーション」のデータ(a data address plus operation)を有している。次いで、ブロック54に示されるように、オペレーティングシステム30は信号を発しているスレッドを休眠(スリープ)状態に置く。ブロック56に示されるように、その信号を発しているスレッドはその後アイドル状態となる。
中央処理ユニット16内のドライバ26は、転送コマンドを使用してそのメッセージをXスレッド22に転送する。Xスレッド22において、転送コマンドは受信される。ブロック44に示されるように、Xスレッドはドライバからのこのメッセージを待機している。ブロック46に示されるように、次いでXスレッドはミューテックスのロックを行い、またホストオペレーティングシステム24への信号(SYSCALL)を含んでもよい。ブロック42に示されるように、ホストオペレーティングシステム24はミューテックスが取得されるまで待機する(すなわち、コンテキストスイッチが存在する)。ミューテックスが取得された後に、Xスレッドは再開実行コマンドをドライバ26に送信し、それからブロック48に示されるように、ドライバからの次のメッセージを受けるまで待機する。
ドライバ26は再開実行コマンドを受信し、そしてパスGpuコマンド(PassGpuCommand)を画像処理ユニット内のオペレーティングシステム30へ送信する。ブロック52に示されるように、パスGpuコマンドはデータを持たず、再開実行の操作コードを含んでもよい。
オペレーティングシステム30は、ブロック58に示されるように、スレッドをウェイクアップし、再開をSYSCALからgスレッド28へ送信する。結果として、ブロック62に示されるように、gスレッド28は稼働を続ける。シャドウスレッドはまた、ミューテックスを解放するために使用されてもよい。
図4に示されるコンピュータシステム130は、ハードドライブ134、及び母線(bus)104によってチップセットコアロジック110に接続された取り外し可能な媒体136を有してもよい。キーボード及びマウス120、又はその他の従来の構成要素は、母線108を介してチップセットコアロジックに接続されてもよい。一つの実施形態において、コアロジックは、母線105を介して画像処理装置112に接続してもよく、また、中央処理装置100に接続してもよい。画像処理装置112はまた、母線106によってフレームバッファー114に接続されてもよい。フレームバッファー114は、母線107によって表示画面118に接続されてもよい。一つの実施形態において、画像処理装置112は、単一命令複数データ(SIMD)アーキテクチャーを使用するマルチスレッド、マルチコアの並列プロセッサーであってもよい。
ソフトウェアへの実装の場合、関連するコードが、あらゆる適切な半導体、磁気的、又は光学的な記憶装置に保存されてもよい。その適切な記憶装置は、主記憶装置132(139に指し示されている)又はあらゆる画像処理装置に適用可能な記憶装置を含む。従って、一つの実施形態において、図3のシークエンスを行うためのコードは、一時的でない機器又はコンピュータが読み込み可能な媒体、例えば記憶装置132、及び/又は画像処理装置112、及び/又は中央処理装置100に保存されてもよい。また、一つの実施形態において、コードは、処理装置100、及び/又は画像処理装置112によって実行されてもよい。
図3はフローチャートである。いくつかの実施形態において、このフローチャートに記述されたシークエンスはハードウェア、ソフトウェア、又はファームウェアに実装することができる。ソフトウェアの実施形態において、コンピュータが読み込み可能な一時的でない媒体、例えば半導体記憶装置、磁気的記憶装置、又は光学的記憶装置が、命令を保存するために使用することができ、また、図3のシークエンスを実施するために処理装置によって実行されることができる。
本明細書において記述された画像処理技術は、様々なハードウェアアーキテクチャーにおいて実施されてもよい。例えば、画像機能性は一つのチップセットに統合されてもよい。代替的に、別個の画像処理装置が使用されてもよい。更に他の実施形態として、画像機能はマルチコア処理装置を含む汎用処理装置によって実施されてもよい。
本明細書を通じて、「一つの実施形態」又は「ある実施形態」についての参照は、実施形態との関係において記述された特定の特徴、構造又は特性が、少なくとも一つの本発明の範囲内の実施方法に含まれることを意味する。従って、「一つの実施形態」又は「ある実施形態」の語句の出現は必ずしも同一の実施形態を参照するものではない。さらに、特定の特徴、構造又は特性は、例示された特定の実施形態以外の他の適切な形式において設けることができ。全てのそのような形式は本発明の特許請求範囲の範囲内でありうる。
本発明は限られた数の実施形態に関して記述されたが、当業者はそれから多くの改良及び変更を理解することであろう。添付の特許請求の範囲が、本発明の本来の精神及び範囲に含まれるような全ての改良及び変更を包含することが意図されている。

Claims (20)

  1. 処理装置であって、
    ライブラリの第1のスレッドを実行するホスト中央処理ユニット(CPU)と、
    前記ホストCPUに接続されるグラフィクス処理ユニット(GPU)と、
    を有し、
    前記ホストCPUと前記GPUとは、共有されたバーチャルアドレススペースへのアクセスを共有し、前記第1のスレッドは、前記共有されたバーチャルアドレススペースへのアクセスを同期させ、
    前記第1のスレッドは、前記ホストCPU上で実行する第2のスレッドと前記GPU上で実行する第3のスレッドとの間のアクセスを同期させ、
    前記第1のスレッドは、取得処理及び解放処理を介しアクセスを同期させる処理装置。
  2. 前記第3のスレッドは、前記取得処理を介し前記共有されたバーチャルアドレススペースにおけるデータにアクセスし、前記第2のスレッドが前記データを解放するまで前記データへのアクセスを待機する、請求項1記載の処理装置。
  3. 前記第3のスレッドは、前記解放処理を介し前記アクセス後に前記データを解放し、前記解放は、前記第2のスレッドが前記データにアクセスすることを可能にする、請求項2記載の処理装置。
  4. 前記GPUは、前記ホストCPUから信号メッセージが受信されると、前記第3のスレッドをウェイクする、請求項1乃至3何れか一項記載の処理装置。
  5. 前記第1のスレッドは、前記ホストCPUと前記GPUとの間で前記信号メッセージを可能にする、請求項4記載の処理装置。
  6. 前記第1のスレッドは、前記第3のスレッドと前記第1のスレッドとの間でアクセスを同期させる、請求項1記載の処理装置。
  7. 前記ホストCPUと前記GPUとは、1つの集積回路内に統合される、請求項1記載の処理装置。
  8. 前記ホストCPUは、複数の処理コアを含む、請求項7記載の処理装置。
  9. 前記GPUは、マルチスレッドマルチコアパラレルプロセッサである、請求項8記載の処理装置。
  10. ヘテロジーニアス処理システムであって、
    ホストCPUと前記ホストCPUに接続されるGPUとを有する複数のヘテロジーニアスプロセッサと、
    前記ホストCPUと前記GPUとによって共有されるメモリであって、共有されたバーチャルアドレススペースを有するメモリと、
    前記ホストCPU上で実行する第1のスレッドであって、前記ホストCPU上の第2のスレッドと前記GPU上の第3のスレッドとによるメモリアクセスを同期させる第1のスレッドであって、取得処理及び解放処理を介しアクセスを同期させる第1のスレッドと、
    を有するシステム。
  11. 前記GPU上の前記第3のスレッドは、前記共有されたバーチャルアドレススペースにおけるデータへのアクセスを取得することを要求し、前記データが前記第1のスレッドによって解放されるまで前記データへのアクセスを取得することを待機する、請求項10記載のシステム。
  12. 前記ホストCPUから信号メッセージが受信されると、前記GPUは、前記第3のスレッドをウェイクし、前記信号メッセージは、前記第3のスレッドが前記データへのアクセスを取得することを可能にする、請求項11記載のシステム。
  13. 前記第1のスレッドは、前記第3のスレッドと前記第1のスレッドとの間でアクセスを同期させる、請求項10記載のシステム。
  14. 前記複数のヘテロジーニアスプロセッサは、1つの集積回路内に統合される、請求項10記載のシステム。
  15. 前記GPUに関連するドライバを更に有し、
    前記ドライバは、前記第1のスレッドと前記第3のスレッドとの間で同期メッセージを転送するため前記ホストCPU上で実行する、請求項10記載のシステム。
  16. 前記ホストCPUは、複数の処理コアを含み、前記GPUは、マルチスレッドマルチコアパラレルプロセッサである、請求項10乃至15何れか一項記載のシステム。
  17. データ処理システムであって、
    ホストCPUと前記ホストCPUに接続されるGPUとを有する複数のヘテロジーニアスプロセッサであって、1つの集積回路内に統合される複数のヘテロジーニアスプロセッサと、
    前記GPUからの出力を表示するディスプレイ装置と、
    前記ホストCPUと前記GPUとによって共有されるメモリであって、共有されたバーチャルアドレススペースを有するメモリと、
    前記ホストCPU上で実行する第1のスレッドであって、前記ホストCPU上の第2のスレッドと前記GPU上の第3のスレッドとによるメモリアクセスを同期させる第1のスレッドと、
    を有し、
    前記第1のスレッドは、取得処理及び解放処理を介しアクセスを同期させるシステム。
  18. 前記GPU上の第3のスレッドは、前記共有されたバーチャルアドレススペースにおけるデータへのアクセスを取得することを要求し、前記データが前記第1のスレッドによって解放されるまで前記データへのアクセスを取得することを待機し、
    前記GPUは、前記ホストCPUから信号メッセージが受信されると、前記第3のスレッドをウェイクし、
    前記信号メッセージは、前記第3のスレッドが前記データへのアクセスを取得することを可能にし、
    前記第1のスレッドは、前記第3のスレッドと前記第1のスレッドとの間でアクセスを同期させる、請求項17記載のシステム。
  19. 前記GPUに関連するドライバを更に有し、
    前記ドライバは、前記第1のスレッドと前記第3のスレッドとの間で同期メッセージを転送するため前記ホストCPU上で実行する、請求項17記載のシステム。
  20. 前記ホストCPUは、複数の処理コアを含み、前記GPUは、マルチスレッドマルチコアパラレルプロセッサである、請求項17乃至19何れか一項記載のシステム。
JP2016090769A 2011-07-29 2016-04-28 中央処理ユニット及び画像処理ユニットの同期機構 Active JP6219445B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/193,779 US9633407B2 (en) 2011-07-29 2011-07-29 CPU/GPU synchronization mechanism
US13/193,779 2011-07-29

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014522839A Division JP5933000B2 (ja) 2011-07-29 2012-06-29 中央処理ユニット及び画像処理ユニットの同期機構

Publications (3)

Publication Number Publication Date
JP2016173836A JP2016173836A (ja) 2016-09-29
JP2016173836A5 JP2016173836A5 (ja) 2017-05-18
JP6219445B2 true JP6219445B2 (ja) 2017-10-25

Family

ID=47596851

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014522839A Active JP5933000B2 (ja) 2011-07-29 2012-06-29 中央処理ユニット及び画像処理ユニットの同期機構
JP2016090769A Active JP6219445B2 (ja) 2011-07-29 2016-04-28 中央処理ユニット及び画像処理ユニットの同期機構

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014522839A Active JP5933000B2 (ja) 2011-07-29 2012-06-29 中央処理ユニット及び画像処理ユニットの同期機構

Country Status (5)

Country Link
US (2) US9633407B2 (ja)
EP (2) EP3211525B1 (ja)
JP (2) JP5933000B2 (ja)
CN (2) CN106648552B (ja)
WO (1) WO2013019350A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9633407B2 (en) 2011-07-29 2017-04-25 Intel Corporation CPU/GPU synchronization mechanism
US9396020B2 (en) 2012-03-30 2016-07-19 Intel Corporation Context switching mechanism for a processing core having a general purpose CPU core and a tightly coupled accelerator
US9436395B2 (en) 2014-03-14 2016-09-06 Advanced Micro Devices, Inc. Mechanisms to save user/kernel copy for cross device communications
US20160381050A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Processors, methods, systems, and instructions to protect shadow stacks
US9830676B2 (en) * 2015-07-28 2017-11-28 Intel Corporation Packet processing on graphics processing units using continuous threads
US10394556B2 (en) 2015-12-20 2019-08-27 Intel Corporation Hardware apparatuses and methods to switch shadow stack pointers
US10430580B2 (en) 2016-02-04 2019-10-01 Intel Corporation Processor extensions to protect stacks during ring transitions
EP3508272A4 (en) 2016-08-31 2019-10-23 Asahi Kasei Kabushiki Kaisha PROCESS FOR PRODUCTION OF CATALYST AND PROCESS FOR PRODUCTION OF ACRYLONITRILE
CN107291559A (zh) * 2017-06-30 2017-10-24 武汉斗鱼网络科技有限公司 一种控制cpu线程和gpu线程同步的方法及装置
CN113358924B (zh) * 2021-04-30 2022-12-06 南方电网数字电网研究院有限公司 一种多线程双芯智能电表分时计量处理方法及装置
US20230056500A1 (en) * 2021-08-18 2023-02-23 Micron Technology, Inc. Chained resource locking

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440746A (en) 1992-11-06 1995-08-08 Seiko Epson Corporation System and method for synchronizing processors in a parallel processing environment
US7234144B2 (en) 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
US7673304B2 (en) 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US7487502B2 (en) 2003-02-19 2009-02-03 Intel Corporation Programmable event driven yield mechanism which may activate other threads
US7788669B2 (en) * 2003-05-02 2010-08-31 Microsoft Corporation System for isolating first computing environment from second execution environment while sharing resources by copying data from first portion to second portion of memory
US20050050305A1 (en) * 2003-08-28 2005-03-03 Kissell Kevin D. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7765547B2 (en) * 2004-11-24 2010-07-27 Maxim Integrated Products, Inc. Hardware multithreading systems with state registers having thread profiling data
US7937709B2 (en) * 2004-12-29 2011-05-03 Intel Corporation Synchronizing multiple threads efficiently
JP2007258873A (ja) 2006-03-22 2007-10-04 Toshiba Corp 再生装置および再生方法
US7773090B1 (en) 2006-06-13 2010-08-10 Nvidia Corporation Kernel mode graphics driver for dual-core computer system
US8996846B2 (en) 2007-09-27 2015-03-31 Nvidia Corporation System, method and computer program product for performing a scan operation
US8140823B2 (en) * 2007-12-03 2012-03-20 Qualcomm Incorporated Multithreaded processor with lock indicator
US8413151B1 (en) * 2007-12-19 2013-04-02 Nvidia Corporation Selective thread spawning within a multi-threaded processing system
US8933953B2 (en) * 2008-06-30 2015-01-13 Intel Corporation Managing active thread dependencies in graphics processing
US8368701B2 (en) 2008-11-06 2013-02-05 Via Technologies, Inc. Metaprocessor for GPU control and synchronization in a multiprocessor environment
US8531471B2 (en) * 2008-11-13 2013-09-10 Intel Corporation Shared virtual memory
US7930519B2 (en) * 2008-12-17 2011-04-19 Advanced Micro Devices, Inc. Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit
US20130125133A1 (en) * 2009-05-29 2013-05-16 Michael D. Schuster System and Method for Load Balancing of Fully Strict Thread-Level Parallel Programs
US20110063304A1 (en) 2009-09-16 2011-03-17 Nvidia Corporation Co-processing synchronizing techniques on heterogeneous graphics processing units
US8868848B2 (en) 2009-12-21 2014-10-21 Intel Corporation Sharing virtual memory-based multi-version data between the heterogenous processors of a computer platform
US9229779B2 (en) * 2009-12-28 2016-01-05 Empire Technology Development Llc Parallelizing heterogeneous network communications in smart devices based on selection of task allocation strategy
US9633407B2 (en) 2011-07-29 2017-04-25 Intel Corporation CPU/GPU synchronization mechanism

Also Published As

Publication number Publication date
JP2014522038A (ja) 2014-08-28
CN106648552B (zh) 2019-02-22
US9633407B2 (en) 2017-04-25
EP3211525B1 (en) 2020-04-29
CN103718156B (zh) 2018-05-01
CN103718156A (zh) 2014-04-09
CN106648552A (zh) 2017-05-10
US20130027410A1 (en) 2013-01-31
EP3211525A1 (en) 2017-08-30
EP2737396A4 (en) 2015-06-10
US9892481B2 (en) 2018-02-13
JP5933000B2 (ja) 2016-06-08
EP2737396A2 (en) 2014-06-04
US20170018051A1 (en) 2017-01-19
WO2013019350A2 (en) 2013-02-07
WO2013019350A3 (en) 2013-05-10
JP2016173836A (ja) 2016-09-29

Similar Documents

Publication Publication Date Title
JP6219445B2 (ja) 中央処理ユニット及び画像処理ユニットの同期機構
US10706496B2 (en) Function callback mechanism between a Central Processing Unit (CPU) and an auxiliary processor
US8368701B2 (en) Metaprocessor for GPU control and synchronization in a multiprocessor environment
US8082426B2 (en) Support of a plurality of graphic processing units
US10635470B2 (en) Hibernation via paravirtualization
US8516483B2 (en) Transparent support for operating system services for a sequestered sequencer
US8645963B2 (en) Clustering threads based on contention patterns
US11726926B2 (en) System and method for application migration for a dockable device
JP2005284749A (ja) 並列処理コンピュータ
US9959134B2 (en) Request processing using VM functions
CN103473135B (zh) 虚拟化环境下自旋锁lhp现象的处理方法
US20200081735A1 (en) Efficient virtual machine memory monitoring with hyper-threading
JP5867630B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
Watson Introduction to multithreading and multiprocessing in the FreeBSD SMPng network stack

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170808

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: 20170829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170927

R150 Certificate of patent or registration of utility model

Ref document number: 6219445

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