JPS63229566A - 疎行列用計算機 - Google Patents

疎行列用計算機

Info

Publication number
JPS63229566A
JPS63229566A JP6255487A JP6255487A JPS63229566A JP S63229566 A JPS63229566 A JP S63229566A JP 6255487 A JP6255487 A JP 6255487A JP 6255487 A JP6255487 A JP 6255487A JP S63229566 A JPS63229566 A JP S63229566A
Authority
JP
Japan
Prior art keywords
memory
data
shared memory
arithmetic
sparse matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6255487A
Other languages
English (en)
Inventor
Noboru Tanabe
田辺 昇
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP6255487A priority Critical patent/JPS63229566A/ja
Publication of JPS63229566A publication Critical patent/JPS63229566A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (イ)産業上の利用分野 この発明は回路解析および線形計画法や構造解析などの
大規模システムのシミュレーションにしばしば現れる大
規模不規則疎行列の計算に適した計算機に関する。
(ロ)従来の技術 従来大規模システムのシミュレーションでは大規模不規
則疎行列の計算が演算時間の大部分を占め、特に汎用計
算機上で大規模回路解析を行うと、1回のシミュレーシ
ョンに数時間もかかるため、能率が悪くコストがかかっ
ていた。
行列計算を目的とした計算機には、多数のプロセッサを
格子状または鎖状に配置して人海戦術的に高速化をはか
るプロセッサアレイや、インターリーブが深い主記憶を
ロードストアパイプラインと超高速な素子を用いたベク
トルレジスタを介してステージ数の多い演算パイプライ
ンに結合し、極めて速いクロックで動作させるスーパー
コンピュータや、それほどクロックが速くないパイプラ
イン式の演算器VLSIを用いた付加アレイプロセヅサ
などがある。
プロセッサアレイ方式で大規模回路行列を計算しようと
すると、平均9個の演算を並列に行うために、行列元数
またはその2乗のオーダーのプロセッサを用いることに
なり極めて効率が悪い。
パイプライン式のスーパーコンピュータは、インタリー
ブが深いメモリ構成をとるので、連続的なアクセスに比
べ不規則的なアクセスは速度が落ちる。また、最大性能
の半分を出すためには100程度のベクトル長が必要な
ため、通常のアルゴリズムでは平均ベクトル長が9程度
しかない回路行列には十分に性能が発揮できない。しか
も超高速な消費電力の大きい低集積な素子を多量に用い
、しかも少量生産品であるため極めて高価な計算機であ
る。このため、これを使える環境にあるユーザは極めて
限られており、使えたとしても利用コストは膨大なもの
である。
スーパーコンピュータ程クロックが速くないパイプライ
ン式浮動小放演1VLsIを用いる付加アレイプロセッ
サは経済的ではあるが、単一のプロセッサでは速度が不
足する。そこで、複数のプロセッサを用いるものが出て
きたが、メモリアクセスがネックとなり頻繁なメモリア
クセスを必要とする疎行列計算には十分にその性能が発
揮できない。また、各プロセッサがアクセスできるメモ
リ領域がローカルである従来の付加アレイプロセッサは
、メモリへのグローバルなランダムアクセスを要求する
ベクトル長伸長アルゴリズムには向かない。プロセッサ
間の通信路は単一バスなので通信容量は低いため、この
バスの使用をできる限り抑えることが必須だが、そのた
めには複数のプロセッサに受は持たせるデータをうまく
配分しなければならない。ところが、不規則疎行列計算
では極めて困難であり、たとえできたとしてもO8の負
担を増加させる。
(ハ)発明が解決しようとする問題点 本発明は、膨大な数の演算器や超高速な素子を用いるこ
とによる経済的負担を回避しつつ、ベクトル長伸長アル
ゴリズムを適用した不規則疎行列計算に伴う不規則なデ
ータアクセスによる転送ネックを防ぐことによって、大
規模システムのシミュレーションの高速化および低コス
ト化を実現する計算機の提供を目的とする。
(ニ)問題点を解決するための手段 十以上のバンク数を持つインターリーブの浅いメインの
共有メモリからブロック転送されるデータを、このメモ
リのバンク数より少数のプロセッサからなるクラスタに
転送するために、クロスバ−スイッチを用いる。その制
御は、接続パターンそのものを記憶する制御メモリ、又
は共有メモリからブロック転送されるデータとプロセッ
サが受は取るべきデータに付加されたインデックスを記
憶するメモリとそれらのインデックスを比較することに
よって接続パターンに随時変換する比較器アレイによっ
て行う。プロセッサにより計算されたデータは、1クラ
スタ内のプロセッサ数以上のバンク数を持つインタリー
ブの浅い補助共有メモリと上記のメインの共有メモリの
双方に並列に書き込み、両メモリから独立に読み出す。
オペランドの各共有メモリにおけるアドレスをデータと
は別のメモリに記憶し、そのアドレスとクロスバ−スイ
ッチ制御情報を合わせたものをプログラムとする。
(ホ)作用 行列の性質によって多少異なるが、メインの共有メモリ
のバンク数を2桁とれば大規模システムのシミュレーシ
ョンに現れる大規模疎行列の1行分を殆どの場合1回の
メモリアクセスでブロック転送できるようになる。メモ
リバス幅を大きく取ったり補助共有メモリを用いること
によりタイミング的な制約が緩和され、一般的な部品を
用いることができ、さらに容量が少ないメモリチップを
使用することになるので高速なメモリの入手の点で有利
になる。
また、バス幅が大きく取られているため深いインクリー
ブによって時間的に詰めなくても間に合うので、たとえ
ばRfiの上位32ビツトと下位32ビツトの2ウエイ
というように1つの数値データをいくつかのメモリチッ
プに分割して、インタリーブを浅くとるようにすれば、
メモリチップへ゛   のアクセス要求は規則的になる
ので不規則アドレスのアクセスによる性能低下を回避で
きる。
疎行列処理では、1行分の非零要素ベクトル中の一部の
要素を用いたベクトル演算を主体とするが、クロスバ−
スイッチによりブロック中で演算に必要な要素のみを少
数のプロセッサに配分することにより、少ないプロセッ
サを効率よく稼働させることができる。しかも、制御メ
モリから読み出される接続パターンによってクロスバ−
スイッチを制御する場合、接続パターンは予めプログラ
ムしておくことができるので、実行時にはアドレス計算
なしで不規則的に配置しているデータをプロセッサに転
送できる。この効果は特に回路解析のように同じ構造の
行列に繰り返し同じ計算をする場合に顕著である。
また、プロセッサはf子息のブロックにアクセスできる
ので、広域的なランダムアクセスを頻繁に要求する不規
則疎行列のベクトル長伸長アルゴリズムを無理なく適用
できるため、プロセッサのパイプライン化や複数クラス
タによる空間並列化から得られる並列処理効果を十分引
き出せるようになる。
そして、プロセッサから出力される結果をメインの共有
メモリに格納する際に補助共有メモリにもコピーしてお
けば、再びその結果が必要な時はいつでも2系統のメモ
リから独立に読み出せるので、複数の入力ポートをもつ
高速プロセッサを用いた時にもメモリボトルネックを起
こしにくい。
(へ)実施例 本発明の実施例として、パイプライン式の計算機2種類
の設計例を示す。
第1の実施例は第1図に示す簡易型の並列パイプライン
式計算機のである。PUは演算ユニットであり、1つの
PUにはパイプライン式乗除算器M Uとパイプライン
式加減算器AUを持たせ、MUとAUをチェイニングし
てPUの3つのポートA−B−Cから同時に3つのデー
タを供給する。
MUの遅延時間を待ち合わせるために遅延器LDLを介
してAUの一方の入力にボートCからのデータを入力す
る。SEはセレクタであり演算結果を取り出す演算器を
選択する。データのロードが終了してポートCが出力用
に使えるまで待ち行列Qに演算結果を貯めてからPU外
へ出力する0MMは行列の数値データを格納するメイン
の共有メモリで、SMはMMに格納されるPUからの演
算結果のコピーを格納するための補助の共有メモリであ
る。O8はクロスバ−スイッチでありMMからブロック
転送されるデータのうち演算に使われるもののみをPU
とつなぐ。BSはMWとSMの断続をするバススイッチ
でボートCからの演算結果をSMにも転送したり、SM
を使わない時にMMからデータをポートAに転送したり
、切断してMMと独立にボートAにデータを転送したり
するのに用いる。RはレジスタでありMMからポートB
にデータを読み出す時にはデータを書き込み、λ4λ(
から読み出したブロックにボートBに転送すべきデータ
がない時Rよりデータを読み出す。Pλ(はプログラム
格納用のメモリでありMM−8Mにおけるオペランドの
アドレスを指定するとともに、C8の接続パターンのコ
ードを格納しておきMMのどのバンクをとのPUに接続
するかを制御する。
非零要素のみをMMに格納された不規則疎行列のLU分
解を実行するために、次の2種類の命令を定義する。第
1の命令はBSを接続状態にして第3図のようにデータ
のロードを行い、PUで除算を行った結果を第4図のよ
うにストアを行う。
第2の命令は、BSを切断状態にして第5図のようにデ
ータをロードし、積和演算の結果をデータのロードの終
了を待ってから第6図のようG:: M Mにストアし
て値を更新する。ベクトル長伸長アルゴリズムを適用し
並列実行可能な行ベクトル演算グループごとに以上のよ
うな2種類のパイプライン演算命令を起動すれば少ない
起動回数で不規則疎行列のLU分解を実行できる。
ここで、PUを4台並列に用いMMは16バンク、S 
Mには4バンクの32ビツト幅2ウェイインタリーブ構
成とするならば、C8は16*5チャンネル32ピット
幅、パターン指定には5ピツト*5チヤンネルの25ビ
ツトになり、実現可能なハードウェア量である。
このようにすると倍精度の浮動小数データを使用メモリ
の1サイクルタイムに16要素ブロツク転送することが
できる。これは回路行列の95%以上の行を1サイクル
タイムで転送できることを意味する。数値の上位・下位
のインタリーブは不規則アクセス時の性能低下も競合も
起こさない。
また、ブロック内の4つのデータを並列に処理できるの
で、回路行列の90%程度の行の外積型がウス消去演算
を1ステツプで実行できるようになる。
たとえばMU −AUに倍精度浮動小数演算を14の3
2ビツト2人力1出力の乗除算器・ALUチップセット
を用いるならば、100nsのSRAλ(をM人・f 
−S Mに用いることにより8行以上の並列演算時に、
演算器を半性能で稼働できる。4個のPUには8個の浮
動小数演算器が含まれていルノで合計40MFLOPs
の演算速度が出ることになる。
回路行列に並列ピボッティング法(PPM)と名付けた
ベクトル伸長アルゴリズムを適用して200元程度の行
列のLU分解を本計算機で行う場合、平均ベクトル長が
50程度となり、4本のパイプラインに分配するにもか
かわらず9割以上の行ベクトル演算が半性能モードで処
理される。ただし4本中平均3本のパイプラインが有効
演算を行うことになるので約30MFLOPSの速度で
回路行列をLU分解することになる。
第2の例は最大性能型の疎行列計算機であり、ベクトル
長を十分長くとれる場合向けである。その構成を第2図
に示す。第1の例はロードとストアでバスを共用してい
るため、ロードが終了するまでストアが開始できないの
で演算器の半性能までしか出せない。よって極めてベク
トル長が長くとれる場合は不利になる。そこで第2の例
はロード用とストア用で専用にバスを設け、ロードが終
了する前でも演算結果が得られたら直ちにストアを開始
できるようにしたものである。
LC8はロード用のクロスバ−スイッチ、SO8はスト
ア用のクロスバ−スイッチで、このようにスイッチを2
つに分けることにより切り替えの頻度を第1の例と同等
にする。MM−3Mはイン′ タリープを増やすことに
よる競合を避けるため、サイクルタイムが半分のRAM
を用いることによりアクセス頻度の倍増に対処する。A
DI・AD2・PDは演算器の遅延時間に等しい遅延器
であり、ロードとストアで同じアドレスやパターンを与
えるタイミングのずれを作る。Sl・S2は読みだしア
ドレスと書き込みアドレスを交互に切り替えるスイッチ
である。SDLは上位のメモリが宿き込みの時に下位の
メモリは読みだしになるようにストアを半サイクルずら
せる遅延器である。
このような構成で、たとえばMM−8Mとして第1の例
の倍速の50nsのSRAMを用いるならば、十分ベク
トル長が長い場合に第1の例の2倍の80 M F L
 OP Sまで出すことができるようになる。
回路行列のLU分解を行うために並列ビボッティング法
を適用すると大規模行列はどベクトル長が伸びるので、
1000元を越えれば平均ベクトル長がかなり長くなり
、第2の計算機の回路行列処理速度は60MFLOPS
近くまで加速する。
(ト)発明の効果 本発明はメモリバス幅を大きく取りデータをブロック転
送したり、補助メモリから並列転送したりすることによ
りタイミング的制約を緩和し、一般的な部品の使用を可
能にしコストの増加を抑えることができる。
またクロスバ−スイッチを用いて、ブロック内に不規則
的に散在している演算に必要なデータのみを、より分け
てプロセッサへ転送するのでプロセッサ効率が高く、高
い性能を維持しながら全体のコストに対する影響が最も
大きいと見られるプロセッサの個数を削減できるので、
価格性能比を飛躍的に向上させることができる。
さらに全プロセッサが全メモリ空間に同等にアクセスで
きるので、不規則疎行列のベクトル長伸長アルゴリズム
を無理なく適用でき、並列処理効果を十分引き出して大
規模システムのシミュレーションの高速化を実現できる
【図面の簡単な説明】
第1図は簡易型の並列パイプライン式疎行列用計算機の
構成図、第2図は最大性能型の並列パイプライン式疎行
列用計算機の構成図、第3図はLU分解のための除算命
令のロード動作説明図、第4図はLU分解のための除算
命令のストア動作説明図、第5図はLU分解のための更
新命令のロード動作説明図、第6図はLU分解のための
更新命令のストア動作説明図である。 P M・・・・プログラム用メモリ、MM・・・・メイ
ン共有メモリ、S M・・・・補助共有メモリ、C8・
・・・クロスバ−スイッチ、ADRI・・・・ti助共
有メモリのアドレス、ADH2・・・・メイン共有メモ
リのアドレス、PTN・・・・クロスバ−スイッチの接
続パターン、BS・・・・バススイッチ、R・・・・レ
ジスタ、PU・・・・演算ユニット、MU・・・・乗除
算パイプラインユニット、AU・・・・加減算パイプラ
インユニット、LDL・・・・ロード遅延器、SE・・
・・セレクタ、Q・・・・待ち行列FIFOメモリ、P
D・・・・ストア用パターン遅延器、AD1〜2・・・
バスドア用アドレス遅延器、81〜2・・・・ロードス
トアアドレス切り替えスイッチ、LC3・・・・ロード
用クロスバ−スイッチ、SO8・・・・ストア用クロス
バ−スイッチ、SDL・・・・ストア遅延器。

Claims (1)

    【特許請求の範囲】
  1. 1 十以上のバンク数を持つインターリーブの浅いメイ
    ンの共有メモリからブロック転送されるデータの中から
    、演算に必要なデータのみを抽出して、このメモリのバ
    ンク数より少数のプロセッサからなるクラスタに転送す
    るためにクロスバースイッチを用い、メモリに格納され
    た接続パターンに関する情報を読み出すことによってク
    ロスバースイッチを制御し、プロセッサで計算された結
    果のデータを、1クラスタ当りのプロセッサ数以上のバ
    ンク数を持つインタリーブの浅い補助共有メモリと、上
    記のメインの共有メモリの双方に並列に書き込め、かつ
    独立に読み出せるバス機構と、オペランドの各共有メモ
    リにおけるアドレスを記憶するメモリによって共有メモ
    リのデータ管理を行うことを特徴とする疎行列用計算機
JP6255487A 1987-03-19 1987-03-19 疎行列用計算機 Pending JPS63229566A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6255487A JPS63229566A (ja) 1987-03-19 1987-03-19 疎行列用計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6255487A JPS63229566A (ja) 1987-03-19 1987-03-19 疎行列用計算機

Publications (1)

Publication Number Publication Date
JPS63229566A true JPS63229566A (ja) 1988-09-26

Family

ID=13203595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6255487A Pending JPS63229566A (ja) 1987-03-19 1987-03-19 疎行列用計算機

Country Status (1)

Country Link
JP (1) JPS63229566A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079361A (ja) * 2008-09-24 2010-04-08 Nec Corp プロセッサ、プロセッサのデータ処理方法、情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079361A (ja) * 2008-09-24 2010-04-08 Nec Corp プロセッサ、プロセッサのデータ処理方法、情報処理装置

Similar Documents

Publication Publication Date Title
US5226171A (en) Parallel vector processing system for individual and broadcast distribution of operands and control information
US5175862A (en) Method and apparatus for a special purpose arithmetic boolean unit
US20150378734A1 (en) System and methods for expandably wide operand instructions
US20070271325A1 (en) Matrix multiply with reduced bandwidth requirements
EP0211614A2 (en) Loop control mechanism for a scientific processor
GB2122781A (en) Multimicroprocessor systems
WO2002046918A1 (en) A high performance vliw processor
US11934824B2 (en) Methods for performing processing-in-memory operations, and related memory devices and systems
CN102402415B (zh) 一种动态可重构阵列内数据缓存的装置及方法
US11468002B2 (en) Computational memory with cooperation among rows of processing elements and memory thereof
CN112506468B (zh) 支持高吞吐多精度乘法运算的risc-v通用处理器
US20210278992A1 (en) Adjustable function-in-memory computation system
Chen et al. The parallel algorithm implementation of matrix multiplication based on ESCA
Shimizu et al. CPC (Cyclic Pipeline Computer)-an architecture suited for Josephson and pipelined-memory machines
CN116050492A (zh) 一种扩展单元
CN112074810A (zh) 并行处理设备
CN115248701A (zh) 一种处理器寄存器堆之间的零拷贝数据传输装置及方法
JPS63229566A (ja) 疎行列用計算機
EP3232321A1 (en) Signal processing apparatus with register file having dual two-dimensional register banks
US7587582B1 (en) Method and apparatus for parallel arithmetic operations
JPS6165336A (ja) 高速演算方式
CN110096307B (zh) 通信处理器
US5101371A (en) Apparatus for performing a bit serial orthogonal transformation instruction
JPS6069758A (ja) 多重ポ−トパイプライン構成プロセサ
Makino et al. The performance of GRAPE-DR for dense matrix operations