JP7004083B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP7004083B2
JP7004083B2 JP2020551749A JP2020551749A JP7004083B2 JP 7004083 B2 JP7004083 B2 JP 7004083B2 JP 2020551749 A JP2020551749 A JP 2020551749A JP 2020551749 A JP2020551749 A JP 2020551749A JP 7004083 B2 JP7004083 B2 JP 7004083B2
Authority
JP
Japan
Prior art keywords
arithmetic
calculation
data
unit
arithmetic 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
JP2020551749A
Other languages
English (en)
Other versions
JPWO2020084693A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2020084693A1 publication Critical patent/JPWO2020084693A1/ja
Application granted granted Critical
Publication of JP7004083B2 publication Critical patent/JP7004083B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Description

本発明は、演算処理装置及び演算処理装置の制御方法に関する。
入力データに対する演算処理装置の演算処理を高速化するため、入力データを分割データに分割し、演算処理装置が有する複数の演算器で分割データに対して演算処理を分散して行う方法がある。この場合、演算処理を分散して行わない場合と比較すると、入力データのデータ量が比較的多い場合でも、演算処理の高速化が可能となる。
例えば、複数の処理装置を有する大域演算処理装置において、1つの処理装置で演算した結果を特定の処理装置に移動する操作を各処理装置について順次行う手法が提案されている(例えば、特許文献1を参照)。この手法では、最終的に各処理装置に全ての処理装置の演算結果が揃ってから大域演算を行う。
また、複数の計算機が演算した結果である全データを転送する転送方法と、全データを分割した分割データを転送する転送方法のうち、演算した全体の処理時間が短くなる方の転送方法を選択する手法が提案されている(例えば、特許文献2を参照)。
更に、2(pは2以上の自然数)個の演算処理装置に対して識別番号を振り、奇数番と偶数番の識別番号を振られた演算処理装置間で演算結果を送受信する操作をp回繰り返すことで演算を行う手法が提案されている(例えば、特許文献3を参照)。
上記の如き各手法では、演算で必要なデータの演算及び移動を順次繰り返すことで、複数の演算器(例えば、特許文献1の複数の処理装置、特許文献2の複数の計算機、特許文献3の複数の演算処理装置に相当)が夫々同じ演算結果を持つようにしている。
しかし、データ量が増大すると、演算処理を分散して行っても、データの演算に要する演算時間が長くなり、演算時間の短縮が難しくなる。また、演算処理を分散して行う演算器の個数が増大すると、データの移動に要する移動時間が長くなり、移動時間の短縮が難しくなる。データの演算と移動を繰り返す演算処理に要する時間は、データの演算時間とデータの移動時間とに依存する。このため、データの演算と移動を繰り返す演算処理の場合、特にデータ量の増大や演算器の個数の増大に伴い、データの演算時間及びデータの移動時間の短縮が難しくなるので、データの演算と移動を繰り返す演算処理に要する時間の短縮は難しくなる。
特開平7-295944号公報 特開2001-325239号公報 特開2000-20501号公報
従来の演算処理装置では、データの演算と移動を繰り返す演算処理を高速化することは難しい。
そこで、1つの側面では、データの演算と移動を繰り返す演算処理を高速化することができる演算処理装置及び演算処理装置の制御方法を提供することを目的とする。
1つの案によれば、同じ演算処理を行うm個の演算器と、演算機能を有し、前記m個の演算器と通信可能に接続されたn個の通信器と、を備え、mは4以上の自然数であり、nは2以上の自然数であり、各演算器は、前記m個の演算器の演算結果の総データ量を前記通信器の個数n×2=Nで分割した各N分割データに相当する演算結果を、対応する前記n個の通信器に移動し、各通信器は、対応するN分割データに相当する演算結果にデータの演算と移動を繰り返す所定の演算処理を施した演算結果を、前記m個の演算器にブロードキャストする演算処理装置が提供される。
一態様によれば、データの演算と移動を繰り返す演算処理を高速化することができる。
第1実施例における演算処理装置の一例を示すブロック図である。 演算器のハードウェア構成の一例を示すブロック図である。 通信器のハードウェア構成の一例を示すブロック図である。 第1実施例における集合演算を説明するフローチャートである。 第1実施例における集合演算の流れの一例を説明する模式図である。 第1実施例における演算処理システムの構成の一例を示す図である。 第2実施例における集合演算を説明するフローチャートである。 第2実施例における集合演算の流れの一例を説明する模式図である。 第3実施例における集合演算を説明するフローチャートである。 第3実施例における集合演算の流れの一例を説明する模式図である。 第4実施例における演算処理装置の一例を示すブロック図である。 第4実施例における演算処理システムの構成の一例を示す図である。 第4実施例における集合演算を説明するフローチャートである。 第4実施例における集合演算の流れの一例を説明する模式図である。 第5実施例における演算処理装置の一例を示すブロック図である。 第5実施例における演算処理システムの構成の一例を示す図である。 第5実施例における集合演算を説明するフローチャートである。 第5実施例における集合演算の流れの一例を説明する模式図である。
開示の演算処理装置及び演算処理装置の制御方法では、複数個の演算器の演算結果の総データ量を複数個の通信器の個数の2倍で分割した各分割データに相当する各演算器の演算結果を、対応する複数個の通信器に移動し、各通信器が対応する分割データに相当する演算結果にデータの演算と移動を繰り返す所定の演算処理を施した演算結果を、複数個の演算器にブロードキャストする。
以下に、開示の演算処理装置及び演算処理装置の制御方法の各実施例を図面と共に説明する。
(第1実施例)
図1は、第1実施例における演算処理装置の一例を示すブロック図である。図1に示す演算処理装置1は、4個の演算器11-0~11-3と、2個の通信器12-0,12-1とを有する。各通信器12-0,12-1は、4個の演算器11-0~11-3と通信可能に接続されている。この例では、各演算器11-0~11-3は、通信機能を含む同じ構成を有し、同じ演算処理を行う。また、各通信器12-0,12-1は、演算機能を含む同じ構成を有し、データの演算と移動を繰り返す、同じ所定の演算処理を行う。説明の便宜上、図1中、太い一点鎖線は、例えば後述する演算結果の奇数番目の分割データの通信路を示し、太い二点鎖線は、例えば後述する演算結果の偶数番目の分割データの通信路を示す。各通信路は、例えば双方向のバスである。演算処理装置1は、例えば単一のモジュール、或いは、半導体チップであっても良い。
後述するように、演算器11-0~11-3の演算結果の総データ量を、通信器12-0,12-1の個数(2個)の2倍(2×2=4)で分割する。このように、4分割した各分割データに相当する4個の演算器11-0~11-3の演算結果を、対応する2個の通信器12-0,12-1に移動する。各通信器12-0,12-1は、各分割データに相当する演算結果に、所定の演算処理を施した演算結果を、4個の演算器11-0~11-3にブロードキャストする。
なお、演算器の数は4個に限定されず、通信器の数も2個に限定されない。つまり、演算処理装置は、m個の演算器と、m個の演算器と通信可能に接続されたn個の通信器とを備え、mは4以上の自然数であり、nは2以上の自然数であれば良い。この場合、m個の演算器の演算結果の総データ量を通信器の個数n×2=Nで分割した各N分割データに相当する各演算器の演算結果を、対応するn個の通信器に移動する。また、各通信器が各N分割データに相当する演算結果に所定の演算処理を施した演算結果を、各通信器からm個の演算器にブロードキャストする。第1実施例は、m=4でn=2の例である。
図2は、演算器のハードウェア構成の一例を示すブロック図である。図2に示す演算器11は、第1実施例の各演算器11-0~11-3として使用でき、後述する各実施例の各演算器としても使用できる。演算器11は、演算部111、データ保存用メモリ112、演算制御部113、通信部114、及びデータ監視部115を有する。演算部111は、受信した入力データに対して演算処理を行い、演算結果のデータをデータ保存用メモリ112に保存する第1の演算部の一例である。データ保存用メモリ112は、受信した入力データ、演算結果のデータ等を記憶する第1の記憶部の一例である。演算制御部113は、演算部111の演算処理を制御して予め決められた演算処理を行わせる第1の演算制御部の一例である。データ監視部115は、データ保存用メモリ112に一定量の演算結果のデータが記憶されて一定量の演算結果のデータが揃ったか否かを監視する。一定量の演算結果のデータは、この例の場合、m個の演算器の演算結果の総データ量の1/Nに相当する演算結果のデータ量である。一定量の演算結果のデータが揃うと、データ監視部115は、演算制御部113を介して通信部114を制御して、データ保存用メモリ112に保存された演算結果のデータを通信器12に移動する。通信部14は、第1の通信部の一例である。演算結果のデータの移動方法の詳細については、後述する。
演算器11の演算部111、演算制御部113、及びデータ監視部115の機能は、例えばGPU(Graphics Processing Unit)、CPU(Central Processing Unit)等のプロセッサにより形成しても良い。データ保存用メモリ112は、データを保存可能であれば良く、特定の種類や特定の構造の記憶装置に限定されるものではない。
図3は、通信器のハードウェア構成の一例を示すブロック図である。図3に示す通信器12は、第1実施例の各通信器12-0,12-1として使用でき、後述する各実施例の各通信器としても使用できる。通信器12は、演算部121、データ保存用メモリ122、演算制御部123、及び通信部124を有する。このように、通信器12は、演算部121を有する、演算部付き通信器である。演算部121は、データの演算と移動を繰り返す、所定の演算処理を行う。演算部121は、受信した演算結果のデータに対して所定の演算処理を行い、所定の演算結果のデータをデータ保存用メモリ122に保存する第2の演算部の一例である。この例では、演算部121は、データの演算と移動を繰り返す所定の演算処理の一例である集合演算専用の演算部である。データ保存用メモリ122は、受信した演算結果のデータ、所定の演算結果の一例である集合演算結果のデータ等を記憶する第2の記憶部の一例である。演算制御部123は、演算部121の所定の演算処理の一例である集合演算処理を制御して、予め決められた所定の演算処理の一例である集合演算処理を行わせる第2の演算制御部の一例である。演算制御部123は、通信部124を制御して、データ保存用メモリ122に保存された所定の演算結果の一例である集合演算結果のデータを各演算器11に移動する。通信部124は、第2の通信部の一例である。所定の演算結果の一例である集合演算結果のデータの移動方法の詳細については、後述する。
通信器12の演算部121及び演算制御部123の機能は、例えばGPU、CPU等のプロセッサにより形成しても良い。通信器12に用いるプロセッサは、演算器11に用いるプロセッサと同等の処理能力を有しても、演算器11に用いるプロセッサとは異なる処理能力を有しても良い。後者の場合、通信器12に用いるプロセッサの処理能力は、例えば演算器11に用いるプロセッサの処理能力より低くても良い。データ保存用メモリ122は、データを保存可能であれば良く、特定の種類や特定の構造の記憶装置に限定されるものではない。
図4は、第1実施例における集合演算を説明するフローチャートである。図4は、第1実施例における演算処理装置の制御方法の一例を示す。図4中、各演算器11の演算部111及び演算制御部113が処理ST1を実行し、各演算器11のデータ監視部115及び通信部114が処理ST2を実行する。また、各通信器12の演算部121、演算制御部123、及び通信部124が処理ST11を実行する。
処理ST1は、ステップS11~S15の、同じ演算処理を行う、演算機能に関する処理を含む。ステップS11では、各演算器11-0~11-3の演算制御部113が、1個の演算処理装置1を形成する4個の演算器11-0~11-3と2個の通信器12-0,12-1を1つのグループとする。ステップS12では、各演算器11-0~11-3の演算制御部113が、演算器11-0~11-3の演算結果のデータの総データ量、即ち、演算結果の総量を、通信器12-0,12-1の個数nの2倍(この例では、分割数N=2×2=4)で分割する。演算結果の4分割データは、奇数番目の分割データと、偶数番目の分割データとを含む。各演算器11-0~11-3が行う演算処理は、同じであり、かつ、予め決められているので、演算器11-0~11-3の演算結果の総量も、予め求めておくことができる。
ステップS13では、各演算器11-0~11-3の演算制御部113が、演算結果の奇数番目の分割データと偶数番目の分割データを順時出力するよう演算部111を制御する。各演算器11-0~11-3の演算部111は、演算結果の奇数番目の分割データと偶数番目の分割データを、データ保存用メモリ112に保存する。ステップS13の後、処理は並行してステップS14と、処理ST2のステップS21とへ進む。ステップS14では、各演算器11-0~11-3の演算制御部113が、演算部111による分割数N(=4)分の演算が終了したか否かを判定し、判定結果がYESであると処理はステップS15へ進む。ステップS15では、各演算器11-0~11-3の演算部111が、各通信器12-0,12-1から集合演算結果を受信したか否かを判定し、判定結果がYESであると各演算器11-0~11-3の処理を終了する。
一方、処理ST2は、ステップS21~S24の、各4分割データに相当する演算結果を対応する2個の通信器に移動する、演算機能以外に関する処理を含む。ステップS21では、各演算器11-0~11-3のデータ監視部115が、データ保存用メモリ112に例えば演算結果の奇数番目の分割データ又は偶数番目の分割データが揃ったか否かの監視を開始する。ステップS22では、各演算器11-0~11-3のデータ監視部115が、データ保存用メモリ112に例えば演算結果の奇数番目の分割データ又は偶数番目の分割データが揃ったか否かを判定する。ステップS22の判定結果がYESであると、処理はステップS23へ進む。ステップS23では、各演算器11-0~11-3の通信部114が、揃った演算結果の奇数番目の分割データ又は偶数番目の分割データを同じグループ内の通信器12-0,12-1のうち一方に移動する。具体的には、各演算器11-0~11-3の通信部114が、演算結果の奇数番目の分割データを通信器12-0に移動し、演算結果の偶数番目の分割データを通信器12-1に移動する。ステップS23の後、処理は並行してステップS24と、処理ST11のステップS31とへ進む。ステップS24では、各演算器11-0~11-3のデータ監視部115が、演算部111による分割数N(=4)分の演算が終了したか否かを演算制御部113を介して判定し、判定結果がYESであるとデータ監視部115の処理を終了する。
処理ST11は、ステップS31~S33の、所定の演算処理の一例である集合演算を行う、集合演算機能に関する処理を含む。ステップS31では、各通信器12-0,12-1の演算部121が、通信部124が受信した演算結果の分割データを用いて集合演算を行う。ステップS32では、各通信器12-0,12-1の演算制御部123が、演算部121による集合演算が終了したか否かを判定し、判定結果がYESであると処理はステップS33へ進む。具体的には、通信器12-0の演算制御部123が、演算部121において4分割された演算結果のうち奇数番目の2つの分割データの夫々に対して集合演算処理を計2回実行したか否かを判定する。また、通信器12-1の演算制御部123が、演算部121において4分割された演算結果のうち偶数番目の2つの分割データの夫々に対して集合演算処理を計2回実行したか否かを判定する。つまり、各通信器12-0,12-1の演算制御部123が、演算部121において集合演算処理を計2回実行したか否かを判定する。ステップS33では、各通信器12-0,12-1の通信部124が、集合演算結果のデータを同じグループ内の演算器11-0~11-3に移動する。具体的には、通信器12-0の場合、通信部124が、演算結果の奇数番目の分割データに対する集合演算結果のデータを同じグループ内の演算器11-0~11-3にブロードキャストする。また、通信器12-1の場合、通信部124が、演算結果の偶数番目の分割データに対する集合演算結果のデータを同じグループ内の演算器11-0~11-3にブロードキャストする。集合演算結果のデータを受信した各演算器11-0~11-3では、処理ST1のステップS25の判定結果がYESになる。ステップS33の後、各通信器12-0,12-1の処理を終了する。
図5は、第1実施例における集合演算の流れの一例を説明する模式図である。演算処理装置1の入力データdata#0(Odd#0, Even#0, Odd#1, Even#1), data#1(Odd#0, Even#0, Odd#1, Even#1), ...は、各演算器11-0~11-3に入力されて同じ演算処理を施される。演算器11-0~11-3の演算結果の総量は、通信器12-0,12-1の個数n×2(この例では、N=2×2=4)で分割して各演算器11-0~11-3から順次出力する。各入力データdata#0, data#1, ...に対する演算結果の4分割データは、第1番目と第3番目を含む奇数番目の分割データ(以下、「奇数の分割データ」とも言う)と、第2番目と第4番目を含む偶数番目の分割データ(以下、「偶数の分割データ」とも言う)とを含む。各演算器11-0~11-3の各入力データdata#0, data#1, ...に対する演算結果の奇数の分割データであるOdd演算結果は、通信器12-0に送信する。通信器12-0は、各演算器11-0~11-3から移動した各Odd演算結果に集合演算処理を施し、第1番目の分割データに対するOdd集合演算結果#0と第3番目の分割データに対する Odd集合演算結果#1を順次求める。
同様に、各演算器11-0~11-3の各入力データdata#0, data#1, ...に対する演算結果の偶数の分割データであるEven演算結果は、通信器12-1に送信する。通信器12-1は、各演算器11-0~11-3から移動した各Even演算結果に集合演算処理を施し、第2番目の分割データに対するEven集合演算結果#0と第4番目の分割データに対するEven集合演算結果#1を順次求める。
通信器12-0は、求めたOdd集合演算結果#0, Odd集合演算結果#1を各演算器11-0~11-3にブロードキャストする。一方、通信器12-1は、求めたEven集合演算結果#0, Even集合演算結果#1を各演算器11-0~11-3にブロードキャストする。これにより、各演算器11-0~11-3は、同じ集合演算結果である、Odd集合演算結果#0, Even集合演算結果#0, Odd集合演算結果#1, Even集合演算結果#1を受信して保存する。このように、2個の通信器12-0,12-1を用いて集合演算結果を2つに分けて各演算器11-0~11-3にブロードキャストするので、2つに分けない場合と比較すると、集合演算結果の各演算器11-0~11-3への移動時間を短縮できる。また、各演算器11-0~11-3が演算処理中であっても、演算処理の終わった演算結果の移動を優先することができる。この結果、データの移動時間が少ない演算処理が可能となり、データの演算と移動を繰り返す集合演算処理を含む演算処理を高速化することができる。
なお、この例では、演算結果の4分割データのうち、奇数の分割データを通信器12-0に移動し、偶数の分割データを通信器12-1に移動するが、移動する分割データは集合演算等に応じて選定可能である。例えば、演算結果の4分割データのうち、半分に相当する2つの分割データを通信器12-0に順次移動し、残りの半分に相当する2つの分割データを通信器12-1に順次移動しても良い。
本実施例によれば、データの移動時間を少なくすることができる。以下に、演算処理装置が4個の演算器を有する場合について、例えば上記特許文献2の如き従来手法と本実施例の手法とを比較する。
先ず、データの移動時間を短くするために、演算が終わったデータから移動開始する場合を例に説明する。
従来手法でのデータの移動が行われるのは、演算結果の総データ量の1/2が揃った時、データが全て揃った時、1回目の演算が終わった後の計3回である。ただし、演算器が演算中のデータの移動は隠蔽できるので、隠蔽できないデータの移動時間として見えてくるデータの移動は2回である。データの移動量は、どの回のデータ移動も演算結果の総データ量の1/2である。
これに対し、本実施例の手法では、データの移動時間が隠蔽できないのはデータが全て揃った時、2回目の演算が終わった後の2回で、データの移動が行われるのは計3回である。データの移動量は、どの回のデータ移動も演算結果の総データ量の1/4である。
従って、データの移動時間で考えると、従来手法では「移動回数(2回)」×「データの移動量(演算結果の総データ量の1/2)」が任意単位で1となる。一方、本実施例の手法では「移動回数(3回)」×「データの移動量(演算結果の総データ量の1/4)」が任意単位で3/4となり、1となる従来手法と比較するとデータの移動時間が25%改善できる。
次に、隠蔽できないデータの演算時間もあるので、この演算時間も考慮する場合を例に説明する。
従来手法での演算回数は2回であり、演算量は総データ量で、データ数は2である。
これに対し、本実施例の手法での演算回数は1回で、演算量は総データ量の1/4で、データ数は4である。このように、総データ量の1/4のデータが集まるとデータを移動するので、総データ量分の演算が完了するのを待たずにデータを移動することができる。
従って、データの演算時間で考えると、従来手法では「演算回数(2回)×「演算量(1)」×「データ数(2)」が任意単位で4となる。一方、本実施例の手法では「演算回数(1回)」×「演算量(1/4)」×「データ数(4)」が任意単位で1となり、4となる従来手法と比較するとデータの演算時間が75%改善できる。
集合演算処理に必要な時間は、データの移動時間と演算時間なので、本実施例の手法によれば、従来手法と比較すると集合演算処理に必要な時間を大幅に短縮できる。
図6は、第1実施例における演算処理システムの構成の一例を示す図である。図6に示す演算処理システム100は、複数の演算処理装置1-0~1-3を有する。各演算処理装置1-0~1-3は、図1に示す演算処理装置1のように4個の演算器11-0~11-3と、2個の通信器12-0,12-1とを有する。説明の便宜上、図6中、太い一点鎖線は、例えば演算結果の奇数の分割データの通信路を示し、太い二点鎖線は、例えば演算結果の偶数の分割データの通信路を示す。各通信路は、例えば双方向のバスである。このように、演算処理システム100は、4個の演算処理装置1-0~1-3の対応する通信器が通信路で接続されたネットワーク構成を有する。演算処理システム100は、例えば単一のモジュール、或いは、半導体チップであっても良い。
図6において、演算処理装置1-0の通信器12-0は、演算処理装置1-1の通信器12-0に接続されており、演算処理装置1-1の通信器12-0は、演算処理装置1-3の通信器12-0に接続されている。演算処理装置1-3の通信器12-0は、演算処理装置1-2の通信器12-0に接続されており、演算処理装置1-2の通信器12-0は、演算処理装置1-0の通信器12-0に接続されている。一方、演算処理装置1-0の通信器12-1は、演算処理装置1-1の通信器12-1に接続されており、演算処理装置1-1の通信器12-1は、演算処理装置1-3の通信器12-1に接続されている。演算処理装置1-3の通信器12-1は、演算処理装置1-2の通信器12-1に接続されており、演算処理装置1-2の通信器12-1は、演算処理装置1-0の通信器12-1に接続されている。
例えば、演算処理が4個より多い個数の演算器を必要とする場合等には、演算処理装置1内の演算器の個数を増やす代わりに、基本単位である1つのグループを形成する演算処理装置1を、複数個接続したネットワーク構成を用いても良い。図6に示すネットワーク構成の例では、4個のグループが接続されている。このように、複数のグループを接続することで、5個以上の演算器を有する単一の演算処理装置1が行う演算処理と同等の演算処理を、同じ構成を有する複数のグループの組み合わせにより行うことができる。
本実施例によれば、複数のグループを接続することで、大規模演算処理システム(ネットワークシステム)を形成可能である。
(第2実施例)
第2実施例では、2つのグループG0,G1が接続されている。
図7は、第2実施例における集合演算を説明するフローチャートである。図7は、第2実施例における演算処理装置の制御方法の一例の一部を示す。図7中、図4と同一ステップには同一符号を付し、その説明は省略する。第2実施例では、上記第1実施例に対して、グループG0,G1間の通信が増えるため、図4の処理のうち、通信器12の処理ST11が処理ST11Aに変更されている。
図7において、処理ST11Aは、ステップS31,S32,S33A-1,S33A-2,S33の集合演算機能に関する処理を含む。ステップS33A-1では、各グループG0,G1内の各通信器12-0,12-1の通信部124が、グループG0,G1間の通信を行う。具体的には、グループG0内の通信器12-0とグループG1内の通信器12-0との間と、グループG0内の通信器12-1とグループG1内の通信器12-1との間で通信を行う。これにより、Odd集合演算結果は、各グループG0,G1の通信器12-0側に集まり、Even集合演算結果は、各グループG0,G1の通信器12-1側に集まるように集合演算が行われる。ステップS33A-2では、各グループG0,G1内の各通信器12-0,12-1の演算制御部123が、演算部121による集合演算が終了したか否かを判定し、判定結果がYESであると処理はステップS33へ進む。ステップS33の後、各グループG0,G1内の各通信器12-0,12-1の処理を終了する。
図8は、第2実施例における集合演算の流れの一例を説明する模式図である。図8中、図5と同一部分には同一符号を付し、その説明は省略する。この例では、図5に示す1個の演算処理装置1がグループG0に属し、他の1個の演算処理装置1がグループG1に属す。グループG0の演算処理装置1の各通信器12-0,12-1の演算結果と、グループG1の演算処理装置1の各通信器12-0,12-1の演算結果とを、グループG0,G1間で送受信する。これにより、グループG0の演算処理装置1の通信器12-0は、自己の演算結果とグループG1の演算処理装置1の通信器12-0の演算結果とを用いて、集合演算処理を行う。同様に、グループG0の演算処理装置1の通信器12-1は、自己の演算結果とグループG1の演算処理装置1の通信器12-1の演算結果とを用いて、集合演算処理を行う。また、グループG1の演算処理装置1の通信器12-0は、自己の演算結果とグループG0の演算処理装置1の通信器12-0の演算結果とを用いて、集合演算処理を行う。更に、グループG1の演算処理装置1の通信器12-1は、自己の演算結果とグループG0の演算処理装置1の通信器12-1の演算結果とを用いて、集合演算処理を行う。グループG0の各通信器12-0,12-1の集合演算処理の結果は、同じグループG0の4個の演算器11-0~11-3にブロードキャストする。同様に、グループG1の各通信器12-0,12-1の集合演算処理の結果は、同じグループG1の4個の演算器11-0~11-3にブロードキャストする。
本実施例によれば、データの演算と移動を繰り返す集合演算処理を含む演算処理を高速化できると共に、複数のグループを接続することで、大規模演算処理システム(ネットワークシステム)を形成可能であり、上記第1実施例と同様の効果を得ることができる。
(第3実施例)
第3実施例では、2つのグループG0,G1が接続されている。
第3実施例では、第2実施例のグループ間の通信を、第1実施例の通信器間の通信と同様に行う。例えば、各グループ内の一方の通信器12の演算部121に余力がある場合には、当該通信器12がグループ間の通信用通信部124を有するかの如く処理を行う。
図9は、第3実施例における集合演算を説明するフローチャートである。図9は、第3実施例における演算処理装置の制御方法の一例の一部を示す。図9中、図4と同一ステップには同一符号を付し、その説明は省略する。第3実施例では、上記第1実施例に対して、グループG0,G1間の通信が増えるため、図4の処理のうち、通信器12の処理ST11が処理ST11Bに変更されている。
図9において、処理ST11Bは、ステップS31,S32,S33B-1,S33B-2,S33の集合演算機能に関する処理を含む。ステップS33B-1では、各グループG0,G1の通信器12-0,12-1の通信部124が、グループG0,G1間の通信を行う。具体的には、グループG0内の通信器12-0と、グループG0,G1内の通信器12-1との間で通信を行う。また、グループG1内の通信器12-0と、グループG0,G1内の通信器12-1との間で通信を行う。更に、グループG0内の通信器12-1とグループG1内の通信器12-1との間で通信を行う。これにより、グループG0,G1間で求めたOdd集合演算結果,Even集合演算結果は、グループG0,G1の余力のある方の通信器12-1側に集まるように集合演算が行われる。ステップS33B-2では、演算制御部123が、演算部121による集合演算が終了したか否かを判定し、判定結果がYESであると処理はステップS33へ進む。ステップS33の後、通信器12の処理を終了する。
図10は、第3実施例における集合演算の流れの一例を説明する模式図である。図10中、図5と同一部分には同一符号を付し、その説明は省略する。この例では、図5に示す1個の演算処理装置1がグループG0に属し、他の1個の演算処理装置1がグループG1に属す。
グループG0内の通信器12-0が求めたOdd集合演算結果#0,Odd集合演算結果#1は、グループG0,G1内の通信器12-1に送信する。グループG0内の通信器12-1が求めたEven集合演算結果#0,Even集合演算結果#1は、グループG1内の通信器12-1に送信する。グループG1内の通信器12-0が求めたOdd集合演算結果#0,Odd集合演算結果#1は、グループG0,G1内の通信器12-1に送信する。グループG1内の通信器12-1が求めたEven集合演算結果#0,Even集合演算結果#1は、グループG0内の通信器12-1に送信する。これにより、グループG0,G1間で求めたOdd集合演算結果,Even集合演算結果は、グループG0,G1の通信器12-1側に集まるように集合演算が行われ、グループG0,G1の通信器12-0に送信する。グループG0の各通信器12-0,12-1の集合演算処理の結果は、同じグループG0の4個の演算器11-0~11-3にブロードキャストする。同様に、グループG1の各通信器12-0,12-1の集合演算処理の結果は、同じグループG1の4個の演算器11-0~11-3にブロードキャストする。
本実施例によれば、データの演算と移動を繰り返す集合演算処理を含む演算処理を高速化できると共に、複数のグループを接続することで、大規模演算処理システム(ネットワークシステム)を形成可能であり、上記第1実施例と同様の効果を得ることができる。
(第4実施例)
第4実施例では、演算処理装置が4個の演算器と、3個の通信器を有する。本実施例では、通信器の個数が上記第1実施例の場合と異なるため、演算結果の分割数が上記第1実施例の場合と異なる。このため、データの移動方法が上記第1実施例とは異なる。第4実施例は、m=4でn=3の例である。
図11は、第4実施例における演算処理装置の一例を示すブロック図である。図11中、図1と同一部分には同一符号を付し、その説明は省略する。図11に示す演算処理装置1Aは、4個の演算器11-0~11-3と、3個の通信器12-0,12-1,12-2とを有する。各通信器12-0,12-1,12-2は、4個の演算器11-0~11-3と通信可能に接続されている。説明の便宜上、図11中、太い一点鎖線は、演算結果の6分割データの1/3に相当するデータの通信路を示し、太い二点鎖線は、演算結果の6分割データの他の1/3に相当するデータの通信路をす。また、太い破線は、演算結果の6分割データの残りの1/3に相当するデータの通信路を示す。各通信路は、例えば双方向のバスである。演算処理装置1Aは、例えば単一のモジュール、或いは、半導体チップであっても良い。
図12は、第4実施例における演算処理システムの構成の一例を示す図である。演算処理システム100Aは、例えば単一のモジュール、或いは、半導体チップであっても良い。
図12において、演算処理装置1A-0の通信器12-0は、演算処理装置1A-1の通信器12-0に接続されており、演算処理装置1A-1の通信器12-0は、演算処理装置1A-3の通信器12-0に接続されている。演算処理装置1A-3の通信器12-0は、演算処理装置1A-2の通信器12-0に接続されており、演算処理装置1A-2の通信器12-0は、演算処理装置1A-0の通信器12-0に接続されている。一方、演算処理装置1A-0の通信器12-1は、演算処理装置1A-1の通信器12-1に接続されており、演算処理装置1A-1の通信器12-1は、演算処理装置1A-3の通信器12-1に接続されている。演算処理装置1A-3の通信器12-1は、演算処理装置1A-2の通信器12-1に接続されており、演算処理装置1A-2の通信器12-1は、演算処理装置1A-0の通信器12-1に接続されている。更に、演算処理装置1A-0の通信器12-2は、演算処理装置1A-1の通信器12-2に接続されており、演算処理装置1A-1の通信器12-2は、演算処理装置1A-3の通信器12-2に接続されている。演算処理装置1A-3の通信器12-2は、演算処理装置1A-2の通信器12-2に接続されており、演算処理装置1A-2の通信器12-2は、演算処理装置1A-0の通信器12-2に接続されている。
図13は、第4実施例における集合演算を説明するフローチャートである。図13は、第4実施例における演算処理装置の制御方法の一例を示す。図13中、図4と同一ステップには同一符号を付し、その説明は省略する。第4実施例では、上記第1実施例に対して、演算処理装置1Aが通信器12-2を更に有するため、図4の処理のうち、各演算器11の処理ST1,ST2が処理ST1C,ST2Cに変更されている。また、各通信器12の処理ST11が処理ST11Cに変更されている。
図13に示す処理ST1Cにおいて、ステップS11Cでは、演算処理装置1Aの演算制御部113が、1個の演算処理装置1Aを形成する4個の演算器11-0~11-3と3個の通信器12-0~12-2を1つのグループとする。従って、ステップS12では、演算処理装置1Aの演算制御部113が、演算器11-0~11-3の演算結果の総量を、通信器12-0~12-2の個数nの2倍(この例では、分割数N=3×2=6)で分割する。この例では、6分割した演算結果は、便宜上、上の演算結果、中の演算結果、及び下の演算結果を含むものとする。この例では、上の演算結果のデータは、例えば6分割データの第1及び第4番目のデータに相当する。また、中の演算結果のデータは、例えば6分割データの第2及び第5番目のデータに相当する。更に、下の演算結果のデータは、例えば6分割データの第3及び第6番目のデータに相当する。
また、図13に示す処理ST2Cにおいて、ステップS21Cでは、演算処理装置1Aのデータ監視部115が、データ保存用メモリ112に上、中、又は下の演算結果のデータが揃ったか否かの監視を開始する。ステップS23Cでは、演算処理装置1Aの通信部114が、揃った演算結果のデータを同じグループ内の通信器12-0~12-2に移動する。具体的には、演算処理装置1Aの通信部114が、上の演算結果のデータを通信器12-0に移動し、中の演算結果のデータを通信器12-1に移動し、下の演算結果のデータを通信器12-2に移動する。
更に、図13に示す処理ST11Cにおいて、ステップS33Cでは、各通信器12-0~12-2の通信部124が、集合演算結果のデータを同じグループ内の演算器11-0~11-3に移動する。具体的には、通信器12-0の場合、通信部124が、上の演算結果のデータを同じグループ内の演算器11-0~11-3にブロードキャストする。通信器12-1の場合、通信部124が、中の演算結果のデータを同じグループ内の演算器11-0~11-3にブロードキャストする。また、通信器12-2の場合、通信部124が、下の演算結果のデータを同じグループ内の演算器11-0~11-3にブロードキャストする。
図14は、第4実施例における集合演算の流れの一例を説明する模式図である。演算処理装置1Aの入力データdata#0(上#0, 中#0, 下#0, 上#1, 中#1, 下#1), data#1(上#0, 中#0, 下#0, 上#1, 中#1, 下#1), ...は、各演算器11-0~11-3に入力されて同じ演算処理を施される。演算器11-0~11-3の演算結果の総量は、通信器12-0~12-2の個数n×2(この例では、N=3×2=6)で分割して各演算器11-0~11-3から順次出力する。各入力データdata#0, data#1, ...に対する演算結果の6分割データは、この例では便宜上、上の分割データ上#0, 上#1と、中の分割データ中#0, 中#1と、下の分割データ下#0, 下#1とを含む。各演算器11-0~11-3の各入力データdata#0, data#1, ...に対する演算結果中、上の分割データ上#0, 上#1の演算結果である「上の演算結果」は、通信器12-0に送信する。各演算器11-0~11-3の各入力データdata#0, data#1, ...に対する演算結果中、中の分割データ中#0, 中#1の演算結果である「中の演算結果」は、通信器12-1に送信する。各演算器11-0~11-3の各入力データdata#0, data#1, ...に対する演算結果中、下の分割データ下#0, 下#1の演算結果である「下の演算結果」は、通信器12-2に送信する。
通信器12-0は、上の演算結果に集合演算処理を施し、上の分割データ上#0, 上#1の演算結果に対する上集合演算結果#0, 上集合演算結果#1を順次求める。通信器12-1は、中の演算結果に集合演算処理を施し、中の分割データ中#0, 中#1の演算結果に対する中集合演算結果#0, 中集合演算結果#1を順次求める。また、通信器12-2は、下の演算結果に集合演算処理を施し、下の分割データ下#0, 下#1の演算結果に対する下集合演算結果#0, 下集合演算結果#1を順次求める。
通信器12-0は、求めた上集合演算結果#0, 上集合演算結果#1を各演算器11-0~11-3にブロードキャストする。通信器12-1は、求めた中集合演算結果#0, 中集合演算結果#1を各演算器11-0~11-3にブロードキャストする。通信器12-2は、求めた下集合演算結果#0, 下集合演算結果#1を各演算器11-0~11-3にブロードキャストする。これにより、各演算器11-0~11-3は、同じ集合演算結果である、上集合演算結果#0, 中集合演算結果#0, 下集合演算結果#0, 上集合演算結果#1, 中集合演算結果#1, 下集合演算結果#1を受信して保存する。このように、3個の通信器12-0~12-2を用いて集合演算結果を3つに分けて各演算器11-0~11-3にブロードキャストするので、3つに分けない場合と比較すると、集合演算結果の各演算器11-0~11-3への移動時間を短縮できる。また、各演算器11-0~11-3が演算処理中であっても、演算処理の終わった演算結果の移動を優先することができる。この結果、データの移動時間が少ない集合演算処理が可能となり、データの演算と移動を繰り返す集合演算処理を含む演算処理を高速化することができる。
なお、この例では、演算結果の6分割データのうち、上の分割データを通信器12-0に移動し、中の分割データを通信器12-1に移動し、下の分割データを通信器12-2に移動するが、移動する分割データは集合演算等に応じて選定可能である。例えば、演算結果の6分割データのうち、1/3に相当する2つの分割データを通信器12-0に順次移動し、他の1/3に相当する2つの分割データを通信器12-1に順次移動しても良い。この場合、残りの1/3に相当する2つの分割データを通信器12-2に順次移動すれば良い。
本実施例によれば、データの演算と移動を繰り返す集合演算処理を含む演算処理を高速化できると共に、複数のグループを接続することで、大規模演算処理システム(ネットワークシステム)を形成可能であり、上記第1実施例と同様の効果を得ることができる。本実施例は、演算結果の分割数を増やした方が集合演算処理を高速化できる場合等に好適である。
(第5実施例)
第5実施例では、演算処理装置が5個の演算器と、2個の通信器を有する。本実施例では、演算処理装置が有する演算器の個数が上記第1実施例の場合と異なるが、上記第1実施例と略同様にして集合演算を行うことができる。第5実施例は、m=5でn=2の例である。
図15は、第5実施例における演算処理装置の一例を示すブロック図である。図15中、図1と同一部分には同一符号を付し、その説明は省略する。図15に示す演算処理装置1Bは、5個の演算器11-0~11-4と、2個の通信器12-0,12-1とを有する。各通信器12-0,12-1は、5個の演算器11-0~11-4と通信可能に接続されている。演算処理装置1Bは、例えば単一のモジュール、或いは、半導体チップであっても良い。
図16は、第5実施例における演算処理システムの構成の一例を示す図である。演算処理システム100Bは、例えば単一のモジュール、或いは、半導体チップであっても良い。
図16において、演算処理装置1B-0の通信器12-0は、演算処理装置1B-1の通信器12-0に接続されており、演算処理装置1B-1の通信器12-0は、演算処理装置1B-3の通信器12-0に接続されている。演算処理装置1B-3の通信器12-0は、演算処理装置1B-2の通信器12-0に接続されており、演算処理装置1B-2の通信器12-0は、演算処理装置1B-0の通信器12-0に接続されている。一方、演算処理装置1B-0の通信器12-1は、演算処理装置1B-1の通信器12-1に接続されており、演算処理装置1B-1の通信器12-1は、演算処理装置1B-3の通信器12-1に接続されている。演算処理装置1B-3の通信器12-1は、演算処理装置1B-2の通信器12-1に接続されており、演算処理装置1B-2の通信器12-1は、演算処理装置1B-0の通信器12-1に接続されている。
図17は、第5実施例における集合演算を説明するフローチャートである。図17は、第5実施例における演算処理装置の制御方法の一例を示す。図17中、図4と同一ステップには同一符号を付し、その説明は省略する。第5実施例では、上記第1実施例に対して、演算処理装置1Bが演算器11-4を更に有するため、図4の処理のうち、各演算器11の処理ST1が処理ST1Dに変更されている。
図17に示す処理ST1Dにおいて、ステップS11Dでは、演算処理装置1Bの演算制御部113が、1個の演算処理装置1Bを形成する5個の演算器11-0~11-4と2個の通信器12-0,12-1を1つのグループとする。従って、ステップS12では、演算処理装置1Bの演算制御部113が、演算器11-0~11-4の演算結果の総量を、通信器12の個数nの2倍(この例では、N=2×2=4)で分割する。演算結果の4分割データは、奇数の分割データと、偶数の分割データとを含む。
図18は、第5実施例における集合演算の流れの一例を説明する模式図である。演算処理装置1Bの入力データdata#0(Odd#0, Even#0, Odd#1, Even#1), data#1(Odd#0, Even#0, Odd#1, Even#1), ...は、各演算器11-0~11-4に入力されて同じ演算処理を施される。演算器11-0~11-4の演算結果の総量は、通信器12-0,12-1の個数n×2(この例では、N=2×2=4)で分割して各演算器11-0~11-4から順次出力される。各入力データdata#0, data#1, ...に対する演算結果の4分割データは、奇数の分割データと、偶数の分割データとを含む。各演算器11-0~11-4の各入力データdata#0, data#1, ...に対する演算結果の奇数の分割データであるOdd演算結果は、通信器12-0に送信する。通信器12-0は、Odd演算結果に集合演算処理を施し、Odd集合演算結果#0, Odd集合演算結果#1を順次求める。
同様に、各演算器11-0~11-4の各入力データdata#0, data#1, ...に対する演算結果の偶数の分割データであるEven演算結果は、通信器12-1に送信する。通信器12-1は、Even演算結果に集合演算処理を施し、Even集合演算結果#0, Even集合演算結果#1を順次求める。
通信器12-0は、求めたOdd集合演算結果#0, Odd集合演算結果#1を各演算器11-0~11-4にブロードキャストする。一方、通信器12-1は、求めたEven集合演算結果#0, Even集合演算結果#1を各演算器11-0~11-4にブロードキャストする。これにより、各演算器11-0~11-4は、同じ集合演算結果である、Odd集合演算結果#0, Even集合演算結果#0, Odd集合演算結果#1, Even集合演算結果#1を受信して保存する。このように、2個の通信器12-0,12-1を用いて集合演算結果を2つに分けて各演算器11-0~11-4にブロードキャストするので、2つに分けない場合と比較すると、集合演算結果の各演算器11-0~11-4への移動時間を短縮できる。また、各演算器11-0~11-4が演算処理中であっても、演算処理の終わった演算結果の移動を優先することができる。この結果、データの移動時間が少ない集合演算処理が可能となり、データの演算と移動を繰り返す集合演算処理を含む演算処理を高速化することができる。
なお、この例では、演算結果の4分割データのうち、奇数の分割データを通信器12-0に移動し、偶数の分割データを通信器12-1に移動するが、移動する分割データは集合演算等に応じて選定可能である。例えば、演算結果の4分割データのうち、半分に相当する2つの分割データを通信器12-0に順次移動し、残りの半分に相当する2つの分割データを通信器12-1に順次移動しても良い。
本実施例によれば、データの演算と移動を繰り返す集合演算処理を含む演算処理を高速化できると共に、複数のグループを接続することで、大規模演算処理システム(ネットワークシステム)を形成可能であり、上記第1実施例と同様の効果を得ることができる。本実施例は、演算処理装置内の演算器の個数を増やした方が全体としての演算時間を短縮できる場合等に好適である。
上記の各実施例によれば、データの演算と移動を繰り返す演算処理におけるデータの演算時間及び移動時間を短縮できるので、演算処理に要する時間の短縮が可能となる。つまり、上記の各実施例によれば、データ量が増大したり、演算器の個数が増大しても、データの演算と移動を繰り返す演算処理を高速化することができる。
なお、演算処理装置内の演算器11の個数mは4個以上(即ち、mは4以上の自然数)であれば、特に限定されない。また、演算処理装置内の通信器12の個数nは、2個以上(即ち、nは2以上の自然数)であれば、特に限定されない。更に、演算処理装置のグループの個数Lは、2個以上(即ち、Lは2以上の自然数)であれば特に限定されない。
例えば、集合演算に要する時間は、データの演算時間と移動時間とに依存する。集合演算の場合、演算処理を分散して行った複数の演算器のデータを集める必要があるため、データの演算時間も移動時間も長くなる。特にデータ量が膨大な場合には、分散しても演算量が膨大であるため、従来手法では演算時間の短縮は難しい。更に、集合演算は、例えば同じ位置のデータの総和を求めるような比較的簡単な演算の割りに、集めるデータ量が多いので、特にデータ量が膨大な場合には、従来手法ではデータの移動時間の短縮も難しい。しかし、上記の各実施例によれば、データの演算時間及び移動時間を短縮できるので、集合演算を高速化することができる。
次に、上記の各実施例における演算処理を、例えばディープラーニングで使用する場合について説明する。ディープラーニングでは、多くの学習データを使用して学習が早く終わるようにして演算時間を短縮するために、演算を並列実行することが望ましい。ところが、学習結果のパラメータを更新するには、演算を並列実行した複数の演算器のデータを集めて更新する必要があるのに加え、データ量が多いため、従来手法では、データの演算時間も移動時間も長くなる。また、集合演算以外の演算量も膨大であるため、従来手法では、演算時間の短縮は難しい。更に、パラメータ更新用のデータを作成するための集合演算は、例えば同じ位置のデータの総和を求める演算のような比較的簡単な演算の割りに集めるデータ量が膨大であるため、従来手法では、データの移動時間の短縮も難しい。しかし、上記の各実施例によれば、演算処理を高速化することができるので、多くの学習データを使用するディープラーニングに適用した場合であっても、ディープラーニングの高速化が可能となる。
なお、上記の各実施例に付されている第1、第2、第3、第4、及び第5なる連番は、好ましい実施例の優先順位を表すものではない。
以上、開示の演算処理装置及び演算処理装置の制御方法を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
1,1A,1B 演算処理装置
1-0~1-3,1A-0~1A-3,1B-0~1B-3 演算処理装置
11,11-0~11-4 演算器
12,12-0~12-2 通信器
100 演算処理システム
111 演算部
112 データ保存用メモリ
113 演算制御部
114 通信部
115 データ監視部
121 演算部
122 データ保存用メモリ
123 演算制御部
124 通信部

Claims (10)

  1. 同じ演算処理を行うm個の演算器と、
    演算機能を有し、前記m個の演算器と通信可能に接続されたn個の通信器と、
    を備え、mは4以上の自然数であり、nは2以上の自然数であり、
    各演算器は、前記m個の演算器の演算結果の総データ量を前記通信器の個数n×2=Nで分割した各N分割データに相当する演算結果を、対応する前記n個の通信器に移動し、
    各通信器は、対応するN分割データに相当する演算結果にデータの演算と移動を繰り返す所定の演算処理を施した演算結果を、前記m個の演算器にブロードキャストすることを特徴とする、演算処理装置。
  2. 各演算器は、
    前記同じ演算処理を行う演算機能に関する処理を実行する、第1の演算部及び第1の演算制御部と、
    各N分割データに相当する演算結果を対応する前記n個の通信器に移動する演算機能以外に関する処理を実行する、データ監視部及び第1の通信部とを有し、
    各通信器は、
    前記所定の演算処理を行う所定の演算機能に関する処理を実行する、第2の演算部、第2の演算制御部、及び第2の通信部を有することを特徴とする、請求項1記載の演算処理装置。
  3. 前記演算機能に関する処理は、
    前記第1の演算制御部が、前記m個の演算器の演算結果の総データ量をN分割し、
    前記第1の演算制御部が、N分割した演算結果を順時出力するよう前記第1の演算部を制御し、
    前記第1の演算制御部が、前記第1の演算部による演算が終了したと判定し、前記第1の演算部が、各通信器から前記所定の演算結果を受信すると前記演算機能に関する処理を終了する、
    処理を含み、
    前記演算機能以外に関する処理は、
    前記データ監視部が、前記m個の演算器の演算結果の総データ量の1/Nに相当する演算結果のデータ量が揃ったと判定すると、前記第1の通信部が、揃った演算結果のデータを各通信器に移動し、
    前記データ監視部が、前記第1の演算部による演算が終了したと判定すると、前記演算機能以外に関する処理を終了する、
    処理を含み、
    前記所定の演算機能に関する処理は、
    各通信器の前記第2の演算部が、前記第2の通信部が受信した演算結果を用いて前記所定の演算処理を行い、
    前記第2の演算制御部が、前記第2の演算部による前記所定の演算処理が終了したと判定すると、前記第2の通信部が、前記所定の演算処理の演算結果のデータを前記m個の演算器にブロードキャストする、
    処理を含むことを特徴とする、請求項2記載の演算処理装置。
  4. m=4又はm=5かつn=2であり、
    第1の通信器が4分割データの半分に相当する2つのデータに前記所定の演算処理を順次施して前記m個の演算器にブロードキャストし、
    第2の通信器が4分割データの残りの半分に相当する2つのデータに前記所定の演算処理を順次施して前記m個の演算器にブロードキャストすることを特徴とする、請求項1乃至3のいずれか1項記載の演算処理装置。
  5. m=4かつn=3であり、
    第1の通信器が6分割データの1/3に相当する2つのデータに前記所定の演算処理を順次施して前記m個の演算器にブロードキャストし、
    第2の通信器が6分割データの他の1/3に相当する2つのデータに前記所定の演算処理を順次施して前記m個の演算器にブロードキャストし、
    第3の通信器が6分割データの残りの1/3に相当する2つのデータに前記所定の演算処理を順次施して前記m個の演算器にブロードキャストすることを特徴とする、請求項1乃至3のいずれか1項記載の演算処理装置。
  6. 前記所定の演算処理は、集合演算処理であることを特徴とする、請求項1乃至5のいずれか1項記載の演算処理装置。
  7. 請求項1乃至6のいずれか1項記載の演算処理装置をL個備え、Lは2以上の自然数であり、
    前記L個の演算処理装置の対応する通信器が通信可能に接続されていることを特徴とする、演算処理システム。
  8. 同じ演算処理を行うm個の演算器と、演算機能を有し、前記m個の演算器と通信可能に接続されたn個の通信器と、を備え、mは4以上の自然数であり、nは2以上の自然数である演算処理装置の制御方法であって、
    各演算器が、前記m個の演算器の演算結果の総データ量を通信器の個数n×2=Nで分割した各N分割データに相当する演算結果を、対応する前記n個の通信器に移動し、
    各通信器が、対応するN分割データに相当する演算結果にデータの演算と移動を繰り返す所定の演算処理を施した演算結果を、前記m個の演算器にブロードキャストすることを特徴とする、演算処理装置の制御方法。
  9. 前記所定の演算処理は、集合演算処理であることを特徴とする、請求項記載の演算処理装置の制御方法。
  10. L個の演算処理装置の対応する通信器を通信可能に接続し、Lは2以上の自然数であり、
    請求項8又は9記載の演算処理装置の制御方法を前記L個の演算処理装置の各々で実行することを特徴とする、演算処理装置の制御方法。
