JP4657998B2 - シストリックアレイ - Google Patents
シストリックアレイ Download PDFInfo
- Publication number
- JP4657998B2 JP4657998B2 JP2006199682A JP2006199682A JP4657998B2 JP 4657998 B2 JP4657998 B2 JP 4657998B2 JP 2006199682 A JP2006199682 A JP 2006199682A JP 2006199682 A JP2006199682 A JP 2006199682A JP 4657998 B2 JP4657998 B2 JP 4657998B2
- Authority
- JP
- Japan
- Prior art keywords
- array
- mfa
- square
- processing
- xin
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Description
−R−TCT
が伝播し、四角シストリックアレイの下辺から、
E=D+CA−1B
が出力される。
−R−TCT =R−TAT =(AR−1)T=QT
となる。
xinが0のとき、
c=1、s=0
を出力し、それ以外の場合、
t=(r2+xin2)1/2
とし、
c=r/t、
s=xin/t
より、ベクトル角度を求め、r=tとする。図の丸のバウンダリセルのrは更新されたrを表している。
xout=c・xin−s・r,
r=s・xin+c・r
によりベクトル回転を行う。
s=xin/r
を求める。また、図10(B)において、四角で示す内部セル(Internal Cell)では、積和演算
xout=xin−s・r
を行う。
102 クロスバー
103 CORDIC演算回路
104 コントローラ
301 二次元MFAシストリックアレイ
201 PE1の下方向入力
202 PE1の上方向出力
203 PE1の下方向出力/PE2下方向入力
204 PE1の上方向入力/PE2上方向出力
205 PE2の下方向出力/PE3下方向入力
206 PE2の上方向入力/PE3上方向出力
207 PE3下方向出力、
208 PE3上方向入力
302、303、304 メモリ
Claims (13)
- 行列AをQR分解し(Qはユニタリ行列、Rは三角行列)、行列[A B]=[QR B]に対して左からQT(Tは転置を示す)を乗じ、[R QTB]を求め、三角行列Rの対角成分を枢軸としてガウス消去法で行列E=D+CA−1Bを得るMFA(Modified Faddeeva Algorithm)を利用した行列演算用シストリックアレイであって、
一の方向の正方MFAアレイの処理と、前記一の方向と逆方向の正方MFAアレイの処理とを、各々、前記一の方向と直交する方向に沿って、共通の一次元アレイにマッピングしてなる、一次元構造とされ、
前記一次元アレイでは、前記一の方向と前記逆方向の二つのスレッドのMFA行列演算が行われ、
前記一の方向の正方MFAアレイは、台形型の第1の二次元MFAシストリックアレイを、第1の正方シストリックアレイに変換することで構成され、
前記逆方向の正方MFAアレイは、台形型の第2の二次元MFAシストリックアレイを、前記第1の正方シストリックアレイとは180度の回転対称とされる、第2の正方シストリックアレイに変換することで構成され、
前記一次元アレイは、前記マッピングにおいて、前記一次元アレイを間に挟んで、互いに対向配置の位置関係にある、前記一の方向の正方MFAアレイの各処理と、前記逆方向の正方MFAアレイの各処理を、前記一の方向と直交する方向に沿って且つ互いに対向する向きに、前記一次元アレイにそれぞれ投射して構成したものと等価とされる、ことを特徴とするシストリックアレイ。 - 前記一次元アレイの各プロセッシングエレメントは、前記一の方向のMFA行列演算と前記逆方向のMFA行列演算とを並列処理する、ことを特徴とする請求項1記載のシストリックアレイ。
- 前記一次元アレイの各プロセッシングエレメントは、前記一の方向のMFA行列演算と前記逆方向のMFA行列演算とを時分割処理する、ことを特徴とする請求項1記載のシストリックアレイ。
- 前記一次元アレイへのデータの入力及び出力は、前記一次元アレイの両端のプロセッシングエレメントに関してのみ行われる、ことを特徴とする請求項1記載のシストリックアレイ。
- 前記一次元アレイへの入力データ及び出力データを格納するメモリは、前記一次元アレイの両端のプロセッシングエレメントに対してのみ設けられる、ことを特徴とする請求項1記載のシストリックアレイ。
- 前記一次元アレイを構成する複数のプロセッシングエレメントの各々には、前記一の方向の正方MFAアレイ処理の対応する行の内部処理であって、
ステップ1では、入力xinに対して、
xout=c・xin−s・r,
r=s・xin+c・r
によりベクトル回転を行い、
ステップ2では、積和演算
xout=xin−s・rを行う内部処理、
ステップ1では、入力xinに対して、xinが0のとき、
c=1、s=0
を出力し、それ以外の場合、
t=(r2+xin2)1/2
とし、c=r/t、
s=xin/t
より、ベクトル角度を求め、r=tとし、
ステップ2では、入力xinに対して除算s=xin/r
を求めるバウンダリ処理、
及び、遅延処理のうちの少なくとも1つと、前記逆方向の正方MFAアレイ処理の対応する行の内部処理、バウンダリ処理、及び、遅延処理のうち少なくとも1つとが、順番に割り付けられる、ことを特徴とする請求項1記載のシストリックアレイ。 - 前記第1、第2の正方シストリックアレイは、それぞれ、前記台形型の第1、第2の二次元MFAシストリックアレイの空きセル領域に、余分なバウンダリセルが配置され、正方シストリックアレイとし、
前記バウンダリセルは、
ステップ1では、入力xinに対して、xinが0のとき、
c=1、s=0
を出力し、それ以外の場合、
t=(r2+xin2)1/2
とし、c=r/t、
s=xin/t
より、ベクトル角度を求め、r=tとし、
ステップ2では、入力xinに対して除算s=xin/r
を求めるバウンダリ処理を実行する、ことを特徴とする請求項1記載のシストリックアレイ。 - 前記一の方向の正方MFAアレイ処理を、下方向の正方MFAアレイ処理とし、前記逆方向の正方MFAアレイ処理を、上方向の正方MFAアレイ処理とした場合、
前記第1の正方シストリックアレイは、対角要素に対して右上の三角アレイの各要素が遅延セルよりなり、アレイ左端列において、最上行より下方にバウンダリセルが、前記対角要素から、列方向に下方に並ぶ内部セルの各々に関連付けて配置され、
前記第2の正方シストリックアレイは、対角要素に対して左下の三角アレイの各要素が、遅延セルよりなり、アレイ右端列において、最下行より上方にバウンダリセルが、列方向に配列される内部セルに対応して配置され、
前記バウンダリセルは、
ステップ1では、入力xinに対して、xinが0のとき、
c=1、s=0
を出力し、それ以外の場合、
t=(r2+xin2)1/2
とし、c=r/t、
s=xin/t
より、ベクトル角度を求め、r=tとし、
ステップ2では、入力xinに対して除算s=xin/r
を求めるバウンダリ処理を実行し、
前記内部セルは、
ステップ1では、入力xinに対して、
xout=c・xin−s・r,
r=s・xin+c・r
によりベクトル回転を行い、
ステップ2では、積和演算
xout=xin−s・rを行う、ことを特徴とする請求項1記載のシストリックアレイ。 - 前記第1の正方シストリックアレイは、アレイ左端列において、前記バウンダリセルの下側に、余分なバウンダリセルをさらに含み、
前記第2の正方シストリックアレイは、アレイ右端列において、前記バウンダリセルの上側に、余分なバウンダリセルをさらに含む、ことを特徴とする請求項8記載のシストリックアレイ。 - 前記一次元アレイの両端のプロセッシングエレメントには、アレイサイズに1加算した値に対して1回の割合で、nop(no operation)が挿入され、前記一次元アレイの各プロセッシングエレメント間での処理負荷の均一化が行われる、ことを特徴とする請求項1又は6記載のシストリックアレイ。
- 前記一次元アレイの両端から入力されるデータには、前記一次元アレイの両端のプロセッシングエレメントのnop(no operation)を指示するダミーデータが挿入される、ことを特徴とする請求項10記載のシストリックアレイ。
- 前記一次元アレイを構成する各プロセッシングエレメントは、
演算装置と、
入力データ及び出力データを格納するレジスタファイルと、
前記レジスタファイルと、前記レジスタファイルの値の前記演算装置または出力端子に供給するスイッチと、
前記演算装置の演算処理、及び、前記スイッチの切替を制御する制御装置と、
を備え、
前記演算装置の出力は、前記レジスタファイルに帰還入力される、ことを特徴とする請求項1記載のシストリックアレイ。 - 請求項1乃至12のいずれか一に記載のシストリックアレイを備えた半導体集積回路装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006199682A JP4657998B2 (ja) | 2006-07-21 | 2006-07-21 | シストリックアレイ |
US11/878,058 US8195733B2 (en) | 2006-07-21 | 2007-07-20 | Systolic array |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006199682A JP4657998B2 (ja) | 2006-07-21 | 2006-07-21 | シストリックアレイ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008027234A JP2008027234A (ja) | 2008-02-07 |
JP4657998B2 true JP4657998B2 (ja) | 2011-03-23 |
Family
ID=38987663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006199682A Expired - Fee Related JP4657998B2 (ja) | 2006-07-21 | 2006-07-21 | シストリックアレイ |
Country Status (2)
Country | Link |
---|---|
US (1) | US8195733B2 (ja) |
JP (1) | JP4657998B2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009066760A1 (ja) * | 2007-11-22 | 2009-05-28 | Nec Corporation | シストリックアレイ及び演算方法 |
US8473539B1 (en) | 2009-09-01 | 2013-06-25 | Xilinx, Inc. | Modified givens rotation for matrices with complex numbers |
US8510364B1 (en) | 2009-09-01 | 2013-08-13 | Xilinx, Inc. | Systolic array for matrix triangularization and back-substitution |
US8417758B1 (en) | 2009-09-01 | 2013-04-09 | Xilinx, Inc. | Left and right matrix multiplication using a systolic array |
US8473540B1 (en) | 2009-09-01 | 2013-06-25 | Xilinx, Inc. | Decoder and process therefor |
US8620984B2 (en) * | 2009-11-23 | 2013-12-31 | Xilinx, Inc. | Minimum mean square error processing |
US8416841B1 (en) | 2009-11-23 | 2013-04-09 | Xilinx, Inc. | Multiple-input multiple-output (MIMO) decoding with subcarrier grouping |
US8406334B1 (en) | 2010-06-11 | 2013-03-26 | Xilinx, Inc. | Overflow resistant, fixed precision, bit optimized systolic array for QR decomposition and MIMO decoding |
US8443031B1 (en) | 2010-07-19 | 2013-05-14 | Xilinx, Inc. | Systolic array for cholesky decomposition |
US8824603B1 (en) * | 2013-03-01 | 2014-09-02 | Futurewei Technologies, Inc. | Bi-directional ring-bus architecture for CORDIC-based matrix inversion |
US10268886B2 (en) | 2015-03-11 | 2019-04-23 | Microsoft Technology Licensing, Llc | Context-awareness through biased on-device image classifiers |
US10055672B2 (en) | 2015-03-11 | 2018-08-21 | Microsoft Technology Licensing, Llc | Methods and systems for low-energy image classification |
EP3447653A4 (en) * | 2016-04-22 | 2019-11-13 | Cambricon Technologies Corporation Limited | SUBMATRIX OPERATING DEVICE AND METHOD |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06506073A (ja) * | 1990-08-16 | 1994-07-07 | イギリス国 | 並列処理アレイの動作をシミュレートするデジタルプロセッサ |
JP2001056808A (ja) * | 1999-06-10 | 2001-02-27 | Lucent Technol Inc | 行列計算を行うためのプロセッサ素子のパイプライン処理線形アレー |
JP2005509950A (ja) * | 2001-11-16 | 2005-04-14 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | フィンガープリント・データベース更新方法、クライアント及びサーバ |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4493048A (en) * | 1982-02-26 | 1985-01-08 | Carnegie-Mellon University | Systolic array apparatuses for matrix computations |
US4787057A (en) * | 1986-06-04 | 1988-11-22 | General Electric Company | Finite element analysis method using multiprocessor for matrix manipulations with special handling of diagonal elements |
US4823299A (en) * | 1987-04-01 | 1989-04-18 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Systolic VLSI array for implementing the Kalman filter algorithm |
US5319586A (en) * | 1989-12-28 | 1994-06-07 | Texas Instruments Incorporated | Methods for using a processor array to perform matrix calculations |
US5274832A (en) * | 1990-10-04 | 1993-12-28 | National Semiconductor Corporation | Systolic array for multidimensional matrix computations |
US6672187B2 (en) * | 2001-04-05 | 2004-01-06 | Mikkelsen Graphic Engineering, Inc. | Method and apparatus for rapid precision cutting of graphics areas from sheets |
-
2006
- 2006-07-21 JP JP2006199682A patent/JP4657998B2/ja not_active Expired - Fee Related
-
2007
- 2007-07-20 US US11/878,058 patent/US8195733B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06506073A (ja) * | 1990-08-16 | 1994-07-07 | イギリス国 | 並列処理アレイの動作をシミュレートするデジタルプロセッサ |
JP2001056808A (ja) * | 1999-06-10 | 2001-02-27 | Lucent Technol Inc | 行列計算を行うためのプロセッサ素子のパイプライン処理線形アレー |
JP2005509950A (ja) * | 2001-11-16 | 2005-04-14 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | フィンガープリント・データベース更新方法、クライアント及びサーバ |
Also Published As
Publication number | Publication date |
---|---|
US20080028015A1 (en) | 2008-01-31 |
JP2008027234A (ja) | 2008-02-07 |
US8195733B2 (en) | 2012-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4657998B2 (ja) | シストリックアレイ | |
US11119765B2 (en) | Processor with processing cores each including arithmetic unit array | |
US20200334322A1 (en) | Matrix multiplier | |
US10445638B1 (en) | Restructuring a multi-dimensional array | |
US10025755B2 (en) | Device and method to process data in parallel | |
WO2017185389A1 (zh) | 一种用于执行矩阵乘运算的装置和方法 | |
JP2020144843A (ja) | シストリックアレイ及びプロセッシングシステム | |
JP2009529188A (ja) | 改良された置換可能なアドレス・プロセッサ及び方法 | |
WO2022016926A1 (zh) | 神经网络计算装置和数据读取、数据存储方法及相关设备 | |
WO2019216376A1 (ja) | 演算処理装置 | |
JP7171883B2 (ja) | 効率的な畳み込みエンジン | |
WO2020087742A1 (zh) | 用于实现卷积运算的处理元件、装置和方法 | |
KR20210033757A (ko) | 메모리 장치 및 그 동작 방법 | |
JP2011141823A (ja) | データ処理装置および並列演算装置 | |
US20080320273A1 (en) | Interconnections in Simd Processor Architectures | |
WO2022160704A1 (zh) | 一种图像处理方法、装置、计算机设备及存储介质 | |
TWI634436B (zh) | 緩衝裝置及卷積運算裝置與方法 | |
JP7387017B2 (ja) | アドレス生成方法及びユニット、深層学習処理器、チップ、電子機器並びにコンピュータプログラム | |
JP5327482B2 (ja) | 画像処理装置及び画像処理方法 | |
JP7136343B2 (ja) | データ処理システム、方法、およびプログラム | |
CN110310705A (zh) | 支持simd的序列比对方法及装置 | |
US11467973B1 (en) | Fine-grained access memory controller | |
TW202209096A (zh) | 矩陣乘法裝置及其操作方法 | |
US9330438B1 (en) | High performance warp correction in two-dimensional images | |
TWI815392B (zh) | 存內計算裝置及用於執行mac操作之方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090612 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100126 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100329 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101005 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101206 |
|
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: 20101221 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101222 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |