JP6219445B2 - 中央処理ユニット及び画像処理ユニットの同期機構 - Google Patents
中央処理ユニット及び画像処理ユニットの同期機構 Download PDFInfo
- 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
Links
- 230000007246 mechanism Effects 0.000 title description 3
- 238000000034 method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 9
- 230000011664 signaling Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009987 spinning Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory 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
Claims (20)
- 処理装置であって、
ライブラリの第1のスレッドを実行するホスト中央処理ユニット(CPU)と、
前記ホストCPUに接続されるグラフィクス処理ユニット(GPU)と、
を有し、
前記ホストCPUと前記GPUとは、共有されたバーチャルアドレススペースへのアクセスを共有し、前記第1のスレッドは、前記共有されたバーチャルアドレススペースへのアクセスを同期させ、
前記第1のスレッドは、前記ホストCPU上で実行する第2のスレッドと前記GPU上で実行する第3のスレッドとの間のアクセスを同期させ、
前記第1のスレッドは、取得処理及び解放処理を介しアクセスを同期させる処理装置。 - 前記第3のスレッドは、前記取得処理を介し前記共有されたバーチャルアドレススペースにおけるデータにアクセスし、前記第2のスレッドが前記データを解放するまで前記データへのアクセスを待機する、請求項1記載の処理装置。
- 前記第3のスレッドは、前記解放処理を介し前記アクセス後に前記データを解放し、前記解放は、前記第2のスレッドが前記データにアクセスすることを可能にする、請求項2記載の処理装置。
- 前記GPUは、前記ホストCPUから信号メッセージが受信されると、前記第3のスレッドをウェイクする、請求項1乃至3何れか一項記載の処理装置。
- 前記第1のスレッドは、前記ホストCPUと前記GPUとの間で前記信号メッセージを可能にする、請求項4記載の処理装置。
- 前記第1のスレッドは、前記第3のスレッドと前記第1のスレッドとの間でアクセスを同期させる、請求項1記載の処理装置。
- 前記ホストCPUと前記GPUとは、1つの集積回路内に統合される、請求項1記載の処理装置。
- 前記ホストCPUは、複数の処理コアを含む、請求項7記載の処理装置。
- 前記GPUは、マルチスレッドマルチコアパラレルプロセッサである、請求項8記載の処理装置。
- ヘテロジーニアス処理システムであって、
ホストCPUと前記ホストCPUに接続されるGPUとを有する複数のヘテロジーニアスプロセッサと、
前記ホストCPUと前記GPUとによって共有されるメモリであって、共有されたバーチャルアドレススペースを有するメモリと、
前記ホストCPU上で実行する第1のスレッドであって、前記ホストCPU上の第2のスレッドと前記GPU上の第3のスレッドとによるメモリアクセスを同期させる第1のスレッドであって、取得処理及び解放処理を介しアクセスを同期させる第1のスレッドと、
を有するシステム。 - 前記GPU上の前記第3のスレッドは、前記共有されたバーチャルアドレススペースにおけるデータへのアクセスを取得することを要求し、前記データが前記第1のスレッドによって解放されるまで前記データへのアクセスを取得することを待機する、請求項10記載のシステム。
- 前記ホストCPUから信号メッセージが受信されると、前記GPUは、前記第3のスレッドをウェイクし、前記信号メッセージは、前記第3のスレッドが前記データへのアクセスを取得することを可能にする、請求項11記載のシステム。
- 前記第1のスレッドは、前記第3のスレッドと前記第1のスレッドとの間でアクセスを同期させる、請求項10記載のシステム。
- 前記複数のヘテロジーニアスプロセッサは、1つの集積回路内に統合される、請求項10記載のシステム。
- 前記GPUに関連するドライバを更に有し、
前記ドライバは、前記第1のスレッドと前記第3のスレッドとの間で同期メッセージを転送するため前記ホストCPU上で実行する、請求項10記載のシステム。 - 前記ホストCPUは、複数の処理コアを含み、前記GPUは、マルチスレッドマルチコアパラレルプロセッサである、請求項10乃至15何れか一項記載のシステム。
- データ処理システムであって、
ホストCPUと前記ホストCPUに接続されるGPUとを有する複数のヘテロジーニアスプロセッサであって、1つの集積回路内に統合される複数のヘテロジーニアスプロセッサと、
前記GPUからの出力を表示するディスプレイ装置と、
前記ホストCPUと前記GPUとによって共有されるメモリであって、共有されたバーチャルアドレススペースを有するメモリと、
前記ホストCPU上で実行する第1のスレッドであって、前記ホストCPU上の第2のスレッドと前記GPU上の第3のスレッドとによるメモリアクセスを同期させる第1のスレッドと、
を有し、
前記第1のスレッドは、取得処理及び解放処理を介しアクセスを同期させるシステム。 - 前記GPU上の第3のスレッドは、前記共有されたバーチャルアドレススペースにおけるデータへのアクセスを取得することを要求し、前記データが前記第1のスレッドによって解放されるまで前記データへのアクセスを取得することを待機し、
前記GPUは、前記ホストCPUから信号メッセージが受信されると、前記第3のスレッドをウェイクし、
前記信号メッセージは、前記第3のスレッドが前記データへのアクセスを取得することを可能にし、
前記第1のスレッドは、前記第3のスレッドと前記第1のスレッドとの間でアクセスを同期させる、請求項17記載のシステム。 - 前記GPUに関連するドライバを更に有し、
前記ドライバは、前記第1のスレッドと前記第3のスレッドとの間で同期メッセージを転送するため前記ホストCPU上で実行する、請求項17記載のシステム。 - 前記ホストCPUは、複数の処理コアを含み、前記GPUは、マルチスレッドマルチコアパラレルプロセッサである、請求項17乃至19何れか一項記載のシステム。
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)
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)
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 |
-
2011
- 2011-07-29 US US13/193,779 patent/US9633407B2/en active Active
-
2012
- 2012-06-29 EP EP17165984.0A patent/EP3211525B1/en active Active
- 2012-06-29 JP JP2014522839A patent/JP5933000B2/ja active Active
- 2012-06-29 EP EP12819390.1A patent/EP2737396A4/en not_active Ceased
- 2012-06-29 WO PCT/US2012/044805 patent/WO2013019350A2/en active Application Filing
- 2012-06-29 CN CN201611216183.6A patent/CN106648552B/zh active Active
- 2012-06-29 CN CN201280037791.4A patent/CN103718156B/zh active Active
-
2016
- 2016-04-28 JP JP2016090769A patent/JP6219445B2/ja active Active
- 2016-09-28 US US15/278,316 patent/US9892481B2/en active Active
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 |