JP2020551749A 2018-10-23 2018-10-23 演算処理装置及び演算処理装置の制御方法 Active JP7004083B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/039384 WO2020084693A1 (ja) 2018-10-23 2018-10-23 演算処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JPWO2020084693A1 JPWO2020084693A1 (ja) 2021-09-02
JP7004083B2 true JP7004083B2 (ja) 2022-01-21

Family

ID=70331809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020551749A Active JP7004083B2 (ja) 2018-10-23 2018-10-23 演算処理装置及び演算処理装置の制御方法

Country Status (2)

Country Link
JP (1) JP7004083B2 (ja)
WO (1) WO2020084693A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002175288A (ja) 2000-09-27 2002-06-21 Sony Computer Entertainment Inc マルチプロセッサシステム、データ処理システム、データ処理方法、コンピュータプログラム
JP2006277635A (ja) 2005-03-30 2006-10-12 Nec Corp 情報処理システムとjob実行方法
JP2007249810A (ja) 2006-03-17 2007-09-27 Fujitsu Ltd 並列計算機のリダクション処理方法及び並列計算機

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002175288A (ja) 2000-09-27 2002-06-21 Sony Computer Entertainment Inc マルチプロセッサシステム、データ処理システム、データ処理方法、コンピュータプログラム
JP2006277635A (ja) 2005-03-30 2006-10-12 Nec Corp 情報処理システムとjob実行方法
JP2007249810A (ja) 2006-03-17 2007-09-27 Fujitsu Ltd 並列計算機のリダクション処理方法及び並列計算機

