JP7408533B2 - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP7408533B2
JP7408533B2 JP2020204346A JP2020204346A JP7408533B2 JP 7408533 B2 JP7408533 B2 JP 7408533B2 JP 2020204346 A JP2020204346 A JP 2020204346A JP 2020204346 A JP2020204346 A JP 2020204346A JP 7408533 B2 JP7408533 B2 JP 7408533B2
Authority
JP
Japan
Prior art keywords
data
computing device
task
execution
information 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.)
Active
Application number
JP2020204346A
Other languages
English (en)
Other versions
JP2022091486A (ja
Inventor
亮太 田村
瑞城 小野
雅則 古田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2020204346A priority Critical patent/JP7408533B2/ja
Priority to US17/446,185 priority patent/US11941439B2/en
Publication of JP2022091486A publication Critical patent/JP2022091486A/ja
Application granted granted Critical
Publication of JP7408533B2 publication Critical patent/JP7408533B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • Multi Processors (AREA)

Description

本発明の実施形態は、情報処理装置、情報処理方法およびプログラムに関する。
複数のDNN(Deep Neural Network)アクセラレータをインタフェース回路で接続してDNNの推論を行うニューラルネットワークプロセッサシステムが提案されている。また、計算問題を分割してスケジューリングする技術として、以下のような技術が提案されている。
・N体問題を部分問題に分割して解く際にタスクを計算ユニットに分配する技術
・畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)の畳み込み(Convolution)レイヤを含む複数のレイヤを1つにまとめ、まとめたレイヤを行方向(高さ方向)および列方向(幅方向)で分割した複数のFused Tile(FT)それぞれを、コンピュータクラスタ上で並列に計算する技術(Fused Tile Partitioning:FTP)
特表2020‐517006号公報 特許第5592523号公報
Zhuoran Zhao, Kamyar Mirzazad Barijough, and Andreas Gerstlauer, "DeepThings: Distributed Adaptive Deep Learning Inference on Resource-Constrained IoT Edge Clusters", IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (Volume: 37 , Issue: 11 , Nov. 2018)
しかしながら、従来技術では、分割した計算の実行を効率化できない場合があった。例えば、上記のようなニューラルネットワークプロセッサシステムは、複数のDNN専用の集積回路が相互接続された推論システムを構成する実装手段に留まり、例えば通信回数の削減および通信手段の最適化を行うことができなかった。この結果、DNNの計算を効率的に実行できなかった。上記のような計算問題を分割してスケジューリングする技術でも、通信回数の削減を行うことができず、計算を効率化できなかった。
実施形態の情報処理装置は、割当部と、実行制御部と、を備える。割当部は、ニューラルネットワークを用いて処理されるn次元(nは2以上の整数)の対象データに含まれる複数の部分データのうち、第1データと、第1データとm次元(mは1≦m≦nを満たす整数)の方向に隣接する第2データと、を含む1以上の第1部分データをそれぞれ処理する1以上の第1タスクを、第1計算装置に割り当てる。実行制御部は、対象データに含まれる複数の部分データのうち、第2計算装置が実行中の第2部分データの実行状態に応じて、1以上の第1タスクに含まれる第2タスクの実行を、第1計算装置に対して指示する。
実施形態にかかる情報処理システムのブロック図。 管理装置のブロック図。 計算装置のブロック図。 実施形態にかかる情報処理システムの動作の概要を示すフローチャート。 CNNの分散実行動作のシーケンス図。 比較例および本実施形態の転送時間の内訳の例を示す図。 タスクのスケジューリングのフローチャート。 部分データの一例を示す図。 タスクのスケジューリングの例を示す図。 タスクのスケジューリングの例を示す図。 タスクのスケジューリングの例を示す図。 タスクのスケジューリングの例を示す図。 タスクの分散実行動作のシーケンス図。 3つのタスクに関連する処理を並列化した場合の動作例を示す図。 情報処理システムを監視システムとして実現する例を示す図。
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
以下では、主にCNNによる計算を複数の計算装置で分散して実行させるシステムの例を説明する。適用可能な計算は、CNNによる計算に限られず、例えば、CNN以外のニューラルネットワークによる計算であってもよい。また、以下では、カメラなどの撮影装置で撮影された画像を対象としてCNNによる処理を行う例を説明する。処理対象となるデータは画像に限られず、どのようなデータであってもよい。
実施形態にかかる情報処理システムは、CNNによる計算の実行状態を管理する管理装置(情報処理装置の一例)と、CNNの計算を分散して行う複数の計算装置と、を含む。管理装置は、使用するデータまたは途中計算を共有可能なタスクの一部を計算装置ごとにまとめて割り当て、割り当てたタスクの中から実際に実行するタスクを指示するように、分散処理するCNNのタスクをスケジューリングする。これにより、各計算装置でのタスクの実行時間を短縮することができる。
また、管理装置は、CNNの分散処理において必要となるデータ(入出力特徴マップ、途中計算の結果など)を、タスクを実行する計算装置にまとめて送信する。また、実施形態にかかる管理装置は、タスクを実行した計算装置から、他の計算装置が必要とするデータなどをまとめて受信する。これにより、計算に用いるデータの通信回数を削減することができる。
図1は、実施形態にかかる情報処理システムの構成の一例を示すブロック図である。図1に示すように、実施形態にかかる情報処理システムは、管理装置100と、計算装置200a、200bと、撮影装置300a、300bと、ネットワーク400と、を備えている。
撮影装置300a、300bは、それぞれ計算装置200a、200bと接続される。撮影装置300a、300bは、画像を撮影し、接続される計算装置200a、200bに撮影した画像を送信する。
計算装置200a、200bは、管理装置100からの指示に応じて、CNNの計算を分散して実行する。計算装置200a、200bは、同様の構成を備えるため、区別する必要がない場合は単に計算装置200という場合がある。同様に、撮影装置300a、300bは、同様の構成を備えるため、区別する必要がない場合は単に撮影装置300という場合がある。
図1では、2個の計算装置200および2個の撮影装置300が記載されているが、計算装置200および撮影装置300はそれぞれ3個以上であってもよい。
ネットワーク400は、管理装置100と、計算装置200と、を接続する。ネットワーク400は、どのような構成のネットワークであってもよいが、例えばインターネットまたはローカルエリアネットワーク(LAN)である。ネットワーク400は、無線ネットワーク、有線ネットワーク、および、無線および有線が混在するネットワークのいずれであってもよい。
管理装置100は、情報処理システム内のいずれの計算装置200とも通信が行えるように接続される。複数の計算装置200の間で管理装置100を介さずに通信を行える必要はない。
管理装置100は、主なハードウェア構成として、記憶装置21と、CPU(Central Processing Unit)11と、通信インタフェース(I/F)12と、を備えている。
記憶装置21は、管理装置100による各種処理で用いられる各種情報を記憶する。例えば記憶装置21は、CNNモデルの各レイヤのパラメータ(重み情報など)および接続関係などを含むモデル構造を記憶する。
モデル構造は、さらに、少なくとも一部のレイヤの分散実行に必要な情報を含む。分散実行に必要な情報は、CNNのレイヤの種別、および、レイヤの分割方法などを含む。レイヤの種別は、ReLU(Rectified Linear Unit)、および、畳み込み(Convolution)などの、レイヤで実行される処理を表す。レイヤの分割方法は、例えば、レイヤの処理を何個のタスクに分割するか、および、分割した複数のタスク間の計算の重複状態などを含む。
例えばFTPでは、上記のように、複数のレイヤが結合されたレイヤが、行方向および列方向で複数のFTに分割される。またFTPでは、後段のレイヤの処理のため、前段のレイヤの複数のFTが重複するように分割される場合がある。このように、レイヤの分割方法は、分割の方向に関する情報、分割するFTの個数、および、FTの重複状態(タスク間の計算の重複状態)を含みうる。
なお、分割方法は、FTPと同様の方法に限られず、どのような方法であってもよい。例えば、複数のレイヤが結合されたレイヤではない通常のレイヤを、m次元の方向(例えば行方向)およびm次元と異なる次元の方向(例えば列方向)で複数のタイルに分割する方法を用いてもよい。
CPU11は、タスクのスケジューリングを含めた汎用の演算を実行可能なプロセッサである。通信I/F12は、計算装置200などの他の装置とネットワーク400を介した通信を行う。
計算装置200は、主なハードウェア構成として、記憶装置41と、プロセッサ31と、通信I/F32と、を備えている。
記憶装置41は、計算装置200による各種処理で用いられる各種情報を記憶する。例えば記憶装置41は、計算装置200で分散処理する各レイヤのパラメータ(重み情報など)を含む分割モデル構造を記憶する。各計算装置200は、上記の分割方法に従って分割されるレイヤのタスクのうちいずれかを分散処理することが予め定められる。分割モデル構造は、管理装置100が記憶するモデル構造のうち、自装置で分散処理するタスクに対応する部分のモデルの構造を示す。
プロセッサ31は、例えば、CNNモデルを高速に実行可能なGPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、および、ASIC(Application Specific Integrated Circuit)などにより実現される。
通信I/F12は、管理装置100などの他の装置とネットワーク400を介した通信を行う。
なお、記憶装置21、41は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
図2は、管理装置100の機能構成の一例を示すブロック図である。図2に示すように、管理装置100は、記憶部120と、割当部101と、実行制御部102と、通信制御部110と、を備えている。
記憶部120は、例えば図1の記憶装置21に相当する。記憶部120は、上記のようなモデル構造121の他にタスク実行状態122を記憶するとともに、割り当てキュー123として機能する。
タスク実行状態122は、タスクごとの実行状態を含む。例えばタスク実行状態122は、タスクを識別する情報と、実行状態とを対応づけた情報である。実行状態は、例えば、未割り当て、割り当て済み(未実行)、実行中、および、実行済み、のうちいずれかを示す。
割り当てキュー123は、計算装置200に割り当てたタスクの情報を記憶する。例えば割り当てキュー123は、計算装置200ごとに定められ、該当する計算装置200に割り当てたタスクの情報を記憶する。共通の割り当てキュー123が、計算装置200の識別情報と、割り当てたタスクの情報と、を対応づけて記憶してもよい。タスクの情報は、例えば、どのCNNのどのレイヤの何行何列目であるかなどの、タスクを特定可能な情報である。
割当部101は、CNNによる処理を、各計算装置200に割り当てる。例えば割当部101は、記憶部120に記憶されたモデル構造121(レイヤの分割方法)を参照し、CNNによる処理を複数のタスクに分割する。そして割当部101は、分割したタスクを、計算装置200のいずれかにそれぞれ割り当てる。
本実施形態では、割当部101は、CNNを用いて処理されるn次元(nは2以上の整数)の対象データに含まれる複数の部分データのうち1以上の部分データDA(第1部分データ)をそれぞれ処理する1以上のタスクTA(第1タスク)を各計算装置200に割り当てる。部分データDAは、相互に隣接するデータDAA(第1データ)およびデータDAB(第2データ)を含む。すなわち、データDABは、データDAAとm次元(mは1≦m≦nを満たす整数)の方向に隣接するデータである。
対象データは、例えば、CNNの畳み込みレイヤの入力または出力となる特徴マップである。例えば、2次元の画像データ(行方向および列方向の画素ごとにRGBの各チャネルの画素値を含むデータなど)、および、2次元の画像データを前段の畳み込みレイヤで演算した結果であるデータが、特徴マップになりうる。この場合、m次元の方向は、行方向および列方向のいずれであってもよい。
また、タスクの実行を要求した計算装置200、すなわち、タスクを実行できる計算装置200(例えば計算装置200b)が存在するが、未割り当てのタスクが存在しない場合、割当部101は、他の計算装置200(例えば計算装置200a)に割り当てたタスクの一部の割り当てを、タスクを実行できる計算装置200に移動する。例えば、割当部101は、タスクに割り当てられていないデータが対象データに含まれない場合に、他の計算装置200(例えば計算装置200a)に割り当てた部分データの一部を、タスクの実行を要求した計算装置200(例えば計算装置200b)に割り当てる。割当部101によるタスクの割り当て方法の詳細は後述する。
実行制御部102は、割り当てたタスクの実行を制御する。例えば実行制御部102は、他の計算装置200(第2計算装置、例えば計算装置200b)が実行中の部分データ(第2部分データ)の実行状態に応じて、ある計算装置200(例えば計算装置200a)に割り当てられた1以上のタスクTAのいずれかであるタスクTA’(第2タスク)の実行を、この計算装置200(例えば計算装置200a)に対して指示する。
実行制御部102は、例えば、他の計算装置200によるデータの処理結果のうち、タスクTA’の処理に使用するデータを示す補助データ(第1補助データ)と、タスクTA’で処理する部分データと、を含む実行指示を、通信制御部110(後述する送信部112)を用いて送信することにより、タスクTA’の実行を指示する。このように、本実施形態では、CNNの分散処理において必要となるデータ(タスクTA’で処理する部分データ、他の計算装置200の処理結果)を、タスクを実行する計算装置200に対する要求としてまとめて送信することができる。
通信制御部110は、計算装置200などの他の装置との間の通信を制御する。通信制御部110は、受信部111と、送信部112と、を備えている。
受信部111は、他の装置から情報を受信する。例えば受信部111は、上記のような実行指示を送信した計算装置200から、実行指示に対する応答を受信する。応答は、例えば、タスクTA’の処理結果と、タスクTA’の実行時(計算過程)に得られるデータであって他の計算装置200による処理にも使用するデータを示す補助データ(第2補助データ)と、を含む。このように、本実施形態では、1つの実行指示に対する応答として、その後の処理で必要となるデータをまとめた応答を受信することができる。
タスクTA’が、レイヤLA、レイヤLB、および、レイヤLCの3つのレイヤが結合されたレイヤを分割したFTを処理するタスクであるとする。この場合、例えばレイヤLCの出力が、タスクTA’の処理結果に相当する。また、例えば、レイヤLAおよびレイヤLBの少なくとも一方の出力のうち、タスクTA’に隣接する他のタスク(FT)が使用する部分(FTの端部での出力など)が、タスクTA’の計算過程に得られる、他の計算装置200による処理にも使用する補助データに相当する。
なお、補助データは上記に限られず、例えば、周囲のタスクが未実行か否かを示す情報などの他の情報をさらに含んでもよい。周囲のタスクとは、例えば、隣接する部分データを処理するタスクである。
送信部112は、他の装置に対して情報を送信する。例えば送信部112は、実行制御部102の指示に応じて、タスクの実行指示を計算装置200に送信する。
上記各部(割当部101、実行制御部102、および、通信制御部110)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU11などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
次に、計算装置200の機能構成について説明する。図3は、計算装置200の機能構成の一例を示すブロック図である。図3に示すように、計算装置200、記憶部220と、タスク実行部201と、通信制御部210と、を備えている。
記憶部220は、例えば図1の記憶装置41に相当する。記憶部220は、上記のような分割モデル構造221を記憶する。
タスク実行部201は、管理装置100からの実行指示に従ってタスクを実行する。
通信制御部210は、管理装置100などの他の装置との間の通信を制御する。通信制御部210は、受信部211と、送信部212と、を備えている。
受信部211は、他の装置から情報を受信する。例えば受信部211は、管理装置100から実行指示を受信する。送信部212は、他の装置に対して情報を送信する。例えば送信部212は、実行指示に対する応答を管理装置100に送信する。
上記各部(タスク実行部201、および、通信制御部210)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPUなどのプロセッサ(プロセッサ31など)にプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のICなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
次に図4を用いて、本実施形態にかかる情報処理システムの動作について説明する。図4は、本実施形態にかかる情報処理システムの動作の概要を示すフローチャートである。
まず撮影装置300aは、画像を撮影し、接続されている計算装置200に対して、撮影した画像を送信する(ステップS101)。
次に、計算装置200は、管理装置100に対してCNNの実行開始を通知し、他の計算装置200と協調してCNNを分散処理する(ステップS102)。
最後に、管理装置100は、分散処理を行った各計算装置200から処理結果(例えば出力特徴マップ)を受信し、受信した処理結果を集計(統合)する(ステップS103)。これにより、CNN全体の処理結果を得ることができる。
次に、本実施形態にかかる情報処理システムによるCNNの分散実行動作について説明する。図5は、本実施形態にかかる情報処理システムのCNNの分散実行動作の一例を示すシーケンス図である。なお、図5では、計算装置200aに接続される撮影装置300aにより撮影された画像に対するCNNの処理を実行する場合を例に説明する。
撮影装置300aは、画像を撮影する(ステップS201)。撮影装置300aは、撮影した画像を計算装置200aに送信する(ステップS202)。計算装置200aは、CNNにより処理する画像が得られたことを管理装置100に通知するとともに、受け取った画像を送信する(ステップS203)。
管理装置100は、計算装置200aから受け取った画像に対するタスクを登録する(ステップS204)。例えば管理装置100の割当部101は、記憶部120からモデル構造121を読み出す。割当部101は、モデル構造121を参照して、CNNを構成する複数のレイヤの処理順序に従い、処理が可能な1つ以上のレイヤ(FTPなどの場合、複数のレイヤをまとめたレイヤ)を決定する。
なお、例えば以下のような場合は、複数のレイヤを並列に処理することが可能であり、割当部101は、複数のレイヤを処理が可能なレイヤとして決定することができる。
・複数の計算装置200からの画像を同時に処理中である。
・CNNが枝分かれする構造を有する。
割当部101は、読み出した情報(レイヤの分散実行に必要な情報)を参照して、決定したレイヤの処理を複数のタスクに分割する。なお、CNNは、分散処理しないレイヤ(全結合レイヤなど)を含んでもよく、この場合は、割当部101は、レイヤの処理を複数のタスクに分割しない。割当部101は、決定したレイヤの処理を、実行が必要なタスク(実行状態=未割り当て)として記憶部120(タスク実行状態122)に登録する。
以下、登録したタスクの実行が完了するまで、ステップS205~ステップS210の処理が繰り返される。
まず割当部101は、記憶部120からタスク実行状態122を読み出し、読み出したタスク実行状態122を参照して、タスクの実行順序のスケジューリングを行う(ステップS205)。スケジューリングでは、例えば、実行状態が未割り当てのタスクをいずれの計算装置200に割り当てるか、および、タスクの実行順序が決定される。スケジューリングの詳細は後述する。
次に実行制御部102は、割り当てたタスクの実行を計算装置200aに指示する(ステップS206)。なお、計算装置200bにタスクを割り当て、計算装置200bにタスクの実行を指示する場合もあるが、この場合については後述する。
計算装置200aに割り当てられたタスクをタスクTA、タスクTAのうち実行指示を送信するタスクをタスクTA’とする。実行指示は、例えば以下の情報を含む。
・タスクTA’の計算の種別
・タスクTA’で処理する部分データ(入力特徴マップのうち、タスクTA’で必要となるデータなど)
・補助データ(タスクTA’以外のタスクでの途中計算のうちタスクTA’の処理に必要な部分、周囲のタスクが未実行か否かを示す情報など)
実行制御部102は、既に計算装置200a上に存在するデータについては冗長に送信しないように構成してもよい。既に存在するか否かは、例えば、タスクTA’で処理する部分データ、および、補助データの少なくとも一方を計算したタスクを実行した計算装置200が、タスクTA’の実行指示を送信する予定である計算装置200aであったかにより判定可能である。
実行指示を受信した計算装置200aは、必要に応じて分割モデル構造221からレイヤのパラメータ(重み情報など)を読み出し、指示されたタスクTA’を実行する(ステップS207)。
タスクTA’を実行後、計算装置200aは、実行指示に対する応答を管理装置100に送信する(ステップS208)。応答は、例えば以下の情報を含む。
・タスクTA’の実行が終了したことを示す情報
・タスクTA’の処理結果(出力特徴マップなど)
・補助データ(実行指示に含まれる補助データである周辺タスクの実行状態から判定した、他の計算装置200で再利用される可能性がある途中計算の結果など)
応答を受信した管理装置100は、記憶部120に記憶されたタスク実行状態122を更新する(ステップS209)。例えば管理装置100は、タスクTA’の実行が終了したことを登録する。
管理装置100は、レイヤに対するタスクが終了したか否かを判定する(ステップS210)。例えばレイヤの処理が複数のタスクに分割された場合、割当部101は、複数のタスクがすべて終了したかを判定する。
終了していない場合(ステップS210:No)、タスクのスケジューリング(ステップS205)に戻り、処理が繰り返される。終了した場合(ステップS210:Yes)、管理装置100は、CNNのすべてのレイヤの処理が終了したか否かを判定する(ステップS211)。
終了していない場合(ステップS211:No)、ステップS204に戻り、次のレイヤについてのタスクの登録から処理が繰り返される。終了した場合(ステップS211:Yes)、管理装置100は、CNNによる処理結果を出力し(ステップS212)、分散実行動作を終了する。
上記のように、ステップS206~ステップS208は、管理装置100から計算装置200aに対する1回の通信(実行指示の送信)、および、計算装置200aから管理装置100に対する1回の通信(応答の送信)の合計2回の通信で実現できる。従って、例えば、タスクの実行指示・応答の送受信と、タスクの実行に必要なデータの送受信とを分けて実行するような構成(以下、比較例という)より、通信回数を削減することができる。
比較例は、例えば、以下のような構成である。
・計算に用いるデータ(特徴マップなど)は、各計算装置に分散して記憶する。
・タスクの実行指示、タスクの終了の通知(応答)は、計算装置と管理装置との間で通信する(通信回数=2回)。
・実行が指示されたタスクに必要なデータは、計算装置間で送受信する(通信回数=2回)。
装置間の通信では、データ本体の転送時間の他に、通信の初期化のためのコストなどに基づく遅延時間が生じうる。遅延時間は、通信ごとに発生するため、通信回数を削減すれば、遅延時間を抑制することが可能となる。
本実施形態は、管理装置を介して計算装置間で計算に用いるデータを送受信するため、データ本体の転送時間は比較例より増加しうる。一方、上記のように通信回数を削減できるため、遅延時間を減少させることができる。図6は、比較例および本実施形態の転送時間の内訳の例を示す図である。例えばデータ本体の転送時間の増加より、遅延時間の減少の影響が大きいような状況であれば、図6に示すように、本実施形態により通信の効率化が可能になる。この結果、分割した計算の実行を効率化することができる。
次に、図5のステップS205のスケジューリングの詳細を説明する。図7は、タスクのスケジューリングの一例を示すフローチャートである。
割当部101は、タスクの割り当て対象とする計算装置200に既にタスクが割り当てられているか否かを判定する(ステップS301)。例えば割当部101は、対象とする計算装置200に対応する割り当てキュー123に、割り当てられたタスクの情報が記憶されているか否かを判定する。
割り当てられたタスクが存在しない場合(ステップS301:No)、割当部101は、記憶部120のタスク実行状態122から、すべてのタスクの実行状態を読み出す(ステップS302)。
割当部101は、複数のレイヤが同時に登録されている場合、複数のレイヤのうち、いずれのレイヤのタスクを実行するかを決定する(ステップS303)。
次に、割当部101は、割り当て対象とするレイヤに、実行状態が未割り当てであるタスクが存在するか否かを判定する(ステップS304)。未割り当てのタスクが存在する場合(ステップS304:Yes)、割当部101は、未割り当てのタスクのうち、2列分のタスクを計算装置200に割り当てる(ステップS306)。すなわち割当部101は、2列分のタスクを、割り当て対象とする計算装置200に対応する割り当てキュー123に登録する。2列分のタスクは、相互に隣接するデータDAAおよびデータDABを含む上記の部分データDAを処理するタスクTAに相当する。なお、未割り当てのタスクが2列分残っていない場合は、割当部101は、1列分のタスクを割り当てキュー123に登録する。
図8は、部分データDAの一例を示す図である。図8に示すように、部分データDAは、16個(2列×8行)の小領域を含む。1つの小領域が、1つのタスクで処理される。なお、図8の例では、列の方向が、m次元の方向に相当し、行の方向が、m次元に直交する次元の方向に相当する。
部分データDAを2×2の4個の小領域を含むブロックで分けた場合、割当部101は、ブロックに含まれる4個の小領域に対応するタスクを、予め定められた順序で実行するように、タスクの実行順序を決定する。予め定められた順序は、例えば、左上の小領域、右下の小領域、右上の小領域、右下の小領域の順序である。また、図8に示すように、ブロック間では、行方向で上のブロックから下のブロックに向かう順序で、対応する位置の小領域の実行順序が決定される。この結果、図8の数字で示す順序で、部分データDAに含まれる各小領域を処理するタスクの実行順序が決定される。
図7に戻り、ステップS304で未割り当てのタスクが存在しない場合(ステップS304:No)、割当部101は、実行状態が未実行であるタスクが最も多い計算装置200のタスクの一部を、割り当て対象とする計算装置200に割り当てる(ステップS305)。
例えば割当部101は、割り当て対象とするレイヤのタスクを実行している計算装置200のうち、実行状態が未実行であるタスクが最も多い計算装置200を検索する。次に割当部101は、検索された計算装置200に割り当てられ、実行状態が未実行であるタスクの半分に相当するタスクを、新たにタスクの割り当て対象とする計算装置200に割り当てる。この際、割当部101は、割り当て先を移動するタスクを、実行順序が先頭から1つおきとなるように選択する。半分に相当するタスクとは、例えば未実行であるタスクの個数Cが偶数の場合は、C/2個のタスクであり、個数Cが奇数の場合は、(C+1)/2または(C-1)/2個のタスクである。
ステップS301で割り当てられたタスクが存在すると判定された場合(ステップS301:Yes)、ステップS305の実行後、および、ステップS306の実行後、割当部101は、割り当てキュー123に登録されているタスクのうち、隣接するタスクが他の計算装置200で実行中でなく、かつ、実行順序が最も早いタスクを実行するように、タスクの実行をスケジューリングする(ステップS307)。
なお、割り当てキュー123に登録されているすべてのタスクの隣接するタスクが他の計算装置200で実行中である場合は、割当部101は、実行中である隣接するタスクの数が最も少ないタスクで、かつ、実行順序が最も早いタスクの実行をスケジューリングする。
次に、図9~図12を用いて、タスクのスケジューリングの例について説明する。各図は、レイヤ(3つの3×3サイズの畳み込みレイヤをFTPにより結合したレイヤ)を行方向および列方向にそれぞれ8個に分割した合計64個のFT(8×8のFT)に対してスケジューリングを行った結果を示す。数値は、FTを処理するタスクを割り当てた計算装置を識別する値を示す。
図9および図11は、非特許文献1(以下、Zhaoという)で開示されている手法に従いスケジューリングした結果の例を示す。図9は、4個の計算装置に対するスケジューリングの結果であり、図11は、5個の計算装置に対するスケジューリングの結果である。
また、図10および図12は、本実施形態の手法に従いスケジューリングした結果の例を示す。図10は、4個の計算装置に対するスケジューリングの結果であり、図12は、5個の計算装置に対するスケジューリングの結果である。
図9および図11に示すように、Zhaoの手法では、隣接するFTがそれぞれ別の計算装置で実行されるようにスケジューリングされる箇所が多い。これに対して本実施形態の手法では、相互に隣接するデータ(FT)を含む部分データを処理するタスクが各計算装置に割り当てられるため、上記のような箇所が少なくなる。隣接するFTを同じ計算装置で実行すれば、途中計算を計算装置間で通信する必要がなくなるため、分割したタスクの実行を効率化することができる。
次に、図13を用いて、CNNによる処理を指示した計算装置以外の計算装置によるタスクの分散実行動作について説明する。図13は、図5に示すように計算装置200aがCNNの処理を指示した場合の、計算装置200bによるタスクの分散実行動作の例を含む。
ステップS401~ステップS404は、未実行のタスクが存在しない場合の動作例である。ステップS405以降は、未実行のタスクが存在する場合の動作例である。
計算装置200bは、例えば、実行が指示されたタスクが完了したことなどにより、新たなタスクを実行可能な状態となった場合に、管理装置100に対して未実行のタスクが存在するか否かを確認する(ステップS401)。管理装置100の割当部101は、ステップS205(図7)と同様の手順で、タスクの実行順序のスケジューリングを行う(ステップS402)。スケジューリングの結果、割り当てられるタスクが存在しない場合には、管理装置100(送信部112)は、タスクが存在しないことを計算装置200bに通知する(ステップS403)。通知を受信した計算装置200bは、一定時間待機する(ステップS404)。
一定時間の待機後、計算装置200bは、再度、管理装置100に対して未実行のタスクが存在するか否かを確認する(ステップS405)。管理装置100の割当部101は、ステップS205(図7)と同様の手順で、タスクの実行順序のスケジューリングを行う(ステップS406)。スケジューリングの結果、未実行のタスクを計算装置200bに割り当てた場合は、実行順序に従い、割り当てたタスクの1つの実行指示を計算装置200bに送信する(ステップS407)。
ステップS408~ステップS411は、図5のステップS207~ステップS210と同様である。なお、図13では、図5のステップS211、ステップS212などの記載を省略しているが、CNNの処理が終了するまで図5と同様の処理が実行される。
なお、本実施形態は、以下に示す変形例のいずれか、または、複数によって一部の動作を置き換えても実施できる。
(変形例1)
ニューラルネットワークの分散処理するレイヤのタスクは、FTPの手法により得られるFTを処理するタスク、すなわち、畳み込みレイヤを少なくとも含む複数のレイヤを結合したレイヤを行方向および列方向で分割した複数のFTをそれぞれ処理する複数のタスクであってもよい。
(変形例2)
実行制御部102は、1つの割り当てられたタスクではなく複数の割り当てられたタスクを連続して実行するように実行指示を送信してもよい。例えば実行制御部102は、複数のタスクで用いる部分データ(入力特徴マップ)および補助データなどを含む実行指示を、複数のタスクを割り当てた計算装置200に送信する。管理装置100(受信部111)は、計算装置200から、複数のタスクによる1つの処理結果(出力特徴マップ(および補助データを含む応答を受信する。複数のタスクは、相互に隣接する複数のタスクであってもよい。この場合、隣接するタスクで使用するデータを示す補助データの送信が不要となるため、通信量の削減が可能となる。
(変形例3)
計算装置200は、ステップS208のようにタスクの実行終了後に管理装置100に応答を送信し、その後に新たなタスクを受け取るのではなく、あるタスクの実行中に新たなタスクの実行指示を受けてもよい。これにより、複数のタスクに関連する処理の一部を並列に実行させ、CNNの計算をより効率化できる。並列化できる処理は、例えば以下の処理である。
・あるタスクの計算と、次のタスクの実行指示の受信
・あるタスクの処理結果を含む応答の送信と、次のタスクの計算
図14は、3つのタスクT01、T02、T03に関連する処理を並列化した場合の動作例を示す図である。白の矩形は、実行指示の受信を表す。黒の矩形は、タスクの計算を表す。灰色の矩形は、タスクの処理結果を含む応答の送信を表す。
(変形例4)
CNNの処理の対象となる画像の入力方法は、撮影装置300により撮影された画像を計算装置200を介して管理装置100に送信する方法に限られず、どのような方法で管理装置100に入力されてもよい。例えば、記憶媒体に記憶された画像を管理装置100が読み出して入力する方法、および、ネットワーク400に接続された装置から画像を受信して入力する方法が用いられてもよい。
(適用システム例)
本実施形態の情報処理システムは、例えば、建物の監視システムに適用することができる。図15は、本実施形態の情報処理システムを監視システムとして実現する例を示す図である。監視システムでは、監視カメラなどの撮影装置300aで人物600の画像が撮影されたときに、撮影された画像に対するCNNによる画像認識処理が、計算装置200aおよび200bに効率よく分散して実行される。計算終了後、管理装置100は、クラウドサーバ500と連携して、警備センタへの連絡、および、労働者の勤怠管理などを実行する。
以上説明したとおり、本実施形態によれば、ニューラルネットワークによる処理を分散して実行する際の通信を最適化し、分割した計算の実行を効率化することが可能となる。
実施形態にかかる情報処理装置で実行されるプログラムは、ROM等に予め組み込まれて提供される。
実施形態にかかる情報処理装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、実施形態にかかる情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態にかかる情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
実施形態にかかる情報処理装置で実行されるプログラムは、コンピュータを上述した情報処理装置の各部として機能させうる。このコンピュータは、CPUがコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100 管理装置
101 割当部
102 実行制御部
110 通信制御部
111 受信部
112 送信部
120 記憶部
200a、200b 計算装置
201 タスク実行部
210 通信制御部
211 受信部
212 送信部
220 記憶部
300a、300b 撮影装置
400 ネットワーク
500 クラウドサーバ

Claims (13)

  1. 第1計算装置および第2計算装置を含む複数の計算装置に接続される情報処理装置であって、
    ニューラルネットワークを用いて処理されるn次元(nは2以上の整数)の対象データに含まれる複数の部分データのうち、第1データと、前記第1データとm次元(mは1≦m≦nを満たす整数)の方向に隣接する第2データと、を含む1以上の第1部分データをそれぞれ処理する1以上の第1タスクを、前記第1計算装置に割り当てる割当部と、
    前記対象データに含まれる複数の部分データのうち、前記第2計算装置が実行中の第2部分データの実行状態に応じて、1以上の前記第1タスクに含まれる第2タスクの実行を、前記第1計算装置に対して指示する実行制御部と、
    を備える情報処理装置。
  2. 前記実行制御部は、前記第2部分データの処理結果のうち前記第2タスクの処理に使用するデータを示す第1補助データと、前記第2タスクで処理する前記第1部分データと、を含む実行指示を前記第1計算装置に送信することにより、前記第2タスクの実行を指示する、
    請求項1に記載の情報処理装置。
  3. 前記第2タスクの処理結果と、前記第2タスクの実行時に得られるデータであって前記第2計算装置による処理に使用するデータを示す第2補助データと、を含む、前記実行指示に対する応答を、前記第1計算装置から受信する受信部をさらに備える、
    請求項2に記載の情報処理装置。
  4. 前記実行制御部は、1以上の前記第1タスクに含まれる複数の前記第2タスクの実行を指示する、
    請求項1に記載の情報処理装置。
  5. 前記対象データは、n次元のデータを、m次元の方向およびm次元と異なる次元の方向で分割したタイルである、
    請求項1に記載の情報処理装置。
  6. 前記ニューラルネットワークは、畳み込みニューラルネットワークであり、
    前記タイルは、前記畳み込みニューラルネットワークに含まれる畳み込みレイヤを少なくとも含む複数のレイヤを統合したデータを分割したFused Tileである、
    請求項5に記載の情報処理装置。
  7. 前記割当部は、タスクに割り当てられていない部分データが前記対象データに含まれない場合に、前記第2計算装置に割り当てたタスクが処理する第3部分データの一部を処理する第3タスクを、前記第1計算装置に割り当てる、
    請求項1に記載の情報処理装置。
  8. 前記第3部分データは、複数の小領域を含み、
    前記割当部は、
    複数の前記小領域に実行順序を割り当て、
    タスクに割り当てられていない部分データが前記対象データに含まれない場合に、複数の前記小領域のうち、前記実行順序が1つおきとなるように選択した小領域を処理する前記第3タスクを、前記第1計算装置に割り当てる、
    請求項7に記載の情報処理装置。
  9. 前記第3部分データは、左上の小領域と、前記左上の小領域にm次元の方向に隣接する右上の小領域と、前記左上の小領域にm次元に直交する次元の方向に隣接する左下の小領域と、前記左下の小領域にm次元の方向に隣接する右下の小領域と、を含むブロックを1個以上含む、
    請求項8に記載の情報処理装置。
  10. 前記割当部は、タスクに割り当てられていない部分データが前記対象データに含まれない場合に、前記第2計算装置に割り当てたタスクが処理する第3部分データの半分に相当するデータを処理する第3タスクを、前記第1計算装置に割り当てる、
    請求項7に記載の情報処理装置。
  11. 前記実行制御部は、1以上の前記第1部分データのうち、前記第2計算装置が実行中のタスクが処理する部分データに隣接しない前記第1部分データを処理する前記第2タスクの実行を、前記第1計算装置に対して指示する、
    請求項1に記載の情報処理装置。
  12. 第1計算装置および第2計算装置を含む複数の計算装置に接続される情報処理装置で実行される情報処理方法であって、
    ニューラルネットワークを用いて処理されるn次元(nは2以上の整数)の対象データに含まれる複数の部分データのうち、第1データと、前記第1データとm次元(mは1≦m≦nを満たす整数)の方向に隣接する第2データと、を含む1以上の第1部分データをそれぞれ処理する1以上の第1タスクを、前記第1計算装置に割り当てる割当ステップと、
    前記対象データに含まれる複数の部分データのうち、前記第2計算装置が実行中の第2部分データの実行状態に応じて、1以上の前記第1タスクに含まれる第2タスクの実行を、前記第1計算装置に対して指示する実行制御ステップと、
    を含む情報処理方法。
  13. 第1計算装置および第2計算装置を含む複数の計算装置に接続される情報処理装置が備えるコンピュータに、
    ニューラルネットワークを用いて処理されるn次元(nは2以上の整数)の対象データに含まれる複数の部分データのうち、第1データと、前記第1データとm次元(mは1≦m≦nを満たす整数)の方向に隣接する第2データと、を含む1以上の第1部分データをそれぞれ処理する1以上の第1タスクを、前記第1計算装置に割り当てる割当ステップと、
    前記対象データに含まれる複数の部分データのうち、前記第2計算装置が実行中の第2部分データの実行状態に応じて、1以上の前記第1タスクに含まれる第2タスクの実行を、前記第1計算装置に対して指示する実行制御ステップと、
    を実行させるためのプログラム。
JP2020204346A 2020-12-09 2020-12-09 情報処理装置、情報処理方法およびプログラム Active JP7408533B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020204346A JP7408533B2 (ja) 2020-12-09 2020-12-09 情報処理装置、情報処理方法およびプログラム
US17/446,185 US11941439B2 (en) 2020-12-09 2021-08-27 Information processing device, information processing method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020204346A JP7408533B2 (ja) 2020-12-09 2020-12-09 情報処理装置、情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2022091486A JP2022091486A (ja) 2022-06-21
JP7408533B2 true JP7408533B2 (ja) 2024-01-05

Family

ID=81849176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020204346A Active JP7408533B2 (ja) 2020-12-09 2020-12-09 情報処理装置、情報処理方法およびプログラム

Country Status (2)

Country Link
US (1) US11941439B2 (ja)
JP (1) JP7408533B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3140973A1 (fr) * 2022-10-14 2024-04-19 Orange Procédé de distribution des paramètres d’un réseau de neurones, procédé d’inférence et dispositifs associés

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019201656A1 (en) 2018-04-19 2019-10-24 Aimotive Kft. Method for accelerating operations and accelerator apparatus
US20190370071A1 (en) 2018-05-31 2019-12-05 Neuralmagic Inc. Systems and methods for improved neural network execution
WO2020052241A1 (en) 2018-09-11 2020-03-19 Huawei Technologies Co., Ltd. Heterogeneous scheduling for sequential compute dag

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5271699B2 (ja) 2005-04-19 2013-08-21 ディ.イー.ショー リサーチ,エルエルシー 粒子の相互作用の計算のためのゾーン法
US11574164B2 (en) * 2017-03-20 2023-02-07 International Business Machines Corporation Neural network cooperation
US10387298B2 (en) 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US11423284B2 (en) * 2018-09-07 2022-08-23 Black Sesame Technologies, Inc Subgraph tile fusion in a convolutional neural network
US20230081715A1 (en) * 2020-06-25 2023-03-16 PolyN Technology Limited Neuromorphic Analog Signal Processor for Predictive Maintenance of Machines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019201656A1 (en) 2018-04-19 2019-10-24 Aimotive Kft. Method for accelerating operations and accelerator apparatus
US20190370071A1 (en) 2018-05-31 2019-12-05 Neuralmagic Inc. Systems and methods for improved neural network execution
WO2020052241A1 (en) 2018-09-11 2020-03-19 Huawei Technologies Co., Ltd. Heterogeneous scheduling for sequential compute dag

Also Published As

Publication number Publication date
US11941439B2 (en) 2024-03-26
JP2022091486A (ja) 2022-06-21
US20220179688A1 (en) 2022-06-09

Similar Documents

Publication Publication Date Title
US10594591B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
US20160110913A1 (en) 3d registration of a plurality of 3d models
US9495213B2 (en) Arithmetic control apparatus, arithmetic control method, non-transitory computer readable medium storing program, and open CL device
CN107122147B (zh) 用于将图像基元部署至计算构造的图像流管线控制器
CN101371263A (zh) 用于在并行处理系统中处理多媒体数据的算法步骤的方法和装置
JP5655392B2 (ja) 印刷画像処理装置及びプログラム
US20140310720A1 (en) Apparatus and method of parallel processing execution
US9218554B2 (en) Image processing apparatus, image processing method, and storage medium
US11983564B2 (en) Scheduling of a plurality of graphic processing units
JP7408533B2 (ja) 情報処理装置、情報処理方法およびプログラム
CN104850393A (zh) 并行平铺引擎管线中的图元块的处理
JP6195342B2 (ja) 情報処理装置およびメモリアクセス制御方法
US20150331643A1 (en) Image processing method and image processing apparatus
JP2016164752A (ja) 情報処理装置
JP6210953B2 (ja) 画像処理装置および画像処理方法
US20160154585A1 (en) Data processing method, computer readable medium and data processing device
JP6964969B2 (ja) 演算処理装置、演算処理方法及びプログラム
CN110741408A (zh) 图像处理装置、图像处理方法和图像处理程序
JP6372315B2 (ja) 画像処理装置及び並列処理制御プログラム並びに並列処理制御方法
CN115700482A (zh) 任务执行方法及装置
JP7014173B2 (ja) 分散処理システム
JP5968497B2 (ja) 制御方法、システム及びプログラム
JP2006338293A (ja) 画像データ割当て方法、画像処理制御装置および画像処理システム
US20230124193A1 (en) Distributed Processing Node and Distributed Processing System
JP2019086976A (ja) 情報処理システム、演算処理装置及び情報処理システムの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231025

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: 20231121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231220

R151 Written notification of patent or utility model registration

Ref document number: 7408533

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151