JPH0782482B2 - ニューロコンピュータの負荷配分方法 - Google Patents

ニューロコンピュータの負荷配分方法

Info

Publication number
JPH0782482B2
JPH0782482B2 JP1127274A JP12727489A JPH0782482B2 JP H0782482 B2 JPH0782482 B2 JP H0782482B2 JP 1127274 A JP1127274 A JP 1127274A JP 12727489 A JP12727489 A JP 12727489A JP H0782482 B2 JPH0782482 B2 JP H0782482B2
Authority
JP
Japan
Prior art keywords
processor
real
processors
columns
row
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.)
Expired - Fee Related
Application number
JP1127274A
Other languages
English (en)
Other versions
JPH02306365A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP1127274A priority Critical patent/JPH0782482B2/ja
Priority to EP89124130A priority patent/EP0377221B1/en
Priority to DE68927474T priority patent/DE68927474T2/de
Publication of JPH02306365A publication Critical patent/JPH02306365A/ja
Priority to US07/885,239 priority patent/US5170463A/en
Publication of JPH0782482B2 publication Critical patent/JPH0782482B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〈産業上の利用分野〉 この発明は、神経回路素子モデルに基づいて構成された
大規模な神経回路網を多数のプロセッサを用いてシミュ
レーションするニューロコンピュータの負荷配分方法に
関する。
〈従来の技術〉 従来、神経回路素子モデルに基づいて構成された大規模
な神経回路網をシミュレーションするために、汎用コン
ピュータが用いられているが、回路網の学習に際して非
常に長い計算時間を要していた。そこで、高速化を図る
ために、神経回路網の計算は同種の神経回路素子に対し
て同じ計算を行うという特徴を利用して、神経回路素子
ごとに実際のプロセッサ(以下、「実プロセッサ」とい
う)を1つ割り当てるか、もしくは複数の神経回路素子
に対して1つの実プロセッサを割り当てて並列処理を行
うようにした並列計算機が提案されている。
上記並列計算機の各プロセッサ間の結合方式には格子型
結合、クロスバー型結合、ツリー型結合、多段クロスバ
ー型結合、キューブ型結合などの様々な方式がある。し
かし、これらの結合方式は神経回路網が大規模になって
プロセッサの数が増えると、配線数が非常に多くなって
実装が複雑になるものであった。
最近、本出願人は、非常に単純な結合方式の並列計算機
として、神経細胞に相当する細胞プロセッサCと、シナ
プスの結合に相当する重みプロセッサWと、外部装置か
ら入力データを取り込む入力プロセッサと、外部装置に
データを転送する出力プロセッサと、外部装置から入力
データを取り込んで外部装置にデータを転送する入出力
プロセッサに対応する5種類の仮想プロセッサを所定の
パターンの行列に配置すると共に格子状円環体もしくは
格子状矩形面に接続したことを特徴とするニューロコン
ピュータを提案した(特願昭63−330971号,特願昭64−
24307号)。このニューロコンピュータは、上記仮想プ
ロセッサの行列を行方向にP分割,列方向にQ分割し
て、分割された矩形領域をP行,Q列の行列に配列した実
プロセッサにそれぞれ割り当てて、この実プロセッサに
よって神経回路網のシミュレーションを並列処理するよ
うにしている。これにより、非常に単純な結合方式によ
って、大規模な神経回路網のシミュレーションを可能に
している。
〈発明が解決しようとする課題〉 ところで、神経回路網の代表的なモデルとして第10図
(a)乃至(d)に示すようなものがある。第10図
(a)は階層的なネットワーク(例えばパーセプトロ
ン)、同図(b)はフィードバックを含む階層的なネッ
トワーク(コグニトロン)、同図(c)は層内結合を含
む階層的なネットワーク(相互抑制のあるネットワー
ク)、同図(d)は相互結合のネットワーク(ホップフ
ィールドのネットワーク,ボルツマンマシン)を示して
いる。そして、上記第10図(a),(b)に示したモデ
ルでは各層間のすべての神経素子に結合があるとき、同
図(c)に示したモデルでは同一層内および層間の全て
の神経素子に結合があるとき、同図(d)に示したモデ
ルでは全ての神経素子間に結合があるとき、これらのモ
デルに合わせて上記格子状円環体もしくは格子状矩形面
に接続した仮想プロセッサを構成すると、仮想プロセッ
サの行列のパターンはそれぞれ第11図(a),(b),
(c),(d)に示すようになる。これらの図におい
て、Wは重みプロセッサ,Oは零プロセッサ(神経素子間
の結合がない場合に相当する),Cは細胞プロセッサを示
しており(以下の図において同様)、簡単のため第1行
に配置した入力プロセッサ,出力プロセッサおよび入出
力プロセッサを省略している。これらの図からわかるよ
うに、各仮想プロセッサの行列に、同種のプロセッサだ
けが占める矩形領域と、対角成分を1つの種類のプロセ
ッサ,非対角成分を他の1つの種類のプロセッサが占め
る矩形領域とが生ずる。上記第1行を除いて、これらの
矩形領域を分類すると、第12図(a)乃至(e)に示す
ように、5種類の矩形領域に分類される。第12図
(a),(b)は前者のタイプ,同図(b),(c),
(d)は後者のタイプを示している。
上記従来のニューロコンピュータは、このような仮想プ
ロセッサの行列を(P×Q)個に分割して、そのまま各
実プロセッサに割り当てているので、処理量(計算負
荷)の多い上記細胞プロセッサCや重みプロセッサWが
実プロセッサ間で偏って割り当てられることになる。そ
のため、処理を実行する際、上記実プロセッサのうちで
待ち状態になるものが生じて並列処理の効率が落ち、本
来の高速性能が生かせないという問題がある。
そこで、この発明の目的は、仮想プロセッサを実プロセ
ッサに計算負荷が均等になるように割り当てることによ
って並列処理の効率を上げ、高速処理を可能にしたニュ
ーロコンピュータの負荷配分方法を提供することにあ
る。
〈課題を解決するための手段〉 上記目的を達成するために、この発明のニューロコンピ
ュータの負荷配分方法は、神経回路網のモデルに対応し
て行列に配置した、神経細胞に相当する細胞プロセッサ
と、シナプスの結合に相当する重みプロセッサと、外部
装置から入力データを取り込む入力プロセッサと、外部
装置にデータを転送する出力プロセッサと、外部装置か
ら入力データを取り込んで外部装置にデータを転送する
入出力プロセッサとの5種類の仮想プロセッサを、神経
回路網の計算を並列に行うためのP行,Q列の行列に配列
した実プロセッサに割り当てるニューロコンピュータの
負荷配分方法であって、上記仮想プロセッサの行列は、
神経回路網のモデルに対応して、同種のプロセッサのみ
が隣接して並ぶ矩形領域と、ある1種のプロセッサが対
角成分を占め、異種のプロセッサが非対角成分を占める
矩形領域とを有し、上記各矩形領域を、列方向または行
方向の少なくとも一方向に、全実プロセッサ数(P×
Q)または上記一方向の実プロセッサ数QもしくはPで
分割して、上記各矩形領域に列数または行数が等しい複
数のブロックを形成するとともに、上記各矩形領域で生
じた剰余の列または行をまとめて剰余配列を形成し、上
記各矩形領域の複数のブロックを、上記一方向に並ぶ実
プロセッサに、ブロック単位で分散して割り当てた後、
上記剰余配列の複数の列または行を、上記一方向に並ぶ
実プロセッサに、列または行単位で分散して割り当てる
ことを特徴としている。
〈作用〉 この発明のニューロコンピュータの負荷配分方法では、
仮想プロセッサの行列の各矩形領域を、列方向または行
方向の少なくとも一方向に、全実プロセッサ数(P×
Q)または上記一方向の実プロセッサ数QもしくはPで
分割して、上記各矩形領域に列数または行数が等しい複
数のブロックを形成する。上記各矩形領域で剰余の列ま
たは行が生じた場合は、生じた剰余の列または行をまと
めて剰余配列を形成する。次に、上記各矩形領域の複数
のブロックを、上記一方向に並ぶ実プロセッサに、ブロ
ック単位で分散して割り当てる。このとき、各矩形領域
のブロック数は、分割数に応じて、上記一方向に並ぶ実
プロセッサ数の整数倍(P倍もしくはQ倍または1倍)
となっている。したがって、各矩形領域の複数のブロッ
クは各実プロセッサに同数ずつ均等に分散される。この
後、上記剰余配列の複数の列または行を、上記一方向に
並ぶ実プロセッサに、列または行単位で分散して割り当
てる。例えば、上記一方向に並ぶ実プロセッサに1列ま
たは1行ずつ順に周期的に割り当てる。このようにした
場合、上記一方向の実プロセッサ同士では割り当てられ
る仮想プロセッサの列数又は行数の差が高々1つにな
る。
このように、この発明の負荷配分方法によれば、ある矩
形領域の重みプロセッサや細胞プロセッサが1つの実プ
ロセッサに集中的に割り当てられることがなくなり、し
かも、実プロセッサに割り当てられる仮想プロセッサ数
の差が高々1つになる。したがって、実プロセッサ間の
計算負荷の偏りが解消して、並列処理の効率が高まり、
計算時間が短縮される。
〈実施例〉 以下、この発明のニューロコンピュータの負荷配分方法
を実施例により詳細に説明する。
第1図はこの発明を実施するのに用いるニューロコンピ
ュータを示している。このニューロコンピュータは、ホ
ストコンピュータ601と、行数P=6,列数Q=7の行列
に配置されたP×Q(=42)個の実プロセッサを備えて
いる。611,612,…,617は1行目、621,622,…,627は2行
目、以下同様に661,662,…,667は6行目の各実プロセッ
サを示している。この行列の各実プロセッサは、上下左
右の4つの実プロセッサと格子状に接続されている。な
お、第1列の実プロセッサ611,621,…,661はそれぞれ同
じ行の第7列の実プロセッサ617,627,…,667に接続さ
れ、第1行の実プロセッサ661,612,…,617はそれぞれ同
じ列の第6行の実プロセッサ661,662,…,667に接続され
ている。第1行目の実プロセッサ611,612,…,617はバス
ライン602を介して上記ホストコンピュータ601に接続さ
れている。
シュミレートすべき神経回路網のモデルが第2図に示す
パーセプトロンである場合について説明する。
このパーセプトロンは、第10図(a)に示した階層的な
ネットワークの1例であって、入力層,第1隠れ層,第
2隠れ層および出力層の4層からなっている。上記入力
層はI=3000個の外部入力を有し、第1隠れ層,第2隠
れ層,出力層はそれぞれ2000,2000,1000個の神経素子を
有している。また、このパーセプトロンは、入力層と第
1隠れ層の間に6×106の結合を有しており、同様に第
1隠れ層と第2隠れ層との間に4×106の結合、第2隠
れ層と出力層との間に2×106の結合を有している。そ
して、このパーセプトロンを円環状もしくは矩形面結合
の仮想プロセッサでシュミレートする場合、この仮想プ
ロセッサの行列配置は第3図に示すようになる。この仮
想プロセッサの行列は、上記パーセプトロンの外部入力
数をI、神経素子数をJとすると、(J+1)=5001
行,(I+J)=8000列からなり、重みプロセッサWだ
けが配置される矩形領域401,406,411と、結合がないた
め零プロセッサOだけが配置される矩形領域403,404,40
5,408,409,410と、対角成分に細胞プロセッサCだけが
配置され非対角成分に零プロセッサOだけが配置された
正方形領域402,407,412と、第1行の入力プロセッサ,
出力プロセッサおよび入出力プロセッサで構成される領
域400とで構成されている。ここで、矩形領域401,405,4
09を併せた領域は上記入力層の入力端子から他の神経素
子への結合をあらわす領域であり、これを領域Aiとす
る。矩形領域402,406,410を併せた領域は第1隠れ層の
神経素子から他の神経素子への結合をあらわす領域であ
り、これを領域Biとする。矩形領域403,407,411を併せ
た領域は第2隠れ層の神経素子から他の神経素子への結
合をあらわす領域であり、これを領域Ciとする。矩形領
域404,408,412を併せた領域は出力層の神経素子から他
の神経素子への結合をあらわす領域であり、これを領域
Diとする。第1行の入力・出力・入出力プロセッサで構
成される領域400を領域Eiとする。矩形領域401,102,40
3,404を併せた領域は他の神経素子から第1隠れ層の神
経素子への結合をあらわす領域であり、これを領域Fiと
する。矩形領域405,406,407,408を併せた領域は他の神
経素子から第2隠れ層の神経素子への結合をあらわす領
域であり、これを領域Giとする。矩形領域409,410,411,
412を併せた矩形領域は他の神経素子から出力層の神経
素子への結合をあらわす領域であり、これを領域Hiとす
る。なお、上記各領域の行数および列数がわかるよう
に、第3図中に行番号、列番号を示している。
上記仮想プロセッサを次のようにして実プロセッサに割
り当てる。なお、基本的な方針として、5種類の仮想プ
ロセッサのうち細胞プロセッサCが最も計算負荷が大き
いので、これを含む矩形領域を行方向および列方向に分
割する一方、これを含まない領域を列方向に分割する
(行方向には分割しない)ようにする。分割して形成し
た小行列(以下、「ブロック」という)を実プロセッサ
に各々割り当てるようにする。上記分割の際に生じる剰
余の行または列は、一旦、別々に所定の剰余配列に格納
してから、実プロセッサに各々割り当てるようにする。
まず、細胞プロセッサCを含まない矩形領域Aiを列
方向に(縦に)略均等にQ(=7)分割する。このと
き、1ブロック当たり428列となり、剰余が4列生ず
る。そして、上記実プロセッサの7列の各列に上記ブロ
ックを1つずつ割り当てる。
次に、細胞プロセッサを含む矩形領域Biを行方向,
列方向にそれぞれP×Q(=42)分割する。矩形領域C
i,Diについても同様に行方向,列方向に42分割する。上
記矩形領域Bi,Ciは、ともに1ブロック当たり47列とな
り、剰余が26列生ずる。矩形領域Diは、1ブロック当た
り23列となり、剰余が34列生ずる。なお、第4図は、上
記矩形領域BiとFiとが重なっている領域BiFiを分割した
様子を示している。この領域BiFiを列方向,行方向にそ
れぞれ42分割した後、7ブロックずつ併せたものが領域
711,712,…となる。これらの領域711,712,…はそれぞれ
ブロック7111〜7117,7121〜7127,…を含んでいる。そし
て、上記矩形領域Biのブロックを列方向に7ブロック周
期で取り出して、取り出した6ブロックを実プロセッサ
の1つの列に割り当てる。実プロセッサの各列につい
て、このように6ブロックずつ割り当てる。上記領域Bi
Fiの場合、実プロセッサの第1列に1ブロック47列(1
ブロック)ずつ329列(7ブロック)周期で仮想プロセ
ッサを割り当てる。例えば、第1図に示した実プロセッ
サ611に7111,7121,7131,7141,7151,7161の6ブロックを
割り当て、同様に、実プロセッサ612にブロック7112〜7
162,実プロセッサ613にブロック7113〜7163,実プロセッ
サ614にブロック7114〜7164,実プロセッサ617にブロッ
ク7117〜7167を割り当てる。
上記仮想プロセッサの行方向に関して、矩形領域E
を除く各矩形領域を、列方向と同様に、P×Q(=42)
分割した場合、矩形領域Bi,Giは、それぞれ1ブロック
当たり47行となり、剰余が26行生ずる。矩形領域Hiは、
1ブロック当たり23行となり、剰余が34行生ずる。そし
て、各矩形領域内で、行を置換せず、そのまま7ブロッ
クを併せて、すなわち、矩形領域Fi,Giは329行、矩形領
域Hiは161行にそれぞれまとめて、上記実プロセッサの
行の各々に割り当てる。例えば、実プロセッサ611にブ
ロック7111〜7161、実プロセッサ621にブロック7211〜7
261、実プロセッサ631に7311〜7361、…、実プロセッサ
661にブロック7611〜7661を割り当てる。
上に述べた各ブロックの割り当ての後、各分割の際
に生じた剰余を次のようにして実プロセッサに割り当て
る。
まず、列方向の分割の際に生じた剰余の処理を行う。予
め準備した剰余配列に、上記矩形領域Aiを7分割した際
の剰余4列(第2997,2998,2999,3000列)、矩形領域Bi,
CiおよびDiをそれぞれ42分割した際の剰余26列(第4975
列〜5000列),26列(第6975列〜第7000列),34列(第79
67列〜第8000列)の合計90列を格納する。そして、この
剰余配列の列を7列の実プロセッサに1列ずつ巡回して
割り当てていく。すなわち、第1実プロセッサ列から第
6実プロセッサ列には13列、第7実プロセッサ列には12
列の仮想プロセッサ列を新たに割り当てる。例えば、実
プロセッサの第1列には第2997,4978,4985,4992,4999,6
980,6987,6994,7967,7974,7981,7988,7995列の13列を、
新たに割り当てる。
次に、行方向の分割の際に生じた剰余の処理を行う。上
記剰余配列に、上記矩形領域Fi,GiおよびHiをそれぞれ4
2分割した際の剰余26行(第1976行〜第2001行),26行
(第3976行〜第4001行),34行(第4968行〜第5001行)
の合計86行を格納する。そして、上記実プロセッサの第
1行に矩形領域Eiを既に割り当てたので、上記剰余配列
の行を、6行の実プロセッサの第2行から1行ずつ巡回
して割り当てていく。すなわち、矩形領域Eiの1行を含
めて、実プロセッサの第1行〜第3行にそれぞれ仮想プ
ロセッサの15行、第4行〜第6行にそれぞれ14行を割り
当てる。例えば、実プロセッサの第1行に、仮想プロセ
ッサの第1行(領域E),第1981,1987,1993,1999,397
9,3985,3991,3997,4969,4975,4981,4987,4993,4999行の
合計15行を割り当てる。
第5図は、このようにして、上記仮想プロセッサを第1
行,第1列目の実プロセッサ611に割り当てた配置を示
している。図中、aは矩形領域Aiを割り当てた領域、
b1,b2,b3,…,b6は矩形領域Biを割り当てた領域、c
1,12,…,c6は矩形領域Ciを割り当てた領域、d1,d2
…,d6は矩形領域Diを割り当てた領域、802は列方向の
各分割の際に生じた剰余を割り当てた領域を示し、一
方、eは矩形領域Eiを割り当てた領域、fは矩形領域Fi
を割り当てた領域、gは矩形領域Giを割り当てた領域、
hは矩形領域Hiを割り当てた領域、801は行方向の各分
割の際に生じた剰余を割り当てた領域を示している。な
お、列方向および行方向の各数字は仮想プロセッサの列
数,行数を示している。
このようにして、パーセプトロンモデルをシュミレート
する仮想プロセッサを分割して、実プロセッサに各々割
り当てた場合、各矩形領域に含まれた重みプロセッサW
や細胞プロセッサCを実プロセッサに均等に割り当てる
ことができ、実プロセッサ間の計算負荷の偏りを解消す
ることができる。また、剰余配列を順に実プロセッサに
配分することによって、実プロセッサに割り当てられる
仮想プロセッサ数の差を最終的に高々1つにすることが
できる。したがって、並列処理の効率を高めて、計算時
間を短縮することができる。
なお、一般のパーセプトロンについて、次のようにして
一般化して割り当てることができる。
神経回路網の入力ベクトルの次元(第0層の神経素子
数)をL0、入力層および出力層を含む全層数をM、第k
層の神経素子数をLk、全神経素子の数を とし、使用する実プロセッサをP行Q列(P×Q個)と
する。そして、第6図に示す処理手順によって仮想プロ
セッサの割り当てをする。ここで、(AmodB)はAをB
で割った剰余を表わすものとし、int(x)はxの整数
部を表わすものとする。
まず、列アドレスを置換する。sを仮想プロセッサ
行列の列アドレスとする。
(a)0<s≦L0のとき 列アドレスsの置換アドレスは第n列目実プロセッサ
で、 n=int(s/int(L0/Q))+1 …(1) 先頭から第u列目であり、 u=s−(n−1)・int(L0/Q) …(2) 剰余が存在する場合、すなわち(L0modQ)≠0のとき L0−(L0modQ)<s≦L0 なるsを剰余配列(surplus)に格納する。
(b)Ck<s≦Ck+Lkのとき ただし、Dk PQ=int(Lk/P/Q), とする。
列アドレスsの置換アドレスは第n列目実プロセッサ
で、 n=(int((s−Ck)/Dk PQ)modQ)+1 …(3) 先頭から第u列目であり、 剰余が存在する場合、すなわち(Lk mod(P×Q))≠
0のとき Ck+Lk−(Lk mod(P×Q))<s≦Ck+Lk …(5) なるsを剰余配列(surplus)に格納する(ステップS1,
S2) 次に、剰余配列を処理する。
上記剰余配列(surplus)を順にQ列の実プロセッサに
1列ずつ巡回して割り当てる(ステップS3)。
次に、行アドレスを置換する。tを行アドレスとす
る。
t=1のとき 第1行プロセッサに割り当てる。
Ck+1<t≦Ck+Lk+1のとき ただし、 とする。
行アドレスtの置換アドレスは第m行目実プロセッサで m=int((t−Ck−1)/Q/Dk PQ)+1 …(6) 先頭から第v行目であり、 剰余が存在する場合、すなわち(Lk mod(P×Q))≠
0のとき Ck+Lk−(Lk mod(P×Q))<t≦Ck+Lk …(8) なるtを剰余配列(surplus)に格納する(ステップS4,
S5)。
最後に、剰余配列を処理する。
上記剰余配列(surplus)を順にP行の実プロセッサに
第2実プロセッサ行から始めて1行ずつ巡回して割り当
てる(ステップS6)。
次に、上記ニューロコンピュータが行数P=2,列数Q=
3の行列に配置されたP×Q(=6)個の実プロセッサ
を備えた場合であって、シュミレートすべき神経回路網
のモデルが第7図に示すホップフィールドである場合に
ついて説明する。
このホップフィールドは、第10図(d)に示したものの
1例であって、神経回路網の全神経素子数をI=1000と
し、結合リンクの数を(I×I)とする。そして、この
ホップフィールドを円環状もしくは矩形面結合の仮想プ
ロセッサでシュミレートする場合、仮想プロセッサの行
列配置は第8図に示すようになる。この仮想プロセッサ
の行列は、(I+1)=1001行,2I=2000列であって、
対角成分に重みプロセッサWだけが配置され、非対角成
分に零プロセッサOだけが配置された領域1101と、対角
成分に細胞プロセッサだけが配置され非対角成分に重み
プロセッサWだけが配置された領域1102と、入力プロセ
ッサ(記号↓で示す)および出力プロセッサ(記号↑で
示す)だけが配置された領域(第1行)1103とで構成さ
れている。
上記仮想プロセッサを、第9図に示した処理手順によっ
て、次のようにして実プロセッサに割り当てる。
まず、領域1101,領域1102を列方向に略均等にそれ
ぞれP×Q(=6)分割する。領域1101,領域1102は、
ともに1ブロック当たり166列に分割され、剰余が4列
ずつ生じる。そして、領域1101,領域1102のブロックを
併せて、列方向に3ブロック周期で取り出して、取り出
した4ブロックを実プロセッサの1つの列に割り当て
る。実プロセッサの各列について、このように4ブロッ
クずつ割り当てる。
一方、上記分割の際に生じた剰余8列は、一旦、予め準
備した剰余配列に格納して、実プロセッサの第1列から
1列ずつ巡回して各列に割り当てる。例えば、実プロセ
ッサの第1列には第997,1000,1999列の合計3列を割り
当て、同様に第2列には3列、第3列には2列を割り当
てる。
次に、上記領域1101および領域1102を行方向にとも
に略均等にP×Q(=6)分割する。1ブロック当たり
166行となり、剰余が4行生ずる。そして、行を置換せ
ず、3ブロック毎にまとめてそのまま上記実プロセッサ
の各行に割り当てる。例えば、実プロセッサの第1行に
上記仮想プロセッサの第2行〜第499行目までを割り当
てる。また、上記剰余4行は、剰余配列に一旦格納した
後、2行の実プロセッサの第2行から1行ずつ巡回して
割り当てる。例えば、実プロセッサの第1行に仮想プロ
セッサの第999,1001行を、実プロセッサの第2行に仮想
プロセッサの第998,1000行をそれぞれ割り当てる。
第9図(a),(b)は、このようにして、仮想プロセ
ッサを第1行第1列,第2行第2列の実プロセッサにそ
れぞれ割り当てた配置を示している。
このようにして、ホップフィールドモデルをシュミレー
トする仮想プロセッサを分割して、実プロセッサに割り
当てた場合、上記パーセプトロンモデルの場合と同様
に、このニューロコンピュータは、実プロセッサ間の計
算負荷の偏りを解消することができ、しかも、実プロセ
ッサに割り当てられる仮想プロセッサ数の差を高々1つ
にすることができる。したがって、並列処理の効率を高
めて、計算時間を短縮することができる。
なお、一般のホップフィールドについて、第9図に示し
た処理手順に従って、次のように一般化して割り当てる
ことができる。
まず、列アドレスを置換する。sを列アドレスとす
る。
(a)0<s≦Iのとき ただし、DPQ=int(I/P/Q)とする。
列アドレスsの置換アドレスは第n列目実プロセッサ
で、 n=int(s/DPQ))mod Q)+1 …(9) 先頭から第u列目であり、 u=int(s/Q/DPQ)×DPQ+(s modDPQ)+1 …(1
0) 剰余が存在する場合、すなわち(I mod(P×Q))
≠0のとき I−(I mod(P×Q))<s≦I なるsを剰余配列(surplus)に格納する。
(b)I<s≦2Iのとき 列アドレスsの置換アドレスは第n列目実プロセッサ
で、 n=int((s−I)/Q/DPQ)+1 …(11) 先頭から第u列目であり、 u=DPQ×P+int((s−I)/Q/DPQ)×DPQ+((s
−I)modDPQ)+1 …(12) 剰余が存在する場合、すなわち(I mod(P×Q))
≠0のとき 2I−(I mod(P×Q))<s≦2I …(13) なるsを剰余配列(surplus)に格納する(ステップS1,
S2)。
次に、剰余配列を処理する。
上記剰余配列(surplus)を順にQ列の実プロセッサに
1列ずつ巡回して割り当てる(ステップS3)。
次に、行アドレスを置換する。tを行アドレスとす
る。
t=1のとき 第1行プロセッサに割り当てる。
1<tのとき 行アドレスtの置換アドレスは第m行目実プロセッサで m=int((t−1)/DPQ/Q)+1 …(14) 先頭から第v行目であり、 v=t−1−(m−1)・Q・DPQ+δ1m …(15) 剰余が存在する場合、すなわち(I mod(P×Q))
≠0のとき I+1−(I mod(P×Q))<t≦I+1 …(16) なるtを剰余配列(surplus)に格納する(ステップS4,
S5)。
最後に、剰余配列を処理する。
上記剰余配列(surplus)を順にP行の実プロセッサに
第2実プロセッサ行から始めて1行ずつ巡回して割り当
てる(ステップS6)。
以上、この発明の負荷配分方法を多層パーセプトロンお
よびホップフィールドモデルに適用した例について述べ
たが、これらのモデルに限られるものではなく、第10図
(b)または(c)に示した他のモデルについても同様
に適用することができる。
〈発明の効果〉 以上より明らかなように、この発明のニューロコンピュ
ータの負荷配分方法では、仮想プロセッサの行列の各矩
形領域を、列方向または行方向の少なくとも一方向に、
全実プロセッサ数(P×Q)または上記一方向の実プロ
セッサ数QもしくはPで分割して、上記各矩形領域に列
数または行数が等しい複数のブロックを形成するととも
に、上記各矩形領域で生じた剰余の列または行をまとめ
て剰余配列を形成し、上記各矩形領域の複数のブロック
を、上記一方向に並ぶ実プロセッサに、ブロック単位で
分散して割り当てた後、上記剰余配列の複数の列または
行を、上記一方向に並ぶ実プロセッサに、列または行単
位で分散して割り当てるので、ある矩形領域の重みプロ
セッサや細胞プロセッサが1つの実プロセッサに集中的
に割り当てられるのを防止でき、しかも、実プロセッサ
に割り当てられる仮想プロセッサ数の差を高々1つにす
ることができる。したがって、実プロセッサ間の計算負
荷の偏りを解消することができ、並列処理の効率を高め
て、計算時間を短縮することができる。
【図面の簡単な説明】
第1図はこの発明を実施するのに用いるニューロコンピ
ュータを示す図、第2図はパーセプトロンモデルを示す
図、第3図は上記パーセプトロンモデルをシュミレート
する仮想プロセッサの行列を示す図、第4図は上記仮想
プロセッサの行列の一部を示す図、第5図は上記仮想プ
ロセッサを割り当てた実プロセッサの行列の一部を示す
図、第6図は上記仮想プロセッサを実プロセッサに割り
当てる手順を示すフローチャート、第7図はホップフィ
ールドモデルを示す図、第8図は上記ホップフィールド
モデルをシュミレートする仮想プロセッサの行列を示す
図、第9図(a),(b)はそれぞれ上記仮想プロセッ
サを割り当てた実プロセッサの行列の一部を示す図、第
10図(a),(b),(c),(d)はそれぞれ神経回
路網のモデルを示す図、第11図(a),(b),
(c),(d)はそれぞれ上記神経回路網のモデルをシ
ュミレートする仮想プロセッサの行列を示す図、第12図
(a),(b),(c),(d),(e)はそれぞれ上
記仮想プロセッサの行列の所定の矩形領域を分類した行
列パターンを示す図である。 601…ホストコンピュータ、602…バスライン、611,612,
…,667…実プロセッサ、Ai,Bi,Ci,Di,Ei,Fi,Gi,Hi,110
1,1102,1103…矩形領域、W…重みプロセッサ、O…零
プロセッサ、C…細胞プロセッサ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】神経回路網のモデルに対応して行列に配置
    した、神経細胞に相当する細胞プロセッサと、シナプス
    の結合に相当する重みプロセッサと、外部装置から入力
    データを取り込む入力プロセッサと、外部装置にデータ
    を転送する出力プロセッサと、外部装置から入力データ
    を取り込んで外部装置にデータを転送する入出力プロセ
    ッサとの5種類の仮想プロセッサを、神経回路網の計算
    を並列に行うためのP行,Q列の行列に配列した実プロセ
    ッサに割り当てるニューロコンピュータの負荷配分方法
    であって、 上記仮想プロセッサの行列は、神経回路網のモデルに対
    応して、同種のプロセッサのみが隣接して並ぶ矩形領域
    と、ある1種のプロセッサが対角成分を占め、異種のプ
    ロセッサが非対角成分を占める矩形領域とを有し、 上記各矩形領域を、列方向または行方向の少なくとも一
    方向に、全実プロセッサ数(P×Q)または上記一方向
    の実プロセッサ数QもしくはPで分割して、上記各矩形
    領域に列数または行数が等しい複数のブロックを形成す
    るとともに、上記各矩形領域で生じた剰余の列または行
    をまとめて剰余配列を形成し、 上記各矩形領域の複数のブロックを、上記一方向に並ぶ
    実プロセッサに、ブロック単位で分散して割り当てた
    後、 上記剰余配列の複数の列または行を、上記一方向に並ぶ
    実プロセッサに、列または行単位で分散して割り当てる
    ことを特徴とするニューロコンピュータの負荷配分方
    法。
