JP2021526257A - マルチカーネル波面スケジューラ - Google Patents
マルチカーネル波面スケジューラ Download PDFInfo
- Publication number
- JP2021526257A JP2021526257A JP2020566752A JP2020566752A JP2021526257A JP 2021526257 A JP2021526257 A JP 2021526257A JP 2020566752 A JP2020566752 A JP 2020566752A JP 2020566752 A JP2020566752 A JP 2020566752A JP 2021526257 A JP2021526257 A JP 2021526257A
- Authority
- JP
- Japan
- Prior art keywords
- scheduling
- scheduling group
- wave
- resource contention
- 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
- 238000000034 method Methods 0.000 claims abstract description 42
- 230000015654 memory Effects 0.000 claims abstract description 21
- 238000005259 measurement Methods 0.000 claims description 31
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims 9
- 238000010586 diagram Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 241001522296 Erithacus rubecula Species 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001629 suppression Effects 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/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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/485—Resource constraint
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Power Sources (AREA)
Abstract
Description
最新のプロセッサ(グラフィックス処理装置(GPU)など)には、各プロセスが複数のカーネルを起動する可能性がある、複数のプロセスの同時実行をサポートする構造が含まれている。その結果、複数のプロセスからの複数のカーネルを同じプロセッサで同時に実行できる。本明細書で使用される場合、「カーネル」は、1つまたは複数の実行可能プログラム命令である。通常、このようなカーネルは関数として識別され、複数のデータ要素上で操作する場合、カーネルの複数のインスタンスが並行して実行される。このような各インスタンスは、実行の「スレッド」と呼ばれる。このようなスレッドのグループは、本明細書では「ワープ」または「ウェーブフロント(波面)」とも呼ばれる。通常、GPUカーネルには複数のワープまたは波面がある。単一のプロセスまたは複数のプロセスから複数のカーネルを同時に実行すると、これらのカーネルがプロセッサの共有リソースをめぐって競合することになる。このようなシナリオでは、これらの共有リソースへのアクセスを求める複数のカーネルからの干渉により、全体的なパフォーマンスが低下する可能性がある。さらに、同じカーネルのワークグループとは異なり、異なるカーネルのワークグループは完全に異なるエンティティであり、共通性がないため、異なるカーネルを同時に実行すると、共有リソースの競合が悪化する可能性がある。
Claims (20)
- 複数の計算ユニットと、
前記複数の計算ユニットに結合されたコマンドプロセッサであって、前記コマンドプロセッサは、カーネルを前記複数の計算ユニットにディスパッチするように構成される、前記コマンドプロセッサと、を備え、
前記複数の計算ユニットの各計算ユニットは、
前記コマンドプロセッサから、複数のカーネルの複数の波面を受信し、
前記複数の波面の波面を、少なくとも部分的に共通の基準に基づいて複数のスケジューリンググループにグループ化し、
前記複数のスケジューリンググループから所定のスケジューリンググループを選択し、
前記所定のスケジューリンググループからのみ実行するように波面をスケジュールするように構成される、システム。 - 前記共通の基準は、カーネル及び優先度のうちの少なくとも1つである、請求項1に記載のシステム。
- 各計算ユニットは、同じ優先度を有する波面を同じスケジューリンググループにグループ化するように構成される、請求項2に記載のシステム。
- 各計算ユニットは、
前記計算ユニット上でのリソース競合を示す、計算ユニットのストールサイクル、キャッシュミス率、メモリアクセス遅延、及びリンク使用率の少なくとも1つを含む1つまたは複数の条件を監視し、
監視されている前記1つまたは複数の条件に基づいて、リソース競合の第1の測定値を生成し、
リソース競合の前記第1の測定値が第1の閾値より大きいと判定することに応じて、最も優先度の低いスケジューリンググループをスケジュール解除されたキューに移動するようにさらに構成され、
前記スケジュール解除されたキューに格納されたスケジューリンググループからの波面は、前記計算ユニット上で実行するようにスケジュールされないようにされる、請求項1に記載のシステム。 - 各計算ユニットは、
前記最も優先度の低いスケジューリンググループを前記スケジュール解除されたキューに移動した後、所定の時間待機し、
監視されている前記1つまたは複数の条件に基づいて、リソース競合の第2の測定値を生成し、
リソース競合の前記第2の測定値が前記第1の閾値より大きいと判定することに応じて、次に優先度の低いスケジューリンググループを前記スケジュール解除されたキューに移動するように構成される、請求項4に記載のシステム。 - 各計算ユニットは、
前記最も優先度の低いスケジューリンググループを前記スケジュール解除されたキューに移動した後、所定の時間待機し、
監視されている前記1つまたは複数の条件に基づいて、リソース競合の第2の測定値を生成し、
リソース競合の前記第2の測定値が第2の閾値未満であると判定することに応じて、最も優先度の高いスケジューリンググループを前記スケジュール解除されたキューから移動するように構成される、請求項4に記載のシステム。 - 各計算ユニットは、前記複数のスケジューリンググループから最も優先度の高いスケジューリンググループを選択するようにさらに構成される、請求項1に記載のシステム。
- 複数のカーネルの複数の波面を受信することと、
前記複数の波面の波面を、少なくとも部分的に共通の基準に基づいて複数のスケジューリンググループにグループ化することと、
前記複数のスケジューリンググループから所定のスケジューリンググループを選択することと、
前記所定のスケジューリンググループからのみ実行するように波面をスケジュールすることと、を含む、方法。 - 前記共通の基準は、カーネル及び優先度のうちの少なくとも1つである、請求項8に記載の方法。
- 同じ優先度を有するカーネルからの波面を同じスケジューリンググループにグループ化することをさらに含む、請求項9に記載の方法。
- 前記計算ユニット上のリソース競合を示す1つまたは複数の条件を監視することであって、前記1つまたは複数の条件は、計算ユニットのストールサイクル、キャッシュミス率、メモリアクセス遅延、及びリンク使用率のうちの少なくとも1つを含む、前記監視することと、
監視されている前記1つまたは複数の条件に基づいて、リソース競合の第1の測定値を生成することと、
リソース競合の前記第1の測定値が第1の閾値より大きいと判定することに応じて、最も優先度の低いスケジューリンググループをスケジュール解除されたキューに移動することと、をさらに含み、前記スケジュール解除されたキューに格納されたスケジューリンググループからの波面は、前記計算ユニット上で実行するようにスケジュールされないようにされる、請求項8に記載の方法。 - 前記最も優先度の低いスケジューリンググループを前記スケジュール解除されたキューに移動した後、所定の時間待機することと、
監視されている前記1つまたは複数の条件に基づいて、リソース競合の第2の測定値を生成することと、
リソース競合の前記第2の測定値が、前記第1の閾値より大きいと判定することに応じて、次に優先度の低いスケジューリンググループを前記スケジュール解除されたキューに移動することと、をさらに含む、請求項11に記載の方法。 - 前記最も優先度の低いスケジューリンググループを前記スケジュール解除されたキューに移動した後、所定の時間待機することと、
監視されている前記1つまたは複数の条件に基づいて、リソース競合の第2の測定値を生成することと、
リソース競合の前記第2の測定値が、第2の閾値未満であると判定することに応じて、最も優先度の高いスケジューリンググループを前記スケジュール解除されたキューから移動することと、をさらに含む、請求項11に記載の方法。 - 前記複数のスケジューリンググループから最も優先度の高いスケジューリンググループを選択することをさらに含む、請求項8に記載の方法。
- メモリと、
前記メモリに結合されているプロセッサと、を備え、
前記プロセッサは、
複数のカーネルの複数の波面を受信し、
前記複数の波面の波面を、少なくとも部分的に共通の基準に基づいて複数のスケジューリンググループにグループ化し、
前記複数のスケジューリンググループから所定のスケジューリンググループを選択し、
前記所定のスケジューリンググループからのみ実行するように波面をスケジュールするように構成される、装置。 - 前記共通の基準は、カーネル及び優先度のうちの少なくとも1つである、請求項15に記載の装置。
- 前記プロセッサは、同じ優先度を有するカーネルからの波面を同じスケジューリンググループにグループ化するように構成される、請求項16に記載の装置。
- 前記プロセッサは、
前記プロセッサ上のリソース競合を示す、計算ユニットのストールサイクル、キャッシュミス率、メモリアクセス遅延、及びリンク使用率のうちの少なくとも1つを含む1つまたは複数の条件を監視し、
監視されている前記1つまたは複数の条件に基づいて、リソース競合の第1の測定値を生成し、
リソース競合の前記第1の測定値が第1の閾値より大きいと判定することに応じて、最も優先度の低いスケジューリンググループをスケジュール解除されたキューに移動するようにさらに構成され、
前記スケジュール解除されたキューに格納されたスケジューリンググループからの波面は、前記プロセッサ上で実行するようにスケジュールされないようにされる、請求項15に記載の装置。 - 前記プロセッサは、
前記最も優先度の低いスケジューリンググループを前記スケジュール解除されたキューに移動した後、所定の時間待機し、
監視されている前記1つまたは複数の条件に基づいて、リソース競合の第2の測定値を生成し、
リソース競合の前記第2の測定値が前記第1の閾値より大きいと判定することに応じて、次に優先度の低いスケジューリンググループを前記スケジュール解除されたキューに移動するようにさらに構成される、請求項18に記載の装置。 - 前記プロセッサは、
前記最も優先度の低いスケジューリンググループを前記スケジュール解除されたキューに移動した後、所定の時間待機し、
監視されている前記1つまたは複数の条件に基づいて、リソース競合の第2の測定値を生成し、
リソース競合の前記第2の測定値が第2の閾値未満であると判定することに応じて、最も優先度の高いスケジューリンググループを前記スケジュール解除されたキューから移動するようにさらに構成される、請求項18に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/993,061 | 2018-05-30 | ||
US15/993,061 US12099867B2 (en) | 2018-05-30 | Multi-kernel wavefront scheduler | |
PCT/US2019/024354 WO2019231539A1 (en) | 2018-05-30 | 2019-03-27 | Multi-kernel wavefront scheduler |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021526257A true JP2021526257A (ja) | 2021-09-30 |
JP7320536B2 JP7320536B2 (ja) | 2023-08-03 |
Family
ID=66102796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020566752A Active JP7320536B2 (ja) | 2018-05-30 | 2019-03-27 | マルチカーネル波面スケジューラ |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3803583A1 (ja) |
JP (1) | JP7320536B2 (ja) |
KR (1) | KR102586988B1 (ja) |
CN (1) | CN112204523A (ja) |
WO (1) | WO2019231539A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230305888A1 (en) * | 2022-03-28 | 2023-09-28 | Honeywell International S.R.O. | Processing engine mapping for time-space partitioned processing systems |
US20230305887A1 (en) * | 2022-03-28 | 2023-09-28 | Honeywell International S.R.O. | Processing engine scheduling for time-space partitioned processing systems |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017116517A1 (en) * | 2015-12-28 | 2017-07-06 | Advanced Micro Devices, Inc. | Data driven scheduler on multiple computing cores |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7793294B2 (en) * | 2005-02-22 | 2010-09-07 | Northrop Grumman Corporation | System for scheduling tasks within an available schedule time period based on an earliest possible end time of the task |
US8302098B2 (en) * | 2007-12-06 | 2012-10-30 | Oracle America, Inc. | Hardware utilization-aware thread management in multithreaded computer systems |
US8225325B2 (en) * | 2008-06-06 | 2012-07-17 | Apple Inc. | Multi-dimensional thread grouping for multiple processors |
JP2010020683A (ja) * | 2008-07-14 | 2010-01-28 | Nec Electronics Corp | スレッド制御方法およびスレッド制御装置ならびにリアルタイムシステム |
US8285950B2 (en) * | 2010-06-03 | 2012-10-09 | International Business Machines Corporation | SMT/ECO mode based on cache miss rate |
US8782645B2 (en) * | 2011-05-11 | 2014-07-15 | Advanced Micro Devices, Inc. | Automatic load balancing for heterogeneous cores |
US9830163B2 (en) * | 2012-06-08 | 2017-11-28 | Advanced Micro Devices, Inc. | Control flow in a heterogeneous computer system |
WO2014094310A1 (zh) * | 2012-12-21 | 2014-06-26 | 华为技术有限公司 | 资源调度的方法和装置 |
CN103336718B (zh) * | 2013-07-04 | 2016-07-06 | 北京航空航天大学 | 一种gpu线程调度优化方法 |
CN104346220B (zh) * | 2013-07-31 | 2017-11-03 | 中国科学院计算技术研究所 | 一种任务调度方法与系统 |
US9250953B2 (en) * | 2013-11-12 | 2016-02-02 | Oxide Interactive Llc | Organizing tasks by a hierarchical task scheduler for execution in a multi-threaded processing system |
CN104503838B (zh) * | 2014-11-23 | 2017-06-27 | 华中科技大学 | 一种虚拟cpu调度方法 |
CN106325996B (zh) * | 2015-06-19 | 2019-11-19 | 华为技术有限公司 | 一种gpu资源的分配方法及系统 |
CN107145388B (zh) * | 2017-05-25 | 2020-10-30 | 深信服科技股份有限公司 | 一种多任务环境下任务调度方法及系统 |
-
2019
- 2019-03-27 JP JP2020566752A patent/JP7320536B2/ja active Active
- 2019-03-27 CN CN201980036426.3A patent/CN112204523A/zh active Pending
- 2019-03-27 KR KR1020207037427A patent/KR102586988B1/ko active IP Right Grant
- 2019-03-27 WO PCT/US2019/024354 patent/WO2019231539A1/en unknown
- 2019-03-27 EP EP19717060.8A patent/EP3803583A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017116517A1 (en) * | 2015-12-28 | 2017-07-06 | Advanced Micro Devices, Inc. | Data driven scheduler on multiple computing cores |
Also Published As
Publication number | Publication date |
---|---|
CN112204523A (zh) | 2021-01-08 |
JP7320536B2 (ja) | 2023-08-03 |
KR102586988B1 (ko) | 2023-10-10 |
US20190370059A1 (en) | 2019-12-05 |
KR20210013212A (ko) | 2021-02-03 |
EP3803583A1 (en) | 2021-04-14 |
WO2019231539A1 (en) | 2019-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102597570B1 (ko) | Gpu 태스크 스케줄링을 위한 연속 분석 태스크 | |
US8775762B2 (en) | Method and apparatus for batching memory requests | |
JP6495327B2 (ja) | メモリコントローラにおける細粒度帯域幅プロビジョニング | |
US8132172B2 (en) | Thread scheduling on multiprocessor systems | |
US20150163324A1 (en) | Approach to adaptive allocation of shared resources in computer systems | |
Hassan et al. | Analysis of memory-contention in heterogeneous cots mpsocs | |
JP7546669B2 (ja) | マルチコア・プロセッサ複合体の中の1コア当たりのスレッドの最適数の決定 | |
KR102635453B1 (ko) | Gpu를 위한 피드백 기반 분할 작업 그룹 디스패치 | |
EP3729280A1 (en) | Dynamic per-bank and all-bank refresh | |
US8180998B1 (en) | System of lanes of processing units receiving instructions via shared memory units for data-parallel or task-parallel operations | |
US20140109100A1 (en) | Scheduling method and system | |
WO2016202154A1 (zh) | 一种gpu资源的分配方法及系统 | |
KR102205899B1 (ko) | 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치 | |
JP7320536B2 (ja) | マルチカーネル波面スケジューラ | |
CN112041822A (zh) | 在服务于加速器请求时加强中央处理单元服务质量保证 | |
WO2016202153A1 (zh) | 一种gpu资源的分配方法及系统 | |
US9940128B2 (en) | Conditional access with timeout | |
US12099867B2 (en) | Multi-kernel wavefront scheduler | |
US11875197B2 (en) | Management of thrashing in a GPU | |
US11507522B2 (en) | Memory request priority assignment techniques for parallel processors | |
US11487582B2 (en) | Information processing apparatus and computer-readable recording medium having stored therein process allocation determining program | |
Hassan | Managing dram interference in mixed criticality embedded systems | |
Mohamed et al. | Real-time memory controller for embedded multi-core system | |
Samaddar et al. | A new memory scheduling policy for real time systems | |
KR20220049294A (ko) | 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 전자 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220301 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230221 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230522 |
|
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: 20230704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230724 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7320536 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |