JP2022500755A - 順次計算dagのための異種スケジューリング - Google Patents
順次計算dagのための異種スケジューリング Download PDFInfo
- Publication number
- JP2022500755A JP2022500755A JP2021513809A JP2021513809A JP2022500755A JP 2022500755 A JP2022500755 A JP 2022500755A JP 2021513809 A JP2021513809 A JP 2021513809A JP 2021513809 A JP2021513809 A JP 2021513809A JP 2022500755 A JP2022500755 A JP 2022500755A
- Authority
- JP
- Japan
- Prior art keywords
- dag
- sub
- calculation
- subnodes
- processing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- 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/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/5055—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 software capabilities, i.e. software resources associated or available to the machine
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
Abstract
Description
本出願は、2018年9月11日に出願された、「順次計算DAGのための異種スケジューリング」と題された米国仮特許出願第62/729,646号の優先権を主張し、そのすべての全体は、参照により組み込まれる。
、上述の例のいずれか1つまたは別の例では、分割は、各ノードに関連付けられたタスクタイプおよび複数のプロセッサのメモリ能力に従う。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、均一な非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、不均一な非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、境界が重複する非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、各サブノードは、DAG計算のそれぞれのノードに関連付けられたサブタスクである。任意選択で、上述の例のいずれか1つまたは別の例では、DAG計算の1つ以上のノードが階層的に分割される。任意選択で、上述の例のいずれか1つまたは別の例では、1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノード出力に依存する。任意選択で、上述の例のいずれか1つまたは別の例では、1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノードへの入力である。
に含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、各ノードに関連付けられたタスクタイプおよび複数のプロセッサのメモリ能力に従う。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、均一な非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、不均一な非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、境界が重複する非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、各サブノードは、DAG計算のそれぞれのノードに関連付けられたサブタスクである。任意選択で、上述の例のいずれか1つまたは別の例では、DAG計算の1つ以上のノードが階層的に分割される。任意選択で、上述の例のいずれか1つまたは別の例では、1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノード出力に依存する。任意選択で、上述の例のいずれか1つまたは別の例では、1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノードへの入力である。
の例のいずれか1つまたは別の例では、命令は、実行されたとき、DAG計算のための入力を受信するステップを実行する。任意選択で、上述の例のいずれか1つまたは別の例では、命令は、実行されたとき、DAG計算の出力データバッファ、出力画像バッファ、出力画像ファイル、または出力特徴を出力するステップを実行する。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、各ノードに関連付けられたタスクタイプおよび複数のプロセッサのメモリ能力に従う。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、均一な非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、不均一な非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、境界が重複する非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、各サブノードは、DAG計算のそれぞれのノードに関連付けられたサブタスクである。任意選択で、上述の例のいずれか1つまたは別の例では、DAG計算の1つ以上のノードが階層的に分割される。任意選択で、上述の例のいずれか1つまたは別の例では、1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノード出力に依存する。任意選択で、上述の例のいずれか1つまたは別の例では、1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノードへの入力である。
、出力画像ファイル、または出力特徴を出力するために命令を実行する。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、各ノードに関連付けられたタスクタイプおよび複数のプロセッサのメモリ能力に従う。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、均一な非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、不均一な非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、境界が重複する非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、各サブノードは、DAG計算のそれぞれのノードに関連付けられたサブタスクである。任意選択で、上述の例のいずれか1つまたは別の例では、DAG計算の1つ以上のノードが階層的に分割される。任意選択で、上述の例のいずれか1つまたは別の例では、1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノード出力に依存する。任意選択で、上述の例のいずれか1つまたは別の例では、1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノードへの入力である。
サは、DAG計算の出力データバッファ、出力画像バッファ、出力画像ファイル、または出力特徴を出力するために命令を実行する。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、各ノードに関連付けられたタスクタイプおよび複数のプロセッサのメモリ能力に従う。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、均一な非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、不均一な非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、分割は、境界が重複する非相互依存サブノードを含む。任意選択で、上述の例のいずれか1つまたは別の例では、各サブノードは、DAG計算のそれぞれのノードに関連付けられたサブタスクである。任意選択で、上述の例のいずれか1つまたは別の例では、第1の処理ユニットおよび第2の処理ユニットのそれぞれは、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、画像信号プロセッサ(ISP)、映像処理ユニット(VPU)、ニューラルネットワーク処理ユニット(NPU)、および表示処理ユニット(DPU)からなる群から選択される異なるプロセッサタイプである。任意選択で、上述の例のいずれか1つまたは別の例では、本デバイスは、相互接続バスリンク、共有メモリユニット、メモリコントローラ、1つ以上のメモリユニット、もしくは周辺相互接続部のうちの少なくとも1つ、またはこれらの組み合わせをさらに含む。任意選択で、上述の例のいずれか1つまたは別の例では、DAG計算の1つ以上のノードが階層的に分割される。任意選択で、上述の例のいずれか1つまたは別の例では、1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノード出力に依存する。任意選択で、上述の例のいずれか1つまたは別の例では、1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノードへの入力である。
804 メモリ
806 インターフェース
808 インターフェース
810 インターフェース
902 ネットワーク側インターフェース
904 カプラ
906 送信機
908 受信機
910 信号プロセッサ
912 デバイス側インターフェース
Claims (92)
- 有向非巡回グラフ(DAG)計算を処理するための方法であって、
複数のプロセッサによって、前記DAG計算を各ノード内で複数の非相互依存サブノードに分割するステップであって、前記複数のプロセッサは、マルチコアグラフィック処理ユニット(GPU)およびマルチコア中央処理ユニット(CPU)を備える、ステップと、
前記複数のプロセッサによって、複数のサブDAG計算を構築するステップであって、各サブDAG計算は、前記DAG計算の異なるノードからの非相互依存サブノードを少なくとも含む、ステップと、
前記複数のプロセッサによって、前記複数のサブDAG計算のそれぞれの処理をスケジューリングするステップと、
前記複数のプロセッサによって、前記複数のサブDAG計算のそれぞれを並列で処理するステップと
を含む方法。 - 前記複数のプロセッサによって、前記複数のサブDAG計算に中間共有メモリを割り当てるステップをさらに含む、請求項1に記載の方法。
- 前記複数のプロセッサによって、各サブDAG計算の各サブノードの処理をスケジューリングするステップをさらに含む、請求項1または2に記載の方法。
- 前記複数のサブDAG計算のそれぞれの前記処理をスケジューリングする前記ステップは、各サブDAG計算のそれぞれのサブノードのタスクタイプに従う、請求項1から3のいずれか一項に記載の方法。
- 前記DAG計算は、画像処理、映像処理、またはディープニューラルネットワーク処理アプリケーションを含む、請求項1から4のいずれか一項に記載の方法。
- それぞれのサブDAG計算のサブノードの処理の完了は、前記それぞれのサブDAG計算の次のサブノードの処理の依存対象である、請求項1から5のいずれか一項に記載の方法。
- それぞれのノード内の非相互依存サブノードの処理は、同じそれぞれのノード内の別の非相互依存サブノードの処理から独立している、請求項1から6のいずれか一項に記載の方法。
- 前記構築ステップは、手動で、または前記複数のプロセッサによって実行されるコンパイラによって自動的に行われる、請求項1から7のいずれか一項に記載の方法。
- 前記DAG計算のための入力を受信するステップをさらに含む、請求項1から8のいずれか一項に記載の方法。
- 前記DAG計算の出力データバッファ、出力画像バッファ、出力画像ファイル、または出力特徴を出力するステップをさらに含む、請求項1から9のいずれか一項に記載の方法。
- 前記分割するステップは、各ノードに関連付けられたタスクタイプおよび前記複数のプロセッサのメモリ能力に従う、請求項1から10のいずれか一項に記載の方法。
- 前記分割するステップは、均一な非相互依存サブノードを含む、請求項1から11のいずれか一項に記載の方法。
- 前記分割するステップは、不均一な非相互依存サブノードを含む、請求項1から11のいずれか一項に記載の方法。
- 前記分割するステップは、境界が重複する非相互依存サブノードを含む、請求項1から11のいずれか一項に記載の方法。
- 各サブノードは、前記DAG計算のそれぞれのノードに関連付けられたサブタスクである、請求項1から14のいずれか一項に記載の方法。
- 前記DAG計算の1つ以上のノードは階層的に分割される、請求項1から15のいずれか一項に記載の方法。
- 1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノード出力に依存する、請求項1から16のいずれか一項に記載の方法。
- 1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノードへの入力である、請求項1から17のいずれか一項に記載の方法。
- 有向非巡回グラフ(DAG)計算を処理するためのコンピュータ実施方法であって、
複数のプロセッサによって、前記DAG計算を各ノード内で複数の非相互依存サブノードに分割するステップであって、前記複数のプロセッサは、マルチコアグラフィック処理ユニット(GPU)およびマルチコア中央処理ユニット(CPU)を備える、ステップと、
前記複数のプロセッサによって、複数のサブDAG計算を構築するステップであって、各サブDAG計算は、前記DAG計算の異なるノードからの非相互依存サブノードを少なくとも含む、ステップと、
前記複数のプロセッサによって、前記複数のサブDAG計算のそれぞれの処理をスケジューリングするステップと、
前記複数のプロセッサによって、前記複数のサブDAG計算のそれぞれを並列で処理するステップと
を含むコンピュータ実施方法。 - 前記複数のプロセッサによって、前記複数のサブDAG計算に中間共有メモリを割り当てるステップをさらに含む、請求項19に記載のコンピュータ実施方法。
- 前記複数のプロセッサによって、各サブDAG計算の各サブノードの処理をスケジューリングするステップをさらに含む、請求項19または20に記載のコンピュータ実施方法。
- 前記複数のサブDAG計算のそれぞれの前記処理をスケジューリングする前記ステップは、各サブDAG計算のそれぞれのサブノードのタスクタイプに従う、請求項19から21のいずれか一項に記載のコンピュータ実施方法。
- 前記DAG計算は、画像処理、映像処理、またはディープニューラルネットワーク処理アプリケーションを含む、請求項19から22のいずれか一項に記載のコンピュータ実施方法。
- それぞれのサブDAG計算のサブノードの処理の完了は、前記それぞれのサブDAG計算の次のサブノードの処理の依存対象である、請求項19から23のいずれか一項に記載のコンピュータ実施方法。
- それぞれのノード内の非相互依存サブノードの処理は、同じそれぞれのノード内の別の非相互依存サブノードの処理から独立している、請求項19から24のいずれか一項に記載のコンピュータ実施方法。
- 前記構築ステップは、手動で、または前記複数のプロセッサによって実行されるコンパイラによって自動的に行われる、請求項19から25のいずれか一項に記載のコンピュータ実施方法。
- 前記DAG計算のための入力を受信するステップをさらに含む、請求項19から26のいずれか一項に記載のコンピュータ実施方法。
- 前記DAG計算の出力データバッファ、出力画像バッファ、出力画像ファイル、または出力特徴を出力するステップをさらに含む、請求項19から27のいずれか一項に記載のコンピュータ実施方法。
- 前記分割するステップは、各ノードに関連付けられたタスクタイプおよび前記複数のプロセッサのメモリ能力に従う、請求項19から28のいずれか一項に記載のコンピュータ実施方法。
- 前記分割するステップは、均一な非相互依存サブノードを含む、請求項19から29のいずれか一項に記載のコンピュータ実施方法。
- 前記分割するステップは、不均一な非相互依存サブノードを含む、請求項19から29のいずれか一項に記載のコンピュータ実施方法。
- 前記分割するステップは、境界が重複する非相互依存サブノードを含む、請求項19から29のいずれか一項に記載のコンピュータ実施方法。
- 各サブノードは、前記DAG計算のそれぞれのノードに関連付けられたサブタスクである、請求項19から32のいずれか一項に記載のコンピュータ実施方法。
- 前記DAG計算の1つ以上のノードは階層的に分割される、請求項19から33のいずれか一項に記載のコンピュータ実施方法。
- 1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノード出力に依存する、請求項19から34のいずれか一項に記載のコンピュータ実施方法。
- 1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノードへの入力である、請求項19から35のいずれか一項に記載のコンピュータ実施方法。
- 有向非巡回グラフ(DAG)計算を処理するためのコンピュータ命令を記憶する非一時的コンピュータ可読媒体であって、前記コンピュータ命令は、第1の処理ユニットおよび第2の処理ユニットを備える複数のプロセッサによって実行されたとき、
前記DAG計算を各ノード内で複数の非相互依存サブノードに分割するステップであって、前記複数のプロセッサは、マルチコアグラフィック処理ユニット(GPU)およびマルチコア中央処理ユニット(CPU)を備える、ステップと、
複数のサブDAG計算を構築するステップであって、各サブDAG計算は、前記DAG計算の異なるノードからの非相互依存サブノードを少なくとも含む、ステップと、
前記サブDAG計算のそれぞれの処理をスケジューリングするステップと、
前記複数のサブDAG計算のそれぞれを並列で処理するステップと
を実行する、非一時的コンピュータ可読媒体。 - 複数のプロセッサによって動作されたとき、前記複数のサブDAG計算に中間共有メモリを割り当てるステップを実行する、請求項37に記載の非一時的コンピュータ可読媒体。
- 複数のプロセッサによって動作されたとき、各サブDAG計算の各サブノードの処理をスケジューリングするステップを実行する、請求項37または38に記載の非一時的コンピュータ可読媒体。
- 前記複数のサブDAG計算のそれぞれの前記処理をスケジューリングする前記ステップは、各サブDAG計算のそれぞれのサブノードのタスクタイプに従う、請求項37から39のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 前記DAG計算は、画像処理、映像処理、またはディープニューラルネットワーク処理アプリケーションを含む、請求項37から40のいずれか一項に記載の非一時的コンピュータ可読媒体。
- それぞれのサブDAG計算のサブノードの処理の完了は、前記それぞれのサブDAG計算の次のサブノードの処理の依存対象である、請求項37から41のいずれか一項に記載の非一時的コンピュータ可読媒体。
- それぞれのノード内の非相互依存サブノードの処理は、同じそれぞれのノード内の別の非相互依存サブノードの処理から独立している、請求項37から42のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 前記構築ステップは、手動で、または前記複数のプロセッサによって実行されるコンパイラによって自動的に行われる、請求項37から43のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 前記複数のプロセッサによって動作されたとき、前記DAG計算のための入力を受信するステップを実行する、請求項37から44のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 複数のプロセッサによって動作されたとき、前記DAG計算の出力データバッファ、出力画像バッファ、出力画像ファイル、または出力特徴を出力するステップを実行する、請求項37から45のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 前記分割するステップは、各ノードに関連付けられたタスクタイプおよび前記複数のプロセッサのメモリ能力に従う、請求項37から46のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 前記分割するステップは、均一な非相互依存サブノードを含む、請求項37から47のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 前記分割するステップは、不均一な非相互依存サブノードを含む、請求項37から47のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 前記分割するステップは、境界が重複する非相互依存サブノードを含む、請求項37から47のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 各サブノードは、前記DAG計算のそれぞれのノードに関連付けられたサブタスクである、請求項37から50のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 前記DAG計算の1つ以上のノードは階層的に分割される、請求項37から51のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノード出力に依存する、請求項37から52のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノードへの入力である、請求項37から53のいずれか一項に記載の非一時的コンピュータ可読媒体。
- 有向非巡回グラフ(DAG)計算を処理するためのデバイスであって、
命令を含む非一時的メモリストレージと、
中央処理ユニット(CPU)およびグラフィック処理ユニット(GPU)を備える複数のプロセッサであって、前記複数のプロセッサは、前記非一時的メモリストレージと通信し、前記複数のプロセッサは、
前記DAG計算を各ノード内で複数の非相互依存サブノードに分割し、
複数のサブDAG計算を構築し、各サブDAG計算は、前記DAG計算の異なるノードからの非相互依存サブノードを少なくとも含み、
前記複数のサブDAG計算のそれぞれの処理をスケジューリングし、
前記複数のサブDAG計算のそれぞれを並列で処理する
ために前記命令を実行する、複数のプロセッサと
を備えるデバイス。 - 前記複数のプロセッサは、前記複数のサブDAG計算に中間共有メモリを割り当てるために前記命令を実行する、請求項55に記載のデバイス。
- 前記複数のプロセッサは、各サブDAG計算の各サブノードの処理をスケジューリングするために前記命令を実行する、請求項55または56に記載のデバイス。
- 前記複数のサブDAG計算のそれぞれの前記処理をスケジューリングする前記ステップは、各サブDAG計算のそれぞれのサブノードのタスクタイプに従う、請求項55から57のいずれか一項に記載のデバイス。
- 前記DAG計算は、画像処理、映像処理、またはディープニューラルネットワーク処理アプリケーションを含む、請求項55から58のいずれか一項に記載のデバイス。
- それぞれのサブDAG計算のサブノードの処理の完了は、前記それぞれのサブDAG計算の次のサブノードの処理の依存対象である、請求項55から59のいずれか一項に記載のデバイス。
- それぞれのノード内の非相互依存サブノードの処理は、同じそれぞれのノード内の別の非相互依存サブノードの処理から独立している、請求項55から60のいずれか一項に記載のデバイス。
- 前記構築ステップは、手動で、または前記複数のプロセッサによって実行されるコンパイラによって自動的に行われる、請求項55から61のいずれか一項に記載のデバイス。
- 前記複数のプロセッサは、前記DAG計算のための入力を受信するために前記命令を実行する、請求項55から62のいずれか一項に記載のデバイス。
- 前記複数のプロセッサは、前記DAG計算の出力データバッファ、出力画像バッファ、出力画像ファイル、または出力特徴を出力するために前記命令を実行する、請求項55から63のいずれか一項に記載のデバイス。
- 前記分割するステップは、各ノードに関連付けられたタスクタイプおよび前記複数のプロセッサのメモリ能力に従う、請求項55から64のいずれか一項に記載のデバイス。
- 前記分割するステップは、均一な非相互依存サブノードを含む、請求項55から65のいずれか一項に記載のデバイス。
- 前記分割するステップは、不均一な非相互依存サブノードを含む、請求項55から65のいずれか一項に記載のデバイス。
- 前記分割するステップは、境界が重複する非相互依存サブノードを含む、請求項55から65のいずれか一項に記載のデバイス。
- 各サブノードは、前記DAG計算のそれぞれのノードに関連付けられたサブタスクである、請求項55から68のいずれか一項に記載のデバイス。
- 前記DAG計算の1つ以上のノードは階層的に分割される、請求項55から69のいずれか一項に記載のデバイス。
- 1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノード出力に依存する、請求項55から70のいずれか一項に記載のデバイス。
- 1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノードへの入力である、請求項55から71のいずれか一項に記載のデバイス。
- 有向非巡回グラフ(DAG)計算を処理するためのデバイスであって、
命令を含む非一時的メモリストレージと、
第1の処理ユニットおよび第2の処理ユニットを備える複数のプロセッサであって、前記第1の処理ユニットおよび前記第2の処理ユニットは、異なるプロセッサタイプであり、前記複数のプロセッサは、前記非一時的メモリストレージと通信し、前記複数のプロセッサは、
前記DAG計算を各ノード内で複数の非相互依存サブノードに分割し、
複数のサブDAG計算を構築し、各サブDAG計算は、前記DAG計算の異なるノードからの非相互依存サブノードを少なくとも含み、
前記複数のサブDAG計算のそれぞれの処理をスケジューリングし、
前記複数のサブDAG計算のそれぞれを並列で処理する
ために前記命令を実行する、複数のプロセッサと
を備えるデバイス。 - 前記複数のプロセッサは、前記複数のサブDAG計算に中間共有メモリを割り当てるために前記命令を実行する、請求項73に記載のデバイス。
- 前記複数のプロセッサは、各サブDAG計算の各サブノードの処理をスケジューリングするために前記命令を実行する、請求項73または74に記載のデバイス。
- 前記複数のサブDAG計算のそれぞれの前記処理をスケジューリングする前記ステップは、各サブDAG計算のそれぞれのサブノードのタスクタイプに従う、請求項73から75のいずれか一項に記載のデバイス。
- 前記DAG計算は、画像処理、映像処理、またはディープニューラルネットワーク処理アプリケーションを含む、請求項73から76のいずれか一項に記載のデバイス。
- それぞれのサブDAG計算のサブノードの処理の完了は、前記それぞれのサブDAG計算の次のサブノードの処理の依存対象である、請求項73から77のいずれか一項に記載のデバイス。
- それぞれのノード内の非相互依存サブノードの処理は、同じそれぞれのノード内の別の非相互依存サブノードの処理から独立している、請求項73から78のいずれか一項に記載のデバイス。
- 前記構築ステップは、手動で、または前記複数のプロセッサによって実行されるコンパイラによって自動的に行われる、請求項73から79のいずれか一項に記載のデバイス。
- 前記複数のプロセッサは、前記DAG計算のための入力を受信するために前記命令を実行する、請求項73から80のいずれか一項に記載のデバイス。
- 前記複数のプロセッサは、前記DAG計算の出力データバッファ、出力画像バッファ、出力画像ファイル、または出力特徴を出力するために前記命令を実行する、請求項73から81のいずれか一項に記載のデバイス。
- 前記分割するステップは、各ノードに関連付けられたタスクタイプおよび前記複数のプロセッサのメモリ能力に従う、請求項73から82のいずれか一項に記載のデバイス。
- 前記分割するステップは、均一な非相互依存サブノードを含む、請求項73から83のいずれか一項に記載のデバイス。
- 前記分割するステップは、不均一な非相互依存サブノードを含む、請求項73から83のいずれか一項に記載のデバイス。
- 前記分割するステップは、境界が重複する非相互依存サブノードを含む、請求項73から83のいずれか一項に記載のデバイス。
- 各サブノードは、前記DAG計算のそれぞれのノードに関連付けられたサブタスクである、請求項73から86のいずれか一項に記載のデバイス。
- 前記第1の処理ユニットおよび前記第2の処理ユニットのそれぞれは、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、画像信号プロセッサ(ISP)、映像処理ユニット(VPU)、ニューラルネットワーク処理ユニット(NPU)、および表示処理ユニット(DPU)からなる群から選択される異なるプロセッサタイプである、請求項73から87のいずれか一項に記載のデバイス。
- 相互接続バスリンク、共有メモリユニット、メモリコントローラ、1つ以上のメモリユニット、もしくは周辺相互接続部のうちの少なくとも1つ、またはこれらの組み合わせをさらに備える、請求項73から88のいずれか一項に記載のデバイス。
- 前記DAG計算の1つ以上のノードは階層的に分割される、請求項73から89のいずれか一項に記載のデバイス。
- 1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノード出力に依存する、請求項73から90のいずれか一項に記載のデバイス。
- 1つ以上のサブDAG計算の1つ以上のサブノードは、複数のサブノードへの入力である、請求項73から91のいずれか一項に記載のデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862729646P | 2018-09-11 | 2018-09-11 | |
US62/729,646 | 2018-09-11 | ||
PCT/CN2019/084742 WO2020052241A1 (en) | 2018-09-11 | 2019-04-28 | Heterogeneous scheduling for sequential compute dag |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022500755A true JP2022500755A (ja) | 2022-01-04 |
Family
ID=69777277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021513809A Pending JP2022500755A (ja) | 2018-09-11 | 2019-04-28 | 順次計算dagのための異種スケジューリング |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220043688A1 (ja) |
EP (1) | EP3837622A4 (ja) |
JP (1) | JP2022500755A (ja) |
KR (1) | KR102579058B1 (ja) |
CN (1) | CN112673352A (ja) |
WO (1) | WO2020052241A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020132833A1 (en) * | 2018-12-24 | 2020-07-02 | Intel Corporation | Methods and apparatus to process machine learning model in multi-process web browser environment |
KR20210023401A (ko) * | 2019-08-23 | 2021-03-04 | 삼성전자주식회사 | 뉴럴 네트워크 연산 방법 및 이를 포함하는 시스템 |
CN113391918B (zh) * | 2020-03-13 | 2024-07-05 | 伊姆西Ip控股有限责任公司 | 用于处理计算作业的方法、设备和计算机程序产品 |
CN111625692B (zh) * | 2020-05-27 | 2023-08-22 | 抖音视界有限公司 | 特征抽取方法、装置、电子设备和计算机可读介质 |
US11797337B2 (en) * | 2020-08-21 | 2023-10-24 | Leica Microsystems Cms Gmbh | Data processing management methods for imaging applications |
JP7408533B2 (ja) * | 2020-12-09 | 2024-01-05 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
GB2602540B (en) * | 2020-12-31 | 2023-10-25 | Seechange Tech Limited | System for processing image data |
CN113504975A (zh) * | 2021-05-17 | 2021-10-15 | 华南理工大学 | 面向在线语义分割机器视觉检测的多任务协同调度方法 |
EP4320513A1 (en) * | 2021-06-08 | 2024-02-14 | Google LLC | Hierarchical compiling and execution in a machine learning hardware accelerator |
CN113628304B (zh) * | 2021-10-09 | 2021-12-03 | 湖北芯擎科技有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN114510338B (zh) * | 2022-04-19 | 2022-09-06 | 浙江大华技术股份有限公司 | 一种任务调度方法、任务调度设备和计算机可读存储介质 |
US11900174B2 (en) | 2022-06-22 | 2024-02-13 | Dell Products L.P. | Processing unit virtualization with scalable over-provisioning in an information processing system |
US12086647B2 (en) | 2022-12-16 | 2024-09-10 | Abbyy Development Inc. | Dynamic subtask creation and execution in processing platforms |
CN116932228B (zh) * | 2023-09-14 | 2023-12-12 | 湖南希赛网络科技有限公司 | 一种基于志愿者计算的边缘ai任务调度和资源管理系统 |
CN118467183A (zh) * | 2024-07-10 | 2024-08-09 | 北京壁仞科技开发有限公司 | 一种同步资源分配方法、设备、存储介质及程序产品 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017163591A1 (ja) * | 2016-03-24 | 2017-09-28 | 富士フイルム株式会社 | 画像処理装置、画像処理方法、及び画像処理プログラム |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2504989B1 (en) * | 2009-11-24 | 2017-01-11 | OCE-Technologies B.V. | Method for digital image adaptation for printing an image on a printing apparatus |
US8555265B2 (en) * | 2010-05-04 | 2013-10-08 | Google Inc. | Parallel processing of data |
US9122523B2 (en) * | 2012-05-03 | 2015-09-01 | Nec Laboratories America, Inc. | Automatic pipelining framework for heterogeneous parallel computing systems |
US9118539B2 (en) * | 2012-07-30 | 2015-08-25 | Cisco Technology, Inc. | Managing grey zones of unreachable nodes in computer networks |
US9411558B2 (en) * | 2012-10-20 | 2016-08-09 | Luke Hutchison | Systems and methods for parallelization of program code, interactive data visualization, and graphically-augmented code editing |
US9348560B2 (en) * | 2013-06-04 | 2016-05-24 | Qualcomm Incorporated | Efficient execution of graph-based programs |
CN103488775B (zh) * | 2013-09-29 | 2016-08-10 | 中国科学院信息工程研究所 | 一种用于大数据处理的计算系统及计算方法 |
US9594601B2 (en) * | 2014-03-14 | 2017-03-14 | Cask Data, Inc. | Planner for cluster management system |
CN104052811B (zh) * | 2014-06-17 | 2018-01-02 | 华为技术有限公司 | 一种业务调度的方法、装置及系统 |
CN104036451B (zh) * | 2014-06-20 | 2018-12-11 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
CN104239137B (zh) * | 2014-08-21 | 2017-12-08 | 东软集团股份有限公司 | 基于dag节点最优路径的多模型并行调度方法及装置 |
WO2016043757A1 (en) * | 2014-09-18 | 2016-03-24 | Hewlett Packard Enterprise Development Lp | Data to be backed up in a backup system |
US10467569B2 (en) * | 2014-10-03 | 2019-11-05 | Datameer, Inc. | Apparatus and method for scheduling distributed workflow tasks |
US9818166B2 (en) | 2015-01-16 | 2017-11-14 | Intel Corporation | Graph-based application programming interface architectures with producer/consumer nodes for enhanced image processing parallelism |
US10007852B2 (en) * | 2015-05-29 | 2018-06-26 | Bae Systems Information And Electronic Systems Integration Inc. | Methods and apparatuses for performing object tracking using graphs |
US10042886B2 (en) * | 2015-08-03 | 2018-08-07 | Sap Se | Distributed resource-aware task scheduling with replicated data placement in parallel database clusters |
JP6575216B2 (ja) * | 2015-08-14 | 2019-09-18 | 富士ゼロックス株式会社 | 画像処理装置、画像形成装置、及び画像処理プログラム |
US10409560B1 (en) * | 2015-11-18 | 2019-09-10 | Amazon Technologies, Inc. | Acceleration techniques for graph analysis programs |
US9715373B2 (en) * | 2015-12-18 | 2017-07-25 | International Business Machines Corporation | Dynamic recompilation techniques for machine learning programs |
US10255108B2 (en) * | 2016-01-26 | 2019-04-09 | International Business Machines Corporation | Parallel execution of blockchain transactions |
US10382529B2 (en) * | 2016-01-29 | 2019-08-13 | Nicira, Inc. | Directed graph based span computation and configuration dispatching |
US10387988B2 (en) * | 2016-02-26 | 2019-08-20 | Google Llc | Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform |
CN108475213B (zh) * | 2016-03-24 | 2021-11-30 | 富士胶片商业创新有限公司 | 图像处理装置、图像处理方法和图像处理程序 |
US20180032568A1 (en) * | 2016-07-29 | 2018-02-01 | Sysomos L.P. | Computing System with Multi-Processor Platform for Accelerating Influence Maximization Computation and Related Methods |
US10366084B2 (en) * | 2016-09-15 | 2019-07-30 | Microsoft Technology Licensing, Llc | Optimizing pipelining result sets with fault tolerance in distributed query execution |
US10452449B1 (en) * | 2017-05-01 | 2019-10-22 | Ambarella, Inc. | Scheduler for vector processing operator allocation |
US11586960B2 (en) * | 2017-05-09 | 2023-02-21 | Visa International Service Association | Autonomous learning platform for novel feature discovery |
US10810210B2 (en) * | 2017-05-12 | 2020-10-20 | Battelle Memorial Institute | Performance and usability enhancements for continuous subgraph matching queries on graph-structured data |
US10552161B2 (en) * | 2017-06-21 | 2020-02-04 | International Business Machines Corporation | Cluster graphical processing unit (GPU) resource sharing efficiency by directed acyclic graph (DAG) generation |
US11636327B2 (en) * | 2017-12-29 | 2023-04-25 | Intel Corporation | Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism |
CN108388474A (zh) * | 2018-02-06 | 2018-08-10 | 北京易沃特科技有限公司 | 基于dag的智能分布式计算管理系统及方法 |
CN108491263A (zh) * | 2018-03-02 | 2018-09-04 | 珠海市魅族科技有限公司 | 数据处理方法、数据处理装置、终端及可读存储介质 |
US20190303474A1 (en) * | 2018-03-30 | 2019-10-03 | Lendingclub Corporation | Efficient parallelized computation of multiple target data-elements |
US11416262B1 (en) * | 2018-05-22 | 2022-08-16 | Workday, Inc. | Systems and methods for improving computational speed of planning by enabling interactive processing in hypercubes |
US20190361407A1 (en) * | 2018-05-24 | 2019-11-28 | Microsoft Technology Licensing, Llc | Insights for physical space usage |
-
2019
- 2019-04-28 KR KR1020217010609A patent/KR102579058B1/ko active IP Right Grant
- 2019-04-28 EP EP19858908.7A patent/EP3837622A4/en active Pending
- 2019-04-28 US US17/275,039 patent/US20220043688A1/en active Pending
- 2019-04-28 JP JP2021513809A patent/JP2022500755A/ja active Pending
- 2019-04-28 CN CN201980059038.7A patent/CN112673352A/zh active Pending
- 2019-04-28 WO PCT/CN2019/084742 patent/WO2020052241A1/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017163591A1 (ja) * | 2016-03-24 | 2017-09-28 | 富士フイルム株式会社 | 画像処理装置、画像処理方法、及び画像処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
EP3837622A4 (en) | 2021-10-13 |
WO2020052241A1 (en) | 2020-03-19 |
CN112673352A (zh) | 2021-04-16 |
KR102579058B1 (ko) | 2023-09-14 |
EP3837622A1 (en) | 2021-06-23 |
KR20210047952A (ko) | 2021-04-30 |
US20220043688A1 (en) | 2022-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022500755A (ja) | 順次計算dagのための異種スケジューリング | |
CN108614726B (zh) | 虚拟机创建方法及装置 | |
US11593644B2 (en) | Method and apparatus for determining memory requirement in a network | |
US10572290B2 (en) | Method and apparatus for allocating a physical resource to a virtual machine | |
CN106503791A (zh) | 用于有效神经网络部署的系统和方法 | |
CN110389816B (zh) | 用于资源调度的方法、装置以及计算机可读介质 | |
US20120174117A1 (en) | Memory-aware scheduling for numa architectures | |
JP7497946B2 (ja) | ハイブリッド・データ-モデル並列処理方法、システム、プログラム | |
JP7050957B2 (ja) | タスクスケジューリング | |
KR20200091789A (ko) | Gpu 연산의 동시 실행을 위한 플랫폼 | |
Gao et al. | Deep neural network task partitioning and offloading for mobile edge computing | |
CN113886034A (zh) | 任务调度方法、系统、电子设备及存储介质 | |
JP2023511467A (ja) | 機械学習ワークロードのためのタスクスケジューリング | |
JP2024528103A (ja) | 無線リソース使用率の決定方法、装置、電子機器及びコンピュータプログラム | |
JP2020191628A (ja) | セルリソース割り当て | |
CN114706596A (zh) | 容器部署方法、资源调度方法、装置、介质和电子设备 | |
CN111580974B (zh) | Gpu实例分配方法、装置、电子设备和计算机可读介质 | |
WO2015042904A1 (zh) | 一种多核系统中资源池的调度方法、装置和系统 | |
CN111400021B (zh) | 一种深度学习方法、装置及系统 | |
KR101558807B1 (ko) | 호스트 프로세서와 협업 프로세서 간에 협업 처리를 위한 프로세서 스케줄링 방법 및 그 방법을 수행하는 호스트 프로세서 | |
KR20210067911A (ko) | 에지 컴퓨팅에서 멀티 연합 학습 서비스 오케스트레이터 및 이의 실행 방법 | |
KR102391700B1 (ko) | 애드혹 네트워크에서 가중치를 이용하여 무선 자원을 할당하는 방법 및 이를 수행하는 장치들 | |
CN115271080B (zh) | 量子计算任务执行方法、装置及量子计算机操作系统 | |
US20220318656A1 (en) | Model parameter sharing between inference application instances in processing unit of information processing system | |
US11659445B2 (en) | Device coordination for distributed edge computations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210421 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220613 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220912 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20221003 |