JPWO2020066375A1 - 情報処理装置、情報処理方法、プログラム - Google Patents
情報処理装置、情報処理方法、プログラム Download PDFInfo
- Publication number
- JPWO2020066375A1 JPWO2020066375A1 JP2020548162A JP2020548162A JPWO2020066375A1 JP WO2020066375 A1 JPWO2020066375 A1 JP WO2020066375A1 JP 2020548162 A JP2020548162 A JP 2020548162A JP 2020548162 A JP2020548162 A JP 2020548162A JP WO2020066375 A1 JPWO2020066375 A1 JP WO2020066375A1
- Authority
- JP
- Japan
- Prior art keywords
- vector
- instruction
- information processing
- masked
- register
- 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
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 81
- 238000003672 processing method Methods 0.000 title claims description 37
- 238000000034 method Methods 0.000 description 28
- 238000004364 calculation method Methods 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
Abstract
Description
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成するロード命令生成部と、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する演算命令生成部と、
を備えた、
という構成をとる。
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成し、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する、
という構成をとる。
情報処理装置に、
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成するロード命令生成部と、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する演算命令生成部と、
を実現させる、
という構成をとる。
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードし、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算と、マスク付きベクトル演算と、を含むベクトル演算を実行する、
という処理を実行する構成をとる。
ベクトル処理装置による情報処理方法であって、
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードし、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算と、マスク付きベクトル演算と、を含むベクトル演算を実行する、
という構成をとる。
本発明の第1の実施形態を、図3乃至図21を参照して説明する。図3乃至図5は、本発明の概要を説明するための図である。図6は、本発明の構成を説明するための図であり、図7乃至図21は、本発明の動作を説明するための図である。
まず、本発明の概要について説明する。本発明は、ベクトル処理装置に対する複素数データのベクトル演算命令を生成する情報処理装置であり、特に、複素数データの四則演算を行う命令を生成するコンパイラとしての機能を有する。
次に、本発明の一実施形態におけるコンパイラ1の構成について説明する。コンパイラ1は、演算装置と記憶装置とを備えた一般的な情報処理装置で構成されており、演算装置がコンパイラ用プログラムを実行することで構築される。そして、コンパイラ1は、図6に示すように、ループ解析部10とベクトル化実行部20とを備えている。
次に、上述したコンパイラ1の動作を、図8乃至図21を参照して説明する。本実施形態では、図8の式に示す複素数の加算、減算、乗算、除算を実行するベクトル演算命令を生成することとする。具体的には、図9乃至図12にそれぞれ示す複素数の加算、減算、乗算、除算において実部と虚部との配列に対するループ演算を有するFortranプログラムコードに基づいてベクトル演算命令を生成する。なお、図9乃至図12に示すFortranプログラムに含まれる複素数配列は、1要素が8バイトであり、実部と虚部の1要素がそれぞれ4バイトとなる。Fortran言語において、複素数データは実部と虚部とを隣接させて交互に配置させてメモリに格納することが言語仕様で規定されているため、図13のように、複素数データを構成する実部と虚部とがメモリに格納されていることとなる。
次に、本発明の第2の実施形態を、図22乃至図30を参照して説明する。本実施形態では、ベクトル処理装置が、上述した第1の実施形態で説明したマスク付きベクトルクロス演算命令を実行する機能を備えていない場合を説明する。
次に、本発明の第3の実施形態を、図31を参照して説明する。図31は、実施形態1,2における情報処理装置(コンパイラ)の構成を示すブロック図である。なお、本実施形態では、実施形態1,2で説明した情報処理装置の構成の概略を示している。
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成するロード命令生成部110と、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する演算命令生成部120と、
を備える。
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成し、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する、
という処理を実行するよう作動する。
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードし、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算と、マスク付きベクトル演算と、を含むベクトル演算を実行する、
という処理を実行するよう作動する。
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置、情報処理方法、プログラム、ベクトル処理装置の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成するロード命令生成部と、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する演算命令生成部と、
を備えた情報処理装置。
付記1に記載の情報処理装置であって、
前記演算命令生成部は、2つの前記ベクトルレジスタ間で、相互に1つ異なる要素番号に対応する要素同士のベクトル演算をマスク付きで行うマスク付きベクトルクロス演算命令を含むベクトル演算命令を生成する、
情報処理装置。
付記2に記載の情報処理装置であって、
前記演算命令生成部は、同一または異なる2つの前記ベクトルレジスタ間で行う前記マスク付きベクトルクロス演算命令を含むベクトル演算命令を生成する、
情報処理装置。
付記2又は3に記載の情報処理装置であって、
前記演算命令生成部は、要素番号が1つ間隔で空いたマスク付きの前記マスク付きベクトルクロス演算命令を含むベクトル演算命令を生成する、
情報処理装置。
付記1に記載の情報処理装置であって、
前記演算命令生成部は、所定の前記ベクトルレジスタの各要素を、その要素番号を少なくとも1つずつずらした新たな要素番号に対応させた新たなベクトルレジスタに移送するベクトル移送命令を生成すると共に、前記新たなベクトルレジスタを含む前記ベクトルレジスタに対するマスク付きベクトル演算を行う命令を生成する、
情報処理装置。
付記1乃至5のいずれかに記載の情報処理装置であって、
前記演算命令生成部は、前記複素数データを構成する実部と虚部との配列に対するループ演算を含むプログラムコードに基づいてベクトル演算命令を生成する、
情報処理装置。
付記1乃至6のいずれかに記載の情報処理装置であって、
生成された前記ベクトル演算命令に従った演算結果を格納したベクトルレジスタの各要素に連続アクセスして、当該演算結果をメモリに書き込む命令を生成するベクトルストア命令生成部を備えた、
情報処理装置。
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成し、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する、
情報処理方法。
付記8に記載の情報処理方法であって、
2つの前記ベクトルレジスタ間で、相互に1つ異なる要素番号に対応する要素同士のベクトル演算をマスク付きで行うマスク付きベクトルクロス演算命令を含むベクトル演算命令を生成する、
情報処理方法。
付記8に記載の情報処理方法であって、
所定の前記ベクトルレジスタの各要素を、その要素番号を少なくとも1つずつずらした新たな要素番号に対応させた新たなベクトルレジスタに移送するベクトル移送命令を生成すると共に、前記新たなベクトルレジスタを含む前記ベクトルレジスタに対するマスク付きベクトル演算を行う命令を生成する、
情報処理方法。
付記8乃至8.2のいずれかに記載の情報処理方法であって、
前記複素数データを構成する実部と虚部との配列に対するループ演算を含むプログラムコードに基づいてベクトル演算命令を生成する、
情報処理方法。
付記8乃至8.3のいずれかに記載の情報処理方法であって、
生成された前記ベクトル演算命令に従った演算結果を格納したベクトルレジスタの各要素に連続アクセスして、当該演算結果をメモリに書き込む命令を生成する、
情報処理方法。
情報処理装置に、
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成するロード命令生成部と、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する演算命令生成部と、
を実現させるためのプログラム。
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードし、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算と、マスク付きベクトル演算と、を含むベクトル演算を実行する、
ベクトル処理装置。
付記10に記載のベクトル処理装置であって、
2つの前記ベクトルレジスタ間で、相互に1つ異なる要素番号に対応する要素同士のベクトル演算をマスク付きで行うマスク付きベクトルクロス演算を実行する、
ベクトル処理装置。
付記10に記載のベクトル処理装置であって、
所定の前記ベクトルレジスタの各要素を、その要素番号を少なくとも1つずつずらした新たな要素番号に対応させた新たなベクトルレジスタに移送し、前記新たなベクトルレジスタを含む前記ベクトルレジスタに対するマスク付きベクトル演算を実行する、
ベクトル処理装置。
ベクトル処理装置による情報処理方法であって、
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードし、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算と、マスク付きベクトル演算と、を含むベクトル演算を実行する、
情報処理方法。
付記11に記載の情報処理方法であって、
2つの前記ベクトルレジスタ間で、相互に1つ異なる要素番号に対応する要素同士のベクトル演算をマスク付きで行うマスク付きベクトルクロス演算を実行する、
情報処理方法。
付記11に記載の情報処理方法であって、
所定の前記ベクトルレジスタの各要素を、その要素番号を少なくとも1つずつずらした新たな要素番号に対応するよう新たなベクトルレジスタに移送し、前記新たなベクトルレジスタを含む前記ベクトルレジスタに対するマスク付きベクトル演算を実行する、
情報処理方法。
10 ループ解析部
11 ベクトル化判定部
12 複素数演算認識部
20 ベクトル化実行部
21 ベクトルロード命令生成部
22 複素数演算命令生成部
23 ベクトルストア命令生成部
100 情報処理装置
110 ロード命令生成部
120 演算命令生成部
Claims (19)
- 複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成するロード命令生成部と、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する演算命令生成部と、
を備えた情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記演算命令生成部は、2つの前記ベクトルレジスタ間で、相互に1つ異なる要素番号に対応する要素同士のベクトル演算をマスク付きで行うマスク付きベクトルクロス演算命令を含むベクトル演算命令を生成する、
情報処理装置。 - 請求項2に記載の情報処理装置であって、
前記演算命令生成部は、同一または異なる2つの前記ベクトルレジスタ間で行う前記マスク付きベクトルクロス演算命令を含むベクトル演算命令を生成する、
情報処理装置。 - 請求項2又は3に記載の情報処理装置であって、
前記演算命令生成部は、要素番号が1つ間隔で空いたマスク付きの前記マスク付きベクトルクロス演算命令を含むベクトル演算命令を生成する、
情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記演算命令生成部は、所定の前記ベクトルレジスタの各要素を、その要素番号を少なくとも1つずつずらした新たな要素番号に対応させた新たなベクトルレジスタに移送するベクトル移送命令を生成すると共に、前記新たなベクトルレジスタを含む前記ベクトルレジスタに対するマスク付きベクトル演算を行う命令を生成する、
情報処理装置。 - 請求項1乃至5のいずれかに記載の情報処理装置であって、
前記演算命令生成部は、前記複素数データを構成する実部と虚部との配列に対するループ演算を含むプログラムコードに基づいてベクトル演算命令を生成する、
情報処理装置。 - 請求項1乃至6のいずれかに記載の情報処理装置であって、
生成された前記ベクトル演算命令に従った演算結果を格納したベクトルレジスタの各要素に連続アクセスして、当該演算結果をメモリに書き込む命令を生成するベクトルストア命令生成部を備えた、
情報処理装置。 - 複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成し、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する、
情報処理方法。 - 請求項8に記載の情報処理方法であって、
2つの前記ベクトルレジスタ間で、相互に1つ異なる要素番号に対応する要素同士のベクトル演算をマスク付きで行うマスク付きベクトルクロス演算命令を含むベクトル演算命令を生成する、
情報処理方法。 - 請求項8に記載の情報処理方法であって、
所定の前記ベクトルレジスタの各要素を、その要素番号を少なくとも1つずつずらした新たな要素番号に対応させた新たなベクトルレジスタに移送するベクトル移送命令を生成すると共に、前記新たなベクトルレジスタを含む前記ベクトルレジスタに対するマスク付きベクトル演算を行う命令を生成する、
情報処理方法。 - 請求項8乃至10のいずれかに記載の情報処理方法であって、
前記複素数データを構成する実部と虚部との配列に対するループ演算を含むプログラムコードに基づいてベクトル演算命令を生成する、
情報処理方法。 - 請求項8乃至11のいずれかに記載の情報処理方法であって、
生成された前記ベクトル演算命令に従った演算結果を格納したベクトルレジスタの各要素に連続アクセスして、当該演算結果をメモリに書き込む命令を生成する、
情報処理方法。 - 情報処理装置に、
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードする命令を生成するロード命令生成部と、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算を行う命令と、マスク付きベクトル演算を行う命令と、を含むベクトル演算命令を生成する演算命令生成部と、
を実現させるためのプログラム。 - 複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードし、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算と、マスク付きベクトル演算と、を含むベクトル演算を実行する、
ベクトル処理装置。 - 請求項14に記載のベクトル処理装置であって、
2つの前記ベクトルレジスタ間で、相互に1つ異なる要素番号に対応する要素同士のベクトル演算をマスク付きで行うマスク付きベクトルクロス演算を実行する、
ベクトル処理装置。 - 請求項14に記載のベクトル処理装置であって、
所定の前記ベクトルレジスタの各要素を、その要素番号を少なくとも1つずつずらした新たな要素番号に対応させた新たなベクトルレジスタに移送し、前記新たなベクトルレジスタを含む前記ベクトルレジスタに対するマスク付きベクトル演算を実行する、
ベクトル処理装置。 - ベクトル処理装置による情報処理方法であって、
複素数データを構成する実部と虚部とが交互に配置されたメモリに対して、当該実部と虚部との配置通りに連続アクセスして当該実部と虚部とをベクトルレジスタの各要素としてロードし、
2つの前記ベクトルレジスタ間で相互に異なる要素番号に対応する要素同士のベクトル演算と、マスク付きベクトル演算と、を含むベクトル演算を実行する、
情報処理方法。 - 請求項17に記載の情報処理方法であって、
2つの前記ベクトルレジスタ間で、相互に1つ異なる要素番号に対応する要素同士のベクトル演算をマスク付きで行うマスク付きベクトルクロス演算を実行する、
情報処理方法。 - 請求項17に記載の情報処理方法であって、
所定の前記ベクトルレジスタの各要素を、その要素番号を少なくとも1つずつずらした新たな要素番号に対応するよう新たなベクトルレジスタに移送し、前記新たなベクトルレジスタを含む前記ベクトルレジスタに対するマスク付きベクトル演算を実行する、
情報処理方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018178791 | 2018-09-25 | ||
JP2018178791 | 2018-09-25 | ||
PCT/JP2019/032671 WO2020066375A1 (ja) | 2018-09-25 | 2019-08-21 | 情報処理装置、情報処理方法、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2020066375A1 true JPWO2020066375A1 (ja) | 2021-08-30 |
Family
ID=69952035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020548162A Pending JPWO2020066375A1 (ja) | 2018-09-25 | 2019-08-21 | 情報処理装置、情報処理方法、プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210349719A1 (ja) |
JP (1) | JPWO2020066375A1 (ja) |
WO (1) | WO2020066375A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01191266A (ja) * | 1988-01-26 | 1989-08-01 | Nec Corp | 複素数演算ループ最適ベクトル化方式 |
US20110040822A1 (en) * | 2009-08-17 | 2011-02-17 | International Business Machines Corporation | Complex Matrix Multiplication Operations with Data Pre-Conditioning in a High Performance Computing Architecture |
JP2014199663A (ja) * | 2013-03-30 | 2014-10-23 | インテル・コーポレーション | マスクされたフルレジスタアクセスを用いて部分レジスタアクセスを実施するプロセッサ、方法、及びシステム |
US20170177362A1 (en) * | 2015-12-22 | 2017-06-22 | Intel Corporation | Adjoining data element pairwise swap processors, methods, systems, and instructions |
WO2017168118A1 (en) * | 2016-04-01 | 2017-10-05 | Arm Limited | Complex multiply instruction |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5123095A (en) * | 1989-01-17 | 1992-06-16 | Ergo Computing, Inc. | Integrated scalar and vector processors with vector addressing by the scalar processor |
US7818356B2 (en) * | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
US8667042B2 (en) * | 2010-09-24 | 2014-03-04 | Intel Corporation | Functional unit for vector integer multiply add instruction |
US20120254589A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | System, apparatus, and method for aligning registers |
US9639354B2 (en) * | 2011-12-22 | 2017-05-02 | Intel Corporation | Packed data rearrangement control indexes precursors generation processors, methods, systems, and instructions |
CN104011643B (zh) * | 2011-12-22 | 2018-01-05 | 英特尔公司 | 打包数据重新安排控制索引产生处理器、方法、系统及指令 |
US9400650B2 (en) * | 2012-09-28 | 2016-07-26 | Intel Corporation | Read and write masks update instruction for vectorization of recursive computations over interdependent data |
US9378182B2 (en) * | 2012-09-28 | 2016-06-28 | Intel Corporation | Vector move instruction controlled by read and write masks |
US9424031B2 (en) * | 2013-03-13 | 2016-08-23 | Intel Corporation | Techniques for enabling bit-parallel wide string matching with a SIMD register |
US9747961B2 (en) * | 2014-09-03 | 2017-08-29 | Micron Technology, Inc. | Division operations in memory |
US9996347B2 (en) * | 2014-12-24 | 2018-06-12 | Intel Corporation | Hardware apparatuses and methods relating to elemental register accesses |
US10019262B2 (en) * | 2015-12-22 | 2018-07-10 | Intel Corporation | Vector store/load instructions for array of structures |
US20180088946A1 (en) * | 2016-09-27 | 2018-03-29 | Intel Corporation | Apparatuses, methods, and systems for mixing vector operations |
US11023231B2 (en) * | 2016-10-01 | 2021-06-01 | Intel Corporation | Systems and methods for executing a fused multiply-add instruction for complex numbers |
US10452394B2 (en) * | 2017-11-28 | 2019-10-22 | Intel Corporation | Apparatus and method for complex multiplication |
US11036506B1 (en) * | 2019-12-11 | 2021-06-15 | Motorola Solutions, Inc. | Memory systems and methods for handling vector data |
-
2019
- 2019-08-21 JP JP2020548162A patent/JPWO2020066375A1/ja active Pending
- 2019-08-21 WO PCT/JP2019/032671 patent/WO2020066375A1/ja active Application Filing
- 2019-08-21 US US17/277,532 patent/US20210349719A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01191266A (ja) * | 1988-01-26 | 1989-08-01 | Nec Corp | 複素数演算ループ最適ベクトル化方式 |
US20110040822A1 (en) * | 2009-08-17 | 2011-02-17 | International Business Machines Corporation | Complex Matrix Multiplication Operations with Data Pre-Conditioning in a High Performance Computing Architecture |
JP2014199663A (ja) * | 2013-03-30 | 2014-10-23 | インテル・コーポレーション | マスクされたフルレジスタアクセスを用いて部分レジスタアクセスを実施するプロセッサ、方法、及びシステム |
US20170177362A1 (en) * | 2015-12-22 | 2017-06-22 | Intel Corporation | Adjoining data element pairwise swap processors, methods, systems, and instructions |
WO2017168118A1 (en) * | 2016-04-01 | 2017-10-05 | Arm Limited | Complex multiply instruction |
Also Published As
Publication number | Publication date |
---|---|
US20210349719A1 (en) | 2021-11-11 |
WO2020066375A1 (ja) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4339907B2 (ja) | マルチプロセッサ向け最適コード生成方法及びコンパイル装置 | |
KR20110097716A (ko) | 기록 마스크를 사용하는 simd 아키텍처에 의한 레지스터 할당 | |
EP2273381A1 (en) | Simd parallel computer system, simd parallel computing method, and control program | |
KR102062208B1 (ko) | 멀티스레드 프로그램 코드의 변환 장치 및 방법 | |
Liang et al. | Romou: Rapidly generate high-performance tensor kernels for mobile gpus | |
Oh et al. | Parallelization of a finite element Fortran code using OpenMP library | |
US20180088948A1 (en) | Efficient vectorization techniques for operands in non-sequential memory locations | |
JPWO2020066375A1 (ja) | 情報処理装置、情報処理方法、プログラム | |
US8806466B2 (en) | Program generation device, program production method, and program | |
US9158511B2 (en) | Scalable partial vectorization | |
JP5120778B2 (ja) | 分散メモリ型マルチプロセッサシステム、マスク付き逆シフト通信方法及びプログラム | |
WO1998018084A1 (fr) | Dispositif et procede servant a accelerer la vitesse d'acces a une memoire | |
CN110073332A (zh) | 向量生成指令 | |
JP7115563B2 (ja) | コンパイル装置、コンパイル方法、及び制御プログラム | |
US20240053969A1 (en) | Compiling device, compiling method, and compiling program recording medium | |
CN110955380B (zh) | 访存数据生成方法、存储介质、计算机设备和装置 | |
JP2009265708A (ja) | コンパイラ及びそのコード生成方法 | |
JP2019185486A (ja) | コード変換装置、コード変換方法、及びコード変換プログラム | |
WO2021166840A1 (ja) | 記録媒体、コンパイル装置、処理システム及びコンパイル方法 | |
JP3817073B2 (ja) | メモリアクセス処理装置、メモリアクセス処理システム、および記録媒体 | |
JP3771682B2 (ja) | ベクトル処理装置 | |
JP5821697B2 (ja) | コンパイル方法、コンパイルプログラム及びコンパイル装置 | |
JP2018206175A (ja) | コンパイラ、情報処理装置及びコンパイル方法 | |
US20220405204A1 (en) | Computer-readable recording medium storing data placement program, processor, and data placement method | |
US10572233B2 (en) | Vectorization device, vectorization method, and recording medium on which vectorization program is stored |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210204 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210204 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220120 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220419 |