JP7050957B2 - タスクスケジューリング - Google Patents
タスクスケジューリング Download PDFInfo
- Publication number
- JP7050957B2 JP7050957B2 JP2020561765A JP2020561765A JP7050957B2 JP 7050957 B2 JP7050957 B2 JP 7050957B2 JP 2020561765 A JP2020561765 A JP 2020561765A JP 2020561765 A JP2020561765 A JP 2020561765A JP 7050957 B2 JP7050957 B2 JP 7050957B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- operation task
- dependency
- scheduling
- 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
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/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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. 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/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/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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- 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/483—Multiproc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
Description
操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することと、前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることと、を含む。
前記複数の操作タスクのうちの第3操作タスクと第4操作タスクとの間に依存関係があり、かつ前記第3操作タスクおよび第4操作タスクに対応する情報フローが両方ともCUDA情報フローである場合、第1同期インターフェースを呼び出して、前記第3操作タスクと前記第4操作タスクを同期することを含む。
操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定するように構成される依存関係決定モジュールと、前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングするように構成されるスケジューリングモジュールと、を備える。
プロセッサと、プロセッサ実行可能な命令を記憶するためのメモリと、を備え、前記プロセッサは、前記メモリに記憶された実行可能な命令を呼び出して、上記の第1態様の任意の可能な実施形態におけるタスクスケジューリング方法を実現するように構成される。
例えば、本願は以下の項目を提供する。
(項目1)
タスクスケジューリング方法であって、
操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することと、
前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることと、を含むことを特徴とする、前記タスクスケジューリング方法。
(項目2)
前記操作タスクに対応するオペランドは、読み取りオペランドおよび/または書き込みオペランドを含むことを特徴とする、
項目1に記載のタスクスケジューリング方法。
(項目3)
前記操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することは、
第2操作タスクが第1操作タスクの書き込みオペランドに対する読み取り操作を含む場合、または前記第2操作タスクが前記第1操作タスクのオペランドに対する書き込み操作を含む場合、前記第2操作タスクが前記第1操作タスクに依存すると決定することを含み、
前記第1操作タスクおよび前記第2操作タスクは、前記操作タスクキュー内の異なる操作タスクであることを特徴とする、
項目1または2に記載のタスクスケジューリング方法。
(項目4)
前記操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することは、
第2操作タスクが第1操作タスクの読み取りオペランドに対する読み取り操作を含む場合、前記第1操作タスクと前記第2操作タスクとの間に依存関係がないと決定することをさらに含むことを特徴とする、
項目1ないし3のいずれか一項に記載のタスクスケジューリング方法。
(項目5)
前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記複数の操作タスク間の依存関係に基づいて、前記複数の操作タスクのスケジューリング順序を決定することと、
前記操作タスクキュー内の現在の操作タスクにメモリを割り当てることと、
前記メモリの割り当てが完了した後、前記現在の操作タスクを前記現在の操作タスクに対応するコンテキストにスケジューリングして実行することと、
前記スケジューリング順序に応じて、前記現在の操作タスクの次の操作タスクに対するメモリの割り当てを実行することと、を含むことを特徴とする、
項目1ないし4のいずれか一項に記載のタスクスケジューリング方法。
(項目6)
前記複数の操作タスク間の依存関係に基づいて、前記複数の操作タスクのスケジューリング順序を決定することは、
前記複数の操作タスクのうちの第1操作タスクと、前記複数の操作タスクのうちの第2操作タスクとの間に依存関係がない場合、前記第1操作タスクと前記第2操作タスクを並行して呼び出すと決定すること、および/または
前記第2操作タスクが前記第1操作タスクに依存する場合、前記第1操作タスクの後に前記第2操作タスクをスケジューリングすると決定することを含むことを特徴とする、
項目5に記載のタスクスケジューリング方法。
(項目7)
前記操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することは、
前記複数の操作タスクに含まれるM個の通信操作タスクに対して融合処理を実行して、少なくとも1つの併合通信操作タスクを取得することであって、各併合通信操作タスクは、前記M個の通信操作タスクのうちの少なくとも1つの通信操作タスクを含み、Mは、1より大きいか等しい整数であることと、
前記少なくとも1つの併合通信操作タスクに対応するオペランドおよび前記複数の操作タスクのうちの少なくとも1つの非通信操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することと、を含むことを特徴とする、
項目1ないし6のいずれか一項に記載のタスクスケジューリング方法。
(項目8)
前記併合通信操作タスクに対応するオペランドは、
前記併合通信操作タスクに含まれる少なくとも1つの通信操作タスクに対応する読み取りオペランドのセット、および/または前記併合通信操作タスクに含まれる少なくとも1つの通信操作タスクに対応する書き込みオペランドのセットを含むことを特徴とする、
項目7に記載のタスクスケジューリング方法。
(項目9)
前記操作タスクキューは、第1操作タスクキューおよび第2操作タスクキューを含み、前記第1操作タスクキューは、前記複数の操作タスクのうちの通信操作タスクを含み、前記第2操作タスクキューは、前記複数の操作タスクのうちの非通信操作タスクを含み、
前記第1操作タスクキューおよび前記第2操作タスクキューに含まれる操作タスクは、前記複数の操作タスク間の依存関係に基づいて決定されたスケジューリング順序に応じて配列されることを特徴とする、
項目1ないし8のいずれか一項に記載のタスクスケジューリング方法。
(項目10)
前記第1操作タスクキューと前記第2操作タスクキューとの間の依存情報を記録することであって、
前記第1操作タスクキュー内の操作タスクが前記第2操作タスクキュー内の少なくとも1つの操作タスクに依存する場合、または前記第2操作タスクキュー内の操作タスクが前記第1操作タスクキュー内の少なくとも1つの操作タスクに依存する場合、前記依存情報は、前記少なくとも1つの操作タスクのうちの最後の操作タスクの情報を含むことをさらに含み、
前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記第1操作タスクキューと前記第2操作タスクキューとの間の依存情報に基づいて、前記第1操作タスクキューおよび前記第2操作タスクキュー内の操作タスクをスケジューリングすることを含むことを特徴とする、
項目9に記載のタスクスケジューリング方法。
(項目11)
メモリ回収操作タスクに対応する優先度を最高に設定することであって、前記第2操作タスクキューは、前記操作タスクキュー内の前記メモリ回収操作タスク以外の前記非通信操作タスクを含むことをさらに含むことを特徴とする、
項目9または10に記載のタスクスケジューリング方法。
(項目12)
前記複数の操作タスク間の依存関係を決定する前に、
前記複数の操作タスクの各操作タスクに対応するコンテキストを決定することであって、前記操作タスクに対応するコンテキストは、抽象リソースおよび情報フローを含むことをさらに含み、
前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記複数の操作タスクの各操作タスクに対応する前記コンテキストおよび前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることを含むことを特徴とする、
項目1ないし11のいずれか一項に記載のタスクスケジューリング方法。
(項目13)
前記情報フローは、統合コンピューティングデバイスアーキテクチャ(CUDA)情報フローおよび/またはホスト情報フローを含むことを特徴とする、
項目12に記載のタスクスケジューリング方法。
(項目14)
前記複数の操作タスクの各操作タスクに対応するコンテキストおよび前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記複数の操作タスクのうちの少なくとも2つの操作タスク間に依存関係がなく、かつ前記少なくとも2つの操作タスクが異なる抽象リソースに対応する場合、前記少なくとも2つの操作タスクを並行してスケジューリングすることを含むことを特徴とする、
項目12または13に記載のタスクスケジューリング方法。
(項目15)
前記複数の操作タスクの各操作タスクに対応するコンテキストおよび前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記複数の操作タスクのうちの第3操作タスクと第4操作タスクとの間に依存関係があり、かつ前記第3操作タスクおよび第4操作タスクに対応する情報フローが両方ともCUDA情報フローである場合、第1同期インターフェースを呼び出して、前記第3操作タスクと前記第4操作タスクを同期することを含むことを特徴とする、
項目12ないし14のいずれか一項に記載のタスクスケジューリング方法。
(項目16)
前記複数の操作タスクの各操作タスクに対応するコンテキストおよび前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記複数の操作タスクのうちの第3操作タスクと第4操作タスクとの間に依存関係があり、かつ前記第3操作タスクおよび前記第4操作タスクの少なくとも1つの操作タスクに対応する情報フローがホスト情報フローである場合、第2同期インターフェースを呼び出して、前記第3操作タスクと前記第4操作タスクを同期することを含むことを特徴とする、
項目12ないし15のいずれか一項に記載のタスクスケジューリング方法。
(項目17)
タスクスケジューリング装置であって、
操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定するように構成される依存関係決定モジュールと、
前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングするように構成されるスケジューリングモジュールと、を備えることを特徴とする、前記タスクスケジューリング装置。
(項目18)
前記操作タスクに対応するオペランドは、読み取りオペランドおよび/または書き込みオペランドを含むことを特徴とする、
項目17に記載のタスクスケジューリング装置。
(項目19)
前記依存関係決定モジュールは、
第2操作タスクが第1操作タスクの書き込みオペランドに対する読み取り操作を含む場合、または前記第2操作タスクが前記第1操作タスクのオペランドに対する書き込み操作を含む場合、前記第2操作タスクが前記第1操作タスクに依存すると決定するように構成される第1決定サブモジュールを備え、
前記第1操作タスクおよび前記第2操作タスクは、前記操作タスクキュー内の異なる操作タスクであることを特徴とする、
項目17または18に記載のタスクスケジューリング装置。
(項目20)
前記依存関係決定モジュールは、
第2操作タスクが第1操作タスクの読み取りオペランドに対する読み取り操作を含む場合、前記第1操作タスクと前記第2操作タスクとの間に依存関係がないと決定するように構成される第2決定サブモジュールをさらに備えることを特徴とする、
項目17ないし19のいずれか一項に記載のタスクスケジューリング装置。
(項目21)
前記スケジューリングモジュールは、
前記複数の操作タスク間の依存関係に基づいて、前記複数の操作タスクのスケジューリング順序を決定するように構成されるスケジューリング順序決定サブモジュールと、
前記操作タスクキュー内の現在の操作タスクにメモリを割り当てるように構成される第1実行サブモジュールと、
前記メモリの割り当てが完了した後、前記現在の操作タスクを前記現在の操作タスクに対応するコンテキストにスケジューリングして実行し、前記スケジューリング順序に応じて、前記現在の操作タスクの次の操作タスクに対するメモリの割り当てを実行するように構成される第2実行サブモジュールと、を備えることを特徴とする、
項目18ないし20のいずれか一項に記載のタスクスケジューリング装置。
(項目22)
前記スケジューリング順序決定サブモジュールは、
前記複数の操作タスクのうちの第1操作タスクと、前記複数の操作タスクのうちの第2操作タスクとの間に依存関係がない場合、前記第1操作タスクと前記第2操作タスクを並行して呼び出すと決定するように構成される第1決定ユニット、および/または
前記第2操作タスクが前記第1操作タスクに依存する場合、前記第1操作タスクの後に前記第2操作タスクをスケジューリングすると決定するように構成される第2決定ユニットを備えることを特徴とする、
項目21に記載のタスクスケジューリング装置。
(項目23)
前記依存関係決定モジュールは、
前記複数の操作タスクに含まれるM個の通信操作タスクに対して融合処理を実行して、少なくとも1つの併合通信操作タスクを取得するように構成される融合サブモジュールであって、各併合通信操作タスクは、前記M個の通信操作タスクのうちの少なくとも1つの通信操作タスクを含み、Mは、1より大きいか等しい整数である融合サブモジュールと、
前記少なくとも1つの併合通信操作タスクに対応するオペランドおよび前記複数の操作タスクのうちの少なくとも1つの非通信操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定するように構成される第3決定サブモジュールと、を備えることを特徴とする、
項目17ないし22のいずれか一項に記載のタスクスケジューリング装置。
(項目24)
前記併合通信操作タスクに対応するオペランドは、
前記併合通信操作タスクに含まれる少なくとも1つの通信操作タスクに対応する読み取りオペランドのセット、および/または前記併合通信操作タスクに含まれる少なくとも1つの通信操作タスクに対応する書き込みオペランドのセットを含むことを特徴とする、
項目23に記載のタスクスケジューリング装置。
(項目25)
前記操作タスクキューは、第1操作タスクキューおよび第2操作タスクキューを含み、前記第1操作タスクキューは、前記複数の操作タスクのうちの通信操作タスクを含み、前記第2操作タスクキューは、前記複数の操作タスクのうちの非通信操作タスクを含み、
前記第1操作タスクキューおよび前記第2操作タスクキューに含まれる操作タスクは、それぞれの操作タスクキュー内の前記複数の操作タスク間の依存関係に基づいて決定されたスケジューリング順序に応じて配列されることを特徴とする、
項目17ないし24のいずれか一項に記載のタスクスケジューリング装置。
(項目26)
前記タスクスケジューリング装置は、
前記第1操作タスクキューと前記第2操作タスクキューとの間の依存情報を記録するように構成される記録モジュールであって、
前記第1操作タスクキュー内の操作タスクが前記第2操作タスクキュー内の少なくとも1つの操作タスクに依存する場合、または前記第2操作タスクキュー内の操作タスクが前記第1操作タスクキュー内の少なくとも1つの操作タスクに依存する場合、前記依存情報は、前記少なくとも1つの操作タスクのうちの最後の操作タスクの情報を含む記録モジュールをさらに備え、
前記スケジューリングモジュールは、
前記第1操作タスクキューと前記第2操作タスクキューとの間の依存情報に基づいて、前記第1操作タスクキューおよび前記第2操作タスクキュー内の操作タスクをスケジューリングするように構成される第1スケジューリングサブモジュールを備えることを特徴とする、
項目25に記載のタスクスケジューリング装置。
(項目27)
前記タスクスケジューリング装置は、
メモリ回収操作タスクに対応する優先度を最高に設定するように構成される優先度設定モジュールであって、前記第2操作タスクキューは、前記操作タスクキュー内の前記メモリ回収操作タスク以外の前記非通信操作タスクを含む優先度設定モジュールをさらに備えることを特徴とする、
項目25または26に記載のタスクスケジューリング装置。
(項目28)
前記タスクスケジューリング装置は、
前記複数の操作タスクの各操作タスクに対応するコンテキストを決定するように構成されるコンテキスト決定モジュールであって、前記操作タスクに対応するコンテキストは、抽象リソースおよび情報フローを含むコンテキスト決定モジュールをさらに備え、
前記スケジューリングモジュールは、
前記複数の操作タスクの各操作タスクに対応する前記コンテキストおよび前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングするように構成される第2スケジューリングサブモジュールを備える、
項目17ないし27のいずれか一項に記載のタスクスケジューリング装置。
(項目29)
前記情報フローは、統合コンピューティングデバイスアーキテクチャ(CUDA)情報フローおよび/またはホスト情報フローを含むことを特徴とする、
項目28に記載のタスクスケジューリング装置。
(項目30)
前記第2スケジューリングサブモジュールは、
前記複数の操作タスクのうちの少なくとも2つの操作タスク間に依存関係がなく、かつ前記少なくとも2つの操作タスクが異なる抽象リソースに対応する場合、前記少なくとも2つの操作タスクを並行してスケジューリングするように構成される第1スケジューリングユニットを備えることを特徴とする、
項目28または29に記載のタスクスケジューリング装置。
(項目31)
前記第2スケジューリングサブモジュールは、
前記複数の操作タスクのうちの第3操作タスクと第4操作タスクとの間に依存関係があり、かつ前記第3操作タスクおよび第4操作タスクに対応する情報フローが両方ともCUDA情報フローである場合、第1同期インターフェースを呼び出して、前記第3操作タスクと前記第4操作タスクを同期するように構成される第2スケジューリングユニットを備えることを特徴とする、
項目28ないし30のいずれか一項に記載のタスクスケジューリング装置。
(項目32)
前記第2スケジューリングサブモジュールは、
前記複数の操作タスクのうちの第3操作タスクと第4操作タスクとの間に依存関係があり、かつ前記第3操作タスクおよび前記第4操作タスクの少なくとも1つの操作タスクに対応する情報フローがホスト情報フローである場合、第2同期インターフェースを呼び出して、前記第3操作タスクと前記第4操作タスクを同期するように構成される第3スケジューリングユニットを備えることを特徴とする、
項目28ないし31のいずれか一項に記載のタスクスケジューリング装置。
(項目33)
コンピュータプログラムが記憶された、不揮発性コンピュータ可読記憶媒体であって、前記コンピュータプログラムが、項目1ないし16のいずれか一項に記載のタスクスケジューリング方法を実行するために使用されることを特徴とする、前記不揮発性コンピュータ可読記憶媒体。
(項目34)
タスクスケジューリング装置であって、
プロセッサと、
プロセッサ実行可能な命令を記憶するためのメモリと、を備え、
前記プロセッサは、前記メモリに記憶された前記実行可能な命令を呼び出して、項目1ないし16のいずれか一項に記載のタスクスケジューリング方法を実現するように構成されることを特徴とする、前記タスクスケジューリング装置。
Claims (14)
- タスクスケジューリング方法であって、
操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することと、
前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることと
を含み、前記操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することは、
前記複数の操作タスクに含まれるM個の通信操作タスクに対して融合処理を実行して、少なくとも1つの併合通信操作タスクを取得することであって、各併合通信操作タスクは、前記M個の通信操作タスクのうちの少なくとも1つの通信操作タスクを含み、Mは、1より大きいか等しい整数であることと、
前記少なくとも1つの併合通信操作タスクに対応するオペランドおよび前記複数の操作タスクのうちの少なくとも1つの非通信操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することと
を含むことを特徴とする、タスクスケジューリング方法。 - 前記操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することは、
第2操作タスクが第1操作タスクの書き込みオペランドに対する読み取り操作を含む場合、または前記第2操作タスクが前記第1操作タスクのオペランドに対する書き込み操作を含む場合、前記第2操作タスクが前記第1操作タスクに依存すると決定することをさらに含み、
前記第1操作タスクおよび前記第2操作タスクは、前記操作タスクキュー内の異なる操作タスクであることを特徴とする、
請求項1に記載のタスクスケジューリング方法。 - 前記操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することは、
第2操作タスクが第1操作タスクの読み取りオペランドに対する読み取り操作を含む場合、前記第1操作タスクと前記第2操作タスクとの間に依存関係がないと決定することをさらに含むことを特徴とする、
請求項1または2に記載のタスクスケジューリング方法。 - 前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記複数の操作タスク間の依存関係に基づいて、前記複数の操作タスクのスケジューリング順序を決定することと、
前記操作タスクキュー内の現在の操作タスクにメモリを割り当てることと、
前記メモリの割り当てが完了した後、前記現在の操作タスクを前記現在の操作タスクに対応するコンテキストにスケジューリングして実行することと、
前記スケジューリング順序に応じて、前記現在の操作タスクの次の操作タスクに対するメモリの割り当てを実行することと
を含むことを特徴とする、
請求項1ないし3のいずれか一項に記載のタスクスケジューリング方法。 - 前記複数の操作タスク間の依存関係に基づいて、前記複数の操作タスクのスケジューリング順序を決定することは、
前記複数の操作タスクのうちの第1操作タスクと、前記複数の操作タスクのうちの第2操作タスクとの間に依存関係がない場合、前記第1操作タスクと前記第2操作タスクを並行して呼び出すと決定すること、および/または
前記第2操作タスクが前記第1操作タスクに依存する場合、前記第1操作タスクの後に前記第2操作タスクをスケジューリングすると決定すること
を含むことを特徴とする、
請求項4に記載のタスクスケジューリング方法。 - 前記操作タスクキューは、第1操作タスクキューおよび第2操作タスクキューを含み、前記第1操作タスクキューは、前記複数の操作タスクのうちの通信操作タスクを含み、前記第2操作タスクキューは、前記複数の操作タスクのうちの非通信操作タスクを含み、
前記第1操作タスクキューおよび前記第2操作タスクキューに含まれる操作タスクは、前記複数の操作タスク間の依存関係に基づいて決定されたスケジューリング順序に応じて配列されることを特徴とする、
請求項1ないし5のいずれか一項に記載のタスクスケジューリング方法。 - 前記第1操作タスクキューと前記第2操作タスクキューとの間の依存情報を記録することであって、
前記第1操作タスクキュー内の操作タスクが前記第2操作タスクキュー内の少なくとも1つの操作タスクに依存する場合、または前記第2操作タスクキュー内の操作タスクが前記第1操作タスクキュー内の少なくとも1つの操作タスクに依存する場合、前記依存情報は、前記少なくとも1つの操作タスクのうちの最後の操作タスクの情報を含むことをさらに含み、
前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記第1操作タスクキューと前記第2操作タスクキューとの間の依存情報に基づいて、前記第1操作タスクキューおよび前記第2操作タスクキュー内の操作タスクをスケジューリングすることを含むことを特徴とする、
請求項6に記載のタスクスケジューリング方法。 - メモリ回収操作タスクに対応する優先度を最高に設定することであって、前記第2操作タスクキューは、前記操作タスクキュー内の前記メモリ回収操作タスク以外の前記非通信操作タスクを含むことをさらに含むことを特徴とする、
請求項6または7に記載のタスクスケジューリング方法。 - 前記複数の操作タスク間の依存関係を決定する前に、
前記複数の操作タスクの各操作タスクに対応するコンテキストを決定することであって、前記操作タスクに対応するコンテキストは、抽象リソースおよび情報フローを含むことをさらに含み、
前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記複数の操作タスクの各操作タスクに対応する前記コンテキストおよび前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることを含むことを特徴とする、
請求項1ないし8のいずれか一項に記載のタスクスケジューリング方法。 - 前記複数の操作タスクの各操作タスクに対応するコンテキストおよび前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記複数の操作タスクのうちの少なくとも2つの操作タスク間に依存関係がなく、かつ前記少なくとも2つの操作タスクが異なる抽象リソースに対応する場合、前記少なくとも2つの操作タスクを並行してスケジューリングすることを含むことを特徴とする、
請求項9に記載のタスクスケジューリング方法。 - 前記複数の操作タスクの各操作タスクに対応するコンテキストおよび前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングすることは、
前記複数の操作タスクのうちの第3操作タスクと第4操作タスクとの間に依存関係があり、かつ前記第3操作タスクおよび第4操作タスクに対応する情報フローが両方ともCUDA情報フローである場合、第1同期インターフェースを呼び出して、前記第3操作タスクと前記第4操作タスクを同期することを含むことを特徴とする、
請求項9または10に記載のタスクスケジューリング方法。 - タスクスケジューリング装置であって、
操作タスクキュー内の複数の操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定するように構成される依存関係決定モジュールと、
前記複数の操作タスク間の依存関係に基づいて、前記操作タスクキュー内の前記複数の操作タスクをスケジューリングするように構成されるスケジューリングモジュールと
を備え、前記依存関係決定モジュールはさらに、
前記複数の操作タスクに含まれるM個の通信操作タスクに対して融合処理を実行して、少なくとも1つの併合通信操作タスクを取得することであって、各併合通信操作タスクは、前記M個の通信操作タスクのうちの少なくとも1つの通信操作タスクを含み、Mは、1より大きいか等しい整数である、ことと、
前記少なくとも1つの併合通信操作タスクに対応するオペランドおよび前記複数の操作タスクのうちの少なくとも1つの非通信操作タスクに対応するオペランドに従って、前記複数の操作タスク間の依存関係を決定することと
を行うように構成されることを特徴とする、タスクスケジューリング装置。 - コンピュータプログラムが記憶された、不揮発性コンピュータ可読記憶媒体であって、前記コンピュータプログラムが、請求項1ないし11のいずれか一項に記載のタスクスケジューリング方法を実行するために使用されることを特徴とする、不揮発性コンピュータ可読記憶媒体。
- タスクスケジューリング装置であって、
プロセッサと、
プロセッサ実行可能な命令を記憶するためのメモリと
を備え、
前記プロセッサは、前記メモリに記憶された前記実行可能な命令を呼び出して、請求項1ないし11のいずれか一項に記載のタスクスケジューリング方法を実現するように構成されることを特徴とする、タスクスケジューリング装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910200097.3 | 2019-03-15 | ||
CN201910200097.3A CN111694675B (zh) | 2019-03-15 | 2019-03-15 | 任务调度方法及装置、存储介质 |
PCT/CN2019/124494 WO2020186836A1 (zh) | 2019-03-15 | 2019-12-11 | 任务调度 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021520578A JP2021520578A (ja) | 2021-08-19 |
JP7050957B2 true JP7050957B2 (ja) | 2022-04-08 |
Family
ID=72475505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020561765A Active JP7050957B2 (ja) | 2019-03-15 | 2019-12-11 | タスクスケジューリング |
Country Status (7)
Country | Link |
---|---|
US (1) | US11347546B2 (ja) |
JP (1) | JP7050957B2 (ja) |
KR (1) | KR20200136468A (ja) |
CN (1) | CN111694675B (ja) |
SG (1) | SG11202010574PA (ja) |
TW (1) | TW202036306A (ja) |
WO (1) | WO2020186836A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114567520B (zh) * | 2020-11-26 | 2023-06-02 | 华为技术有限公司 | 实现集合通信的方法、计算机设备和通信系统 |
CN112463334B (zh) * | 2020-12-04 | 2023-08-18 | 苏州浪潮智能科技有限公司 | 一种训练任务排队原因分析方法、系统、设备以及介质 |
CN112612615B (zh) * | 2020-12-28 | 2022-12-06 | 中孚安全技术有限公司 | 基于多线程内存分配和上下文调度的数据处理方法及系统 |
US20220269528A1 (en) * | 2021-02-24 | 2022-08-25 | Huawei Technologies Co., Ltd. | System, method and apparatus for intelligent heterogeneous computation |
CN113220480B (zh) * | 2021-04-29 | 2023-03-10 | 西安易联趣网络科技有限责任公司 | 分布式的数据任务跨云调度系统及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006228241A (ja) | 1998-08-24 | 2006-08-31 | Advanced Micro Devices Inc | プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129390B (zh) * | 2011-03-10 | 2013-06-12 | 中国科学技术大学苏州研究院 | 片上多核计算平台的任务调度系统及进行任务并行化方法 |
CN102354289B (zh) * | 2011-09-21 | 2012-10-10 | 苏州大学 | 一种并发事务的调度方法和相关装置 |
CN102360309B (zh) * | 2011-09-29 | 2013-12-18 | 中国科学技术大学苏州研究院 | 片上多核异构系统的调度系统与调度执行方法 |
US9280395B2 (en) | 2012-05-30 | 2016-03-08 | Intel Corporation | Runtime dispatching among a heterogeneous group of processors |
CA2953817C (en) * | 2014-06-30 | 2023-07-04 | Amazon Technologies, Inc. | Feature processing tradeoff management |
CN104156264B (zh) | 2014-08-01 | 2017-10-10 | 西北工业大学 | 一种基于多gpu的基带信号处理任务并行实时调度方法 |
CN105637482A (zh) * | 2014-09-15 | 2016-06-01 | 华为技术有限公司 | 基于gpu的数据流处理方法和装置 |
CN104965761B (zh) | 2015-07-21 | 2018-11-02 | 华中科技大学 | 一种基于gpu/cpu混合架构的流程序多粒度划分与调度方法 |
US10437649B2 (en) * | 2016-03-11 | 2019-10-08 | Intel Corporation | Task mapping for heterogeneous platforms |
CN106227507B (zh) * | 2016-07-11 | 2019-10-18 | 北京深鉴智能科技有限公司 | 计算系统及其控制器 |
CN107766144A (zh) * | 2016-08-17 | 2018-03-06 | 中兴通讯股份有限公司 | 一种任务调度方法、装置及系统 |
CN106648846A (zh) * | 2016-09-23 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种改进的异构多核任务调度的方法 |
CN110298443B (zh) * | 2016-09-29 | 2021-09-17 | 中科寒武纪科技股份有限公司 | 神经网络运算装置及方法 |
CN108021563B (zh) * | 2016-10-31 | 2021-09-07 | 华为技术有限公司 | 一种指令间数据依赖的检测方法和装置 |
US10503671B2 (en) * | 2016-12-29 | 2019-12-10 | Oath Inc. | Controlling access to a shared resource |
WO2018198745A1 (ja) * | 2017-04-27 | 2018-11-01 | 日本電気株式会社 | 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 |
WO2018223330A1 (en) * | 2017-06-08 | 2018-12-13 | Alibaba Group Holding Limited | Method and apparatus for distributed machine learning system |
-
2019
- 2019-03-15 CN CN201910200097.3A patent/CN111694675B/zh active Active
- 2019-12-11 JP JP2020561765A patent/JP7050957B2/ja active Active
- 2019-12-11 SG SG11202010574PA patent/SG11202010574PA/en unknown
- 2019-12-11 WO PCT/CN2019/124494 patent/WO2020186836A1/zh active Application Filing
- 2019-12-11 KR KR1020207030753A patent/KR20200136468A/ko active Search and Examination
- 2019-12-27 TW TW108148049A patent/TW202036306A/zh unknown
-
2020
- 2020-10-22 US US17/077,186 patent/US11347546B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006228241A (ja) | 1998-08-24 | 2006-08-31 | Advanced Micro Devices Inc | プロセッサ、およびプロセッサにおいて命令演算をスケジューリングするための方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20200136468A (ko) | 2020-12-07 |
CN111694675A (zh) | 2020-09-22 |
CN111694675B (zh) | 2022-03-08 |
WO2020186836A1 (zh) | 2020-09-24 |
US11347546B2 (en) | 2022-05-31 |
US20210042155A1 (en) | 2021-02-11 |
TW202036306A (zh) | 2020-10-01 |
SG11202010574PA (en) | 2020-11-27 |
JP2021520578A (ja) | 2021-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7050957B2 (ja) | タスクスケジューリング | |
US10412021B2 (en) | Optimizing placement of virtual machines | |
JP5643190B2 (ja) | 局所的集合内のタスクを汎用的集合に割り当てるための方法及びコンピュータ読取可能記録媒体 | |
US8155134B2 (en) | System-on-chip communication manager | |
KR101827369B1 (ko) | 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법 | |
JP2005056391A (ja) | コンピューティング環境の作業負荷を均衡させる方法およびシステム | |
JP2011521353A (ja) | スケジューラーにおけるスケジューリングコレクション | |
US9311270B2 (en) | Scheduler and scheduling method for reconfigurable architecture | |
US20100269119A1 (en) | Event-based dynamic resource provisioning | |
AU2011229395B2 (en) | Dual mode reader writer lock | |
US10289329B2 (en) | Burst buffer dynamic logical volume sizing in high performance computing environment | |
CN113296957B (zh) | 一种用于动态分配片上网络带宽的方法及装置 | |
Alzahrani et al. | adCFS: Adaptive completely fair scheduling policy for containerised workflows systems | |
CN113742646A (zh) | 将单语言复合函数编译为单个实体 | |
US20180159720A1 (en) | Dynamic agent deployment in a data processing system | |
JP2015185003A (ja) | スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム | |
CN114285784B (zh) | 数据传输和管道搭建方法、装置、计算设备和存储介质 | |
CN116841751B (zh) | 一种多任务线程池的策略配置方法、装置和存储介质 | |
JP2011198063A (ja) | データ入出力制御方法,データ入出力制御プログラムおよびデータ入出力制御装置 | |
US20240231925A9 (en) | Serverless computing using resource multiplexing | |
JP2009193260A (ja) | ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法 | |
Cao | Performance Optimization of Big Data Computing Workflows for Batch and Stream Data Processing in Multi-Clouds | |
CN116680296A (zh) | 一种基于单机的大规模图数据处理系统 | |
JP6303584B2 (ja) | データ処理装置、計算機システム、データ処理方法およびデータ処理プログラム | |
CN114979160A (zh) | 区块链任务的分配方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201102 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201102 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220301 |
|
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: 20220307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220329 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7050957 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |