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
Application number
JP63015199A
Other languages
English (en)
Inventor
Yuji Yokoya
横谷 雄司
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP63015199A priority Critical patent/JPH01191266A/ja
Publication of JPH01191266A publication Critical patent/JPH01191266A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は複素数演算ループ最適ベクトル化方式に関し、
特にベクトル計算機に対し複素数型のデータ構造を扱う
ことのできる高級言語で記述された原始プログラムを入
力して目的プログラムを生成するコンパイラにおいて複
素数型の配列要素同士の加減算のみを含むループを高速
に実行するようなベクトル命令列を生成する複素数演算
ループ最適ベクトル化方式に関する。
〔従来の技術〕
複素数型データは、第2図(alに示すように、計算機
内部では実数部と虚数部との2つの隣接する領域からな
り、それぞれは実数型データと同じ表現形式になってい
る。
また、複素数型配列の内部表現は、第2図(blに示す
ように、配列の1番目の要素の実数部R1、次にその虚
数部C1、その次に2番目の要素の実数部R2、次にそ
の虚数部C2、・・・、最後の要素の実数部Rn(nは
正整数)、最後の要素の虚数部Cnというようにそれぞ
れの配列要素の実数部と虚数部とが交互に並んだ形式に
なっている。
例えば、複素数の乗算の場合、 〈演算結果の実数部〉= く被乗数の実数部〉×〈乗数の実数部〉−く被乗数の虚
数部〉×<乗数の虚数部〉〈演算結果の虚数部〉= く被乗数の実数部〉×<乗数の虚数部〉+く被乗数の虚
数部〉×<乗数の実数部〉となり、実数部と虚数部との
処理が異なる。
このため、従来のコンパイラは、すべての複素数のベク
トル演算で1つの複素数型配列要素を実数部と虚数部と
に分けてベクトルレジスタにロードして演算を行うよう
にベクトル化していた。
しかしながら、複素数演算が加減算の場合には、実数部
と虚数部とについて行われる操作は全く同一であるので
、ループ内の複素数演算が加減算のみのときには実数部
と虚数部とに分けて演算する必要はない。したがって、
1つの複素数型配列要素を2つの実数型配列要素と考え
、大きさがnの複素数型配列を大きさが2nの実数型配
列とみなして処理することができる。このようにするこ
とにより、ループ長が2倍になり、ベクトル化した際に
1つのベクトル命令で連続処理できる要素数が増えるた
めに処理効率を上げることができる。
〔発明が解決しようとする課題〕
上述した従来のコンパイラでは、ループ内の複素数演算
が加減算のみのときでも複素数型配列要素を実数部と虚
数部とに分けてベクトル化していたので、複素数型配列
を実数型配列とみなして処理する最適なベクトル化が行
われず、処理効率を向上させる余地があるという欠点が
ある。
本発明の目的は、上述の点に鑑み、複素数の加減算のみ
を含むループのベクトル化において複素数型配列をその
2倍の大きさを持つ実数型配列として扱うことにより、
処理効率を上げることができる複素数演算ループ最適ベ
クトル化方式を提供することにある。
〔課題を解決するための手段〕
本発明の複素数演算ループ最適ベクトル化方式は、ベク
トル計算機に対し複素数型のデータ構造を扱うことので
きる高級言語で記述された原始プログラムを入力して目
的プログラムを生成するコンパイラにおいて、原始プロ
グラム中のループ構造を認識してループの繰返し数を決
定し第1中間テキストを生成するループ構造解析手段と
、このループ構造解析手段により認識されたループ構造
中の配列の定義参照関係を偶ベベクトル化可能なループ
を選択する定義参照関係解析手段と、この定義参照関係
解析手段により選択されたループのうちのループ構造中
に含まれる文がすべて複素数型の配列要素をオペランド
とする加減算からなる算術代入文であるものを選択する
複素数演算解析手段と、この複素数演算解析手段により
選択されたループの第1中間テキストと繰返し数とを入
力し2倍の繰返し数を持つループ構造に変形した第2中
間テキストを生成するループ構造変形手段と、このルー
プ構造変形手段により生成された第2中間テキストを入
力しループ構造中のすべての複素数演算を実数演算に変
形した第3中間テキストを生成する複素数演算変形手段
と、この複素数演算変形手段により生成された第3中間
テキストを入力し一連のベクトル命令およびスカラ命令
を生成する命令生成手段とを有する。
〔作用〕
本発明の複素数演算ループ最適ベクトル化方式では、ル
ープ構造解析手段が原始プログラム中のループ構造を認
識してループの繰返し数を決定し第1中間テキストを生
成し、定義参照関係解析手段がループ構造解析手段によ
り認識されたループ構造中の配列の定義参照関係を調べ
ベクトル化可能なループを選択し、複素数演算解析手段
が定義参照関係解析手段により選択されたループのうち
のループ構造中に含まれる文がすべて複素数型の配列要
素をオペランドとする加減算からなる算術化人文である
ものを選択し、ループ構造変形手段が複素数演算解析手
段により選択されたループの第1中間テキストと繰返し
数とを人力し2倍の繰返し数を持つループ構造に変形し
た第2中間テキストを生成し、複素数演算変形手段がル
ープ構造変形手段により生成された第2中間テキストを
入力しループ構造中のすべての複素数演算を実数演算に
変形した第3中間テキストを生成し、命令生成手段が複
素数演算変形手段により生成された第3中間テキストを
入力し一連のベクトル命令およびスカラ命令を生成する
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の複素数演算ループ最適ベクトル化後
弐が適用されたコンパイラ2を示すブロック図である。
このコンパイラ2は、ベクトル計算機に対し複素数型の
データ構造を扱うことのできる高級言語で記述された原
始プログラム1を入力して目的プログラム9を出力する
ものであり、ループ構造解析手段3と、定義参照関係解
析手段4と、複素数演算解析手段5と、ループ構造変形
手段6と、複素数演算変形手段7と、命令生成手段8と
を含んで構成されている。また、コンパイラ2は、中間
テキストとして、第1中間テキスト10a、第2中間テ
キスト10bおよび第3巾間テキス)10cをそれぞれ
生成する。
次に、このように構成された本実施例の複素数演算ルー
プ最適ヘクトル化方式の動作について説明する。
コンパイラ2が原始プログラム1を入力すると、ループ
構造解析手段3は、原始プログラム1中のループ構造を
認識してループの繰返し数を決定し、第1中間テキス目
Oaを生成する。
次に、定義参照関係解析手段4は、ループ構造解析手段
3により認識されたループ構造の中に現れる配列の定義
参照関係を調べ、定義参照関係がベクトル化後も変化せ
ずかつループの繰返しに従ってその配列の配列要素が順
々に定義または参照されるループを選択する。
続いて、複素数演算解析手段5は、定義参照関係解析手
段4により選択されたループを解析し、その中に含まれ
る文がすべて複素数型の配列要素をオペランドとする加
減算からなる算術代入文であるものを選択する。
次に、ループ構造変形手段6は、複素数演算解析手段5
により選択されたループに対応するループ構造解析手段
3で生成された第1中間テキスト10aとループの繰返
し数とを入力し、その2倍の繰返し数を持つループ構造
に変形した第2中間テキスト10bを生成する。
続いて、複素数演算変形手段7は、ループ構造変形手段
6により生成された第2中間テキスト10bを入力し、
そこに含まれるすべての複素数演算を実数演算に変形し
た第3巾間テキス目ocを生成する。
最後に、命令生成手段8は、複素数演算変形手段7によ
り生成された第3中間テキストlOcを入力し、一連の
ベクトル命令およびスカラ命令を生成し、目的プログラ
ム9としてコンパイラ2がら出力する。
〔発明の効果〕
以上説明したように本発明は、複素数の加減算のみを含
むループのベクトル化において複素数型配列をその2倍
の大きさを持つ実数型配列として扱うことにより、ルー
プ長が2倍になり、ベクトル化した際に1つのベクトル
命令で連続処理できる要素数が増えるために処理効率を
上げることができる効果がある。
また、実数部と虚数部とを順次処理することになるので
、ベクトルレジスタとメモリとの間のロードおよびスト
アの際のメモリアクセスが従来の1記憶単位おきの不連
続アクセスから連続アクセスとなり、連続アクセスが不
連続アクセスよりも高速に行える計算機ではさらに処理
速度が向上する効果がある。
さらに、実数部と虚数部とのそれぞれで別々に行われて
いた処理が1つにまとめられるので、生成される目的プ
ログラムの大きさも小さくなるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の複素数演算ループ最適ベク
トル化方式が適用されたコンパイラの構成を示すブロッ
ク図、 第2図fa)は複素数型データの計算機内部表現を説明
するための図、 第2図(blは複素数型配列の計算機内部表現を説明す
るための図である。 図において、 1・・・原始プログラム、 2・・・コンパイラ、 3・・・ループ構造解析手段、 4・・・定義参照関係解析手段、 5・・・複素数演算解析手段、 6・・・ループ構造変形手段、 7・・・複素数演算変形手段、 8・・・命令生成手段、 9・・・目的プログラム、 10a・・第1中間テキスト、 10b・・第2中間テキスト、 10c・・第3中間テキストである。

Claims (1)

  1. 【特許請求の範囲】 ベクトル計算機に対し複素数型のデータ構造を扱うこと
    のできる高級言語で記述された原始プログラムを入力し
    て目的プログラムを生成するコンパイラにおいて、 原始プログラム中のループ構造を認識してループの繰返
    し数を決定し第1中間テキストを生成するループ構造解
    析手段と、 このループ構造解析手段により認識されたループ構造中
    の配列の定義参照関係を調べベクトル化可能なループを
    選択する定義参照関係解析手段と、この定義参照関係解
    析手段により選択されたループのうちのループ構造中に
    含まれる文がすべて複素数型の配列要素をオペランドと
    する加減算からなる算術代入文であるものを選択する複
    素数演算解析手段と、 この複素数演算解析手段により選択されたループの第1
    中間テキストと繰返し数とを入力し2倍の繰返し数を持
    つループ構造に変形した第2中間テキストを生成するル
    ープ構造変形手段と、このループ構造変形手段により生
    成された第2中間テキストを入力しループ構造中のすべ
    ての複素数演算を実数演算に変形した第3中間テキスト
    を生成する複素数演算変形手段と、 この複素数演算変形手段により生成された第3中間テキ
    ストを入力し一連のベクトル命令およびスカラ命令を生
    成する命令生成手段と、 を有することを特徴とする複素数演算ループ最適ベクト
    ル化方式。
JP63015199A 1988-01-26 1988-01-26 複素数演算ループ最適ベクトル化方式 Pending JPH01191266A (ja)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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