JP2022160691A - 複数の計算コア上のデータドリブンスケジューラ - Google Patents
複数の計算コア上のデータドリブンスケジューラ Download PDFInfo
- Publication number
- JP2022160691A JP2022160691A JP2022128766A JP2022128766A JP2022160691A JP 2022160691 A JP2022160691 A JP 2022160691A JP 2022128766 A JP2022128766 A JP 2022128766A JP 2022128766 A JP2022128766 A JP 2022128766A JP 2022160691 A JP2022160691 A JP 2022160691A
- Authority
- JP
- Japan
- Prior art keywords
- threads
- correlation
- schedule
- data
- memory
- 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
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000015654 memory Effects 0.000 claims description 101
- 230000002596 correlated effect Effects 0.000 claims description 13
- 230000000875 corresponding effect Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 11
- 101100368725 Bacillus subtilis (strain 168) tagF gene Proteins 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 241000473391 Archosargus rhomboidalis Species 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Abstract
Description
本願は、2015年12月28日に出願された米国特許出願第14/981,257の優先権を主張し、参照により本明細書に完全に記載されているかのように組み込まれる。
Claims (20)
- プロセッサの複数の計算コアのデータドリブンスケジューリングの方法であって、
デフォルトスケジュールに従って、複数のスレッドを前記複数の計算コア上で実行することと、
前記デフォルトスケジュールに従った実行に基づいて前記複数のスレッドを分析して、前記複数のスレッドの中から相関スレッドを決定することであって、スレッドは、スレッドがメモリから同じ情報又は同じ参照にアクセスするかどうかに基づいて、相関があると決定される、ことと、
前記相関スレッドの各々が、前記複数のスレッドの全ての実行にわたって相関が最大となる順序でスケジュールされる、データドリブンスケジュールを生成することと、
前記データドリブンスケジュールに従って、前記複数のスレッドを前記複数の計算コア上で実行することと、を含む、
方法。 - 前記相関スレッドは、メモリの再使用に基づいて相関される、請求項1の方法。
- 前記相関スレッドは、参照局所性に基づいて相関される、請求項1の方法。
- 前記デフォルトスケジュールは、ラウンドロビンスケジュールを含む、請求項1の方法。
- 前記複数のスレッドを分析して前記相関スレッドを決定することは、
データドリブンスケジューリング回路が、前記計算コア上での前記複数のスレッドの少なくとも一部の実行に起因する前記計算コアによるメモリアクセスに関する情報を受信することと、
前記情報に基づいて前記相関スレッドを得ることと、を含む、
請求項1の方法。 - メモリは前記複数の計算コア間で共有される、請求項5の方法。
- メモリはキャッシュメモリを備える、請求項5の方法。
- 前記データドリブンスケジュールは、前記複数のスレッドの各々が前記計算コア上での実行を完了した後に生成される、請求項1の方法。
- 前記データドリブンスケジュールは、前記複数のスレッドの前記計算コア上での実行が一定期間進行した後に生成される、請求項1の方法。
- 前記データドリブンスケジュールは、前記複数のスレッドの全てが前記計算コア上での実行を完了する前に生成される、請求項1の方法。
- データドリブンスケジュールのために構成されたプロセッサであって、
複数の計算コアと、
前記複数の計算コアの各々によって共有されるメモリと、
デフォルトスケジュールに従って、複数のスレッドを、前記複数の計算コア上で実行するためにディスパッチするように構成されたディスパッチ回路と、
前記デフォルトスケジュールに従った実行に基づいて前記複数のスレッドを分析して、前記複数のスレッドの中から相関スレッドを決定するように構成された相関回路であって、スレッドは、スレッドがメモリから同じ情報又は同じ参照にアクセスするかどうかに基づいて、相関があると決定される、相関回路と、
前記相関スレッドの各々が、前記複数のスレッドの全ての実行にわたって相関が最大となる順序でスケジュールされる、データドリブンスケジュールを決定するように構成されたスケジューリング回路と、を備え、
前記ディスパッチ回路は、前記複数のスレッドを、前記データドリブンスケジュールに従って前記複数の計算コア上で実行するためにディスパッチするように構成されている、
プロセッサ。 - 前記相関回路は、メモリの再使用に基づいて前記相関スレッドを決定するように構成されている、請求項11のプロセッサ。
- 前記相関回路は、参照局所性に基づいて前記相関スレッドを決定するように構成されている、請求項11のプロセッサ。
- 前記デフォルトスケジュールは、ラウンドロビンスケジュールを含む、請求項11のプロセッサ。
- 前記相関回路は、
前記計算コア上での前記複数のスレッドの少なくとも一部の実行に起因する前記計算コアによるメモリアクセスに関する情報を受信することと、
前記情報に基づいて前記相関スレッドを得ることと、を行うように構成されている、
請求項11のプロセッサ。 - メモリは前記複数の計算コア間で共有される、請求項15のプロセッサ。
- メモリはキャッシュメモリを備える、請求項15のプロセッサ。
- 前記プロセッサは、回路を備え、
前記回路は、
前記データドリブンスケジュールが前記デフォルトスケジュールと異なるか否かを判別し、
前記データドリブンスケジュールが前記デフォルトスケジュールと異なる場合に、前記計算コアの実行を一時中断し、現在のコンテキストを保存し、前記データドリブンスケジュールに従って、前記複数のスレッドをディスパッチするように構成されている、
請求項11のプロセッサ。 - 前記データドリブンスケジュールは、前記複数のスレッドの各々が前記計算コア上での実行を完了した後に生成される、請求項11のプロセッサ。
- 前記データドリブンスケジュールは、前記複数のスレッドの前記計算コア上での実行が一定期間進行した後に生成される、請求項11のプロセッサ。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/981,257 US10649810B2 (en) | 2015-12-28 | 2015-12-28 | Data driven scheduler on multiple computing cores |
US14/981,257 | 2015-12-28 | ||
JP2018552632A JP2019501470A (ja) | 2015-12-28 | 2016-09-20 | 複数の計算コア上のデータドリブンスケジューラ |
PCT/US2016/052710 WO2017116517A1 (en) | 2015-12-28 | 2016-09-20 | Data driven scheduler on multiple computing cores |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018552632A Division JP2019501470A (ja) | 2015-12-28 | 2016-09-20 | 複数の計算コア上のデータドリブンスケジューラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022160691A true JP2022160691A (ja) | 2022-10-19 |
Family
ID=59086376
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018552632A Pending JP2019501470A (ja) | 2015-12-28 | 2016-09-20 | 複数の計算コア上のデータドリブンスケジューラ |
JP2022128766A Pending JP2022160691A (ja) | 2015-12-28 | 2022-08-12 | 複数の計算コア上のデータドリブンスケジューラ |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018552632A Pending JP2019501470A (ja) | 2015-12-28 | 2016-09-20 | 複数の計算コア上のデータドリブンスケジューラ |
Country Status (5)
Country | Link |
---|---|
US (1) | US10649810B2 (ja) |
EP (1) | EP3398065B1 (ja) |
JP (2) | JP2019501470A (ja) |
KR (1) | KR102616212B1 (ja) |
WO (1) | WO2017116517A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US10558499B2 (en) * | 2017-10-26 | 2020-02-11 | Advanced Micro Devices, Inc. | Wave creation control with dynamic resource allocation |
US20190370059A1 (en) * | 2018-05-30 | 2019-12-05 | Advanced Micro Devices, Inc. | Multi-kernel wavefront scheduler |
US10796472B2 (en) * | 2018-06-30 | 2020-10-06 | Intel Corporation | Method and apparatus for simultaneously executing multiple contexts on a graphics engine |
KR102641520B1 (ko) * | 2018-11-09 | 2024-02-28 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법 |
KR102161635B1 (ko) * | 2019-02-11 | 2020-10-06 | 서경대학교 산학협력단 | 범용 그래픽 처리장치 및 이의 스케쥴링 방법 |
US11954757B2 (en) * | 2021-12-28 | 2024-04-09 | Advanced Micro Devices, Inc. | Method and apparatus for implementing a rasterizer in GPU operations |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289369B1 (en) * | 1998-08-25 | 2001-09-11 | International Business Machines Corporation | Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system |
US6769017B1 (en) * | 2000-03-13 | 2004-07-27 | Hewlett-Packard Development Company, L.P. | Apparatus for and method of memory-affinity process scheduling in CC-NUMA systems |
US8037465B2 (en) * | 2005-09-30 | 2011-10-11 | Intel Corporation | Thread-data affinity optimization using compiler |
GB0519981D0 (en) | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
US20070143759A1 (en) | 2005-12-15 | 2007-06-21 | Aysel Ozgur | Scheduling and partitioning tasks via architecture-aware feedback information |
US8495649B2 (en) | 2006-07-19 | 2013-07-23 | International Business Machines Corporation | Scheduling threads having complementary functional unit usage on SMT processors |
CN101482831B (zh) | 2008-01-08 | 2013-05-15 | 国际商业机器公司 | 对工作线程与辅助线程进行相伴调度的方法和设备 |
US8643656B2 (en) * | 2010-09-30 | 2014-02-04 | Nec Laboratories America, Inc. | Energy-aware task consolidation on graphics processing unit (GPU) |
US9448837B2 (en) * | 2012-12-27 | 2016-09-20 | Nvidia Corporation | Cooperative thread array granularity context switch during trap handling |
JP6252140B2 (ja) | 2013-11-29 | 2017-12-27 | 富士通株式会社 | タスク割り付けプログラム及びタスク割り付け方法 |
GB2521155B (en) * | 2013-12-10 | 2021-06-02 | Advanced Risc Mach Ltd | Configuring thread scheduling on a multi-threaded data processing apparatus |
US9477480B2 (en) * | 2014-01-30 | 2016-10-25 | Nvidia Corporation | System and processor for implementing interruptible batches of instructions |
US9122800B1 (en) | 2014-05-30 | 2015-09-01 | Honeywell International Inc. | System and method of non-intrusive measurement of memory access profiles of threads in a multi-core processor |
-
2015
- 2015-12-28 US US14/981,257 patent/US10649810B2/en active Active
-
2016
- 2016-09-20 EP EP16882226.0A patent/EP3398065B1/en active Active
- 2016-09-20 WO PCT/US2016/052710 patent/WO2017116517A1/en unknown
- 2016-09-20 KR KR1020187021914A patent/KR102616212B1/ko active IP Right Grant
- 2016-09-20 JP JP2018552632A patent/JP2019501470A/ja active Pending
-
2022
- 2022-08-12 JP JP2022128766A patent/JP2022160691A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20170185451A1 (en) | 2017-06-29 |
KR20180089550A (ko) | 2018-08-08 |
EP3398065B1 (en) | 2023-04-19 |
JP2019501470A (ja) | 2019-01-17 |
US10649810B2 (en) | 2020-05-12 |
EP3398065A4 (en) | 2019-08-07 |
WO2017116517A1 (en) | 2017-07-06 |
EP3398065A1 (en) | 2018-11-07 |
KR102616212B1 (ko) | 2023-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022160691A (ja) | 複数の計算コア上のデータドリブンスケジューラ | |
US8643656B2 (en) | Energy-aware task consolidation on graphics processing unit (GPU) | |
KR101839544B1 (ko) | 이종 코어의 자동 부하 균형 | |
US20090113181A1 (en) | Method and Apparatus for Executing Instructions | |
CN108549574B (zh) | 线程调度管理方法、装置、计算机设备和存储介质 | |
KR20130116166A (ko) | 멀티-코어 프로세서용 멀티스레드 애플리케이션-인지 메모리 스케줄링 기법 | |
US11880715B2 (en) | Method and system for opportunistic load balancing in neural networks using metadata | |
US20140053161A1 (en) | Method for Adaptive Scheduling of Multimedia Jobs | |
Tripathy et al. | Paver: Locality graph-based thread block scheduling for gpus | |
US8935475B2 (en) | Cache management for memory operations | |
CN114153500A (zh) | 指令调度方法、指令调度装置、处理器及存储介质 | |
CN114168202B (zh) | 指令调度方法、指令调度装置、处理器及存储介质 | |
Jeong et al. | REACT: Scalable and high-performance regular expression pattern matching accelerator for in-storage processing | |
US9740611B2 (en) | Memory management for graphics processing unit workloads | |
US11893502B2 (en) | Dynamic hardware selection for experts in mixture-of-experts model | |
US20190318229A1 (en) | Method and system for hardware mapping inference pipelines | |
Chen et al. | Enabling SIMT execution model on homogeneous multi-core system | |
Wei et al. | NN-Stretch: Automatic Neural Network Branching for Parallel Inference on Heterogeneous Multi-Processors | |
US10877926B2 (en) | Method and system for partial wavefront merger | |
Zhang et al. | Buddy SM: sharing pipeline front-end for improved energy efficiency in GPGPUs | |
Zhang et al. | Memory Request Priority Based Warp Scheduling for GPUs | |
Zhang et al. | Locality‐protected cache allocation scheme with low overhead on GPUs | |
US20220188232A1 (en) | Uniform cache system for fast data access | |
US20230205680A1 (en) | Emulating performance of prior generation platforms | |
US20220206851A1 (en) | Regenerative work-groups |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220816 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230704 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231002 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240109 |