Also Published As

Publication number Publication date
WO2020084693A1 (ja) 2020-04-30
JPWO2020084693A1 (ja) 2021-09-02

Similar Documents

Publication Publication Date Title
JP6983154B2 (ja) 計算グラフの処理
US10902315B2 (en) Device for implementing artificial neural network with separate computation units
US20180307973A1 (en) Device for implementing artificial neural network with flexible buffer pool structure
US20180307974A1 (en) Device for implementing artificial neural network with mutiple instruction units
US7574466B2 (en) Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
KR20130090147A (ko) 신경망 컴퓨팅 장치 및 시스템과 그 방법
JP2020532778A (ja) 変換方法、装置、コンピューターデバイス及び記憶媒体
CN109034373A (zh) 卷积神经网络的并行处理器及处理方法
EP3822773A1 (en) Enhanced input of machine-learning accelerator activations
US20240104012A1 (en) Topological scheduling
US11580369B2 (en) Inference apparatus, convolution operation execution method, and program
CN113469355B (zh) 分布式系统中的多模型训练管道
CN113159285B (zh) 神经网络加速器
CN112541584B (zh) 深度神经网络模型并行模式选择方法
CN106991006A (zh) 支持依赖和时间平衡的云工作流任务聚类方法
CN106295670A (zh) 数据处理方法及数据处理装置
CN103914556A (zh) 大规模图数据处理方法
CN102566423A (zh) 一种单边装配线的平衡控制方法
JP7004083B2 (ja) 演算処理装置及び演算処理装置の制御方法
US11709783B1 (en) Tensor data distribution using grid direct-memory access (DMA) controller
JP2023145676A (ja) 伝搬レイテンシの短縮
CN104778044B (zh) 触摸屏手势事件流分发的方法及装置
CN109582911A (zh) 用于实行卷积的计算装置及实行卷积的计算方法
WO2018070376A1 (ja) 領域確保装置、領域確保方法、及び、領域確保プログラムが記録された記録媒体
CN109948785B (zh) 一种高效的神经网络电路系统和方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211213

R150 Certificate of patent or registration of utility model

Ref document number: 7004083

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150