JP2013205973A - 行列演算装置 - Google Patents
行列演算装置 Download PDFInfo
- Publication number
- JP2013205973A JP2013205973A JP2012072237A JP2012072237A JP2013205973A JP 2013205973 A JP2013205973 A JP 2013205973A JP 2012072237 A JP2012072237 A JP 2012072237A JP 2012072237 A JP2012072237 A JP 2012072237A JP 2013205973 A JP2013205973 A JP 2013205973A
- Authority
- JP
- Japan
- Prior art keywords
- data
- matrix
- matrix operation
- size
- data array
- 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.)
- Granted
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
【解決手段】メモリに格納されたデータに対して第1のサイズの行列演算を行う機能と、前記メモリに格納されたデータに対して前記第1のサイズを拡大した第2のサイズの行列演算を行う機能と、を有する行列演算部と、前記第1のサイズの行列演算に適したデータ配列と、前記第2のサイズの行列演算に適したデータ配列とを、前記メモリ上で少なくとも一方向に変換可能なデータ配列変換部と、を有する行列演算装置。
【選択図】図15
Description
以下、図面を参照し、本発明の第1実施例に係る行列演算装置1について説明する。
図1は、本発明の第1実施例に係る行列演算装置1が、携帯電話のベースバンド処理LSI(Large Scale Integrated circuit)100に適用された適用例である。ベースバンド処理LSI100は、例えば、RF部110と、専用ハードウェア120と、DSP(Digital Signal Processor)130#1〜130#3とを備える。
以下、例えば上記のような携帯電話100に使用される行列演算装置1について説明する。図4は、行列演算装置1のハードウェア構成例である。行列演算装置1は、例えば制御回路10と、ロードストアユニット20と、FIFO(First In, First Out)30、31、32と、ソートレジスタ50を含む演算データパス40とを備える。
ところで、図8のように、並行して演算するソースがデータメモリ134の同じライン上に格納されている場合は、例えば2×2行列演算用に格納されたデータa0〜a3、及びb0〜3を4×4行列とみなして4×4行列演算を行うことは可能である。但し、この場合、制御回路10は、特有のデータ解釈を行う必要がある。
一方、並行して演算する2×2行列のソースがデータメモリ134の同じライン上に格納されていない場合は、2×2行列演算用に格納されたデータを4×4行列とみなして4×4行列演算を行うことが困難である。このため、本実施例の行列演算装置1は、2×2行列演算に適したデータ配列と、4×4行列演算に適したデータ配列を相互に変換する機能を有する。係るデータ配列の変換命令は、例えばCPU135から制御回路10に送信される。
以下、本実施例の行列演算装置1により実行されるデータ配列の変換処理について説明する。
ここで、2×2行列と4×4行列の間でデータ配列を変換すると好適な例について説明する。図20は、4×2行列Aと2×4行列Bの乗算を行った結果の行列Cを、4×4行列Dに乗算して4×4行列Eを得る演算を示す図である。本実施例のようにデータ配列の変換機能を有さない行列演算装置の場合、図21に示すように、2×2行列で全て演算処理を行う必要がある。
以上説明した本実施例の行列演算装置1は、2×2行列演算に適したデータ配列と4×4行列演算に適したデータ配列を相互に変換する機能を有するため、行列演算を効率的に行うことができる。
以下、図面を参照し、本発明の第2実施例に係る行列演算装置2について説明する。第2実施例に係る行列演算装置2は、2×2行列演算に適したデータ配列と、4×4行列演算に適したデータ配列を相互に変換するための構成が第1実施例と異なる。従って、第2実施例では、係る相違点を中心として説明する。
以下、図面を参照し、本発明の第3実施例に係る行列演算装置3について説明する。第3実施例に係る行列演算装置3は、2×2行列演算に適したデータ配列と、4×4行列演算に適したデータ配列を相互に変換するための構成が第1実施例と異なる。従って、第3実施例では、係る相違点を中心として説明する。
(付記1)
メモリに格納されたデータに対して第1のサイズの行列演算を行う機能と、前記メモリに格納されたデータに対して前記第1のサイズを拡大した第2のサイズの行列演算を行う機能と、を有する行列演算部と、
前記第1のサイズの行列演算に適したデータ配列と、前記第2のサイズの行列演算に適したデータ配列とを、前記メモリ上で少なくとも一方向に変換可能なデータ配列変換部と、
を有する行列演算装置。
(付記2)
前記第2のサイズの行列演算に適したデータ配列は、前記第1のサイズの行列を構成する行列要素が、前記第1のサイズの行列の形態を維持したデータ配列である、
付記1記載の行列演算装置。
(付記3)
前記メモリに格納された、前記第1のサイズの行列演算に適したデータ配列は、ストリーム型処理において連続して処理されるデータ配列が複数組、並列に格納されたデータ配列であり、
前記データ配列変換部は、前記メモリに格納された複数組のデータ配列から一連のデータを順に読み出してデータ格納部に格納することにより行列状のデータを前記データ格納部上に生成し、該行列状のデータの行方向と列方向を入れ替えて読み出したデータを前記メモリに書き込むことにより、前記第1のサイズの行列演算に適したデータ配列を、前記第2のサイズの行列演算に適したデータ配列に変換する、
付記1又は2記載の行列演算装置。
(付記4)
前記メモリに格納された、前記第1のサイズの行列演算に適したデータ配列は、ストリーム型処理において連続して処理されるデータ配列が複数組、並列に格納されたデータ配列であり、
前記データ配列変換部は、前記第2のサイズの行列演算に適したデータ配列に含まれる一連のデータを複数個読み出してデータ格納部に格納することにより行列状のデータを前記データ格納部上に生成し、該行列状のデータの行方向と列方向を入れ替えて読み出したデータを、前記メモリにおける複数のデータ配列が格納される領域に分配して書き込むことにより、前記第2のサイズの行列演算に適したデータ配列を、前記第1のサイズの行列演算に適したデータ配列に変換する、
付記1又は2記載の行列演算装置。
(付記5)
前記メモリは、並行してアクセス可能な複数のデータ領域を有し、
前記データ配列変換部は、前記データ格納部を複数個備え、該複数個のデータ格納部を、前記メモリから前記第2のサイズの行列に相当するデータが格納される度に切り替えて使用する、
付記3又は4記載の行列演算装置。
(付記6)
前記メモリに格納された、前記第1のサイズの行列演算に適したデータ配列は、ストリーム型処理において連続して処理されるデータ配列が複数組、並列に格納されたデータ配列であり、
前記データ配列変換部は、
前記複数のデータ配列に対応した複数のロードストアユニットと、
前記ロードストアユニットにより前記複数組のデータ配列から読み出される一連のデータの一部を取り出して出力する複数のデータ抽出部と、
該複数のデータ抽出部がそれぞれ出力したデータが結合されて前記第2のサイズの行列演算に適したデータ配列として格納されるデータ格納部と、
を備えることにより、前記第1のサイズの行列演算に適したデータ配列を、前記第2のサイズの行列演算に適したデータ配列に変換する、
付記1又は2記載の行列演算装置。
(付記7)
前記メモリに格納された、前記第1のサイズの行列演算に適したデータ配列は、ストリーム型処理において連続して処理されるデータ配列が複数組、並列に格納されたデータ配列であり、
前記データ配列変換部は、
前記複数のデータ配列に対応した複数の第1のロードストアユニットと、
前記複数の第1のロードストアユニットに対応した複数の第1のデータ格納部と、
前記第2のサイズの行列演算に適したデータ配列に対応した第2のロードストアユニットと、
前記第2のロードストアユニットにより読み出された一連のデータのうち各データ配列に対応した一部のデータが入力されると、前記データ配列を構成するデータの単位毎に前記複数の第1のデータ格納部に書き込むデータ分配部と、
を備えることにより、前記第2のサイズの行列演算に適したデータ配列を、前記第1のサイズの行列演算に適したデータ配列に変換する、
付記1又は2記載の行列演算装置。
10 制御回路
20 ロードストアユニット
30、31、32 FIFO
40 演算データパス
50 ソートレジスタ
134 データメモリ
135 CPU
Claims (7)
- メモリに格納されたデータに対して第1のサイズの行列演算を行う機能と、前記メモリに格納されたデータに対して前記第1のサイズを拡大した第2のサイズの行列演算を行う機能と、を有する行列演算部と、
前記第1のサイズの行列演算に適したデータ配列と、前記第2のサイズの行列演算に適したデータ配列とを、前記メモリ上で少なくとも一方向に変換可能なデータ配列変換部と、
を有する行列演算装置。 - 前記第2のサイズの行列演算に適したデータ配列は、前記第1のサイズの行列を構成する行列要素が、前記第1のサイズの行列の形態を維持したデータ配列である、
請求項1記載の行列演算装置。 - 前記メモリに格納された、前記第1のサイズの行列演算に適したデータ配列は、ストリーム型処理において連続して処理されるデータ配列が複数組、並列に格納されたデータ配列であり、
前記データ配列変換部は、前記メモリに格納された複数組のデータ配列から一連のデータを順に読み出してデータ格納部に格納することにより行列状のデータを前記データ格納部上に生成し、該行列状のデータの行方向と列方向を入れ替えて読み出したデータを前記メモリに書き込むことにより、前記第1のサイズの行列演算に適したデータ配列を、前記第2のサイズの行列演算に適したデータ配列に変換する、
請求項1又は2記載の行列演算装置。 - 前記メモリに格納された、前記第1のサイズの行列演算に適したデータ配列は、ストリーム型処理において連続して処理されるデータ配列が複数組、並列に格納されたデータ配列であり、
前記データ配列変換部は、前記第2のサイズの行列演算に適したデータ配列に含まれる一連のデータを複数個読み出してデータ格納部に格納することにより行列状のデータを前記データ格納部上に生成し、該行列状のデータの行方向と列方向を入れ替えて読み出したデータを、前記メモリにおける複数のデータ配列が格納される領域に分配して書き込むことにより、前記第2のサイズの行列演算に適したデータ配列を、前記第1のサイズの行列演算に適したデータ配列に変換する、
請求項1又は2記載の行列演算装置。 - 前記メモリは、並行してアクセス可能な複数のデータ領域を有し、
前記データ配列変換部は、前記データ格納部を複数個備え、該複数個のデータ格納部を、前記メモリから前記第2のサイズの行列に相当するデータが格納される度に切り替えて使用する、
請求項3又は4記載の行列演算装置。 - 前記メモリに格納された、前記第1のサイズの行列演算に適したデータ配列は、ストリーム型処理において連続して処理されるデータ配列が複数組、並列に格納されたデータ配列であり、
前記データ配列変換部は、
前記複数のデータ配列に対応した複数のデータ入出力部と、
前記複数のデータ入出力部により前記複数組のデータ配列から読み出される一連のデータの一部を取り出して出力する複数のデータ抽出部と、
該複数のデータ抽出部がそれぞれ出力したデータが結合されて前記第2のサイズの行列演算に適したデータ配列として格納されるデータ格納部と、
を備えることにより、前記第1のサイズの行列演算に適したデータ配列を、前記第2のサイズの行列演算に適したデータ配列に変換する、
請求項1又は2記載の行列演算装置。 - 前記メモリに格納された、前記第1のサイズの行列演算に適したデータ配列は、ストリーム型処理において連続して処理されるデータ配列が複数組、並列に格納されたデータ配列であり、
前記データ配列変換部は、
前記複数のデータ配列に対応した複数の第1のデータ入出力部と、
前記複数の第1のデータ入出力部に対応した複数の第1のデータ格納部と、
前記第2のサイズの行列演算に適したデータ配列に対応した第2のデータ入出力部と、
前記第2のデータ入出力部により読み出された一連のデータのうち各データ配列に対応した一部のデータが入力されると、前記データ配列を構成するデータの単位毎に前記複数の第1のデータ格納部に書き込むデータ分配部と、
を備えることにより、前記第2のサイズの行列演算に適したデータ配列を、前記第1のサイズの行列演算に適したデータ配列に変換する、
請求項1又は2記載の行列演算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012072237A JP5840994B2 (ja) | 2012-03-27 | 2012-03-27 | 行列演算装置 |
US13/778,843 US9069716B2 (en) | 2012-03-27 | 2013-02-27 | Matrix calculation unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012072237A JP5840994B2 (ja) | 2012-03-27 | 2012-03-27 | 行列演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013205973A true JP2013205973A (ja) | 2013-10-07 |
JP5840994B2 JP5840994B2 (ja) | 2016-01-06 |
Family
ID=49236508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012072237A Expired - Fee Related JP5840994B2 (ja) | 2012-03-27 | 2012-03-27 | 行列演算装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9069716B2 (ja) |
JP (1) | JP5840994B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10469152B2 (en) | 2016-01-29 | 2019-11-05 | Nec Corporation | Information processing apparatus, information processing method and a computer program |
KR20210116356A (ko) * | 2020-03-13 | 2021-09-27 | 성재모 | 매트릭스 연산 방법 및 그 장치 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6225687B2 (ja) * | 2013-02-18 | 2017-11-08 | 富士通株式会社 | データ処理装置、およびデータ処理方法 |
CN111857820B (zh) * | 2016-04-26 | 2024-05-07 | 中科寒武纪科技股份有限公司 | 一种用于执行矩阵加/减运算的装置和方法 |
CN106445471B (zh) * | 2016-10-13 | 2018-06-01 | 北京百度网讯科技有限公司 | 处理器和用于在处理器上执行矩阵乘运算的方法 |
US10817587B2 (en) | 2017-02-28 | 2020-10-27 | Texas Instruments Incorporated | Reconfigurable matrix multiplier system and method |
US10810281B2 (en) | 2017-02-24 | 2020-10-20 | Texas Instruments Incorporated | Outer product multipler system and method |
US10735023B2 (en) | 2017-02-24 | 2020-08-04 | Texas Instruments Incorporated | Matrix compression accelerator system and method |
US11086967B2 (en) | 2017-03-01 | 2021-08-10 | Texas Instruments Incorporated | Implementing fundamental computational primitives using a matrix multiplication accelerator (MMA) |
US11567765B2 (en) | 2017-03-20 | 2023-01-31 | Intel Corporation | Systems, methods, and apparatuses for tile load |
US10169298B1 (en) * | 2017-05-11 | 2019-01-01 | NovuMind Limited | Native tensor processor, using outer product unit |
CN108875957B (zh) * | 2017-05-11 | 2019-07-12 | 北京异构智能科技有限公司 | 原生张量处理器及使用原生张量处理器的系统 |
JP6907700B2 (ja) * | 2017-05-23 | 2021-07-21 | 富士通株式会社 | 情報処理装置、マルチスレッド行列演算方法、およびマルチスレッド行列演算プログラム |
US11275588B2 (en) | 2017-07-01 | 2022-03-15 | Intel Corporation | Context save with variable save state size |
US11657119B2 (en) * | 2018-12-10 | 2023-05-23 | Advanced Micro Devices, Inc. | Hardware accelerated convolution |
US11520854B2 (en) * | 2019-10-29 | 2022-12-06 | Meta Platforms, Inc. | Support for different matrix multiplications by selecting adder tree intermediate results |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07271737A (ja) * | 1994-03-30 | 1995-10-20 | Fujitsu Ltd | 配列演算処理方式 |
JP2002328915A (ja) * | 2001-02-05 | 2002-11-15 | Samsung Electronics Co Ltd | 時分割方式の行列演算器 |
JP2005216124A (ja) * | 2004-01-30 | 2005-08-11 | Mitsubishi Electric Corp | 行列演算装置 |
JP2007013455A (ja) * | 2005-06-29 | 2007-01-18 | Sony Corp | チャンネル行列演算装置,チャンネル行列演算方法,およびコンピュータプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10207868A (ja) | 1997-01-21 | 1998-08-07 | Sharp Corp | 2次元配列転置回路 |
US7031994B2 (en) * | 2001-08-13 | 2006-04-18 | Sun Microsystems, Inc. | Matrix transposition in a computer system |
US7836118B1 (en) * | 2006-06-16 | 2010-11-16 | Nvidia Corporation | Hardware/software-based mapping of CTAs to matrix tiles for efficient matrix multiplication |
-
2012
- 2012-03-27 JP JP2012072237A patent/JP5840994B2/ja not_active Expired - Fee Related
-
2013
- 2013-02-27 US US13/778,843 patent/US9069716B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07271737A (ja) * | 1994-03-30 | 1995-10-20 | Fujitsu Ltd | 配列演算処理方式 |
JP2002328915A (ja) * | 2001-02-05 | 2002-11-15 | Samsung Electronics Co Ltd | 時分割方式の行列演算器 |
JP2005216124A (ja) * | 2004-01-30 | 2005-08-11 | Mitsubishi Electric Corp | 行列演算装置 |
JP2007013455A (ja) * | 2005-06-29 | 2007-01-18 | Sony Corp | チャンネル行列演算装置,チャンネル行列演算方法,およびコンピュータプログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10469152B2 (en) | 2016-01-29 | 2019-11-05 | Nec Corporation | Information processing apparatus, information processing method and a computer program |
KR20210116356A (ko) * | 2020-03-13 | 2021-09-27 | 성재모 | 매트릭스 연산 방법 및 그 장치 |
KR102512704B1 (ko) * | 2020-03-13 | 2023-03-21 | 성재모 | 매트릭스 연산 방법 및 그 장치 |
Also Published As
Publication number | Publication date |
---|---|
JP5840994B2 (ja) | 2016-01-06 |
US9069716B2 (en) | 2015-06-30 |
US20130262548A1 (en) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5840994B2 (ja) | 行列演算装置 | |
US10642622B2 (en) | Arithmetic processing device and control method of the arithmetic processing device | |
CN105335331B (zh) | 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统 | |
CN110780921A (zh) | 数据处理方法和装置、存储介质及电子装置 | |
KR102341523B1 (ko) | 동시 멀티 비트 가산기 | |
CN110673786B (zh) | 数据缓存的方法和装置 | |
JPWO2012108411A1 (ja) | 符号化/復号化処理プロセッサ、および無線通信装置 | |
JP2018022339A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US9442893B2 (en) | Product-sum operation circuit and product-sum operation system | |
CN107957975B (zh) | 一种计算方法及相关产品 | |
JP5601327B2 (ja) | データ並べ替え回路、可変遅延回路、高速フーリエ変換回路、およびデータ並べ替え方法 | |
CN112446007A (zh) | 一种矩阵运算方法、运算装置以及处理器 | |
CN112929300B (zh) | 一种数据处理装置、方法、基站和存储介质 | |
JP7435602B2 (ja) | 演算装置および演算システム | |
JP2024028901A (ja) | ハードウェアにおけるスパース行列乗算 | |
JP2013512479A (ja) | Simdモードで動作するプロセッシング・エレメントの内部メモリに分散記憶された正方マトリックス及びその転置マトリックスに、時間と面積の効率良いアクセスを可能とする装置及び方法 | |
CN113240074B (zh) | 一种可重构神经网络处理器 | |
CN114003198A (zh) | 内积处理部件、任意精度计算设备、方法及可读存储介质 | |
US9871554B2 (en) | Method and vector computing unit for implementing de-scrambling and de-spreading, and computer storage medium | |
CN109558567B (zh) | 自共轭矩阵的上三角部分存储装置和并行读取方法 | |
JP2022074442A (ja) | 演算装置および演算方法 | |
CN110766150A (zh) | 一种深度卷积神经网络硬件加速器中的区域并行数据载入装置及方法 | |
CN112927124A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
WO2020059156A1 (en) | Data processing system, method, and program | |
US12009948B2 (en) | Data processing apparatus and method, base station, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141201 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20150501 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20150501 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150825 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151022 |
|
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: 20151110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151112 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5840994 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |