JP2015504226A - マルチスレッドコンピューティング - Google Patents
マルチスレッドコンピューティング Download PDFInfo
- Publication number
- JP2015504226A JP2015504226A JP2014553528A JP2014553528A JP2015504226A JP 2015504226 A JP2015504226 A JP 2015504226A JP 2014553528 A JP2014553528 A JP 2014553528A JP 2014553528 A JP2014553528 A JP 2014553528A JP 2015504226 A JP2015504226 A JP 2015504226A
- Authority
- JP
- Japan
- Prior art keywords
- channel
- kernel
- consumer
- data
- consumer kernel
- 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
Images
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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
・contextは、チャネルオブジェクトを作成するために使用される有効なOpenCL(登録商標)コンテキストである
・flagsは、作成されているチャネルメモリオブジェクトに関する情報の割り当ておよび使用法を指定するために使用されるビットフィールドである
・number_of_elementsは、要素の数を指す
・element_sizeは、要素タイプのバイト単位のサイズである
・block_sizeは、その後にCL_CHANNEL_BLOCK_READY状態がブロック準備イベントに設定される要素の数である
・errcode_retは、適切なエラーコードを返し、errcode_retがNULLである場合は、いかなるエラーコードも返さない
・CL_INVALID_CONTEXT コンテキストが有効なコンテキストでない場合
・CL_INVALID_VALUE フラグで指定された値が有効でない場合
・CL_INVALID_CHANNEL_SIZE サイズがCL_DEVICE_CHANNEL_MAX_SIZEで指定された値を超えた場合
・CL_MEM_OBJECT_ALLOCATION_FAILURE メモリを画像オブジェクトに割り当てることに不具合がある場合
・CL_INVALID_OPERATION チャネルをサポートするコンテキスト内にいかなるデバイスもない場合
・CL_OUT_OF_RESOURCES デバイス上のOpenCL(登録商標)実装によって必要とされるリソースを割り当てることに不具合がある場合
・CL_OUT_OF_HOST_MEMORY ホスト上のOpenCL(登録商標)実装によって必要とされるリソースを割り当てることに不具合がある場合
・queueは、カーネルがエンキュー(enqueued)される有効なOpenCL(登録商標)コマンドキューである
・kernelは、キューを加える有効なOpenCL(登録商標)カーネルである
・イベントリスト内のnum_eventsは、トリガを評価するために検査されるイベントの数を指す
・event_trigger_stateは、カーネルの起動が起こる1組の有効な状態に対する状態マスクであり、上記の新しい状態の追加を伴う通常の1組のOpenCL(登録商標)イベント状態からのものであり得る
・eventは、起動したカーネルの状態を記述するイベントである
Claims (24)
- チャネルを定義することと、
前記チャネルからデータを読み出すように構成されたコンシューマカーネルを定義することと、
前記チャネルの条件を満たす場合に前記コンシューマカーネルを起動するように構成されたチャネルイベントを、登録することと、
を含む、方法。 - 少なくとも1つのデータのブロックが前記チャネル内に存在する場合に、前記チャネルの前記条件を満たす、請求項1に記載の方法。
- 前記チャネルが満杯である場合に、前記チャネルの前記条件を満たす、請求項1に記載の方法。
- 実行時に前記チャネルを処理ユニットのメモリユニットに割り当てることをさらに含む、請求項1に記載の方法。
- 前記チャネルイベントを監視し、前記コンシューマカーネルの前記起動をトリガするように構成されたハードウェアスケジューリングシステムを実行することをさらに含む、請求項1に記載の方法。
- 前記チャネルの前記条件を満たす場合に、前記コンシューマカーネルをコマンドキューに配置することをさらに含み、前記コマンドキューは、前記コンシューマカーネルの前記起動を処理するように構成されている、請求項1に記載の方法。
- 前記コンシューマカーネルを起動することと、
前記コンシューマカーネルで前記チャネルから前記データを読み出すことと、
前記データを消費することと、
前記コンシューマカーネルを終了することと、をさらに含む、請求項1に記載の方法。 - データを前記チャネルに書き込むように構成されたプロデューサカーネルを定義することをさらに含む、請求項1に記載の方法。
- 命令が記憶されたコンピュータ可読記憶デバイスであって、前記命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、
チャネルを定義することと、
前記チャネルからデータを読み出すように構成されたコンシューマカーネルを定義することと、
前記チャネルの条件を満たす場合に前記コンシューマカーネルを起動するように構成されたチャネルイベントを、登録することと、
を含む動作を行わせる、コンピュータ可読記憶デバイス。 - 少なくとも1つのデータのブロックが前記チャネル内に存在する場合に、前記チャネルの前記条件を満たす、請求項9に記載のコンピュータ可読記憶デバイス。
- 前記チャネルが満杯である場合に、前記チャネルの前記条件を満たす、請求項9に記載のコンピュータ可読記憶デバイス。
- 前記動作は、
実行時に前記チャネルを処理ユニットのメモリユニットに割り当てることをさらに含む、請求項9に記載のコンピュータ可読記憶デバイス。 - 前記動作は、
前記チャネルイベントを監視し、前記コンシューマカーネルの前記起動をトリガするように構成されたハードウェアスケジューリングシステムを実行することをさらに含む、請求項9に記載のコンピュータ可読記憶デバイス。 - 前記動作は、
前記チャネルの前記条件を満たす場合に、前記コンシューマカーネルをコマンドキューに配置することを含み、前記コマンドキューは、前記コンシューマカーネルの前記起動を処理するように構成されている、請求項9に記載のコンピュータ可読記憶デバイス。 - 前記動作は、
前記コンシューマカーネルを起動することと、
前記コンシューマカーネルで前記チャネルから前記データを読み出すことと、
前記データを消費することと、
前記コンシューマカーネルを終了することと、を含む、請求項9に記載のコンピュータ可読記憶デバイス。 - 前記動作は、
データを前記チャネルに書き込むように構成されたプロデューサカーネルを定義することを含む、請求項9に記載のコンピュータ可読記憶デバイス。 - モジュールを記憶するように構成されたメモリと、
前記モジュールを処理するように構成された1つ以上のプロセッサと、
を備えるシステムであって、
前記モジュールは、
チャネルと、
前記チャネルからデータを読み出すように構成されたコンシューマカーネルと、
前記チャネルの条件を満たす場合に前記コンシューマカーネルを起動するように構成されたチャネルイベントを登録するように構成された登録モジュールと、を備える、
システム。 - 少なくとも1つのデータのブロックが前記チャネル内に存在する場合に、前記チャネルの前記条件を満たす、請求項17に記載のシステム。
- 前記チャネルが満杯である場合に、前記チャネルの前記条件を満たす、請求項17に記載のシステム。
- 実行時に前記チャネルを前記1つ以上のプロセッサのメモリユニットに割り当てるように構成された割り当てモジュールをさらに備える、請求項17に記載のシステム。
- 前記チャネルイベントを監視し、前記コンシューマカーネルの前記起動をトリガするように構成されたハードウェアスケジューリングシステムをさらに備える、請求項17に記載のシステム。
- 前記チャネルの前記条件を満たす場合に前記コンシューマカーネルを受け取り、および、前記コンシューマカーネルの前記起動を処理するように構成されたコマンドキューをさらに備える、請求項17に記載のシステム。
- 前記コンシューマカーネルは、前記データを消費し、終了するように構成されている、請求項17に記載のシステム。
- データを前記チャネルに書き込むように構成されたプロデューサカーネルをさらに備える、請求項17に記載のシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261589468P | 2012-01-23 | 2012-01-23 | |
US61/589,468 | 2012-01-23 | ||
US13/606,741 US10235220B2 (en) | 2012-01-23 | 2012-09-07 | Multithreaded computing |
US13/606,741 | 2012-09-07 | ||
PCT/US2013/022729 WO2013126170A1 (en) | 2012-01-23 | 2013-01-23 | Multithreaded computing |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015504226A true JP2015504226A (ja) | 2015-02-05 |
JP2015504226A5 JP2015504226A5 (ja) | 2016-03-10 |
JP6336399B2 JP6336399B2 (ja) | 2018-06-06 |
Family
ID=48798336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014553528A Active JP6336399B2 (ja) | 2012-01-23 | 2013-01-23 | マルチスレッドコンピューティング |
Country Status (7)
Country | Link |
---|---|
US (1) | US10235220B2 (ja) |
EP (1) | EP2807559A1 (ja) |
JP (1) | JP6336399B2 (ja) |
KR (1) | KR102024283B1 (ja) |
CN (1) | CN104094235B (ja) |
IN (1) | IN2014DN06232A (ja) |
WO (1) | WO2013126170A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477521B2 (en) | 2014-05-29 | 2016-10-25 | Netapp, Inc. | Method and system for scheduling repetitive tasks in O(1) |
US9304702B2 (en) | 2014-05-29 | 2016-04-05 | Netapp, Inc. | System and method for parallelized performance data collection in a computing system |
US9256477B2 (en) * | 2014-05-29 | 2016-02-09 | Netapp, Inc. | Lockless waterfall thread communication |
US9652817B2 (en) * | 2015-03-12 | 2017-05-16 | Samsung Electronics Co., Ltd. | Automated compute kernel fusion, resizing, and interleave |
CN105447285B (zh) * | 2016-01-20 | 2018-11-30 | 杭州菲数科技有限公司 | 一种提高OpenCL硬件执行效率的方法 |
US10013240B2 (en) * | 2016-06-21 | 2018-07-03 | Advanced Micro Devices, Inc. | Fingerprinting of redundant threads using compiler-inserted transformation code |
US10296393B2 (en) | 2016-09-19 | 2019-05-21 | Texas Instruments Incorporated | Method for scheduling a processing device |
US10467056B2 (en) * | 2017-05-12 | 2019-11-05 | Google Llc | Configuration of application software on multi-core image processor |
CN107368255B (zh) * | 2017-07-25 | 2019-04-12 | Oppo广东移动通信有限公司 | 解锁方法、移动终端及计算机可读存储介质 |
US10713746B2 (en) * | 2018-01-29 | 2020-07-14 | Microsoft Technology Licensing, Llc | FIFO queue, memory resource, and task management for graphics processing |
US10719268B2 (en) | 2018-06-29 | 2020-07-21 | Microsoft Technology Licensing, Llc | Techniques for safely and efficiently enqueueing and dequeueing data on a graphics processor |
CN109918141B (zh) * | 2019-03-15 | 2020-11-27 | Oppo广东移动通信有限公司 | 线程执行方法、装置、终端及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003029980A (ja) * | 2001-07-10 | 2003-01-31 | Toshiba Corp | データキュー管理システム、データキュー管理装置、データキュー管理方法、およびプログラム |
US20060182137A1 (en) * | 2005-02-14 | 2006-08-17 | Hao Zhou | Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment |
JP2006525578A (ja) * | 2003-05-08 | 2006-11-09 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データパケットのパスによりブロックされている処理ノードをアンブロックする閾値 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2273591A (en) * | 1992-12-18 | 1994-06-22 | Network Systems Corp | Microcomputer control systems for interprogram communication and scheduling methods |
US7950017B1 (en) * | 1999-04-23 | 2011-05-24 | Avaya Inc. | Apparatus and method for forwarding messages between two applications |
US7584327B2 (en) * | 2005-12-30 | 2009-09-01 | Intel Corporation | Method and system for proximity caching in a multiple-core system |
JP4857207B2 (ja) | 2006-09-07 | 2012-01-18 | 株式会社リコー | 画像形成装置および入出力制御方法 |
US7761666B2 (en) * | 2006-10-26 | 2010-07-20 | Intel Corporation | Temporally relevant data placement |
US8621184B1 (en) * | 2008-10-31 | 2013-12-31 | Netapp, Inc. | Effective scheduling of producer-consumer processes in a multi-processor system |
US8694625B2 (en) * | 2010-09-10 | 2014-04-08 | International Business Machines Corporation | Selective registration for remote event notifications in processing node clusters |
-
2012
- 2012-09-07 US US13/606,741 patent/US10235220B2/en active Active
-
2013
- 2013-01-23 JP JP2014553528A patent/JP6336399B2/ja active Active
- 2013-01-23 IN IN6232DEN2014 patent/IN2014DN06232A/en unknown
- 2013-01-23 EP EP13702318.0A patent/EP2807559A1/en not_active Ceased
- 2013-01-23 CN CN201380006344.7A patent/CN104094235B/zh active Active
- 2013-01-23 KR KR1020147023157A patent/KR102024283B1/ko active IP Right Grant
- 2013-01-23 WO PCT/US2013/022729 patent/WO2013126170A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003029980A (ja) * | 2001-07-10 | 2003-01-31 | Toshiba Corp | データキュー管理システム、データキュー管理装置、データキュー管理方法、およびプログラム |
JP2006525578A (ja) * | 2003-05-08 | 2006-11-09 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データパケットのパスによりブロックされている処理ノードをアンブロックする閾値 |
US20060182137A1 (en) * | 2005-02-14 | 2006-08-17 | Hao Zhou | Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment |
Non-Patent Citations (1)
Title |
---|
"理論で学ぶJavaプログラミング", JAVA WORLD 第7巻 第4号, JPN6017004936, 1 April 2003 (2003-04-01), pages 120 - 130 * |
Also Published As
Publication number | Publication date |
---|---|
US20130191852A1 (en) | 2013-07-25 |
EP2807559A1 (en) | 2014-12-03 |
JP6336399B2 (ja) | 2018-06-06 |
CN104094235A (zh) | 2014-10-08 |
KR102024283B1 (ko) | 2019-11-14 |
KR20140117578A (ko) | 2014-10-07 |
CN104094235B (zh) | 2019-05-28 |
WO2013126170A1 (en) | 2013-08-29 |
US10235220B2 (en) | 2019-03-19 |
IN2014DN06232A (ja) | 2015-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6336399B2 (ja) | マルチスレッドコンピューティング | |
US20210049729A1 (en) | Reconfigurable virtual graphics and compute processor pipeline | |
US11550627B2 (en) | Hardware accelerated dynamic work creation on a graphics processing unit | |
KR101786768B1 (ko) | 그래픽 연산 처리 스케줄링 | |
US9286119B2 (en) | System, method, and computer program product for management of dependency between tasks | |
KR101788267B1 (ko) | 시스템 호출 요청의 통신 최적화 | |
US8963933B2 (en) | Method for urgency-based preemption of a process | |
KR101786767B1 (ko) | 유저 모드로부터 그래픽 처리 디스패치 | |
US10402223B1 (en) | Scheduling hardware resources for offloading functions in a heterogeneous computing system | |
AU2014268246A1 (en) | Reverting tightly coupled threads in an over-scheduled system | |
US10146575B2 (en) | Heterogeneous enqueuing and dequeuing mechanism for task scheduling | |
US8933942B2 (en) | Partitioning resources of a processor | |
US9286114B2 (en) | System and method for launching data parallel and task parallel application threads and graphics processing unit incorporating the same | |
US9122522B2 (en) | Software mechanisms for managing task scheduling on an accelerated processing device (APD) | |
KR20140004654A (ko) | 처리 디바이스의 동기 동작을 위한 방법 및 시스템 | |
KR101791182B1 (ko) | 컴퓨터 시스템 인터럽트 핸들링 | |
US20120151145A1 (en) | Data Driven Micro-Scheduling of the Individual Processing Elements of a Wide Vector SIMD Processing Unit | |
US20130135327A1 (en) | Saving and Restoring Non-Shader State Using a Command Processor | |
CN116635829A (zh) | 用于高吞吐量和低开销内核启动的压缩命令分组 | |
US10360652B2 (en) | Wavefront resource virtualization | |
US9619277B2 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method | |
US20240111578A1 (en) | Hierarchical work scheduling | |
WO2013090605A2 (en) | Saving and restoring shader context state and resuming a faulted apd wavefront |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160120 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170522 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170808 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171107 |
|
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: 20180403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180502 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6336399 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 |