JPH07239843A - 並列演算処理装置 - Google Patents
並列演算処理装置Info
- Publication number
- JPH07239843A JPH07239843A JP2811094A JP2811094A JPH07239843A JP H07239843 A JPH07239843 A JP H07239843A JP 2811094 A JP2811094 A JP 2811094A JP 2811094 A JP2811094 A JP 2811094A JP H07239843 A JPH07239843 A JP H07239843A
- Authority
- JP
- Japan
- Prior art keywords
- data
- arithmetic
- calculation
- arithmetic processing
- 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.)
- Withdrawn
Links
Landscapes
- Multi Processors (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【構成】制御部2は、行列Aを1行毎に分割し、1行内
の非零要素の数を表わす要素数データbi と、すべての
非零要素についての列番号ci と要素の値di の組から
1行毎の演算データを形成し、演算データとベクトルX
のデータxi を各演算処理部1a〜1dに供給し、各演
算処理部1a〜1dは、演算データをSAM20に記憶
し、ベクトルXのデータxi をRAM22に記憶する。
各演算処理部1a〜1dはSAM20に記憶した要素数
データbi を読出し、要素数データbi に基づいて列番
号ci と要素の値di を読み出し、列番号ci に対応す
るベクトルXのデータxi をRAM22から読み出して
演算部11により演算を行ない、行列AとベクトルXの
内積を求める演算を各演算処理部1a〜1dで並列に行
なう。 【効果】 演算に要する記憶容量を低減でき、より効率
的で高速な演算を行なうことができる。
の非零要素の数を表わす要素数データbi と、すべての
非零要素についての列番号ci と要素の値di の組から
1行毎の演算データを形成し、演算データとベクトルX
のデータxi を各演算処理部1a〜1dに供給し、各演
算処理部1a〜1dは、演算データをSAM20に記憶
し、ベクトルXのデータxi をRAM22に記憶する。
各演算処理部1a〜1dはSAM20に記憶した要素数
データbi を読出し、要素数データbi に基づいて列番
号ci と要素の値di を読み出し、列番号ci に対応す
るベクトルXのデータxi をRAM22から読み出して
演算部11により演算を行ない、行列AとベクトルXの
内積を求める演算を各演算処理部1a〜1dで並列に行
なう。 【効果】 演算に要する記憶容量を低減でき、より効率
的で高速な演算を行なうことができる。
Description
【0001】
【産業上の利用分野】本発明は、例えば、複数の演算部
によりデータの演算を並列に行なう並列演算処理装置に
関し、特に、行列状のデータを演算する並列演算処理装
置に関する。
によりデータの演算を並列に行なう並列演算処理装置に
関し、特に、行列状のデータを演算する並列演算処理装
置に関する。
【0002】
【従来の技術】近年のコンピュータの発達と普及によっ
て、以前は実現不可能と思われていた大規模な科学技術
計算も現実的なものとなってきた。例えば電磁界解析や
流体の流動解析に用いられている差分法、有限要素法、
境界要素法等では、それらの解析の課程で非常に大きな
サイズの連立一次方程式の求解や行列の固有値計算な
ど、いわゆる行列演算が頻繁に現れる。
て、以前は実現不可能と思われていた大規模な科学技術
計算も現実的なものとなってきた。例えば電磁界解析や
流体の流動解析に用いられている差分法、有限要素法、
境界要素法等では、それらの解析の課程で非常に大きな
サイズの連立一次方程式の求解や行列の固有値計算な
ど、いわゆる行列演算が頻繁に現れる。
【0003】また、解析精度を向上させるために、行列
を大きくすることが考えられるが、行列が大きくなる
と、行列演算は、高速演算が可能なスーパーコンピュー
タ等をもってしても非常に時間がかり、高速処理が望ま
れている。
を大きくすることが考えられるが、行列が大きくなる
と、行列演算は、高速演算が可能なスーパーコンピュー
タ等をもってしても非常に時間がかり、高速処理が望ま
れている。
【0004】以上のような大きなサイズの行列演算では
演算処理部の処理速度の高速化と共に、高速で記憶容量
の大きい記憶装置が求められるが、一般に記憶装置の記
憶容量と動作速度は相反する関係にあるために、高速で
記憶容量の大きい記憶装置は、非常に高価で、また、装
置が大きなものとなる問題があった。
演算処理部の処理速度の高速化と共に、高速で記憶容量
の大きい記憶装置が求められるが、一般に記憶装置の記
憶容量と動作速度は相反する関係にあるために、高速で
記憶容量の大きい記憶装置は、非常に高価で、また、装
置が大きなものとなる問題があった。
【0005】このため、例えば図7に示すように、演算
処理部(CPU)61と大容量の主記憶装置63との間
に高速ではあるが比較的容量の小さいキャッシュメモリ
62を備え、予めデータを主記憶装置63からバスライ
ン65を介してキャッシュメモリ62に読出しておき、
CPU61は、バスライン64を介してキャッシュメモ
リ62からデータを読み出すことにより、データの高速
読出しを実現し、演算を高速化た演算処理装置が使用さ
れている。
処理部(CPU)61と大容量の主記憶装置63との間
に高速ではあるが比較的容量の小さいキャッシュメモリ
62を備え、予めデータを主記憶装置63からバスライ
ン65を介してキャッシュメモリ62に読出しておき、
CPU61は、バスライン64を介してキャッシュメモ
リ62からデータを読み出すことにより、データの高速
読出しを実現し、演算を高速化た演算処理装置が使用さ
れている。
【0006】また、例えば図8に示すように、行列演算
等の一連のデータに対しての同じ演算を高速に行なうた
めに、ベクトル、すなわち一連のデータを記憶するベク
トルレジスタ77を複数備え、このベクトルレジスタ7
7に記憶された一連のデータに対して浮動小数点(F
P:FloatingPoint)の加算器70、乗算
器71、除算器72等の演算器により演算を行い、これ
らの処理をパイプライン化することにより演算を高速化
した演算処理装置(所謂スーパーコンピュータ)が知ら
れている。
等の一連のデータに対しての同じ演算を高速に行なうた
めに、ベクトル、すなわち一連のデータを記憶するベク
トルレジスタ77を複数備え、このベクトルレジスタ7
7に記憶された一連のデータに対して浮動小数点(F
P:FloatingPoint)の加算器70、乗算
器71、除算器72等の演算器により演算を行い、これ
らの処理をパイプライン化することにより演算を高速化
した演算処理装置(所謂スーパーコンピュータ)が知ら
れている。
【0007】この演算処理装置では、演算に先だって、
ベクトル入出力装置(ベクトルI/O)79により、主
記憶装置81からデータライン78、80を介してデー
タを上記ベクトルレジスタ77に転送する。そして、ベ
クトルレジスタ77に転送されたデータは、入力バスラ
イン73を介して上記各演算器70〜72に供給され、
演算が終了した後、出力バスライン74を介して再度ベ
クトルレジスタ77に書き込まれる。さらに、演算結果
であるベクトルレジスタ77に書き込まれたデータは、
再度ベクトルI/O79を介して主記憶装置81に記憶
される。
ベクトル入出力装置(ベクトルI/O)79により、主
記憶装置81からデータライン78、80を介してデー
タを上記ベクトルレジスタ77に転送する。そして、ベ
クトルレジスタ77に転送されたデータは、入力バスラ
イン73を介して上記各演算器70〜72に供給され、
演算が終了した後、出力バスライン74を介して再度ベ
クトルレジスタ77に書き込まれる。さらに、演算結果
であるベクトルレジスタ77に書き込まれたデータは、
再度ベクトルI/O79を介して主記憶装置81に記憶
される。
【0008】
【発明が解決しようとする課題】しかしながら、上記キ
ャッシュメモリ62を使用した演算処理装置は、予めデ
ータを主記憶装置63からキャッシュメモリ62に読出
したデータ以外のデータが必要になると(ミスヒットす
ると)主記憶装置63から読み出す必要がある。一般に
キャッシュメモリ62の容量は小さく、大きなサイズの
行列の演算では、キャッシュメモリ62に入りきらない
データは、その都度、主記憶装置63から読み出す必要
があり、この読出しの時間中はCPU61が停止し、全
体としての演算速度が低下する問題があった。
ャッシュメモリ62を使用した演算処理装置は、予めデ
ータを主記憶装置63からキャッシュメモリ62に読出
したデータ以外のデータが必要になると(ミスヒットす
ると)主記憶装置63から読み出す必要がある。一般に
キャッシュメモリ62の容量は小さく、大きなサイズの
行列の演算では、キャッシュメモリ62に入りきらない
データは、その都度、主記憶装置63から読み出す必要
があり、この読出しの時間中はCPU61が停止し、全
体としての演算速度が低下する問題があった。
【0009】また、上記ベクトルレジスタ77を備えた
演算処理装置においても、一般にベクトルレジスタ77
の容量が小さいため、大きなサイズの行列の演算では、
ベクトルレジスタ77に記憶できない行列の要素(デー
タ)については主記憶装置81から読み出して演算する
必要があるため、演算速度を低下させていた。
演算処理装置においても、一般にベクトルレジスタ77
の容量が小さいため、大きなサイズの行列の演算では、
ベクトルレジスタ77に記憶できない行列の要素(デー
タ)については主記憶装置81から読み出して演算する
必要があるため、演算速度を低下させていた。
【0010】そこで、本件出願人は行列演算の際のデー
タの読出し順序等の特徴に着目し、図9及び図10に示
すように、複数の演算処理部で並列に演算を行なう並列
演算処理装置の各演算処理部にデータの連続的な書込み
及び読出しを行なうシリアルアクセスメモリを備え、演
算速度を高速化し、低コスト化及び小型化を実現した並
列演算処理装置を、例えば特願平5ー149597号と
して、先に提案している。
タの読出し順序等の特徴に着目し、図9及び図10に示
すように、複数の演算処理部で並列に演算を行なう並列
演算処理装置の各演算処理部にデータの連続的な書込み
及び読出しを行なうシリアルアクセスメモリを備え、演
算速度を高速化し、低コスト化及び小型化を実現した並
列演算処理装置を、例えば特願平5ー149597号と
して、先に提案している。
【0011】この並列演算処理装置は、図9に示すよう
に、演算を行なうm個の演算処理部101a、1010
b、101c・・・101mと、該演算処理部101a
〜101mの演算を制御する制御信号及び演算データ等
を出力する制御部102と、該制御部102からの演算
データ等を上記演算処理部101a〜101mに供給す
るデータバス103と、上記制御部102からの制御信
号を上記演算処理部101a〜101mに供給する制御
バス104とを備えている。
に、演算を行なうm個の演算処理部101a、1010
b、101c・・・101mと、該演算処理部101a
〜101mの演算を制御する制御信号及び演算データ等
を出力する制御部102と、該制御部102からの演算
データ等を上記演算処理部101a〜101mに供給す
るデータバス103と、上記制御部102からの制御信
号を上記演算処理部101a〜101mに供給する制御
バス104とを備えている。
【0012】また、上記各演算処理部101a〜101
mは、図10に示すように、上記制御部102から供給
される演算データを記憶する記憶部110と、該記憶部
110に記憶されたデータに対して演算を行なう演算部
111と、内部データバス112を介して上記データバ
ス103との通信を行なうバッファ113と、内部制御
バス114を介して上記制御バス104との通信を行な
うバッファ115と、通信に必要な制御信号を発生し、
バッファ115及び演算部111に供給する制御信号発
生部116とを備える。
mは、図10に示すように、上記制御部102から供給
される演算データを記憶する記憶部110と、該記憶部
110に記憶されたデータに対して演算を行なう演算部
111と、内部データバス112を介して上記データバ
ス103との通信を行なうバッファ113と、内部制御
バス114を介して上記制御バス104との通信を行な
うバッファ115と、通信に必要な制御信号を発生し、
バッファ115及び演算部111に供給する制御信号発
生部116とを備える。
【0013】さらに、上記記憶部110は、例えば上述
の図10に示すように、データの連続的な書込み及び読
出しを行なう、大容量の連続I/Oメモリ(以下、大容
量シリアルアクセスメモリ(SAM)という)120
と、容量の小さい小容量SAM121と、データのラン
ダムな書込み及び読出しを行なう、容量のそれほど大き
くない高速汎用RAM122とからなる。
の図10に示すように、データの連続的な書込み及び読
出しを行なう、大容量の連続I/Oメモリ(以下、大容
量シリアルアクセスメモリ(SAM)という)120
と、容量の小さい小容量SAM121と、データのラン
ダムな書込み及び読出しを行なう、容量のそれほど大き
くない高速汎用RAM122とからなる。
【0014】この並列演算処理装置では、例えば次の式
1に示す行列AとベクトルXの積を求めるときは、制御
部102は、行列Aを分割して、各行毎のデータを各演
算処理部に割り当てて供給する。例えば式1の場合では
8×8行列の2行分のデータを4つの演算処理部101
a〜101dに割り当てて各演算処理部101a〜10
1dに供給する。例えば演算処理部101aに第1行及
び第5行のデータを供給し、演算処理部101bに第2
行及び第6行のデータを供給し、演算処理部101cに
第3行及び第7行のデータを供給し、演算処理部101
dに第4行及び第8行のデータを供給する。
1に示す行列AとベクトルXの積を求めるときは、制御
部102は、行列Aを分割して、各行毎のデータを各演
算処理部に割り当てて供給する。例えば式1の場合では
8×8行列の2行分のデータを4つの演算処理部101
a〜101dに割り当てて各演算処理部101a〜10
1dに供給する。例えば演算処理部101aに第1行及
び第5行のデータを供給し、演算処理部101bに第2
行及び第6行のデータを供給し、演算処理部101cに
第3行及び第7行のデータを供給し、演算処理部101
dに第4行及び第8行のデータを供給する。
【0015】
【数1】
【0016】そして、制御部102は、ベクトルXの要
素xi を各演算処理部101a〜101dに供給し、各
演算処理部101a〜101dは、例えば図11に示す
ように、行列Aの各行を大容量SAM120に格納し、
ベクトルXの要素xi をRAM122に格納する。そし
て、演算時に各演算処理部101a〜101dの演算部
111は、各行の要素aijを連続的に読出し、要素aij
に対応するベクトルXの要素xi をRAM122から読
出し、次の式2に示す演算を行ない、この演算による結
果、すなわちベクトルYの要素yi をRAM122に記
憶する。そして制御部102は、各演算処理部101a
〜101dで求められたベクトルYの要素yi を結合し
てベクトルYを求めていた。この結果、この並列演算処
理装置は、行列演算を高速に実行できるようになってい
た。
素xi を各演算処理部101a〜101dに供給し、各
演算処理部101a〜101dは、例えば図11に示す
ように、行列Aの各行を大容量SAM120に格納し、
ベクトルXの要素xi をRAM122に格納する。そし
て、演算時に各演算処理部101a〜101dの演算部
111は、各行の要素aijを連続的に読出し、要素aij
に対応するベクトルXの要素xi をRAM122から読
出し、次の式2に示す演算を行ない、この演算による結
果、すなわちベクトルYの要素yi をRAM122に記
憶する。そして制御部102は、各演算処理部101a
〜101dで求められたベクトルYの要素yi を結合し
てベクトルYを求めていた。この結果、この並列演算処
理装置は、行列演算を高速に実行できるようになってい
た。
【0017】
【数2】
【0018】一方、差分法、有限要素法、線形計画法、
回路解析等に代表されるように、科学技術計算で現れる
大規模行列が要素の大部分が0である疎行列である場合
が多く、演算時に、この疎行列の全ての要素を記憶する
ならば膨大な記憶容量を必要とする問題があった。
回路解析等に代表されるように、科学技術計算で現れる
大規模行列が要素の大部分が0である疎行列である場合
が多く、演算時に、この疎行列の全ての要素を記憶する
ならば膨大な記憶容量を必要とする問題があった。
【0019】そこで、この疎行列内の要素の値が0であ
る0要素についての演算を行なわない、あるいは、0要
素の記憶を行なわないことにより演算時間を短縮する演
算処理装置が考えられていた。
る0要素についての演算を行なわない、あるいは、0要
素の記憶を行なわないことにより演算時間を短縮する演
算処理装置が考えられていた。
【0020】しかしながら、上記疎行列の0要素につい
ての演算を行なわない演算処理装置では、演算に際し
て、演算対象となる疎行列内の0でないデータの位置情
報が必要となり、全要素を記憶しておき、演算時に判断
する必要、若しくは、予め疎行列内の0でないデータの
位置情報を記憶しておく必要があり、これらの情報の読
出し時間により、結果的に全体の演算時間を増大させ、
上記シリアルアクセスメモリを使用した並列演算処理装
置に適用することは難しい。
ての演算を行なわない演算処理装置では、演算に際し
て、演算対象となる疎行列内の0でないデータの位置情
報が必要となり、全要素を記憶しておき、演算時に判断
する必要、若しくは、予め疎行列内の0でないデータの
位置情報を記憶しておく必要があり、これらの情報の読
出し時間により、結果的に全体の演算時間を増大させ、
上記シリアルアクセスメモリを使用した並列演算処理装
置に適用することは難しい。
【0021】また、上記疎行列の0要素の記憶を行なわ
ない演算処理装置では、演算データ以外に演算データの
位置情報を記憶する必要があり、演算に要する記憶容量
が増大し、位置情報の読出し時間により全体としての演
算時間が増大する問題があった。
ない演算処理装置では、演算データ以外に演算データの
位置情報を記憶する必要があり、演算に要する記憶容量
が増大し、位置情報の読出し時間により全体としての演
算時間が増大する問題があった。
【0022】本発明は、上述のような問題点に鑑みてな
されたものであり、大きなサイズの行列の演算を高速に
行なうことができ、演算に要する記憶容量を低減でき、
コストパフォーマンスを向上させることができ、小型化
を可能とした並列演算処理装置の提供を目的とする。
されたものであり、大きなサイズの行列の演算を高速に
行なうことができ、演算に要する記憶容量を低減でき、
コストパフォーマンスを向上させることができ、小型化
を可能とした並列演算処理装置の提供を目的とする。
【0023】
【課題を解決するための手段】上述の課題を解決するた
めに、本発明に係る並列演算処理装置は、演算データを
記憶する記憶部と、記憶部に記憶された演算データに対
して演算を行なう演算部を各々備えた複数の演算処理部
と、データを領域に分割し、領域内の0でない非零要素
の数を表わす要素数データと、非零要素の領域内の位置
を表わす位置データと、一連の位置データに対応する位
置の非零要素の値を表わす値データの組から演算データ
を形成し、演算データを各演算処理部に供給し、各演算
処理部の演算を制御する制御部とを有し、各演算処理部
は各記憶部に記憶した要素数データを読出し、要素数デ
ータに基づいて位置データ及び値データを読み出して演
算部により演算を行ない、データに対する演算を複数の
演算処理部で並列に行なうことを特徴とする。
めに、本発明に係る並列演算処理装置は、演算データを
記憶する記憶部と、記憶部に記憶された演算データに対
して演算を行なう演算部を各々備えた複数の演算処理部
と、データを領域に分割し、領域内の0でない非零要素
の数を表わす要素数データと、非零要素の領域内の位置
を表わす位置データと、一連の位置データに対応する位
置の非零要素の値を表わす値データの組から演算データ
を形成し、演算データを各演算処理部に供給し、各演算
処理部の演算を制御する制御部とを有し、各演算処理部
は各記憶部に記憶した要素数データを読出し、要素数デ
ータに基づいて位置データ及び値データを読み出して演
算部により演算を行ない、データに対する演算を複数の
演算処理部で並列に行なうことを特徴とする。
【0024】また、本発明に係る並列演算処理装置は、
制御部が行列状のデータを1行毎に分割し、1行内の非
零要素数を要素数データとし、非零要素の1行内での位
置を位置データとして、行列状のデータの行単位で演算
データを形成し、各演算処理部に供給することを特徴と
する。
制御部が行列状のデータを1行毎に分割し、1行内の非
零要素数を要素数データとし、非零要素の1行内での位
置を位置データとして、行列状のデータの行単位で演算
データを形成し、各演算処理部に供給することを特徴と
する。
【0025】また、本発明に係る並列演算処理装置は、
記憶部がデータの連続的な書込み及び読出しを行なうシ
リアルアクセスメモリを備えることを特徴とする。
記憶部がデータの連続的な書込み及び読出しを行なうシ
リアルアクセスメモリを備えることを特徴とする。
【0026】また、本発明に係る並列演算処理装置は、
制御部が各演算処理部の負荷が均等となるように演算デ
ータを各演算処理部に供給することを特徴とする。
制御部が各演算処理部の負荷が均等となるように演算デ
ータを各演算処理部に供給することを特徴とする。
【0027】
【作用】本発明に係る並列演算処理装置では、制御部
は、行列状のデータを領域に分割し、領域内の0でない
非零要素の数を表わす要素数データと、非零要素の位置
を表わす位置データと、一連の位置データに対応する位
置の非零要素の値を表わす値データの組から演算データ
を形成し、演算データを各演算処理部に供給し、各演算
処理部の演算を制御する。各演算処理部は制御部から供
給された演算データを記憶部に供給し、演算データが記
憶部に記憶される。そして、各演算処理部は記憶部に記
憶された要素数データを読出し、要素数データに基づい
て位置データ及び値データを読み出して並列に演算を行
なう。
は、行列状のデータを領域に分割し、領域内の0でない
非零要素の数を表わす要素数データと、非零要素の位置
を表わす位置データと、一連の位置データに対応する位
置の非零要素の値を表わす値データの組から演算データ
を形成し、演算データを各演算処理部に供給し、各演算
処理部の演算を制御する。各演算処理部は制御部から供
給された演算データを記憶部に供給し、演算データが記
憶部に記憶される。そして、各演算処理部は記憶部に記
憶された要素数データを読出し、要素数データに基づい
て位置データ及び値データを読み出して並列に演算を行
なう。
【0028】また、本発明に係る並列演算処理装置で
は、制御部は、行列状のデータを1行毎に分割し、1行
内の非零要素数を上記要素数データとし、非零要素の上
記1行内での位置を上記位置データとし、一連の位置デ
ータに対応する位置の非零要素の値を表わす値データの
組から行列状のデータの行単位で上記演算データを形成
し、演算データを演算処理部に供給し、各演算処理部の
演算を制御する。各演算処理部は制御部から供給された
演算データを記憶部に供給し、演算データが記憶部に記
憶される。そして、各演算処理部は記憶部に記憶した要
素数データを読出し、要素数データに基づいて位置デー
タ及び値データを読み出して並列に演算を行なう。
は、制御部は、行列状のデータを1行毎に分割し、1行
内の非零要素数を上記要素数データとし、非零要素の上
記1行内での位置を上記位置データとし、一連の位置デ
ータに対応する位置の非零要素の値を表わす値データの
組から行列状のデータの行単位で上記演算データを形成
し、演算データを演算処理部に供給し、各演算処理部の
演算を制御する。各演算処理部は制御部から供給された
演算データを記憶部に供給し、演算データが記憶部に記
憶される。そして、各演算処理部は記憶部に記憶した要
素数データを読出し、要素数データに基づいて位置デー
タ及び値データを読み出して並列に演算を行なう。
【0029】また、本発明に係る並列演算処理装置で
は、制御部は、データを領域に分割し、領域内の0でな
い非零要素の数を表わす要素数データと、非零要素の位
置を表わす位置データと、一連の位置データに対応する
位置の非零要素の値を表わす値データの組から演算デー
タを形成し、演算データを各演算処理部に供給し、各演
算処理部の演算を制御する。各演算処理部は制御部から
供給された演算データをシリアルアクセスメモリに連続
的に供給し、演算データがシリアルアクセスメモリに記
憶される。そして、各演算処理部はシリアルアクセスメ
モリに記憶した要素数データを読み出し、要素数データ
に基づいて位置データ及び値データを連続的に読み出し
て並列に演算を行なう。
は、制御部は、データを領域に分割し、領域内の0でな
い非零要素の数を表わす要素数データと、非零要素の位
置を表わす位置データと、一連の位置データに対応する
位置の非零要素の値を表わす値データの組から演算デー
タを形成し、演算データを各演算処理部に供給し、各演
算処理部の演算を制御する。各演算処理部は制御部から
供給された演算データをシリアルアクセスメモリに連続
的に供給し、演算データがシリアルアクセスメモリに記
憶される。そして、各演算処理部はシリアルアクセスメ
モリに記憶した要素数データを読み出し、要素数データ
に基づいて位置データ及び値データを連続的に読み出し
て並列に演算を行なう。
【0030】また、本発明に係る並列演算処理装置で
は、制御部は、データを領域に分割し、領域内の0でな
い非零要素の数を表わす要素数データと、非零要素の位
置を表わす位置データと、一連の位置データに対応する
位置の非零要素の値を表わす値データの組から演算デー
タを形成し、各演算処理部の負荷が均等となるように演
算データを各演算処理部に供給し、各演算処理部の演算
を制御する。各演算処理部は制御部から供給された演算
データを記憶部に供給し、演算データが記憶部に記憶さ
れる。そして、各演算処理部は記憶部より要素数データ
を読出し、要素数データに基づいて位置データ及び値デ
ータを読み出して演算部により演算を行ない並列に演算
を行なう。
は、制御部は、データを領域に分割し、領域内の0でな
い非零要素の数を表わす要素数データと、非零要素の位
置を表わす位置データと、一連の位置データに対応する
位置の非零要素の値を表わす値データの組から演算デー
タを形成し、各演算処理部の負荷が均等となるように演
算データを各演算処理部に供給し、各演算処理部の演算
を制御する。各演算処理部は制御部から供給された演算
データを記憶部に供給し、演算データが記憶部に記憶さ
れる。そして、各演算処理部は記憶部より要素数データ
を読出し、要素数データに基づいて位置データ及び値デ
ータを読み出して演算部により演算を行ない並列に演算
を行なう。
【0031】
【実施例】以下、本発明に係る並列演算処理装置の好適
な実施例を図面を参照しながら詳細に説明する。
な実施例を図面を参照しながら詳細に説明する。
【0032】この並列演算処理装置は、例えば図1に示
すように、演算を行なうm個の演算処理部1a、1b、
1c・・・1mと、該演算制御部1a〜1mを制御する
制御信号及び演算データ等を出力する制御部2と、該制
御部2からの演算データを上記演算制御部1a〜1mに
供給するデータバス3と、上記制御部2からの制御信号
を上記演算制御部1a〜1mに供給する制御バス4とを
備えている。
すように、演算を行なうm個の演算処理部1a、1b、
1c・・・1mと、該演算制御部1a〜1mを制御する
制御信号及び演算データ等を出力する制御部2と、該制
御部2からの演算データを上記演算制御部1a〜1mに
供給するデータバス3と、上記制御部2からの制御信号
を上記演算制御部1a〜1mに供給する制御バス4とを
備えている。
【0033】上記各演算制御部1a〜1mは、例えば図
2に示すように、上記制御部2から供給される演算デー
タを記憶する記憶部10と、該記憶部10に記憶された
データに対して演算を行なう演算部11と、内部データ
バス12を介して上記データバス3との通信を行なうバ
ッファ13と、内部制御バス14を介して上記制御バス
4との通信を行なうバッファ15と、通信に必要な制御
信号を発生し、バッファ15及び演算部11に供給する
制御信号発生部16とを備える。各演算処理部1a〜1
mは制御部2からの制御信号に応じて演算を行なうよう
になっている。
2に示すように、上記制御部2から供給される演算デー
タを記憶する記憶部10と、該記憶部10に記憶された
データに対して演算を行なう演算部11と、内部データ
バス12を介して上記データバス3との通信を行なうバ
ッファ13と、内部制御バス14を介して上記制御バス
4との通信を行なうバッファ15と、通信に必要な制御
信号を発生し、バッファ15及び演算部11に供給する
制御信号発生部16とを備える。各演算処理部1a〜1
mは制御部2からの制御信号に応じて演算を行なうよう
になっている。
【0034】そして、上記記憶部は、例えば上述の図2
に示すように、データの連続的な書込み及び読出しを行
なう、大容量の連続I/Oメモリ(以下、大容量シリア
ルアクセスメモリ(SAM)という)20と、容量の小
さい小容量SAM21と、データのランダムな書込み及
び読出しを行なう、容量のそれほど大きくない高速汎用
RAM22とからなる。
に示すように、データの連続的な書込み及び読出しを行
なう、大容量の連続I/Oメモリ(以下、大容量シリア
ルアクセスメモリ(SAM)という)20と、容量の小
さい小容量SAM21と、データのランダムな書込み及
び読出しを行なう、容量のそれほど大きくない高速汎用
RAM22とからなる。
【0035】また、上記大容SAM20及び小容量SA
M21は、例えば図3に示すように、データの書込み及
び読出しが行われるメモリセルアレイ40と、該メモリ
セルアレイ40の行に対するデータの読出しアドレスを
発生する読出し行アドレスカウンタ41と、上記メモリ
セルアレイ40の行に対するデータの書込みアドレスを
発生する書込み行アドレスカウンタ42と、上記メモリ
セルアレイ40の列に対するデータの読出しアドレスを
発生する読出し列アドレスカウンタ43と、上記メモリ
セルアレイ40の列に対するデータの書込みアドレスを
発生する書込み列アドレスカウンタ44と、入力データ
Dinを入力するデータ入力ライン45と、出力データ
Doutを出力するデータ出力ライン46とを備えてい
る。
M21は、例えば図3に示すように、データの書込み及
び読出しが行われるメモリセルアレイ40と、該メモリ
セルアレイ40の行に対するデータの読出しアドレスを
発生する読出し行アドレスカウンタ41と、上記メモリ
セルアレイ40の行に対するデータの書込みアドレスを
発生する書込み行アドレスカウンタ42と、上記メモリ
セルアレイ40の列に対するデータの読出しアドレスを
発生する読出し列アドレスカウンタ43と、上記メモリ
セルアレイ40の列に対するデータの書込みアドレスを
発生する書込み列アドレスカウンタ44と、入力データ
Dinを入力するデータ入力ライン45と、出力データ
Doutを出力するデータ出力ライン46とを備えてい
る。
【0036】そして、データの書込み時には、ライトイ
ネーブル信号WEと共に、上記書込み行アドレスカウン
タ42及び上記書込みアドレス列カウンタ44にリセッ
トライト信号RSTWが供給され、カウンタ値がリセッ
トされ、以後供給される書込みクロックWCKをカウン
トして、書込みを行なうアドレスを発生する。さらに、
上記書込みクロックWCKと共に、書込みデータDin
がデータ入力ライン45から連続的に供給され、メモリ
セル40に記憶される。
ネーブル信号WEと共に、上記書込み行アドレスカウン
タ42及び上記書込みアドレス列カウンタ44にリセッ
トライト信号RSTWが供給され、カウンタ値がリセッ
トされ、以後供給される書込みクロックWCKをカウン
トして、書込みを行なうアドレスを発生する。さらに、
上記書込みクロックWCKと共に、書込みデータDin
がデータ入力ライン45から連続的に供給され、メモリ
セル40に記憶される。
【0037】また、データの読み出し時には、リードイ
ネーブル信号REと共に、上記読出し行アドレスカウン
タ41及び上記読出しアドレス列カウンタ43にリセッ
トリード信号RSTRが供給され、カウンタ値がリセッ
トされ、以後供給される読出しクロックRCKをカウン
トして、読出しを行なうアドレスを発生する。さらに、
上記読出しクロックRCKと共に、メモリセル40から
読出しデータDinが連続的に読み出され、データ出力
ライン46に出力される。
ネーブル信号REと共に、上記読出し行アドレスカウン
タ41及び上記読出しアドレス列カウンタ43にリセッ
トリード信号RSTRが供給され、カウンタ値がリセッ
トされ、以後供給される読出しクロックRCKをカウン
トして、読出しを行なうアドレスを発生する。さらに、
上記読出しクロックRCKと共に、メモリセル40から
読出しデータDinが連続的に読み出され、データ出力
ライン46に出力される。
【0038】つぎに、この並列演算処理装置動作を、例
えば行列とベクトルの積を求める演算を例にして説明す
る。一般に、以下の式3に示すような行列Aとベクトル
Xの積Yは、次の式4に示すような演算により、積ベク
トルYの要素yi を求めることによって求められる。
えば行列とベクトルの積を求める演算を例にして説明す
る。一般に、以下の式3に示すような行列Aとベクトル
Xの積Yは、次の式4に示すような演算により、積ベク
トルYの要素yi を求めることによって求められる。
【0039】
【数3】
【0040】
【数4】
【0041】ここで、上記式3の演算において行列A
が、例えば以下の式5に示すように、行列の大部分の要
素が0である所謂疎行列である場合は、次の式6.1〜
式6.8に示すような演算で行列AとベクトルXの積Y
を求めることができる。
が、例えば以下の式5に示すように、行列の大部分の要
素が0である所謂疎行列である場合は、次の式6.1〜
式6.8に示すような演算で行列AとベクトルXの積Y
を求めることができる。
【0042】
【数5】
【0043】
【数6】
【0044】そこで、この並列演算装置では、制御部2
は、行列Aを各行に分割し、1つの行内の非零要素の数
を表わす要素数データと、すべての非零要素についての
位置データ(列番号)と値データ(要素の値)の組から
演算データを形成し、この演算データを各演算処理部1
a〜1mに供給する。具体的には、上記式5の場合で
は、例えば第1行の非例要素はa11及びa12であるか
ら、要素数データは”2”となり、位置データはそれぞ
れ”1”及び”2”となる。また例えば第2行の非例要
素はa21、a22及びa24であるから、要素数データは”
3”となり、位置データはそれぞれ”1”、”2”及
び”4”となり、値データはそれぞれ”a21”、”
a22”及び”a24”となる。
は、行列Aを各行に分割し、1つの行内の非零要素の数
を表わす要素数データと、すべての非零要素についての
位置データ(列番号)と値データ(要素の値)の組から
演算データを形成し、この演算データを各演算処理部1
a〜1mに供給する。具体的には、上記式5の場合で
は、例えば第1行の非例要素はa11及びa12であるか
ら、要素数データは”2”となり、位置データはそれぞ
れ”1”及び”2”となる。また例えば第2行の非例要
素はa21、a22及びa24であるから、要素数データは”
3”となり、位置データはそれぞれ”1”、”2”及
び”4”となり、値データはそれぞれ”a21”、”
a22”及び”a24”となる。
【0045】また、制御部2は、各行の非零要素の数を
比較して、各演算処理部1a〜1mの負荷が均等になる
ように、各演算処理部1a〜1mの演算データを割り当
てる。具体的な演算データの割当は、例えば行列Aの各
行の非零要素の数を記憶しておき、この非零要素の数が
均等となるように各演算処理部1a〜1mに割り当てる
行を選択することにより行なう。例えば上述の式5の場
合では、行列Aの第1行から第8行までの非零要素の数
はそれぞれ2、3、1、2、2、1、3、2であるか
ら、例えば図4に示すように、4つの演算処理部1a、
1b、1c、1dを備える場合では、演算処理部1aに
第1行及び第4行のデータを供給し、演算処理部1bに
第2行及び第3行のデータを供給し、演算処理部1cに
第5行及び第8行のデータを供給し、演算処理部1dに
第6行及び第7行のデータを供給する。
比較して、各演算処理部1a〜1mの負荷が均等になる
ように、各演算処理部1a〜1mの演算データを割り当
てる。具体的な演算データの割当は、例えば行列Aの各
行の非零要素の数を記憶しておき、この非零要素の数が
均等となるように各演算処理部1a〜1mに割り当てる
行を選択することにより行なう。例えば上述の式5の場
合では、行列Aの第1行から第8行までの非零要素の数
はそれぞれ2、3、1、2、2、1、3、2であるか
ら、例えば図4に示すように、4つの演算処理部1a、
1b、1c、1dを備える場合では、演算処理部1aに
第1行及び第4行のデータを供給し、演算処理部1bに
第2行及び第3行のデータを供給し、演算処理部1cに
第5行及び第8行のデータを供給し、演算処理部1dに
第6行及び第7行のデータを供給する。
【0046】この結果、各演算処理部1a〜1dには各
々2行分の演算データが供給され、各演算処理部1a〜
1dに供給される非零要素の数は、各々4個となってお
り、各演算処理部1a〜1dの負荷(演算)が均等にな
っている。
々2行分の演算データが供給され、各演算処理部1a〜
1dに供給される非零要素の数は、各々4個となってお
り、各演算処理部1a〜1dの負荷(演算)が均等にな
っている。
【0047】そして、各演算処理装置1a〜1dの演算
部11は、制御部2からの制御信号に応じて、大容量S
AM20に記憶した、上述の演算データ(要素数デー
タ、位置データ、値データ)を読出して演算を行なう。
部11は、制御部2からの制御信号に応じて、大容量S
AM20に記憶した、上述の演算データ(要素数デー
タ、位置データ、値データ)を読出して演算を行なう。
【0048】つぎに、各演算処理部1a〜1dでの実際
の演算データの動作を、例えば上述の式3に示す行列A
とベクトルXの積を計算する場合を例に5図に示すフロ
ーチャートを用いて説明する。まず、各演算処理部1a
〜1dには演算に先立って演算データが供給されてお
り、例えば図4に示すように、大容量SAM20には、
行列Aの行毎の演算データが記憶されており、高速汎用
RAM22にはベクトルXのデータが記憶されている。
具体的には、例えば演算処理部1aの大容量SAM20
には、行列Aの1行目の非零要素の数を表わす要素数デ
ータb1 (2)と、2組の位置データcp(p=1、
2)と値データdp (1、a11、2、a12)が連続的に
記憶され、続いて、行列Aの4行目の非零要素の数を表
わす要素数データb2 (2)と、2組の位置データcp
(p=2、4)と値データdp (2、a42、4、a44)
が記憶されている。さらに、高速汎用RAM22にはベ
クトルXのデータxq (q=1、2・・・8)が記憶さ
れている。また、図示しないが各演算処理部1a〜1d
には、演算データと共に、各演算処理部1a〜1dに割
り当てられた行数(担当行数)及び行番号(i)を示す
データが供給されている。
の演算データの動作を、例えば上述の式3に示す行列A
とベクトルXの積を計算する場合を例に5図に示すフロ
ーチャートを用いて説明する。まず、各演算処理部1a
〜1dには演算に先立って演算データが供給されてお
り、例えば図4に示すように、大容量SAM20には、
行列Aの行毎の演算データが記憶されており、高速汎用
RAM22にはベクトルXのデータが記憶されている。
具体的には、例えば演算処理部1aの大容量SAM20
には、行列Aの1行目の非零要素の数を表わす要素数デ
ータb1 (2)と、2組の位置データcp(p=1、
2)と値データdp (1、a11、2、a12)が連続的に
記憶され、続いて、行列Aの4行目の非零要素の数を表
わす要素数データb2 (2)と、2組の位置データcp
(p=2、4)と値データdp (2、a42、4、a44)
が記憶されている。さらに、高速汎用RAM22にはベ
クトルXのデータxq (q=1、2・・・8)が記憶さ
れている。また、図示しないが各演算処理部1a〜1d
には、演算データと共に、各演算処理部1a〜1dに割
り当てられた行数(担当行数)及び行番号(i)を示す
データが供給されている。
【0049】そして、上述のように大容量SAM20に
記憶された演算データは、演算時に記憶された順序で連
続的に読み出される。例えば上述の演算処理部1aで
は、まず、行列Aの1行目の要素数データb1 (2)が
読み出され、続いて、2組の位置データcp と値データ
dp (1、a11、2、a12)が連続的に読み出され、さ
らに、行列Aの4行目の要素数データd2 (2)と、2
組の位置データcp と値データdp (2、a42、4、a
44)が読み出される。
記憶された演算データは、演算時に記憶された順序で連
続的に読み出される。例えば上述の演算処理部1aで
は、まず、行列Aの1行目の要素数データb1 (2)が
読み出され、続いて、2組の位置データcp と値データ
dp (1、a11、2、a12)が連続的に読み出され、さ
らに、行列Aの4行目の要素数データd2 (2)と、2
組の位置データcp と値データdp (2、a42、4、a
44)が読み出される。
【0050】そして、制御部2は演算を開始する制御信
号を制御バス4及び内部制御バス14を介して各演算処
理部1a〜1dに供給し、ステップS1に進む。そし
て、ステップS1において、演算部11は、処理行数を
カウントするカウント変数kを1にしてステップS2に
進む。
号を制御バス4及び内部制御バス14を介して各演算処
理部1a〜1dに供給し、ステップS1に進む。そし
て、ステップS1において、演算部11は、処理行数を
カウントするカウント変数kを1にしてステップS2に
進む。
【0051】ステップS2において、演算部11は、カ
ウント変数kの値と担当行数を比較し、カウント変数k
が担当行数以下であればステップS3に進み、カウント
変数kが担当行数より大であれば、すでに担当行数分の
処理が終了しているのであるから終了する。
ウント変数kの値と担当行数を比較し、カウント変数k
が担当行数以下であればステップS3に進み、カウント
変数kが担当行数より大であれば、すでに担当行数分の
処理が終了しているのであるから終了する。
【0052】ステップS3において、演算部11は、大
容量SAM20から非零要素の数m、すなわち上述の要
素数データbを読み出してステップS4に進む。
容量SAM20から非零要素の数m、すなわち上述の要
素数データbを読み出してステップS4に進む。
【0053】ステップS4において、演算部11は、カ
ウント変数Lの値を1に、変数yiの値を0にしてステ
ップS5に進む。
ウント変数Lの値を1に、変数yiの値を0にしてステ
ップS5に進む。
【0054】ステップS5において、演算部11は、カ
ウント変数Lの値と非零要素の数mを比較し、カウント
変数Lの値が非零要素の数m以下であればステップS6
に進み、カウント変数Lの値が非零要素の数mより大で
あれば、すでに1行分の処理が終了しているのであるか
らステップ11に進む。
ウント変数Lの値と非零要素の数mを比較し、カウント
変数Lの値が非零要素の数m以下であればステップS6
に進み、カウント変数Lの値が非零要素の数mより大で
あれば、すでに1行分の処理が終了しているのであるか
らステップ11に進む。
【0055】ステップS6において、演算部11は、大
容量SAM20から非零要素の列番号(j)、すなわち
上述の位置データcp を読み出してステップS7に進
む。
容量SAM20から非零要素の列番号(j)、すなわち
上述の位置データcp を読み出してステップS7に進
む。
【0056】ステップS7において、演算部11は、大
容量SAM20から行列の要素の値(aij)、すなわち
上述の値データdp を読み出してステップS8に進む。
容量SAM20から行列の要素の値(aij)、すなわち
上述の値データdp を読み出してステップS8に進む。
【0057】ステップS8において、演算部11は、高
速汎用RAM22から、上記非零要素の列番号(j)に
対応するベクトルXの要素の値xj を読み出してステッ
プS9に進む。
速汎用RAM22から、上記非零要素の列番号(j)に
対応するベクトルXの要素の値xj を読み出してステッ
プS9に進む。
【0058】ステップS9において、演算部11は、変
数yi に行列の要素の値(aij)とベクトルXの要素の
値xj との積を加算してステップ10に進む。
数yi に行列の要素の値(aij)とベクトルXの要素の
値xj との積を加算してステップ10に進む。
【0059】ステップS10において、演算部11は、
カウント変数Lの値に1を加算してステップS5に戻
る。すなわち、1行分のデータについて上記ステップS
5からステップS10までの処理を繰り返し、1行分の
要素の値(aij)とベクトルXの要素の値xj との積を
変数yi に加算することになる。
カウント変数Lの値に1を加算してステップS5に戻
る。すなわち、1行分のデータについて上記ステップS
5からステップS10までの処理を繰り返し、1行分の
要素の値(aij)とベクトルXの要素の値xj との積を
変数yi に加算することになる。
【0060】そして、1行分の処理が終了すると、カウ
ント変数Lの値が非零要素の数mより大となり、ステッ
プS5からステップS11に進み、ステップS11にお
いて、演算部11は、上述のように求められた変数yi
の値、すなわち積ベクトルYの要素の値yi を高速汎用
RAM22に書込み、続くステップS12においてカウ
ント変数kの値に1を加算してステップS2に戻る。す
なわち、担当行数分の処理が終了するまで、ステップS
2からステップS12までの処理を繰り返す。
ント変数Lの値が非零要素の数mより大となり、ステッ
プS5からステップS11に進み、ステップS11にお
いて、演算部11は、上述のように求められた変数yi
の値、すなわち積ベクトルYの要素の値yi を高速汎用
RAM22に書込み、続くステップS12においてカウ
ント変数kの値に1を加算してステップS2に戻る。す
なわち、担当行数分の処理が終了するまで、ステップS
2からステップS12までの処理を繰り返す。
【0061】上述のように、各演算処理部1a〜1d
は、例えば上記式6.1〜式6.8に従って、割り当て
られた積ベクトルYの要素の値yi を計算し、例えば図
6に示すように、高速汎用RAM22に記憶する。そし
て、この積ベクトルYの要素の値yi は制御部2からの
制御信号により読み出され、制御部2は、各演算処理部
1a〜1dからの積ベクトルYの要素の値yi を結合し
て演算を終了する。
は、例えば上記式6.1〜式6.8に従って、割り当て
られた積ベクトルYの要素の値yi を計算し、例えば図
6に示すように、高速汎用RAM22に記憶する。そし
て、この積ベクトルYの要素の値yi は制御部2からの
制御信号により読み出され、制御部2は、各演算処理部
1a〜1dからの積ベクトルYの要素の値yi を結合し
て演算を終了する。
【0062】以上の説明から明らかなように、この並列
演算処理装置では、行列とベクトルの積を求める演算を
行なう並列演算処理装置に本発明を適用したから、値が
0である零要素に対する演算を行なわず、演算を高速化
することができると共に、演算に要する記憶部の記憶容
量を低減させることができる。また、上述のように各演
算処理部の負荷が均等になるように、演算データを各演
算処理部に割り当てたから、演算効率を向上させること
ができ、また、全体の演算時間を短縮することができ
る。
演算処理装置では、行列とベクトルの積を求める演算を
行なう並列演算処理装置に本発明を適用したから、値が
0である零要素に対する演算を行なわず、演算を高速化
することができると共に、演算に要する記憶部の記憶容
量を低減させることができる。また、上述のように各演
算処理部の負荷が均等になるように、演算データを各演
算処理部に割り当てたから、演算効率を向上させること
ができ、また、全体の演算時間を短縮することができ
る。
【0063】なお、本発明の技術的思想は上述の実施例
に限定されるものではなく、処理する演算は上述の行列
とベクトルの積に限らず、例えば行列と行列の積を求め
る演算にも適用することもできる。また、データを分割
する領域も上述の行列の行単位だけではなく、例えば上
記の行列と行列の積を求める演算では、一方の行列を1
行毎に分割し、他方の行列を1列毎に分割して演算デー
タを形成することにより、行列と行列の積を求める演算
を高速に行なうことができる。また、例えば演算対象と
なるデータも上述の行列に限るものではなく、一連の連
続するデータに対する演算にも適用できることは明らか
である。
に限定されるものではなく、処理する演算は上述の行列
とベクトルの積に限らず、例えば行列と行列の積を求め
る演算にも適用することもできる。また、データを分割
する領域も上述の行列の行単位だけではなく、例えば上
記の行列と行列の積を求める演算では、一方の行列を1
行毎に分割し、他方の行列を1列毎に分割して演算デー
タを形成することにより、行列と行列の積を求める演算
を高速に行なうことができる。また、例えば演算対象と
なるデータも上述の行列に限るものではなく、一連の連
続するデータに対する演算にも適用できることは明らか
である。
【0064】
【発明の効果】上述の説明で明らかなように、本発明に
係る並列演算処理装置では、制御部は、行列状のデータ
を領域に分割し、領域内の0でない非零要素の数を表わ
す要素数データと、非零要素の位置を表わす位置データ
と、一連の位置データに対応する位置の非零要素の値を
表わす値データの組から演算データを形成し、演算デー
タを各演算処理部に供給し、各演算処理部の演算を制御
し、各演算処理部は、制御部から供給された演算データ
を記憶部に供給し、各演算部は各記憶部に記憶された要
素数データを読出し、要素数データに基づいて位置デー
タ及び値データを読み出して並列に演算を行なうことに
より、演算を高速に行なうことができ、演算に要する記
憶容量を低減できる。
係る並列演算処理装置では、制御部は、行列状のデータ
を領域に分割し、領域内の0でない非零要素の数を表わ
す要素数データと、非零要素の位置を表わす位置データ
と、一連の位置データに対応する位置の非零要素の値を
表わす値データの組から演算データを形成し、演算デー
タを各演算処理部に供給し、各演算処理部の演算を制御
し、各演算処理部は、制御部から供給された演算データ
を記憶部に供給し、各演算部は各記憶部に記憶された要
素数データを読出し、要素数データに基づいて位置デー
タ及び値データを読み出して並列に演算を行なうことに
より、演算を高速に行なうことができ、演算に要する記
憶容量を低減できる。
【0065】また、本発明に係る並列演算処理装置で
は、行列状のデータの1行毎に分割し、演算データを形
成し、複数の演算処理部で並列に演算を行なうことによ
り、行列の演算を高速に行なうことができ、演算に要す
る記憶容量を低減できる。
は、行列状のデータの1行毎に分割し、演算データを形
成し、複数の演算処理部で並列に演算を行なうことによ
り、行列の演算を高速に行なうことができ、演算に要す
る記憶容量を低減できる。
【0066】また、本発明に係る並列演算処理装置で
は、記憶部がデータの連続的な書込み及び読出しを行な
うシリアルアクセスメモリを備えたため、コストパフォ
ーマンスを向上させることができ、装置を小型化するこ
とができる。
は、記憶部がデータの連続的な書込み及び読出しを行な
うシリアルアクセスメモリを備えたため、コストパフォ
ーマンスを向上させることができ、装置を小型化するこ
とができる。
【0067】また、本発明に係る並列演算処理装置で
は、各演算処理部の負荷が均等となるように演算データ
を各演算処理部に供給することにより、より効率的で高
速な演算を行なうことができる。
は、各演算処理部の負荷が均等となるように演算データ
を各演算処理部に供給することにより、より効率的で高
速な演算を行なうことができる。
【図1】本発明を適用した並列演算処理装置の構成を示
すブロック図である。
すブロック図である。
【図2】上記並列演算処理装置を構成する演算処理部の
具体的な構成を示すブロック図である。
具体的な構成を示すブロック図である。
【図3】上記演算処理部の記憶部を構成するSAMの具
体的な構成を示すブロック図である。
体的な構成を示すブロック図である。
【図4】上記並列演算処理装置の動作を説明するための
図である。
図である。
【図5】上記列演算処理装置の動作を説明するためのフ
ローチャートである。
ローチャートである。
【図6】上記並列演算処理装置の動作を説明するための
図である。
図である。
【図7】従来の演算処理装置の構成を示すブロック図で
ある。
ある。
【図8】従来の演算処理装置の構成を示すブロック図で
ある。
ある。
【図9】従来の並列演算処理装置の構成を示すブロック
図である。
図である。
【図10】従来の並列演算処理装置を構成する演算処理
部の具体的な構成を示すブロック図である。
部の具体的な構成を示すブロック図である。
【図11】従来の並列演算処理装置の動作を説明するた
めの図である。 1・・・・・・演算処理部 2・・・・・・制御部 3・・・・・・データバス 4・・・・・・制御バス 10・・・・・・記憶部 11・・・・・・演算部 12・・・・・・内部データバス 13、15・・・バッファ 14・・・・・・内部制御バス 16・・・・・・制御信号発生部 20・・・・・・大容量SAM 21・・・・・・小容量SAM 22・・・・・・高速汎用RAM b・・・・・・・要素数データ c・・・・・・・位置データ d・・・・・・・値データ xj ・・・・・・ベクトルデータ yi ・・・・・・ベクトル
めの図である。 1・・・・・・演算処理部 2・・・・・・制御部 3・・・・・・データバス 4・・・・・・制御バス 10・・・・・・記憶部 11・・・・・・演算部 12・・・・・・内部データバス 13、15・・・バッファ 14・・・・・・内部制御バス 16・・・・・・制御信号発生部 20・・・・・・大容量SAM 21・・・・・・小容量SAM 22・・・・・・高速汎用RAM b・・・・・・・要素数データ c・・・・・・・位置データ d・・・・・・・値データ xj ・・・・・・ベクトルデータ yi ・・・・・・ベクトル
Claims (4)
- 【請求項1】 演算データを記憶する記憶部と、該記憶
部に記憶された演算データに対して演算を行なう演算部
を各々備えた複数の演算処理部と、 データを領域に分割し、該領域内の0でない非零要素の
数を表わす要素数データと、上記非零要素の上記領域内
の位置を表わす位置データと、一連の位置データに対応
する位置の非零要素の値を表わす値データの組から演算
データを形成し、該演算データを各演算処理部に供給
し、各演算処理部の演算を制御する制御部とを有し、 上記各演算処理部は上記各記憶部に記憶した上記要素数
データを読出し、該要素数データに基づいて上記位置デ
ータ及び値データを読み出して演算部により演算を行な
い、データに対する演算を上記複数の演算処理部で並列
に行なうことを特徴とする並列演算処理装置。 - 【請求項2】 上記制御部は、行列状のデータを1行毎
に分割し、該1行内の非零要素数を上記要素数データと
し、非零要素の上記1行内での位置を上記位置データと
して、行列状のデータの行単位で上記演算データを形成
し、各演算処理部に供給することを特徴とする請求項1
記載の並列演算処理装置。 - 【請求項3】 上記記憶部は、データの連続的な書込み
及び読出しを行なうシリアルアクセスメモリを備えるこ
とを特徴とする請求項1又は請求項2記載の並列演算処
理装置。 - 【請求項4】 上記制御部は、各演算処理部の負荷が均
等となるように演算データを各演算処理部に供給するこ
とを特徴とする請求項1乃至請求項3のいずれか1項に
記載の並列演算処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2811094A JPH07239843A (ja) | 1994-02-25 | 1994-02-25 | 並列演算処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2811094A JPH07239843A (ja) | 1994-02-25 | 1994-02-25 | 並列演算処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07239843A true JPH07239843A (ja) | 1995-09-12 |
Family
ID=12239679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2811094A Withdrawn JPH07239843A (ja) | 1994-02-25 | 1994-02-25 | 並列演算処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07239843A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6955411B2 (en) | 1998-11-26 | 2005-10-18 | Seiko Epson Corporation | Ink cartridge and printer using the same |
US7195346B1 (en) | 1998-11-02 | 2007-03-27 | Seiko Epson Corporation | Ink cartridge and printer using the same |
JP2014182615A (ja) * | 2013-03-19 | 2014-09-29 | Nippon Telegr & Teleph Corp <Ntt> | 積演算装置、方法、及びプログラム |
JP2022533221A (ja) * | 2019-05-21 | 2022-07-21 | アーム・リミテッド | 行列演算用の装置及び方法 |
-
1994
- 1994-02-25 JP JP2811094A patent/JPH07239843A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7195346B1 (en) | 1998-11-02 | 2007-03-27 | Seiko Epson Corporation | Ink cartridge and printer using the same |
US6955411B2 (en) | 1998-11-26 | 2005-10-18 | Seiko Epson Corporation | Ink cartridge and printer using the same |
JP2014182615A (ja) * | 2013-03-19 | 2014-09-29 | Nippon Telegr & Teleph Corp <Ntt> | 積演算装置、方法、及びプログラム |
JP2022533221A (ja) * | 2019-05-21 | 2022-07-21 | アーム・リミテッド | 行列演算用の装置及び方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3698313B1 (en) | Image preprocessing for generalized image processing | |
JP6977239B2 (ja) | 行列乗算器 | |
JP2671120B2 (ja) | データ処理セルおよびデータプロセッサ | |
EP0240032B1 (en) | Vector processor with vector data compression/expansion capability | |
CN110738308B (zh) | 一种神经网络加速器 | |
CN114391135A (zh) | 用于对连续分配数据执行存储器内处理操作的方法及相关存储器装置和系统 | |
CN111353126A (zh) | 分块矩阵乘法运算系统 | |
KR20200108774A (ko) | 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법 | |
US4769779A (en) | Systolic complex multiplier | |
WO2022226721A1 (zh) | 一种矩阵乘法器及矩阵乘法器的控制方法 | |
CN113254359A (zh) | 用于执行存储器内计算的方法和存储器模块 | |
CN110580519A (zh) | 一种卷积运算结构及其方法 | |
US4621324A (en) | Processor for carrying out vector operation wherein the same vector element is used repeatedly in succession | |
JPH07239843A (ja) | 並列演算処理装置 | |
US11941371B2 (en) | Bit string accumulation | |
JPH04316153A (ja) | ニューロプロセッサ | |
CN116050492A (zh) | 一种扩展单元 | |
JP3333779B2 (ja) | 行列演算装置 | |
JPH05324700A (ja) | 行列乗算装置 | |
JPH1063647A (ja) | 行列演算装置 | |
JPS6155706B2 (ja) | ||
JP2605792B2 (ja) | 演算処理装置 | |
JP3542184B2 (ja) | 線形計算方法 | |
KR20240118633A (ko) | 메모리 장치 및 그 동작 방법 | |
JP3694946B2 (ja) | 並列処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20010508 |