JP1127274A 1988-12-29 1989-05-19 ニューロコンピュータの負荷配分方法 Expired - Fee Related JPH0782482B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP1127274A JPH0782482B2 (ja) 1989-05-19 1989-05-19 ニューロコンピュータの負荷配分方法
EP89124130A EP0377221B1 (en) 1988-12-29 1989-12-29 Neuro-computer
DE68927474T DE68927474T2 (de) 1988-12-29 1989-12-29 Neuro-Rechner
US07/885,239 US5170463A (en) 1988-12-29 1992-05-20 Neuro-computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1127274A JPH0782482B2 (ja) 1989-05-19 1989-05-19 ニューロコンピュータの負荷配分方法

Publications (2)

Publication Number Publication Date
JPH02306365A JPH02306365A (ja) 1990-12-19
JPH0782482B2 true JPH0782482B2 (ja) 1995-09-06

Family

ID=14955935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1127274A Expired - Fee Related JPH0782482B2 (ja) 1988-12-29 1989-05-19 ニューロコンピュータの負荷配分方法

Country Status (1)

Country Link
JP (1) JPH0782482B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6691297B2 (ja) 2016-07-13 2020-04-28 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6907700B2 (ja) * 2017-05-23 2021-07-21 富士通株式会社 情報処理装置、マルチスレッド行列演算方法、およびマルチスレッド行列演算プログラム
US11847553B2 (en) * 2018-06-14 2023-12-19 International Business Machines Corporation Parallel computational architecture with reconfigurable core-level and vector-level parallelism

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6488767A (en) * 1987-09-30 1989-04-03 Hitachi Ltd Parallel computer

Also Published As

Publication number Publication date
JPH02306365A (ja) 1990-12-19

Similar Documents

Publication Publication Date Title
TWI803663B (zh) 一種運算裝置和運算方法
US20160196488A1 (en) Neural network computing device, system and method
US5694602A (en) Weighted system and method for spatial allocation of a parallel load
CN104641385B (zh) 神经核心电路及为多个神经元保存神经元属性的方法
CN108416434A (zh) 针对神经网络的卷积层与全连接层进行加速的电路结构
EP0377221A2 (en) Neuro-computer
US5146543A (en) Scalable neural array processor
US5148515A (en) Scalable neural array processor and method
EP0459222A2 (en) Neural network
CN107516131A (zh) 卷积计算的加速方法和装置、电子设备和存储介质
JPH0782482B2 (ja) ニューロコンピュータの負荷配分方法
JP2809791B2 (ja) モジュール割当方法
CN111667052A (zh) 专用神经网络加速器的标准与非标准卷积一致性变换方法
CN111722923A (zh) 一种异构资源的调用方法、装置和计算机可读存储介质
Wolff et al. ParSPIKE-a parallel DSP-accelerator for dynamic simulation of large spiking neural networks
US5146420A (en) Communicating adder tree system for neural array processor
JP7251354B2 (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
CN116805155B (zh) 一种lstm网络处理方法、装置、设备及可读存储介质
JP2000003352A (ja) 分子動力学法計算装置
CN113196299A (zh) 数据处理模块、数据处理系统及数据处理方法
JP2020080048A (ja) 並列処理装置およびプログラム
Barr et al. Implementation of multi-layer leaky integrator networks on a cellular processor array
Crandall et al. Problem decomposition for non-uniformity and processor heterogeneity
Usui et al. Application of block-structured adaptive mesh refinement to particle simulation
US20230376562A1 (en) Integrated circuit apparatus for matrix multiplication operation, computing device, system, and method

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees