JPH01191266A - 複素数演算ループ最適ベクトル化方式 - Google Patents
複素数演算ループ最適ベクトル化方式Info
- Publication number
- JPH01191266A JPH01191266A JP63015199A JP1519988A JPH01191266A JP H01191266 A JPH01191266 A JP H01191266A JP 63015199 A JP63015199 A JP 63015199A JP 1519988 A JP1519988 A JP 1519988A JP H01191266 A JPH01191266 A JP H01191266A
- Authority
- JP
- Japan
- Prior art keywords
- loop structure
- complex number
- loop
- intermediate text
- complex
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 19
- 238000004458 analytical method Methods 0.000 claims description 31
- 230000009466 transformation Effects 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 9
- 238000003491 array Methods 0.000 claims description 6
- 238000007792 addition Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は複素数演算ループ最適ベクトル化方式に関し、
特にベクトル計算機に対し複素数型のデータ構造を扱う
ことのできる高級言語で記述された原始プログラムを入
力して目的プログラムを生成するコンパイラにおいて複
素数型の配列要素同士の加減算のみを含むループを高速
に実行するようなベクトル命令列を生成する複素数演算
ループ最適ベクトル化方式に関する。
特にベクトル計算機に対し複素数型のデータ構造を扱う
ことのできる高級言語で記述された原始プログラムを入
力して目的プログラムを生成するコンパイラにおいて複
素数型の配列要素同士の加減算のみを含むループを高速
に実行するようなベクトル命令列を生成する複素数演算
ループ最適ベクトル化方式に関する。
複素数型データは、第2図(alに示すように、計算機
内部では実数部と虚数部との2つの隣接する領域からな
り、それぞれは実数型データと同じ表現形式になってい
る。
内部では実数部と虚数部との2つの隣接する領域からな
り、それぞれは実数型データと同じ表現形式になってい
る。
また、複素数型配列の内部表現は、第2図(blに示す
ように、配列の1番目の要素の実数部R1、次にその虚
数部C1、その次に2番目の要素の実数部R2、次にそ
の虚数部C2、・・・、最後の要素の実数部Rn(nは
正整数)、最後の要素の虚数部Cnというようにそれぞ
れの配列要素の実数部と虚数部とが交互に並んだ形式に
なっている。
ように、配列の1番目の要素の実数部R1、次にその虚
数部C1、その次に2番目の要素の実数部R2、次にそ
の虚数部C2、・・・、最後の要素の実数部Rn(nは
正整数)、最後の要素の虚数部Cnというようにそれぞ
れの配列要素の実数部と虚数部とが交互に並んだ形式に
なっている。
例えば、複素数の乗算の場合、
〈演算結果の実数部〉=
く被乗数の実数部〉×〈乗数の実数部〉−く被乗数の虚
数部〉×<乗数の虚数部〉〈演算結果の虚数部〉= く被乗数の実数部〉×<乗数の虚数部〉+く被乗数の虚
数部〉×<乗数の実数部〉となり、実数部と虚数部との
処理が異なる。
数部〉×<乗数の虚数部〉〈演算結果の虚数部〉= く被乗数の実数部〉×<乗数の虚数部〉+く被乗数の虚
数部〉×<乗数の実数部〉となり、実数部と虚数部との
処理が異なる。
このため、従来のコンパイラは、すべての複素数のベク
トル演算で1つの複素数型配列要素を実数部と虚数部と
に分けてベクトルレジスタにロードして演算を行うよう
にベクトル化していた。
トル演算で1つの複素数型配列要素を実数部と虚数部と
に分けてベクトルレジスタにロードして演算を行うよう
にベクトル化していた。
しかしながら、複素数演算が加減算の場合には、実数部
と虚数部とについて行われる操作は全く同一であるので
、ループ内の複素数演算が加減算のみのときには実数部
と虚数部とに分けて演算する必要はない。したがって、
1つの複素数型配列要素を2つの実数型配列要素と考え
、大きさがnの複素数型配列を大きさが2nの実数型配
列とみなして処理することができる。このようにするこ
とにより、ループ長が2倍になり、ベクトル化した際に
1つのベクトル命令で連続処理できる要素数が増えるた
めに処理効率を上げることができる。
と虚数部とについて行われる操作は全く同一であるので
、ループ内の複素数演算が加減算のみのときには実数部
と虚数部とに分けて演算する必要はない。したがって、
1つの複素数型配列要素を2つの実数型配列要素と考え
、大きさがnの複素数型配列を大きさが2nの実数型配
列とみなして処理することができる。このようにするこ
とにより、ループ長が2倍になり、ベクトル化した際に
1つのベクトル命令で連続処理できる要素数が増えるた
めに処理効率を上げることができる。
上述した従来のコンパイラでは、ループ内の複素数演算
が加減算のみのときでも複素数型配列要素を実数部と虚
数部とに分けてベクトル化していたので、複素数型配列
を実数型配列とみなして処理する最適なベクトル化が行
われず、処理効率を向上させる余地があるという欠点が
ある。
が加減算のみのときでも複素数型配列要素を実数部と虚
数部とに分けてベクトル化していたので、複素数型配列
を実数型配列とみなして処理する最適なベクトル化が行
われず、処理効率を向上させる余地があるという欠点が
ある。
本発明の目的は、上述の点に鑑み、複素数の加減算のみ
を含むループのベクトル化において複素数型配列をその
2倍の大きさを持つ実数型配列として扱うことにより、
処理効率を上げることができる複素数演算ループ最適ベ
クトル化方式を提供することにある。
を含むループのベクトル化において複素数型配列をその
2倍の大きさを持つ実数型配列として扱うことにより、
処理効率を上げることができる複素数演算ループ最適ベ
クトル化方式を提供することにある。
本発明の複素数演算ループ最適ベクトル化方式は、ベク
トル計算機に対し複素数型のデータ構造を扱うことので
きる高級言語で記述された原始プログラムを入力して目
的プログラムを生成するコンパイラにおいて、原始プロ
グラム中のループ構造を認識してループの繰返し数を決
定し第1中間テキストを生成するループ構造解析手段と
、このループ構造解析手段により認識されたループ構造
中の配列の定義参照関係を偶ベベクトル化可能なループ
を選択する定義参照関係解析手段と、この定義参照関係
解析手段により選択されたループのうちのループ構造中
に含まれる文がすべて複素数型の配列要素をオペランド
とする加減算からなる算術代入文であるものを選択する
複素数演算解析手段と、この複素数演算解析手段により
選択されたループの第1中間テキストと繰返し数とを入
力し2倍の繰返し数を持つループ構造に変形した第2中
間テキストを生成するループ構造変形手段と、このルー
プ構造変形手段により生成された第2中間テキストを入
力しループ構造中のすべての複素数演算を実数演算に変
形した第3中間テキストを生成する複素数演算変形手段
と、この複素数演算変形手段により生成された第3中間
テキストを入力し一連のベクトル命令およびスカラ命令
を生成する命令生成手段とを有する。
トル計算機に対し複素数型のデータ構造を扱うことので
きる高級言語で記述された原始プログラムを入力して目
的プログラムを生成するコンパイラにおいて、原始プロ
グラム中のループ構造を認識してループの繰返し数を決
定し第1中間テキストを生成するループ構造解析手段と
、このループ構造解析手段により認識されたループ構造
中の配列の定義参照関係を偶ベベクトル化可能なループ
を選択する定義参照関係解析手段と、この定義参照関係
解析手段により選択されたループのうちのループ構造中
に含まれる文がすべて複素数型の配列要素をオペランド
とする加減算からなる算術代入文であるものを選択する
複素数演算解析手段と、この複素数演算解析手段により
選択されたループの第1中間テキストと繰返し数とを入
力し2倍の繰返し数を持つループ構造に変形した第2中
間テキストを生成するループ構造変形手段と、このルー
プ構造変形手段により生成された第2中間テキストを入
力しループ構造中のすべての複素数演算を実数演算に変
形した第3中間テキストを生成する複素数演算変形手段
と、この複素数演算変形手段により生成された第3中間
テキストを入力し一連のベクトル命令およびスカラ命令
を生成する命令生成手段とを有する。
本発明の複素数演算ループ最適ベクトル化方式では、ル
ープ構造解析手段が原始プログラム中のループ構造を認
識してループの繰返し数を決定し第1中間テキストを生
成し、定義参照関係解析手段がループ構造解析手段によ
り認識されたループ構造中の配列の定義参照関係を調べ
ベクトル化可能なループを選択し、複素数演算解析手段
が定義参照関係解析手段により選択されたループのうち
のループ構造中に含まれる文がすべて複素数型の配列要
素をオペランドとする加減算からなる算術化人文である
ものを選択し、ループ構造変形手段が複素数演算解析手
段により選択されたループの第1中間テキストと繰返し
数とを人力し2倍の繰返し数を持つループ構造に変形し
た第2中間テキストを生成し、複素数演算変形手段がル
ープ構造変形手段により生成された第2中間テキストを
入力しループ構造中のすべての複素数演算を実数演算に
変形した第3中間テキストを生成し、命令生成手段が複
素数演算変形手段により生成された第3中間テキストを
入力し一連のベクトル命令およびスカラ命令を生成する
。
ープ構造解析手段が原始プログラム中のループ構造を認
識してループの繰返し数を決定し第1中間テキストを生
成し、定義参照関係解析手段がループ構造解析手段によ
り認識されたループ構造中の配列の定義参照関係を調べ
ベクトル化可能なループを選択し、複素数演算解析手段
が定義参照関係解析手段により選択されたループのうち
のループ構造中に含まれる文がすべて複素数型の配列要
素をオペランドとする加減算からなる算術化人文である
ものを選択し、ループ構造変形手段が複素数演算解析手
段により選択されたループの第1中間テキストと繰返し
数とを人力し2倍の繰返し数を持つループ構造に変形し
た第2中間テキストを生成し、複素数演算変形手段がル
ープ構造変形手段により生成された第2中間テキストを
入力しループ構造中のすべての複素数演算を実数演算に
変形した第3中間テキストを生成し、命令生成手段が複
素数演算変形手段により生成された第3中間テキストを
入力し一連のベクトル命令およびスカラ命令を生成する
。
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の複素数演算ループ最適ベクトル化後
弐が適用されたコンパイラ2を示すブロック図である。
弐が適用されたコンパイラ2を示すブロック図である。
このコンパイラ2は、ベクトル計算機に対し複素数型の
データ構造を扱うことのできる高級言語で記述された原
始プログラム1を入力して目的プログラム9を出力する
ものであり、ループ構造解析手段3と、定義参照関係解
析手段4と、複素数演算解析手段5と、ループ構造変形
手段6と、複素数演算変形手段7と、命令生成手段8と
を含んで構成されている。また、コンパイラ2は、中間
テキストとして、第1中間テキスト10a、第2中間テ
キスト10bおよび第3巾間テキス)10cをそれぞれ
生成する。
データ構造を扱うことのできる高級言語で記述された原
始プログラム1を入力して目的プログラム9を出力する
ものであり、ループ構造解析手段3と、定義参照関係解
析手段4と、複素数演算解析手段5と、ループ構造変形
手段6と、複素数演算変形手段7と、命令生成手段8と
を含んで構成されている。また、コンパイラ2は、中間
テキストとして、第1中間テキスト10a、第2中間テ
キスト10bおよび第3巾間テキス)10cをそれぞれ
生成する。
次に、このように構成された本実施例の複素数演算ルー
プ最適ヘクトル化方式の動作について説明する。
プ最適ヘクトル化方式の動作について説明する。
コンパイラ2が原始プログラム1を入力すると、ループ
構造解析手段3は、原始プログラム1中のループ構造を
認識してループの繰返し数を決定し、第1中間テキス目
Oaを生成する。
構造解析手段3は、原始プログラム1中のループ構造を
認識してループの繰返し数を決定し、第1中間テキス目
Oaを生成する。
次に、定義参照関係解析手段4は、ループ構造解析手段
3により認識されたループ構造の中に現れる配列の定義
参照関係を調べ、定義参照関係がベクトル化後も変化せ
ずかつループの繰返しに従ってその配列の配列要素が順
々に定義または参照されるループを選択する。
3により認識されたループ構造の中に現れる配列の定義
参照関係を調べ、定義参照関係がベクトル化後も変化せ
ずかつループの繰返しに従ってその配列の配列要素が順
々に定義または参照されるループを選択する。
続いて、複素数演算解析手段5は、定義参照関係解析手
段4により選択されたループを解析し、その中に含まれ
る文がすべて複素数型の配列要素をオペランドとする加
減算からなる算術代入文であるものを選択する。
段4により選択されたループを解析し、その中に含まれ
る文がすべて複素数型の配列要素をオペランドとする加
減算からなる算術代入文であるものを選択する。
次に、ループ構造変形手段6は、複素数演算解析手段5
により選択されたループに対応するループ構造解析手段
3で生成された第1中間テキスト10aとループの繰返
し数とを入力し、その2倍の繰返し数を持つループ構造
に変形した第2中間テキスト10bを生成する。
により選択されたループに対応するループ構造解析手段
3で生成された第1中間テキスト10aとループの繰返
し数とを入力し、その2倍の繰返し数を持つループ構造
に変形した第2中間テキスト10bを生成する。
続いて、複素数演算変形手段7は、ループ構造変形手段
6により生成された第2中間テキスト10bを入力し、
そこに含まれるすべての複素数演算を実数演算に変形し
た第3巾間テキス目ocを生成する。
6により生成された第2中間テキスト10bを入力し、
そこに含まれるすべての複素数演算を実数演算に変形し
た第3巾間テキス目ocを生成する。
最後に、命令生成手段8は、複素数演算変形手段7によ
り生成された第3中間テキストlOcを入力し、一連の
ベクトル命令およびスカラ命令を生成し、目的プログラ
ム9としてコンパイラ2がら出力する。
り生成された第3中間テキストlOcを入力し、一連の
ベクトル命令およびスカラ命令を生成し、目的プログラ
ム9としてコンパイラ2がら出力する。
以上説明したように本発明は、複素数の加減算のみを含
むループのベクトル化において複素数型配列をその2倍
の大きさを持つ実数型配列として扱うことにより、ルー
プ長が2倍になり、ベクトル化した際に1つのベクトル
命令で連続処理できる要素数が増えるために処理効率を
上げることができる効果がある。
むループのベクトル化において複素数型配列をその2倍
の大きさを持つ実数型配列として扱うことにより、ルー
プ長が2倍になり、ベクトル化した際に1つのベクトル
命令で連続処理できる要素数が増えるために処理効率を
上げることができる効果がある。
また、実数部と虚数部とを順次処理することになるので
、ベクトルレジスタとメモリとの間のロードおよびスト
アの際のメモリアクセスが従来の1記憶単位おきの不連
続アクセスから連続アクセスとなり、連続アクセスが不
連続アクセスよりも高速に行える計算機ではさらに処理
速度が向上する効果がある。
、ベクトルレジスタとメモリとの間のロードおよびスト
アの際のメモリアクセスが従来の1記憶単位おきの不連
続アクセスから連続アクセスとなり、連続アクセスが不
連続アクセスよりも高速に行える計算機ではさらに処理
速度が向上する効果がある。
さらに、実数部と虚数部とのそれぞれで別々に行われて
いた処理が1つにまとめられるので、生成される目的プ
ログラムの大きさも小さくなるという効果がある。
いた処理が1つにまとめられるので、生成される目的プ
ログラムの大きさも小さくなるという効果がある。
第1図は本発明の一実施例の複素数演算ループ最適ベク
トル化方式が適用されたコンパイラの構成を示すブロッ
ク図、 第2図fa)は複素数型データの計算機内部表現を説明
するための図、 第2図(blは複素数型配列の計算機内部表現を説明す
るための図である。 図において、 1・・・原始プログラム、 2・・・コンパイラ、 3・・・ループ構造解析手段、 4・・・定義参照関係解析手段、 5・・・複素数演算解析手段、 6・・・ループ構造変形手段、 7・・・複素数演算変形手段、 8・・・命令生成手段、 9・・・目的プログラム、 10a・・第1中間テキスト、 10b・・第2中間テキスト、 10c・・第3中間テキストである。
トル化方式が適用されたコンパイラの構成を示すブロッ
ク図、 第2図fa)は複素数型データの計算機内部表現を説明
するための図、 第2図(blは複素数型配列の計算機内部表現を説明す
るための図である。 図において、 1・・・原始プログラム、 2・・・コンパイラ、 3・・・ループ構造解析手段、 4・・・定義参照関係解析手段、 5・・・複素数演算解析手段、 6・・・ループ構造変形手段、 7・・・複素数演算変形手段、 8・・・命令生成手段、 9・・・目的プログラム、 10a・・第1中間テキスト、 10b・・第2中間テキスト、 10c・・第3中間テキストである。
Claims (1)
- 【特許請求の範囲】 ベクトル計算機に対し複素数型のデータ構造を扱うこと
のできる高級言語で記述された原始プログラムを入力し
て目的プログラムを生成するコンパイラにおいて、 原始プログラム中のループ構造を認識してループの繰返
し数を決定し第1中間テキストを生成するループ構造解
析手段と、 このループ構造解析手段により認識されたループ構造中
の配列の定義参照関係を調べベクトル化可能なループを
選択する定義参照関係解析手段と、この定義参照関係解
析手段により選択されたループのうちのループ構造中に
含まれる文がすべて複素数型の配列要素をオペランドと
する加減算からなる算術代入文であるものを選択する複
素数演算解析手段と、 この複素数演算解析手段により選択されたループの第1
中間テキストと繰返し数とを入力し2倍の繰返し数を持
つループ構造に変形した第2中間テキストを生成するル
ープ構造変形手段と、このループ構造変形手段により生
成された第2中間テキストを入力しループ構造中のすべ
ての複素数演算を実数演算に変形した第3中間テキスト
を生成する複素数演算変形手段と、 この複素数演算変形手段により生成された第3中間テキ
ストを入力し一連のベクトル命令およびスカラ命令を生
成する命令生成手段と、 を有することを特徴とする複素数演算ループ最適ベクト
ル化方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63015199A JPH01191266A (ja) | 1988-01-26 | 1988-01-26 | 複素数演算ループ最適ベクトル化方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63015199A JPH01191266A (ja) | 1988-01-26 | 1988-01-26 | 複素数演算ループ最適ベクトル化方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH01191266A true JPH01191266A (ja) | 1989-08-01 |
Family
ID=11882199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63015199A Pending JPH01191266A (ja) | 1988-01-26 | 1988-01-26 | 複素数演算ループ最適ベクトル化方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH01191266A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020066375A1 (ja) * | 2018-09-25 | 2020-04-02 | 日本電気株式会社 | 情報処理装置、情報処理方法、プログラム |
US12124848B2 (en) | 2018-09-25 | 2024-10-22 | Nec Corporation | Information processing apparatus, information processing method, and program |
-
1988
- 1988-01-26 JP JP63015199A patent/JPH01191266A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020066375A1 (ja) * | 2018-09-25 | 2020-04-02 | 日本電気株式会社 | 情報処理装置、情報処理方法、プログラム |
JPWO2020066375A1 (ja) * | 2018-09-25 | 2021-08-30 | 日本電気株式会社 | 情報処理装置、情報処理方法、プログラム |
US12124848B2 (en) | 2018-09-25 | 2024-10-22 | Nec Corporation | Information processing apparatus, information processing method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4077252B2 (ja) | コンパイラプログラムおよびコンパイル処理方法 | |
JPH01191266A (ja) | 複素数演算ループ最適ベクトル化方式 | |
Perrott et al. | The design and implementation of a Pascal-based language for array processor architectures | |
Heidorn et al. | Efficient Mapping of CNNs onto Tightly Coupled Processor Arrays. | |
Dolz et al. | Towards portable realizations of Winograd-based convolution with vector intrinsics and OpenMP | |
JP3887097B2 (ja) | コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体 | |
Schlansker et al. | Acceleration of first and higher order recurrences on processors with instruction level parallelism | |
JP2018049461A (ja) | コンパイル装置、コンパイル方法、および、コンパイルプログラム | |
JPH04307624A (ja) | ループ最適化方法及び装置 | |
Norris et al. | Generating empirically optimized composed matrix kernels from MATLAB prototypes | |
JPH03257579A (ja) | コンパイラの並列化方式 | |
JP3817073B2 (ja) | メモリアクセス処理装置、メモリアクセス処理システム、および記録媒体 | |
JP2748582B2 (ja) | コンパイル処理装置 | |
Levesque | Application of the Vectorizer for effective use of high-speed computers | |
Hartenstein et al. | A partitioning programming environment for a novel parallel architecture | |
Hartenstein et al. | An embedded accelerator for real-time image processing | |
Huang et al. | Efficient Inference of Transformers on Bare-Metal Devices with RISC-V Vector Processors | |
JPH02101577A (ja) | ベクトル化処理方式 | |
JP2865694B2 (ja) | コンパイル方法 | |
JP2870218B2 (ja) | 並列実行命令列生成方式 | |
JPH0497484A (ja) | コンパイラのベクトル化処理方式 | |
JP2019012324A (ja) | コンパイラ | |
JPH0512752B2 (ja) | ||
JPH0594470A (ja) | ベクトル化方式 | |
Dampier | A subspace optimizing data parallel complier |