JP5689282B2 - 行列をsimdマルチコア・プロセッサ・アーキテクチャ上で転置するためのコンピュータ実装方法、コンピュータ可読ストレージ媒体及びシステム - Google Patents
行列をsimdマルチコア・プロセッサ・アーキテクチャ上で転置するためのコンピュータ実装方法、コンピュータ可読ストレージ媒体及びシステム Download PDFInfo
- Publication number
- JP5689282B2 JP5689282B2 JP2010243281A JP2010243281A JP5689282B2 JP 5689282 B2 JP5689282 B2 JP 5689282B2 JP 2010243281 A JP2010243281 A JP 2010243281A JP 2010243281 A JP2010243281 A JP 2010243281A JP 5689282 B2 JP5689282 B2 JP 5689282B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- simd
- rows
- segment
- 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
Links
- 239000011159 matrix material Substances 0.000 title claims description 299
- 238000000034 method Methods 0.000 title claims description 33
- 238000012545 processing Methods 0.000 claims description 59
- 238000013507 mapping Methods 0.000 claims description 30
- 238000002595 magnetic resonance imaging Methods 0.000 claims 6
- 230000007246 mechanism Effects 0.000 description 59
- 230000017105 transposition Effects 0.000 description 59
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008521 reorganization Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002195 synergetic effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005945 translocation Effects 0.000 description 1
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/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- 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/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/78—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
- G06F7/785—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3828—Multigauge devices, i.e. capable of handling packed numbers without unpacking them
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Description
(a)第1形式の行列MをSIMD形式の行列Sに変換するステップを有し、
前記SIMD形式は、前記SIMDマルチコア・プロセッサ・アーキテクチャ上の複数のコアの各々が前記行列M内の一の行上で1DFFT動作を並列に実行することを可能にするように構成され、
(b)前記行列Sの各要素からSIMD形式の前記行列Mの転置内の一の要素へのマッピングを検索するステップを有し、
前記マッピングは、前記行列Mの転置用の前記行列SのSIMD形式を保存するように定義され、
(c)前記検索されたマッピングに基づき、SIMD転置行列Tを生成するステップを有し、
前記SIMD転置行列Tは、前記SIMDマルチコア・プロセッサ・アーキテクチャ上の複数のコアの各々が前記行列M内の転置された一の行上で1DFFT動作を並列に実行することを可能にするように構成される。
(a)第1形式の行列MをSIMD形式の行列Sに変換するステップを実行し、
前記SIMD形式は、前記SIMDマルチコア・プロセッサ・アーキテクチャ上の複数のコアの各々が前記行列M内の一の行上で1DFFT動作を並列に実行することを可能にするように構成され、
(b)前記行列Sの各要素からSIMD形式の前記行列Mの転置内の一の要素へのマッピングを検索するステップを実行し、
前記マッピングは、前記行列Mの転置用の前記行列SのSIMD形式を保存するように定義され、
(c)前記検索されたマッピングに基づき、SIMD転置行列Tを生成するステップを実行し、
前記SIMD転置行列Tは、前記SIMDマルチコア・プロセッサ・アーキテクチャ上の複数のコアの各々が前記行列M内の転置された一の行上で1DFFT動作を並列に実行することを可能にするように構成される。
(a)第1形式の行列MをSIMD形式の行列Sに変換するステップを実行し、
前記SIMD形式は、前記SIMDマルチコア・プロセッサ・アーキテクチャ上の複数のコアの各々が前記行列M内の一の行上で1DFFT動作を並列に実行することを可能にするように構成され、
(b)前記行列Sの各要素からSIMD形式の前記行列Mの転置内の一の要素へのマッピングを検索するステップを実行し、
前記マッピングは、前記行列Mの転置用の前記行列SのSIMD形式を保存するように定義され、
(c)前記検索されたマッピングに基づき、SIMD転置行列Tを生成するステップを実行し、
前記SIMD転置行列Tは、前記SIMDマルチコア・プロセッサ・アーキテクチャ上の複数のコアの各々が前記行列M内の転置された一の行上で1DFFT動作を並列に実行することを可能にするように構成される。
(表1)
<2次元データの例>
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
(表2)
<配列宣言の例−Cソース・コード>
int data[4][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}};
(表3)
<行優先順序の例>
1 2 3 4 5 6 7 89 10 11 12 13 14 15 16
(表4)
<列優先順序の例>
1 5 9 13 2 6 10 143 7 11 15 4 8 12 16
(表5)
<SIMD形式の例>
1 5 2 6 3 7 4 89 13 10 14 11 15 12 16
(表6)
<要素マッピングの例(2ウェイのSIMD、4×4の行列>
入力インデックス(行列222) 出力インデックス(行列224)
−−−−−−−−−−−−−− −−−−−−−−−−−−−−
行1、列1(v1' ) 行1、列1
行1、列2(v5' ) 行1、列3
行1、列3(v2' ) 行1、列2
行1、列4(v6' ) 行1、列4
行2、列1(v3' ) 行3、列1
行2、列2(v7' ) 行3、列3
行2、列3(v4' ) 行3、列2
行2、列4(v8' ) 行3、列4
行3、列1(v9' ) 行2、列1
行3、列2(v13' ) 行2、列3
行3、列3(v10' ) 行2、列2
行3、列4(v14' ) 行2、列4
行4、列1(v11' ) 行4、列1
行4、列2(v15' ) 行4、列3
行4、列3(v12' ) 行4、列2
行4、列4(v16' ) 行4、列4
120・・・CellPPU
130、132・・・CellSPU
140・・・EIB
150・・・メモリ
152・・・行列
154、156、158、160・・・行列セグメント
170・・・SIMD転置機構
180・・・行列セグメント
810・・・行列マネージャ
820・・・セグメント・ジェネレータ
830・・・セグメント・マネージャ
840・・・転置マネージャ
850・・・再編成機構
Claims (15)
- 行列をSIMD(単一命令複数データ)マルチコア・プロセッサ上で転置するためのコンピュータ実装方法であって、
第1形式の行列Mを、前記SIMDマルチコア・プロセッサ上の複数のコアの各々が前記行列M内の一の行上で1DFFT(高速フーリエ変換)動作を並列に実行することを可能にするSIMD形式の行列Sに変換するステップと、
前記行列Sの各要素から、前記行列Mの転置行列をSIMD形式の行列へ変換したあとの当該行列内の一の要素へのマッピングを検索するステップと、
検索された前記マッピングに基づき、前記行列Sの各要素を前記一の要素に関連付けることにより、SIMDマルチコア・プロセッサ上の複数のコアの各々が前記行列M内の転置された一の行上で1DFFT動作を並列に実行することを可能にする行列(以下、SIMD転置行列)Tを生成するステップと、
を含み、
前記SIMD形式の行列は、前記行列Mのr行の同時処理のために構成された複数ブロックのシーケンスを含み、各ブロックは、前記行列Mの連続するr行において、当該連続するr行のi番目の要素が、順次メモリ・アドレスに関して当該連続するr行の(i+1)番目の要素の前に来るように、当該連続するr行の諸要素をインターリーブすることによって構成される、
コンピュータ実装方法。 - 前記動作が、
前記行列Sをs個のセグメントに分割するステップと、
前記s個のセグメントを前記SIMDマルチコア・プロセッサのs個の処理要素に割り当てるステップとをさらに有し、
前記SIMD転置行列Tを生成するステップが、各処理要素上で各セグメントを転置するステップを含む、請求項1に記載のコンピュータ実装方法。 - 各処理要素上で各セグメントを転置する前記ステップが、当該各処理要素に対しローカルのメモリ上で生じ、
前記SIMD転置行列Tを生成するステップが、前記処理要素の各々によって、各転置セグメントを当該処理要素のうち任意の処理要素に対してもローカルでないメモリに移動させるステップをさらに含む、請求項2に記載のコンピュータ実装方法。 - 各処理要素上で各セグメントを転置する前記ステップが、
当該各セグメントを、それぞれが当該各処理要素に対してローカルのメモリのサイズを超えないd個のサブディビジョンに分割するステップと、
当該各セグメントの各サブディビジョンを当該各処理要素上で転置するステップと
を含む、請求項2に記載のコンピュータ実装方法。 - 前記行列Mが、256×256、512×512又は1024×1024のサイズを有する行列の形態でMRI(磁気共鳴画像)装置から取り込まれたイメージ・データの一部を格納する、請求項1に記載のコンピュータ実装方法。
- 行列をSIMD(単一命令複数データ)マルチコア・プロセッサ上で転置するように構成されたアプリケーション・プログラムを格納する非一時的なコンピュータ可読ストレージ媒体であって、
前記アプリケーション・プログラムが、
第1形式の行列Mを、前記SIMDマルチコア・プロセッサ上の複数のコアの各々が前記行列M内の一の行上で1DFFT(高速フーリエ変換)動作を並列に実行することを可能にするSIMD形式の行列Sに変換するステップと、
前記行列Sの各要素から前記行列Mの転置行列をSIMD形式の行列へ変換したあとの当該行列内の一の要素へのマッピングを検索するステップと、
検索された前記マッピングに基づき、前記行列Sの各要素を前記一の要素に関連付けることにより、SIMDマルチコア・プロセッサ上の複数のコアの各々が前記行列M内の転置された一の行上で1DFFT動作を並列に実行することを可能にする行列(以下、SIMD転置行列)Tを生成するステップと、
を含む動作を実行することによって行列をSIMDマルチコア・プロセッサ上で転置し、
前記SIMD形式の行列は、前記行列Mのr行の同時処理のために構成された複数ブロックのシーケンスを含み、各ブロックは、前記行列Mの連続するr行において、当該連続するr行のi番目の要素が、順次メモリ・アドレスに関して当該連続するr行の(i+1)番目の要素の前に来るように、当該連続するr行の諸要素をインターリーブすることによって構成される、
非一時的なコンピュータ可読ストレージ媒体。 - 前記動作が、
前記行列Sをs個のセグメントに分割するステップと、
前記s個のセグメントを前記SIMDマルチコア・プロセッサのs個の処理要素に割り当てるステップとをさらに有し、
前記SIMD転置行列Tを生成するステップが、各処理要素上で各セグメントを転置するステップを含む、請求項6に記載の非一時的なコンピュータ可読ストレージ媒体。 - 各処理要素上で各セグメントを転置する前記ステップが、当該各処理要素に対しローカルのメモリ上で生じ、前記SIMD転置行列Tを生成するステップが、前記処理要素の各々によって、各転置セグメントを当該処理要素のうち任意の処理要素に対してもローカルでないメモリに移動させるステップをさらに含む、請求項7に記載の非一時的なコンピュータ可読ストレージ媒体。
- 各処理要素上で各セグメントを転置する前記ステップが、
当該各セグメントを、それぞれが当該各処理要素に対してローカルのメモリのサイズを超えないd個のサブディビジョンに分割するステップと、
当該各セグメントの各サブディビジョンを当該各処理要素上で転置するステップと
を含む、請求項7に記載の非一時的なコンピュータ可読ストレージ媒体。 - 前記行列Mが、256×256、512×512又は1024×1024のサイズを有する行列の形態でMRI(磁気共鳴画像)装置から取り込まれたイメージ・データの一部を格納する、請求項6に記載の非一時的なコンピュータ可読ストレージ媒体。
- SIMD(単一命令複数データ)マルチコア・プロセッサと、
行列を前記SIMDマルチコア・プロセッサ上で転置するように構成されたアプリケーション・プログラムを保持するメモリとを備え、
前記アプリケーション・プログラムが、
第1形式の行列Mを、前記SIMDマルチコア・プロセッサ上の複数のコアの各々が前記行列M内の一の行上で1DFFT(高速フーリエ変換)動作を並列に実行することを可能にするSIMD形式の行列Sに変換するステップと、
前記行列Sの各要素から前記行列Mの転置行列をSIMD形式の行列へ変換したあとの当該行列内の一の要素へのマッピングを検索するステップと、
検索された前記マッピングに基づき、前記行列Sの各要素を前記一の要素に関連付けることにより、SIMDマルチコア・プロセッサ上の複数のコアの各々が前記行列M内の転置された一の行上で1DFFT動作を並列に実行することを可能にする行列(以下、SIMD転置行列)Tを生成するステップと、
を含む動作を実行することによって行列をSIMDマルチコア・プロセッサ上で転置し、
前記SIMD形式の行列は、前記行列Mのr行の同時処理のために構成された複数ブロックのシーケンスを含み、各ブロックは、前記行列Mの連続するr行において、当該連続するr行のi番目の要素が、順次メモリ・アドレスに関して当該連続するr行の(i+1)番目の要素の前に来るように、当該連続するr行の諸要素をインターリーブすることによって構成される、
システム。 - 前記動作が、
前記行列Sをs個のセグメントに分割するステップと、
前記s個のセグメントを前記SIMDマルチコア・プロセッサのs個の処理要素に割り当てるステップとをさらに有し、
前記SIMD転置行列Tを生成するステップが、各処理要素上で各セグメントを転置するステップを含む、請求項11に記載のシステム。 - 各処理要素上で各セグメントを転置する前記ステップが、当該各処理要素に対しローカルのメモリ上で生じ、前記SIMD転置行列Tを生成するステップが、前記処理要素の各々によって、各転置セグメントを当該処理要素のうち任意の処理要素に対してもローカルでないメモリに移動させるステップをさらに含む、請求項12に記載のシステム。
- 各処理要素上で各セグメントを転置する前記ステップが、当該各セグメントを、それぞれが当該各処理要素に対してローカルのメモリのサイズを超えないd個のサブディビジョンに分割するステップと、
当該各セグメントの各サブディビジョンを当該各処理要素上で転置するステップとを含む、請求項12に記載のシステム。 - 前記行列Mが、256×256、512×512又は1024×1024のサイズを有する行列の形態でMRI(磁気共鳴画像)装置から取り込まれたイメージ・データの一部を格納する、請求項11に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/612,037 US8539201B2 (en) | 2009-11-04 | 2009-11-04 | Transposing array data on SIMD multi-core processor architectures |
US12/612037 | 2009-11-04 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2011100452A JP2011100452A (ja) | 2011-05-19 |
JP2011100452A5 JP2011100452A5 (ja) | 2014-08-14 |
JP5689282B2 true JP5689282B2 (ja) | 2015-03-25 |
Family
ID=43926625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010243281A Expired - Fee Related JP5689282B2 (ja) | 2009-11-04 | 2010-10-29 | 行列をsimdマルチコア・プロセッサ・アーキテクチャ上で転置するためのコンピュータ実装方法、コンピュータ可読ストレージ媒体及びシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US8539201B2 (ja) |
JP (1) | JP5689282B2 (ja) |
KR (1) | KR20110079495A (ja) |
CN (1) | CN102053948B (ja) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008129900A1 (ja) * | 2007-04-12 | 2008-10-30 | Nec Corporation | アレイプロセッサ型データ処理装置 |
US8484276B2 (en) * | 2009-03-18 | 2013-07-09 | International Business Machines Corporation | Processing array data on SIMD multi-core processor architectures |
JP5760532B2 (ja) * | 2011-03-14 | 2015-08-12 | 株式会社リコー | プロセッサ装置及びその演算方法 |
WO2013054468A1 (ja) * | 2011-10-14 | 2013-04-18 | パナソニック株式会社 | 転置演算装置とその集積回路、および転置処理方法 |
CN104011705A (zh) * | 2011-12-01 | 2014-08-27 | 新加坡国立大学 | 多形异构性多核架构 |
CN102521209B (zh) * | 2011-12-12 | 2015-03-11 | 浪潮电子信息产业股份有限公司 | 一种并行多处理器计算机的设计方法 |
WO2013095580A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset |
CN104011672A (zh) * | 2011-12-30 | 2014-08-27 | 英特尔公司 | 转置指令 |
KR101893796B1 (ko) | 2012-08-16 | 2018-10-04 | 삼성전자주식회사 | 동적 데이터 구성을 위한 방법 및 장치 |
CN102929724B (zh) * | 2012-11-06 | 2016-04-13 | 无锡江南计算技术研究所 | 基于异构众核处理器的多级访存方法、离散访存方法 |
US9412063B2 (en) | 2013-12-27 | 2016-08-09 | International Business Machines Corporation | Transform architecture for multiple neurosynaptic core circuits |
US9406015B2 (en) | 2013-12-27 | 2016-08-02 | International Business Machines Corporation | Transform for a neurosynaptic core circuit |
TWI570573B (zh) | 2014-07-08 | 2017-02-11 | 財團法人工業技術研究院 | 矩陣轉置電路 |
SE539721C2 (en) * | 2014-07-09 | 2017-11-07 | Device and method for performing a Fourier transform on a three dimensional data set | |
KR102452945B1 (ko) * | 2015-08-27 | 2022-10-11 | 삼성전자주식회사 | 푸리에 변환을 수행하는 방법 및 장치 |
US10635909B2 (en) * | 2015-12-30 | 2020-04-28 | Texas Instruments Incorporated | Vehicle control with efficient iterative triangulation |
US10095445B2 (en) | 2016-03-29 | 2018-10-09 | Western Digital Technologies, Inc. | Systems and methods for offloading processing from a host to storage processing units using an interconnect network |
US10275243B2 (en) | 2016-07-02 | 2019-04-30 | Intel Corporation | Interruptible and restartable matrix multiplication instructions, processors, methods, and systems |
KR102526754B1 (ko) * | 2016-07-13 | 2023-04-27 | 삼성전자주식회사 | 3차원 영상 처리 방법 및 장치 |
KR102654862B1 (ko) * | 2016-08-31 | 2024-04-05 | 삼성전자주식회사 | 영상 처리 방법 및 장치 |
US11748625B2 (en) | 2016-12-30 | 2023-09-05 | Intel Corporation | Distributed convolution for neural networks |
US10169296B2 (en) | 2016-12-30 | 2019-01-01 | Intel Corporation | Distributed matrix multiplication for neural networks |
EP3563304B1 (en) * | 2016-12-30 | 2022-03-09 | Intel Corporation | Deep learning hardware |
EP4137941A1 (en) | 2017-03-20 | 2023-02-22 | Intel Corporation | Systems, methods, and apparatuses for matrix add, subtract, and multiply |
CN107168683B (zh) * | 2017-05-05 | 2020-06-09 | 中国科学院软件研究所 | 申威26010众核cpu上gemm稠密矩阵乘高性能实现方法 |
WO2019009870A1 (en) | 2017-07-01 | 2019-01-10 | Intel Corporation | SAVE BACKGROUND TO VARIABLE BACKUP STATUS SIZE |
KR102494412B1 (ko) * | 2017-11-28 | 2023-02-03 | 삼성전자 주식회사 | Simd 연산을 이용하여 이미지 데이터의 주파수 변환을 수행하는 전자 장치 및 전자 장치의 동작 방법 |
US11093247B2 (en) | 2017-12-29 | 2021-08-17 | Intel Corporation | Systems and methods to load a tile register pair |
US11809869B2 (en) | 2017-12-29 | 2023-11-07 | Intel Corporation | Systems and methods to store a tile register pair to memory |
US11789729B2 (en) | 2017-12-29 | 2023-10-17 | Intel Corporation | Systems and methods for computing dot products of nibbles in two tile operands |
US11023235B2 (en) | 2017-12-29 | 2021-06-01 | Intel Corporation | Systems and methods to zero a tile register pair |
US11669326B2 (en) | 2017-12-29 | 2023-06-06 | Intel Corporation | Systems, methods, and apparatuses for dot product operations |
US11816483B2 (en) | 2017-12-29 | 2023-11-14 | Intel Corporation | Systems, methods, and apparatuses for matrix operations |
US10664287B2 (en) | 2018-03-30 | 2020-05-26 | Intel Corporation | Systems and methods for implementing chained tile operations |
US11093579B2 (en) | 2018-09-05 | 2021-08-17 | Intel Corporation | FP16-S7E8 mixed precision for deep learning and other algorithms |
US11579883B2 (en) | 2018-09-14 | 2023-02-14 | Intel Corporation | Systems and methods for performing horizontal tile operations |
US10970076B2 (en) | 2018-09-14 | 2021-04-06 | Intel Corporation | Systems and methods for performing instructions specifying ternary tile logic operations |
US10990396B2 (en) | 2018-09-27 | 2021-04-27 | Intel Corporation | Systems for performing instructions to quickly convert and use tiles as 1D vectors |
US10719323B2 (en) | 2018-09-27 | 2020-07-21 | Intel Corporation | Systems and methods for performing matrix compress and decompress instructions |
US10866786B2 (en) | 2018-09-27 | 2020-12-15 | Intel Corporation | Systems and methods for performing instructions to transpose rectangular tiles |
US10963256B2 (en) * | 2018-09-28 | 2021-03-30 | Intel Corporation | Systems and methods for performing instructions to transform matrices into row-interleaved format |
US10896043B2 (en) | 2018-09-28 | 2021-01-19 | Intel Corporation | Systems for performing instructions for fast element unpacking into 2-dimensional registers |
US10929143B2 (en) | 2018-09-28 | 2021-02-23 | Intel Corporation | Method and apparatus for efficient matrix alignment in a systolic array |
US10963246B2 (en) | 2018-11-09 | 2021-03-30 | Intel Corporation | Systems and methods for performing 16-bit floating-point matrix dot product instructions |
US10929503B2 (en) | 2018-12-21 | 2021-02-23 | Intel Corporation | Apparatus and method for a masked multiply instruction to support neural network pruning operations |
US11886875B2 (en) | 2018-12-26 | 2024-01-30 | Intel Corporation | Systems and methods for performing nibble-sized operations on matrix elements |
US11294671B2 (en) | 2018-12-26 | 2022-04-05 | Intel Corporation | Systems and methods for performing duplicate detection instructions on 2D data |
US20200210517A1 (en) | 2018-12-27 | 2020-07-02 | Intel Corporation | Systems and methods to accelerate multiplication of sparse matrices |
US10922077B2 (en) | 2018-12-29 | 2021-02-16 | Intel Corporation | Apparatuses, methods, and systems for stencil configuration and computation instructions |
US10942985B2 (en) | 2018-12-29 | 2021-03-09 | Intel Corporation | Apparatuses, methods, and systems for fast fourier transform configuration and computation instructions |
US10853559B2 (en) | 2019-03-27 | 2020-12-01 | Charter Communications Operating, Llc | Symmetric text replacement |
US11269630B2 (en) | 2019-03-29 | 2022-03-08 | Intel Corporation | Interleaved pipeline of floating-point adders |
US11016731B2 (en) | 2019-03-29 | 2021-05-25 | Intel Corporation | Using Fuzzy-Jbit location of floating-point multiply-accumulate results |
US11175891B2 (en) | 2019-03-30 | 2021-11-16 | Intel Corporation | Systems and methods to perform floating-point addition with selected rounding |
US10990397B2 (en) | 2019-03-30 | 2021-04-27 | Intel Corporation | Apparatuses, methods, and systems for transpose instructions of a matrix operations accelerator |
US11403097B2 (en) | 2019-06-26 | 2022-08-02 | Intel Corporation | Systems and methods to skip inconsequential matrix operations |
US11334647B2 (en) | 2019-06-29 | 2022-05-17 | Intel Corporation | Apparatuses, methods, and systems for enhanced matrix multiplier architecture |
US11714875B2 (en) | 2019-12-28 | 2023-08-01 | Intel Corporation | Apparatuses, methods, and systems for instructions of a matrix operations accelerator |
CN111444134A (zh) * | 2020-03-24 | 2020-07-24 | 山东大学 | 分子动力学模拟软件的并行pme的加速优化方法及*** |
US11593454B2 (en) * | 2020-06-02 | 2023-02-28 | Intel Corporation | Matrix operation optimization mechanism |
US11972230B2 (en) | 2020-06-27 | 2024-04-30 | Intel Corporation | Matrix transpose and multiply |
US11941395B2 (en) | 2020-09-26 | 2024-03-26 | Intel Corporation | Apparatuses, methods, and systems for instructions for 16-bit floating-point matrix dot product instructions |
CN112433760B (zh) * | 2020-11-27 | 2022-09-23 | 海光信息技术股份有限公司 | 数据排序方法和数据排序电路 |
US12001385B2 (en) | 2020-12-24 | 2024-06-04 | Intel Corporation | Apparatuses, methods, and systems for instructions for loading a tile of a matrix operations accelerator |
US12001887B2 (en) | 2020-12-24 | 2024-06-04 | Intel Corporation | Apparatuses, methods, and systems for instructions for aligning tiles of a matrix operations accelerator |
KR20220162543A (ko) | 2021-06-01 | 2022-12-08 | 에스케이하이닉스 주식회사 | 메모리 장치, 반도체 시스템 및 데이터 처리 시스템 |
KR102527829B1 (ko) * | 2021-08-19 | 2023-04-28 | 한국기술교육대학교 산학협력단 | Cpu와 gpu를 사용하는 행렬 전치기반 2d-fft 연산 장치 및 이를 이용한 데이터 연산 방법 |
US20240020129A1 (en) * | 2022-07-14 | 2024-01-18 | Nxp Usa, Inc. | Self-Ordering Fast Fourier Transform For Single Instruction Multiple Data Engines |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197625B1 (en) * | 1997-10-09 | 2007-03-27 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6243730B1 (en) * | 1999-05-04 | 2001-06-05 | Sony Electronics, Inc. | Methods and systems for performing short integer chen IDCT algorithm with fused multiply/add |
US6625721B1 (en) * | 1999-07-26 | 2003-09-23 | Intel Corporation | Registers for 2-D matrix processing |
US20030084081A1 (en) * | 2001-10-27 | 2003-05-01 | Bedros Hanounik | Method and apparatus for transposing a two dimensional array |
US6963341B1 (en) * | 2002-06-03 | 2005-11-08 | Tibet MIMAR | Fast and flexible scan conversion and matrix transpose in a SIMD processor |
US7386703B2 (en) * | 2003-11-18 | 2008-06-10 | International Business Machines Corporation | Two dimensional addressing of a matrix-vector register array |
US20070106718A1 (en) * | 2005-11-04 | 2007-05-10 | Shum Hoi L | Fast fourier transform on a single-instruction-stream, multiple-data-stream processor |
US7937567B1 (en) * | 2006-11-01 | 2011-05-03 | Nvidia Corporation | Methods for scalably exploiting parallelism in a parallel processing system |
US7979672B2 (en) * | 2008-07-25 | 2011-07-12 | International Business Machines Corporation | Multi-core processors for 3D array transposition by logically retrieving in-place physically transposed sub-array data |
US8484276B2 (en) * | 2009-03-18 | 2013-07-09 | International Business Machines Corporation | Processing array data on SIMD multi-core processor architectures |
-
2009
- 2009-11-04 US US12/612,037 patent/US8539201B2/en not_active Expired - Fee Related
-
2010
- 2010-10-29 JP JP2010243281A patent/JP5689282B2/ja not_active Expired - Fee Related
- 2010-11-02 KR KR1020100108204A patent/KR20110079495A/ko not_active Application Discontinuation
- 2010-11-04 CN CN2010105375212A patent/CN102053948B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102053948B (zh) | 2013-09-11 |
CN102053948A (zh) | 2011-05-11 |
JP2011100452A (ja) | 2011-05-19 |
US20110107060A1 (en) | 2011-05-05 |
KR20110079495A (ko) | 2011-07-07 |
US8539201B2 (en) | 2013-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5689282B2 (ja) | 行列をsimdマルチコア・プロセッサ・アーキテクチャ上で転置するためのコンピュータ実装方法、コンピュータ可読ストレージ媒体及びシステム | |
US7836116B1 (en) | Fast fourier transforms and related transforms using cooperative thread arrays | |
US7640284B1 (en) | Bit reversal methods for a parallel processor | |
US11704548B2 (en) | Multicast network and memory transfer optimizations for neural network hardware acceleration | |
US8484276B2 (en) | Processing array data on SIMD multi-core processor architectures | |
JP2011100452A5 (ja) | ||
US7461114B2 (en) | Fourier transform apparatus | |
US4821224A (en) | Method and apparatus for processing multi-dimensional data to obtain a Fourier transform | |
EP0902375A2 (en) | Apparatus for fast Fourier transform | |
US8880575B2 (en) | Fast fourier transform using a small capacity memory | |
EP2455854A1 (en) | System, device, and method for on-the-fly permutations of vector memories for executing intra-vector operations | |
JP2000231513A (ja) | N次元矩形データアレイの任意の所与次元におけるパラレルデータアクセスのためのメモリアーキテクチャ | |
EP1483684A2 (en) | Method of performing nxm discrete cosine transform | |
US6728742B1 (en) | Data storage patterns for fast fourier transforms | |
Sorokin et al. | Conflict-free parallel access scheme for mixed-radix FFT supporting I/O permutations | |
US9268744B2 (en) | Parallel bit reversal devices and methods | |
Mermer et al. | Efficient 2D FFT implementation on mediaprocessors | |
CN111368250B (zh) | 基于傅里叶变换/逆变换的数据处理***、方法及设备 | |
Zheng | Encrypted cloud using GPUs | |
JP7136343B2 (ja) | データ処理システム、方法、およびプログラム | |
US6438568B1 (en) | Method and apparatus for optimizing conversion of input data to output data | |
US20240020129A1 (en) | Self-Ordering Fast Fourier Transform For Single Instruction Multiple Data Engines | |
US6772183B1 (en) | Device for converting input data to output data using plural converters | |
Sánchez et al. | An efficient architecture for the in-place fast cosine transform | |
CN117633418A (zh) | 基于矩阵运算的多维快速傅立叶变换加速方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140630 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20140630 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20140709 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140729 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141028 |
|
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: 20150106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150128 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5689282 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |